Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2018-12-12 22:00:52 +01:00
commit 12878d12ac
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
42 changed files with 1249 additions and 210 deletions

View file

@ -329,6 +329,7 @@ SCM_TESTS = \
tests/base16.scm \ tests/base16.scm \
tests/base32.scm \ tests/base32.scm \
tests/base64.scm \ tests/base64.scm \
tests/channels.scm \
tests/cpan.scm \ tests/cpan.scm \
tests/cpio.scm \ tests/cpio.scm \
tests/crate.scm \ tests/crate.scm \

View file

@ -187,14 +187,14 @@ (define MiB
(bootloader u-boot-bootloader) (bootloader u-boot-bootloader)
(target #f)))) (target #f))))
#:disk-image-size #:disk-image-size
(* 1024 MiB)))))) (* 1500 MiB))))))
(list (->job 'usb-image (list (->job 'usb-image
(run-with-store store (run-with-store store
(mbegin %store-monad (mbegin %store-monad
(set-guile-for-build (default-guile)) (set-guile-for-build (default-guile))
(system-disk-image installation-os (system-disk-image installation-os
#:disk-image-size #:disk-image-size
(* 1024 MiB))))) (* 1500 MiB)))))
(->job 'iso9660-image (->job 'iso9660-image
(run-with-store store (run-with-store store
(mbegin %store-monad (mbegin %store-monad

View file

@ -3037,6 +3037,39 @@ the new and upgraded packages that are listed, some like @code{my-gimp} and
@code{my-emacs-with-cool-features} might come from @code{my-emacs-with-cool-features} might come from
@code{my-personal-packages}, while others come from the Guix default channel. @code{my-personal-packages}, while others come from the Guix default channel.
@cindex dependencies, channels
@cindex meta-data, channels
@subsection Declaring Channel Dependencies
Channel authors may decide to augment a package collection provided by other
channels. They can declare their channel to be dependent on other channels in
a meta-data file @file{.guix-channel}, which is to be placed in the root of
the channel repository.
The meta-data file should contain a simple S-expression like this:
@lisp
(channel
(version 0)
(dependencies
(channel
(name 'some-collection)
(url "https://example.org/first-collection.git"))
(channel
(name 'some-other-collection)
(url "https://example.org/second-collection.git")
(branch "testing"))))
@end lisp
In the above example this channel is declared to depend on two other channels,
which will both be fetched automatically. The modules provided by the channel
will be compiled in an environment where the modules of all these declared
channels are available.
For the sake of reliability and maintainability, you should avoid dependencies
on channels that you don't control, and you should aim to keep the number of
dependencies to a minimum.
@subsection Replicating Guix @subsection Replicating Guix
@cindex pinning, channels @cindex pinning, channels

View file

@ -146,6 +146,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/documentation.scm \ %D%/packages/documentation.scm \
%D%/packages/dunst.scm \ %D%/packages/dunst.scm \
%D%/packages/dvtm.scm \ %D%/packages/dvtm.scm \
%D%/packages/easyrpg.scm \
%D%/packages/ebook.scm \ %D%/packages/ebook.scm \
%D%/packages/ed.scm \ %D%/packages/ed.scm \
%D%/packages/education.scm \ %D%/packages/education.scm \
@ -606,7 +607,6 @@ dist_patch_DATA = \
%D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/blast+-fix-makefile.patch \
%D%/packages/patches/blender-newer-ffmpeg.patch \ %D%/packages/patches/blender-newer-ffmpeg.patch \
%D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/boost-fix-icu-build.patch \
%D%/packages/patches/borg-respect-storage-quota.patch \
%D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \
@ -1007,6 +1007,7 @@ dist_patch_DATA = \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \
%D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/opensmtpd-fix-crash.patch \ %D%/packages/patches/opensmtpd-fix-crash.patch \
@ -1051,6 +1052,7 @@ dist_patch_DATA = \
%D%/packages/patches/plink-endian-detection.patch \ %D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plotutils-libpng-jmpbuf.patch \ %D%/packages/patches/plotutils-libpng-jmpbuf.patch \
%D%/packages/patches/podofo-cmake-3.12.patch \ %D%/packages/patches/podofo-cmake-3.12.patch \
%D%/packages/patches/polkit-CVE-2018-19788.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/portmidi-modular-build.patch \
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \

View file

@ -2183,7 +2183,7 @@ (define-public qjackrcd
(define-public supercollider (define-public supercollider
(package (package
(name "supercollider") (name "supercollider")
(version "3.9.3") (version "3.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2192,7 +2192,7 @@ (define-public supercollider
"/SuperCollider-" version "-Source-linux.tar.bz2")) "/SuperCollider-" version "-Source-linux.tar.bz2"))
(sha256 (sha256
(base32 (base32
"1d8ixfl100jvlialxdizp8wqsl1mp5pi2bam25vp97bhjd59cfdr")))) "16j9psa32czx1p1y2vvq0qf2ib0ngrfc604vx35n2b4llyika84v"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
@ -2230,13 +2230,13 @@ (define-public supercollider
;; https://github.com/supercollider/supercollider/issues/1736 ;; https://github.com/supercollider/supercollider/issues/1736
(add-after 'rm-bundled-libs 'disable-broken-tests (add-after 'rm-bundled-libs 'disable-broken-tests
(lambda _ (lambda _
(substitute* "testsuite/supernova/CMakeLists.txt" (substitute* "testsuite/server/supernova/CMakeLists.txt"
(("server_test.cpp") (("server_test.cpp")
"") "")
(("perf_counter_test.cpp") (("perf_counter_test.cpp")
"")) ""))
(delete-file "testsuite/supernova/server_test.cpp") (delete-file "testsuite/server/supernova/server_test.cpp")
(delete-file "testsuite/supernova/perf_counter_test.cpp") (delete-file "testsuite/server/supernova/perf_counter_test.cpp")
(substitute* "testsuite/CMakeLists.txt" (substitute* "testsuite/CMakeLists.txt"
(("add_subdirectory\\(sclang\\)") (("add_subdirectory\\(sclang\\)")
"")) ""))

View file

@ -491,15 +491,14 @@ (define-public libchop
(define-public borg (define-public borg
(package (package
(name "borg") (name "borg")
(version "1.1.7") (version "1.1.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "borgbackup" version)) (uri (pypi-uri "borgbackup" version))
(patches (search-patches "borg-respect-storage-quota.patch"))
(sha256 (sha256
(base32 (base32
"1p3zia62vyg9vadkdjzzkzbj4dmgijr7ix5lmhfbxpwy5q9imdgp")) "0qqvcscn1l4y83x4sh3izdpmr8zq38j8chjkpfq4q4d01i470hqb"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View file

@ -317,6 +317,8 @@ (define-public syslinux
(home-page "https://www.syslinux.org") (home-page "https://www.syslinux.org")
(synopsis "Lightweight Linux bootloader") (synopsis "Lightweight Linux bootloader")
(description "Syslinux is a lightweight Linux bootloader.") (description "Syslinux is a lightweight Linux bootloader.")
;; The Makefile specifically targets i386 and x86_64 using nasm.
(supported-systems '("i686-linux" "x86_64-linux"))
(license (list license:gpl2+ (license (list license:gpl2+
license:bsd-3 ; gnu-efi/* license:bsd-3 ; gnu-efi/*
license:bsd-4 ; gnu-efi/inc/* gnu-efi/lib/* license:bsd-4 ; gnu-efi/inc/* gnu-efi/lib/*

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +26,7 @@ (define-module (gnu packages busybox)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages algebra)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages perl)) #:use-module (gnu packages perl))
@ -102,3 +104,41 @@ (define-public busybox
(home-page "https://www.busybox.net") (home-page "https://www.busybox.net")
;; Some files are gplv2+ ;; Some files are gplv2+
(license gpl2))) (license gpl2)))
(define-public toybox
(package
(name "toybox")
(version "0.7.8")
(source (origin
(method url-fetch)
(uri (string-append
"https://landley.net/toybox/downloads/toybox-"
version ".tar.gz"))
(sha256
(base32
"1mlqv5hsvy8ii6m698hq6rc316klwv44jlr034knwg6bk1lf2qj9"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-environment-variables
(lambda _
(setenv "CC" (which "gcc"))
(setenv "HOSTCC" (which "gcc"))
#t))
(replace 'configure
(lambda _ (invoke "make" "defconfig")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make"
(string-append "PREFIX=" out)
"install")))))
#:test-target "tests"))
(native-inputs `(("bc" ,bc)))
(synopsis "Many common UNIX utilities in a single executable")
(description "ToyBox combines tiny versions of many common UNIX utilities
into a single small executable. It provides a fairly complete environment for
any small or embedded system.")
(home-page "https://landley.net/toybox/")
(license bsd-2)))

View file

@ -1414,6 +1414,30 @@ (define-public python-pytest-subtesthack
(define-public python2-pytest-subtesthack (define-public python2-pytest-subtesthack
(package-with-python2 python-pytest-subtesthack)) (package-with-python2 python-pytest-subtesthack))
(define-public python-pytest-sugar
(package
(name "python-pytest-sugar")
(version "0.9.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-sugar" version))
(sha256
(base32
"1asq7yc4g8bx2sn7yy974mhc9ywvaihasjab4inkirdwn9s7mn7w"))))
(build-system python-build-system)
(propagated-inputs
`(("python-packaging" ,python-packaging)
("python-pytest" ,python-pytest)
("python-termcolor" ,python-termcolor)))
(home-page "https://pivotfinland.com/pytest-sugar/")
(synopsis "Plugin for pytest that changes the default look and feel")
(description
"@code{pytest-sugar} is a plugin for py.test that changes the default
look and feel of py.test, using a progress bar and showing failures and errors
instantly.")
(license license:bsd-3)))
(define-public python-hypothesis (define-public python-hypothesis
(package (package
(name "python-hypothesis") (name "python-hypothesis")

121
gnu/packages/easyrpg.scm Normal file
View file

@ -0,0 +1,121 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages easyrpg)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages audio)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages mp3)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages sdl)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml))
(define-public liblcf
(package
(name "liblcf")
(version "0.5.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://easyrpg.org/downloads/player/" version
"/liblcf-" version ".tar.gz"))
(sha256
(base32
"1k99bcw5c23801jk3mbz5sj5h18x46w1qxrkknhwhfgqzpvxhwrs"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(propagated-inputs
;; Required by 'liblcf.pc'.
`(("expat" ,expat)
("icu" ,icu4c)))
(home-page "https://easyrpg.org/")
(synopsis "Library to handle RPG Maker 2000 and 2003 game data")
(description
"@code{liblcf} is a library to handle RPG Maker 2000 and 2003 game data.
It can read and write LCF and XML files.")
;; It includes a copy of Boost Preprocessor Cat and Stringize (boost-1.0):
;; src/boost/preprocessor/config.hpp
;; src/boost/preprocessor/cat.hpp
;; src/boost/preprocessor/stringize.hpp
;; and a copy of inih (bsd-3):
;; src/ini.h
;; src/ini.cpp
;; src/inireader.h
;; src/inireader.cpp
;; TODO: Unbundle them.
(license license:expat)))
(define-public easyrpg-player
(package
(name "easyrpg-player")
(version "0.5.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://easyrpg.org/downloads/player/" version
"/easyrpg-player-" version ".tar.gz"))
(sha256
(base32
"0w0idr61slg5828j1q31c1kh1h0ryp8psc006y06jph5pp3qgm48"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(list (string-append "--with-bash-completion-dir="
%output "/etc/bash_completion.d/"))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("freetype" ,freetype)
("harfbuzz" ,harfbuzz)
("liblcf" ,liblcf)
("libpng" ,libpng)
("libsndfile" ,libsndfile)
("libvorbis" ,libvorbis)
("libxmp" ,libxmp)
("mpg123" ,mpg123)
("opusfile" ,opusfile)
("pixman" ,pixman)
("sdl2-mixer" ,sdl2-mixer)
("sdl2" ,sdl2)
("speexdsp" ,speexdsp)
;; ("wildmidi" ,wildmidi) ; TODO: package it
("zlib" ,zlib)))
(home-page "https://easyrpg.org/")
(synopsis "Play RPG Maker 2000 and 2003 games")
(description
"EasyRPG Player is a game interpreter to play RPG Maker 2000, 2003 and
EasyRPG games. It uses the LCF parser library (liblcf) to read RPG Maker game
data.")
;; It bundles FMMidi YM2608 FM synthesizer emulator (bsd-3):
;; src/midisynth.h
;; src/midisynth.cpp
;; and PicoJSON JSON parser/serializer (bsd-2):
;; src/picojson.h
;; TODO: Unbundle them.
(license license:gpl3+)))

View file

@ -4807,7 +4807,7 @@ (define-public emacs-highlight-indentation
(define-public emacs-elpy (define-public emacs-elpy
(package (package
(name "emacs-elpy") (name "emacs-elpy")
(version "1.26.0") (version "1.27.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -4816,7 +4816,7 @@ (define-public emacs-elpy
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"0wynzp5xmrgiggmam82n6lfaiqmfl4n3ccpsgnh86r6pbsmssxjk")))) "1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
@ -5214,26 +5214,28 @@ (define-public emacs-helm-make
(define-public emacs-cider (define-public emacs-cider
(package (package
(name "emacs-cider") (name "emacs-cider")
(version "0.15.1") (version "0.18.0")
(source (origin (source
(method url-fetch) (origin
(uri (string-append (method git-fetch)
"https://github.com/clojure-emacs/cider/archive/v" (uri (git-reference
version ".tar.gz")) (url "https://github.com/clojure-emacs/cider.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version))))
(sha256 (file-name (git-file-name name version))
(base32 (sha256
"1j5hlmi14ypszv1f9nvq0jjlz7i742flg0ny3055l7i4x089xx6g")))) (base32
"1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
'(#:exclude ; Don't exclude 'cider-test.el'. '(#:exclude ; Don't exclude 'cider-test.el'.
'("^\\.dir-locals\\.el$" "^test/"))) '("^\\.dir-locals\\.el$" "^test/")))
(propagated-inputs (propagated-inputs
`(("emacs-clojure-mode" ,emacs-clojure-mode) `(("emacs-clojure-mode" ,emacs-clojure-mode)
("emacs-sesman" ,emacs-sesman)
("emacs-spinner" ,emacs-spinner) ("emacs-spinner" ,emacs-spinner)
("emacs-pkg-info" ,emacs-pkg-info) ("emacs-pkg-info" ,emacs-pkg-info)
("emacs-queue" ,emacs-queue))) ("emacs-queue" ,emacs-queue)))
(home-page "https://cider.readthedocs.org/") (home-page "https://cider.readthedocs.io/")
(synopsis "Clojure development environment for Emacs") (synopsis "Clojure development environment for Emacs")
(description (description
"CIDER (Clojure Interactive Development Environment that Rocks) aims to "CIDER (Clojure Interactive Development Environment that Rocks) aims to
@ -12737,3 +12739,29 @@ (define-public emacs-matrix-client
rooms. It also provides an API which allows Emacs to seamlessly create rooms. It also provides an API which allows Emacs to seamlessly create
RPC channels with users and other software.") RPC channels with users and other software.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-sesman
(package
(name "emacs-sesman")
(version "0.3.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vspinu/sesman.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
#:test-command '("make" "test")))
(home-page "https://github.com/vspinu/sesman")
(synopsis "Session manager for Emacs based IDEs")
(description "Sesman provides facilities for session management and
interactive session association with the current contexts (project, directory,
buffers). While sesman can be used to manage arbitrary sessions, it primary
targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(license license:gpl3+)))

View file

@ -622,7 +622,7 @@ (define-public font-anonymous-pro
(define-public font-gnu-unifont (define-public font-gnu-unifont
(package (package
(name "font-gnu-unifont") (name "font-gnu-unifont")
(version "11.0.02") (version "11.0.03")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -630,16 +630,14 @@ (define-public font-gnu-unifont
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1di8i44c163b9l5f08jcrjfijnqz0j7p7hpfvf8dcms6cm6s4wvy")))) "171zhm52c4rzpn19qcq4n9nyfbcjl38v50zslhvgpjdcmc5jvhav"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" ; TrueType version (outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version "pcf" ; PCF (bitmap) version
"psf" ; PSF (console) version "psf" ; PSF (console) version
"bin" ; Utilities to manipulate '.hex' format "bin")) ; Utilities to manipulate '.hex' format
))
(arguments (arguments
'(#:parallel-build? #f ; parallel build fails '(#:tests? #f ; no check target
#:tests? #f ; no check target
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace (replace

View file

@ -652,6 +652,8 @@ (define-public allegro
(uri (string-append "https://github.com/liballeg/allegro5/releases" (uri (string-append "https://github.com/liballeg/allegro5/releases"
"/download/" version "/allegro-" "/download/" version "/allegro-"
version ".tar.gz")) version ".tar.gz"))
(patches (search-patches
"allegro-fix-compilation-mesa-18.2.5-and-later.patch"))
(sha256 (sha256
(base32 (base32
"1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l")))) "1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l"))))

View file

@ -2306,7 +2306,7 @@ (define-public manaplus
(define openttd-engine (define openttd-engine
(package (package
(name "openttd-engine") (name "openttd-engine")
(version "1.7.1") (version "1.8.0")
(source (source
(origin (method url-fetch) (origin (method url-fetch)
(uri (string-append "http://binaries.openttd.org/releases/" (uri (string-append "http://binaries.openttd.org/releases/"
@ -2323,7 +2323,7 @@ (define openttd-engine
"02d1xmb75yv4x6rfnvxk3vvq4l3lvvwr2pfsdzn7lzalic51ziqh"))))) "02d1xmb75yv4x6rfnvxk3vvq4l3lvvwr2pfsdzn7lzalic51ziqh")))))
(sha256 (sha256
(base32 (base32
"0dhv5bbbg1dmmq7fi3xss0a9jq2rqgb5sf9fsqzlsjcdm590j6b1")) "0zq8xdg0k92p3s4j9x76591zaqz7k9ra69q008m209vdfffjvly2"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; The DOS port contains proprietary software. ;; The DOS port contains proprietary software.
@ -2353,7 +2353,7 @@ (define openttd-engine
configure-flags)))))))) configure-flags))))))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("allegro" ,allegro-4) `(("allegro" ,allegro)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("icu4c" ,icu4c) ("icu4c" ,icu4c)

View file

@ -62,6 +62,7 @@ (define-module (gnu packages gnuzilla)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages assembly) #:use-module (gnu packages assembly)
#:use-module (gnu packages rust) #:use-module (gnu packages rust)
#:use-module (gnu packages llvm)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
@ -506,16 +507,38 @@ (define-public icecat
(search-patch "icecat-use-system-media-libs.patch") (search-patch "icecat-use-system-media-libs.patch")
(mozilla-patch "icecat-bug-1464061.patch" "d28761dbff18" "1f58rzwx4s1af66fdwn9lgkcd1ksmq8kn8imvf78p90jqi24h7b4") (mozilla-patch "icecat-bug-1464061.patch" "d28761dbff18" "1f58rzwx4s1af66fdwn9lgkcd1ksmq8kn8imvf78p90jqi24h7b4")
(mozilla-patch "icecat-bug-1479853.patch" "4faeb696dd06" "12891xx9c15s6kby6d3zk64v5nqgaq7sw597zv1fkd3a6x69hlva") (mozilla-patch "icecat-bug-1479853.patch" "4faeb696dd06" "12891xx9c15s6kby6d3zk64v5nqgaq7sw597zv1fkd3a6x69hlva")
(mozilla-patch "icecat-bug-1488295.patch" "12ba39f69876" "1piyq44f0xa0a9z2748aqwpaziaxwp61d86gyhalbyag8lcxfb3p") (mozilla-patch "icecat-CVE-2018-17466.patch" "12ba39f69876" "1piyq44f0xa0a9z2748aqwpaziaxwp61d86gyhalbyag8lcxfb3p")
(mozilla-patch "icecat-bug-1500011.patch" "a0adabeedf26" "0f5wazha3zxzhy2j8f93hx62l9p02b1p40vi07qah3ar67h4ccj9") (mozilla-patch "icecat-CVE-2018-18498.patch" "a0adabeedf26" "0f5wazha3zxzhy2j8f93hx62l9p02b1p40vi07qah3ar67h4ccj9")
(mozilla-patch "icecat-bug-1503082.patch" "19604eb26230" "1wqxgph4z14ijhk2j2m4av5p6gx72d02lzz83q6yy0k065kw8psb") (mozilla-patch "icecat-CVE-2018-12405-pt01.patch" "19604eb26230" "1wqxgph4z14ijhk2j2m4av5p6gx72d02lzz83q6yy0k065kw8psb")
(mozilla-patch "icecat-bug-1499861.patch" "98737ab09270" "0fyl6wv0jxcxpkfpsff46y93k49n8lrw0k7c1p45g8da015dx27a") (mozilla-patch "icecat-CVE-2018-18492.patch" "98737ab09270" "0fyl6wv0jxcxpkfpsff46y93k49n8lrw0k7c1p45g8da015dx27a")
(mozilla-patch "icecat-bug-1504452.patch" "1cf7d80355d5" "19jp4x32vyxam54d1r9fm7jwf6krhhf3xazfqmxb9aw4iwdil7dl") (mozilla-patch "icecat-CVE-2018-18493.patch" "1cf7d80355d5" "19jp4x32vyxam54d1r9fm7jwf6krhhf3xazfqmxb9aw4iwdil7dl")
(mozilla-patch "icecat-bug-1494752.patch" "c264774b8913" "1hxyi131x8jwawrq90cgkph833iv9ixrdrgzl1r978gbzwq10xz2") (mozilla-patch "icecat-CVE-2018-12405-pt02.patch" "c264774b8913" "1hxyi131x8jwawrq90cgkph833iv9ixrdrgzl1r978gbzwq10xz2")
(mozilla-patch "icecat-bug-1477773.patch" "ec13fda7c9b0" "0zj7aylgw55g0y7plaafn5gq8jwcsdr1bpdxacs0hq914nm8zy9z") (mozilla-patch "icecat-bug-1477773.patch" "ec13fda7c9b0" "0zj7aylgw55g0y7plaafn5gq8jwcsdr1bpdxacs0hq914nm8zy9z")
(mozilla-patch "icecat-bug-1500759.patch" "5e1a9644aeef" "1qimrpgyrd8zkiri7w57j0aymk20y9b34am5w7rvr6qj1lhrbfla") (mozilla-patch "icecat-CVE-2018-12405-pt03.patch" "5e1a9644aeef" "1qimrpgyrd8zkiri7w57j0aymk20y9b34am5w7rvr6qj1lhrbfla")
(mozilla-patch "icecat-bug-1485655.patch" "9055726e2d89" "1pppxr94zqh6zmi2mn1ih21qap09vk5ivbhnwxqr8iszvygjg44g") (mozilla-patch "icecat-bug-1485655.patch" "9055726e2d89" "1pppxr94zqh6zmi2mn1ih21qap09vk5ivbhnwxqr8iszvygjg44g")
(mozilla-patch "icecat-bug-1410214.patch" "9e641345e2ef" "0542xss2jdb8drh4g50cfy32l300x69dyywgx3dqs03vgr3qplxy"))) (mozilla-patch "icecat-bug-1410214.patch" "9e641345e2ef" "0542xss2jdb8drh4g50cfy32l300x69dyywgx3dqs03vgr3qplxy")
(mozilla-patch "icecat-CVE-2018-12405-pt04.patch" "6398541ec302" "1c2yi7mkg3d5afxsgj9fp3zq8yhkmphrll5d60d5xsdv88kqqiyf")
(mozilla-patch "icecat-bug-1496736.patch" "3bed863ee656" "038k7jk3yp16410crwfdvhyb2vis49c6bplrfr83v51885cqldar")
(mozilla-patch "icecat-bug-1498765.patch" "a08c8493ba19" "0bwg4vg03j962lb9q8ihpiy4rmygykf1q9ij8x7h34q7hg43yjya")
(mozilla-patch "icecat-CVE-2018-12405-pt05.patch" "ee204e26690e" "1scs45xhlr1mwv6x2q6n22363f42by8cjmifqwzlikggs21f5mcq")
(mozilla-patch "icecat-bug-1507035.patch" "cec8b58ab3fe" "1f131ibpkrhsa44l822hnm5qgvapbs3i9pj25iimdwvr933winz8")
(mozilla-patch "icecat-bug-1501680.patch" "282c6bb81562" "1zgw7l5zmni8468y3f6cip1nlw63cfdd9vv9b00cbrgy96d1q2cp")
(mozilla-patch "icecat-bug-1500310.patch" "b3a439a26186" "0mrjxcmrlv04fyl36dwxk97dw08g2hlikvw2hfa1l0y8zsc4bgw8")
(mozilla-patch "icecat-bug-1500366.patch" "abd59256c4e3" "1jgwh2v4kwb6kf2h7mwf128w1k1jj119bfhlgqpmn9ami35wpzf3")
(mozilla-patch "icecat-bug-1493080.patch" "a7cabf306d05" "1n7wv67rcaz8wj31jc77ssjdj3kb61gdg7pigj828c5z2cgns1k5")
(mozilla-patch "icecat-CVE-2018-12405-pt06.patch" "8bbf80948b50" "1nvc69zgz9nvbw1pwxkil1fx4cxxpr6bsjrpp6l2kv7jhgax1bqk")
(mozilla-patch "icecat-bug-1507564.patch" "60619cc47b10" "09fanqr08kqgraw4xp7y2az4jc7ia8nn200rqjfj20vmkyjz97j3")
(mozilla-patch "icecat-bug-1507730.patch" "dd0f01818b9c" "14ziq1bm72n58xrvsgzpjj5z6ifpvi70r5jfhbkbj69mf4y4cx2z")
(mozilla-patch "icecat-CVE-2018-12405-pt07.patch" "a73a46ddc848" "1bvvyav3xyn6rgn6haicinxn0dasl9dyc1i37fyb7wr5wcpahybs")
(mozilla-patch "icecat-CVE-2018-18494.patch" "a72ec8e21577" "095zghmwdcbaid5426p9vpl757d8sfbsvgn201bjm7nhm03m4z7i")
(mozilla-patch "icecat-CVE-2018-12405-pt08.patch" "b6d0fc61fd0b" "0059avawxi4s4747plybjsjq8j2h4z7amw05p28xyg95a2njwnaa")
(mozilla-patch "icecat-bug-1499028.patch" "a62ede2dd3bc" "0ikmnibni8bdvpr9p42wskyyic08vzqdz5qr028bqzyg5119gily")
(mozilla-patch "icecat-bug-1426574.patch" "0db86656655b" "0kmccb4ccdzbzncwklx7w1bg7r61zwl2wnfp67vl27hm9xykbck7")
(mozilla-patch "icecat-CVE-2018-12405-pt09.patch" "20e31905de62" "0b5a441645wy3q4asaygvdq0inrxmxrh33cpgdp6ngflq9p2i6h0")
(mozilla-patch "icecat-CVE-2018-12405-pt10.patch" "c2832f98fe51" "0b4jfjfdyrihwjdfavd54hn9kdg2f017lmfr7mj2llp71flxwwj7")
(mozilla-patch "icecat-bug-1511495.patch" "d428d2b8f585" "1f9xs0bjhbphvkv60cnvz34sr2rv38jzvi47wh3nablg41yjpdrk")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -620,6 +643,8 @@ (define-public icecat
;; Icecat 60 checkes for rust>=1.24 ;; Icecat 60 checkes for rust>=1.24
`(("rust" ,rust-1.24) `(("rust" ,rust-1.24)
("cargo" ,rust-1.24 "cargo") ("cargo" ,rust-1.24 "cargo")
("llvm" ,llvm-3.9.1)
("clang" ,clang-3.9.1)
("perl" ,perl) ("perl" ,perl)
("python" ,python-2) ; Python 3 not supported ("python" ,python-2) ; Python 3 not supported
("python2-pysqlite" ,python2-pysqlite) ("python2-pysqlite" ,python2-pysqlite)
@ -639,7 +664,7 @@ (define-public icecat
#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums' #:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
#:configure-flags '("--enable-default-toolkit=cairo-gtk3" #:configure-flags `("--enable-default-toolkit=cairo-gtk3"
"--with-distribution-id=org.gnu" "--with-distribution-id=org.gnu"
@ -653,14 +678,25 @@ (define-public icecat
"--disable-eme" "--disable-eme"
"--disable-gconf" "--disable-gconf"
;; Stylo requires LLVM/clang. For now, disable it.
"--disable-stylo"
;; Building with debugging symbols takes ~5GiB, so ;; Building with debugging symbols takes ~5GiB, so
;; disable it. ;; disable it.
"--disable-debug" "--disable-debug"
"--disable-debug-symbols" "--disable-debug-symbols"
;; Clang is needed to build Stylo, Mozilla's new
;; CSS engine. We must specify the clang paths
;; manually, because otherwise the Mozilla build
;; system looks in the directories returned by
;; llvm-config --bindir and llvm-config --libdir,
;; which return paths in the llvm package where
;; clang is not found.
,(string-append "--with-clang-path="
(assoc-ref %build-inputs "clang")
"/bin/clang")
,(string-append "--with-libclang-path="
(assoc-ref %build-inputs "clang")
"/lib")
;; Hack to work around missing ;; Hack to work around missing
;; "unofficial" branding in icecat. ;; "unofficial" branding in icecat.
"--enable-official-branding" "--enable-official-branding"
@ -754,6 +790,20 @@ (define-public icecat
(generate-checksums dir null-file))) (generate-checksums dir null-file)))
(find-files "third_party/rust" ".cargo-checksum.json"))) (find-files "third_party/rust" ".cargo-checksum.json")))
#t)) #t))
(add-before 'configure 'augment-CPLUS_INCLUDE_PATH
(lambda* (#:key build inputs #:allow-other-keys)
;; Here, we add additional entries to CPLUS_INCLUDE_PATH, to work
;; around a problem that otherwise occurs when attempting to
;; build Stylo, which requires Rust and Clang. Without these
;; additional entries, errors occur during the build indicating
;; that the <cstddef> and "c++config.h" headers cannot be found.
;; Note that the 'build' keyword argument contains the GNU
;; triplet, e.g. "x86_64-unknown-linux-gnu".
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append gcc "/include/c++" ":"
gcc "/include/c++/" build ":"
(getenv "CPLUS_INCLUDE_PATH"))))))
(replace (replace
'configure 'configure
;; configure does not work followed by both "SHELL=..." and ;; configure does not work followed by both "SHELL=..." and
@ -770,6 +820,7 @@ (define-public icecat
(setenv "SHELL" bash) (setenv "SHELL" bash)
(setenv "CONFIG_SHELL" bash) (setenv "CONFIG_SHELL" bash)
(setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13 (setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13
(setenv "CC" "gcc") ; apparently needed when Stylo is enabled
(mkdir "../build") (mkdir "../build")
(chdir "../build") (chdir "../build")
(format #t "build directory: ~s~%" (getcwd)) (format #t "build directory: ~s~%" (getcwd))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,9 +20,13 @@ (define-module (gnu packages ham-radio)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (guix build-system cmake)) #:use-module (gnu packages python)
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python))
(define-public rtl-sdr (define-public rtl-sdr
(package (package
@ -50,3 +54,30 @@ (define-public rtl-sdr
cheap software defined radio, since the chip allows transferring the raw I/Q cheap software defined radio, since the chip allows transferring the raw I/Q
samples to the host. @code{rtl-sdr} provides drivers for this purpose.") samples to the host. @code{rtl-sdr} provides drivers for this purpose.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public chirp
(package
(name "chirp")
(version "20181205")
(source
(origin
(method url-fetch)
(uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
version "/chirp-daily-" version ".tar.gz"))
(sha256
(base32
"1cp280b95j39xaxs50zn55jigg7pyfpm9n098hmsyxrplqn8z43c"))))
(build-system python-build-system)
(inputs
`(("python2-libxml2" ,python2-libxml2)
("python2-pygtk" ,python2-pygtk)
("python2-pyserial" ,python2-pyserial)))
(arguments
`(#:python ,python-2))
(home-page "https://chirp.danplanet.com")
(synopsis "Cross-radio programming tool")
(description "Chirp is a cross-radio programming tool. It supports a
growing list of radios across several manufacturers and allows transferring of
memory contents between them.")
(license (list license:gpl3+
license:lgpl3+)))) ; chirp/elib_intl.py

View file

@ -20,6 +20,7 @@ (define-module (gnu packages ipfs)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (gnu packages golang)) #:use-module (gnu packages golang))
@ -210,3 +211,29 @@ (define-public gx-go
(description "A subtool for the @command{gx} package manager for packages (description "A subtool for the @command{gx} package manager for packages
written in Go.") written in Go.")
(license license:expat))) (license license:expat)))
(define-public go-ipfs
(package
(name "go-ipfs")
(version "0.4.18")
(source
(origin
(method url-fetch)
(uri (string-append
"https://dist.ipfs.io/go-ipfs/v" version
"/go-ipfs-source.tar.gz"))
(sha256
(base32
"19hfgbyn5sr1bw0cwm3gsjz0w3b3vh3mmkax1906raah30lavj1x"))))
(build-system go-build-system)
(arguments
'(#:unpack-path "github.com/ipfs/go-ipfs"
#:import-path "github.com/ipfs/go-ipfs/cmd/ipfs"))
(home-page "https://ipfs.io")
(synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol")
(description "IPFS is a global, versioned, peer-to-peer filesystem. It
combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is
like a single bittorrent swarm, exchanging git objects. IPFS provides an
interface as simple as the HTTP web, but with permanence built in. You can
also mount the world at @code{/ipfs}.")
(license license:expat)))

View file

@ -1820,6 +1820,8 @@ (define-public openjdk10
(sha256 (sha256
(base32 (base32
"0zywq2203b4hx4jms9vbwvjcj1d3k2v3qpx4s33729fkpmid97r4")) "0zywq2203b4hx4jms9vbwvjcj1d3k2v3qpx4s33729fkpmid97r4"))
(patches (search-patches
"openjdk-10-idlj-reproducibility.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
`(begin `(begin

View file

@ -400,8 +400,8 @@ (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux" "a
;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.19.7") (define %linux-libre-version "4.19.8")
(define %linux-libre-hash "1fj038hz6b7g9gdiw9kggydryf8dvrdsfn81snns9bn5b01yp67n") (define %linux-libre-hash "1rmgf3sbcyb47s3sagac7zrrpznq0vlcbzjzlzir95biy7lbswb3")
(define %linux-libre-4.19-patches (define %linux-libre-4.19-patches
(list %boot-logo-patch (list %boot-logo-patch
@ -423,8 +423,8 @@ (define-public linux-libre
#:patches %linux-libre-4.19-patches #:patches %linux-libre-4.19-patches
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.86") (define %linux-libre-4.14-version "4.14.87")
(define %linux-libre-4.14-hash "1w98drq4ns2awwrbbkd6vy9fh219w8bfjfni5zndfycs5yh5hg65") (define %linux-libre-4.14-hash "1013h3qbsq76vlhrbl3gci25jbwydzm7k0bg08fbq42qrhjq92ak")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -433,8 +433,8 @@ (define-public linux-libre-4.14
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.143" (make-linux-libre "4.9.144"
"0vg6hs7vc09riyki8lyy73p3ghl6k9q4xfv7dals4s9q61i6b6d6" "1jckikf1j294gr3sf43bfy3h34q3yqbqgqbj9l0px427h3n2vgkk"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))

View file

@ -84,8 +84,8 @@ (define (asdf-substitutions lisp)
,lisp)))) ,lisp))))
(define-public gcl (define-public gcl
(let ((commit "5956140b1083e2302a59d7ce2054b0b7c2cbb417") (let ((commit "d3335e2b3deb63f930eb0328e9b05377744c9512")
(revision "1")) ;Guix package revision (revision "2")) ;Guix package revision
(package (package
(name "gcl") (name "gcl")
(version (string-append "2.6.12-" revision "." (version (string-append "2.6.12-" revision "."
@ -98,7 +98,7 @@ (define-public gcl
(commit commit))) (commit commit)))
(file-name (string-append "gcl-" version "-checkout")) (file-name (string-append "gcl-" version "-checkout"))
(sha256 (sha256
(base32 "0mwclf2879mh3d9xqkqhghf58lwy7srsnsq9x0f1cc6j302sy4hb")))) (base32 "05v86lhvsby05nzvcd3c4k0wljvgdgd0i6arzd2fx1yd67dl6fgj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:parallel-build? #f ; The build system seems not to be thread safe. `(#:parallel-build? #f ; The build system seems not to be thread safe.

View file

@ -1068,7 +1068,7 @@ (define-public claws-mail
(define-public msmtp (define-public msmtp
(package (package
(name "msmtp") (name "msmtp")
(version "1.8.0") (version "1.8.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1076,7 +1076,7 @@ (define-public msmtp
"/msmtp-" version ".tar.xz")) "/msmtp-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1k9wwlapkxk9ql3xq05y6vwn6ziqk9b1v8lyhj1866qd02zhqwxx")))) "1nm4vizrnrrnknc4mc8nr7grz9q76m1vraa0hsl5rfm34gnsg8ph"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libsecret" ,libsecret) `(("libsecret" ,libsecret)

View file

@ -1775,7 +1775,7 @@ (define-public petsc-openmpi
("mumps" ,mumps-openmpi) ("mumps" ,mumps-openmpi)
("openmpi" ,openmpi) ("openmpi" ,openmpi)
("scalapack" ,scalapack) ("scalapack" ,scalapack)
("scotch" ,pt-scotch) ("scotch" ,pt-scotch32)
,@(package-inputs petsc))) ,@(package-inputs petsc)))
(arguments (arguments
(substitute-keyword-arguments (package-arguments petsc) (substitute-keyword-arguments (package-arguments petsc)

View file

@ -93,6 +93,7 @@ (define-module (gnu packages messaging)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
@ -588,6 +589,12 @@ (define-public gajim
`(#:test-target "test_nogui" `(#:test-target "test_nogui"
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'add-plugin-dirs
(lambda _
(substitute* "gajim/common/configpaths.py"
(("_paths\\['PLUGINS_USER'\\]")
"_paths['PLUGINS_USER'],os.getenv('GAJIM_PLUGIN_PATH')"))
#t))
(add-after 'install 'wrap-gi-typelib-path (add-after 'install 'wrap-gi-typelib-path
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
@ -625,6 +632,18 @@ (define-public gajim
(,(string-append (assoc-ref inputs "gtk+") (,(string-append (assoc-ref inputs "gtk+")
"/share/glib-2.0/schemas")))) "/share/glib-2.0/schemas"))))
#t))))) #t)))))
(native-search-paths
(list (search-path-specification
(variable "GAJIM_PLUGIN_PATH")
(separator #f) ;single entry
(files '("share/gajim/plugins")))
;; Gajim needs to use the propagated inputs of its plugins.
(search-path-specification
(variable "PYTHONPATH")
(files (list (string-append
"lib/python"
(version-major+minor (package-version python))
"/site-packages"))))))
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("python-docutils" ,python-docutils) ("python-docutils" ,python-docutils)
@ -636,7 +655,6 @@ (define-public gajim
("gtkspell3" ,gtkspell3) ("gtkspell3" ,gtkspell3)
("hicolor-icon-theme" ,hicolor-icon-theme) ("hicolor-icon-theme" ,hicolor-icon-theme)
("libsecret" ,libsecret) ("libsecret" ,libsecret)
("python-axolotl" ,python-axolotl)
("python-cssutils" ,python-cssutils) ("python-cssutils" ,python-cssutils)
("python-dbus" ,python-dbus) ("python-dbus" ,python-dbus)
("python-gnupg" ,python-gnupg) ("python-gnupg" ,python-gnupg)
@ -657,6 +675,41 @@ (define-public gajim
end-to-end encryption support; XML console.") end-to-end encryption support; XML console.")
(license license:gpl3))) (license license:gpl3)))
(define-public gajim-omemo
(package
(name "gajim-omemo")
(version "2.6.23")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
"https://ftp.gajim.org/plugins_releases/omemo_"
version ".zip"))
(sha256
(base32
"134zbscbcnhx4smad0ryvx3ngkqlsspafqf0kk8y2d3vcd9bf3pa"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(share (in-vicinity out "share/gajim/plugins"))
(source (assoc-ref %build-inputs "source")))
(mkdir-p share)
(copy-recursively source share)
#t))))
(propagated-inputs
`(("python-axolotl" ,python-axolotl)))
(home-page
"https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin")
(synopsis "Gajim OMEMO plugin")
(description
"This package provides the Gajim OMEMO plugin. OMEMO is an XMPP
Extension Protocol (XEP) for secure multi-client end-to-end encryption based
on Axolotl and PEP.")
(license license:gpl3+)))
(define-public dino (define-public dino
;; The only release tarball is for version 0.0, but it is very old and fails ;; The only release tarball is for version 0.0, but it is very old and fails
;; to build. ;; to build.

View file

@ -28,7 +28,7 @@ (define-module (gnu packages mtools)
(define-public mtools (define-public mtools
(package (package
(name "mtools") (name "mtools")
(version "4.0.21") (version "4.0.23")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -36,7 +36,7 @@ (define-public mtools
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1kybydx74qgbwpnjvjn49msf8zipchl43d4cq8zzwcyvfkdzw7h2")))) "1qwfxzr964fasxlzhllahk8mzh7c82s808wvly95dsqsflkdp27i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.gnu.org/software/mtools/") (home-page "https://www.gnu.org/software/mtools/")
(synopsis "Access MS-DOS disks without mounting") (synopsis "Access MS-DOS disks without mounting")

View file

@ -3942,9 +3942,9 @@ (define-public sorcer
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "faust" (with-directory-excursion "faust"
(delete-file "main.cpp") (delete-file "main.cpp")
(zero? (system* "faust" "-i" (invoke "faust" "-i"
"-a" "lv2synth.cpp" "-a" "lv2synth.cpp"
"-o" "main.cpp" "main.dsp")))))))) "-o" "main.cpp" "main.dsp")))))))
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("lv2" ,lv2) ("lv2" ,lv2)

View file

@ -0,0 +1,41 @@
Fixes compilation with Mesa >= 18.2.5.
Taken from upstream:
https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47
diff --git a/include/allegro5/allegro_opengl.h b/include/allegro5/allegro_opengl.h
index 0f86a6768..652dd024e 100644
--- a/include/allegro5/allegro_opengl.h
+++ b/include/allegro5/allegro_opengl.h
@@ -103,10 +103,14 @@
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
#define __glext_h_
+#define __gl_glext_h_
#define __glxext_h_
+#define __glx_glxext_h_
#include <GL/gl.h>
#undef __glext_h_
+#undef __gl_glext_h_
#undef __glxext_h_
+#undef __glx_glxext_h_
#endif /* ALLEGRO_MACOSX */
diff --git a/include/allegro5/opengl/GLext/glx_ext_defs.h b/include/allegro5/opengl/GLext/glx_ext_defs.h
index 49c502091..fba8aea5d 100644
--- a/include/allegro5/opengl/GLext/glx_ext_defs.h
+++ b/include/allegro5/opengl/GLext/glx_ext_defs.h
@@ -1,7 +1,9 @@
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
#define __glxext_h_
+#define __glx_glxext_h_
#include <GL/glx.h>
#undef __glxext_h_
+#undef __glx_glxext_h_
#ifndef GLX_VERSION_1_3
#define _ALLEGRO_GLX_VERSION_1_3
--
2.20.0

View file

@ -1,32 +0,0 @@
Make sure the client respects the storage quota set by the server:
https://github.com/borgbackup/borg/issues/4093
Patch copied from upstream source repository:
https://github.com/borgbackup/borg/commit/975cc33206e0e3644626fb7204c34d2157715b61
From 975cc33206e0e3644626fb7204c34d2157715b61 Mon Sep 17 00:00:00 2001
From: Manu <manu@snapdragon.cc>
Date: Wed, 3 Oct 2018 23:47:36 +0800
Subject: [PATCH] Add storage_quota for forced_result if set by serve command.
---
src/borg/archiver.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/borg/archiver.py b/src/borg/archiver.py
index 916725e7..279194c1 100644
--- a/src/borg/archiver.py
+++ b/src/borg/archiver.py
@@ -4276,6 +4276,7 @@ def get_args(self, argv, cmd):
result.restrict_to_paths = forced_result.restrict_to_paths
result.restrict_to_repositories = forced_result.restrict_to_repositories
result.append_only = forced_result.append_only
+ result.storage_quota = forced_result.storage_quota
return result
def parse_args(self, args=None):
--
2.19.1

View file

@ -0,0 +1,36 @@
From a0a0c6a43b88d946f2b5484892cf0209bd7c0e68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
Date: Sat, 8 Dec 2018 21:25:31 +0100
Subject: [PATCH] Make idlj respect SOURCE_DATE_EPOCH.
---
.../sun/tools/corba/se/idl/toJavaPortable/Util.java | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/java.corba/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java b/src/java.corba/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
index 7397619f2..583d6b8e4 100644
--- a/src/java.corba/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
+++ b/src/java.corba/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
@@ -1146,7 +1146,18 @@ public class Util extends com.sun.tools.corba.se.idl.Util
else
formatter.setTimeZone (java.util.TimeZone.getDefault ());
- stream.println ("* " + formatter.format (new Date ()));
+ try {
+ String epoch = System.getenv("SOURCE_DATE_EPOCH");
+ if(epoch != null) {
+ long unixTime = Long.parseLong(epoch);
+ stream.println ("* " + formatter.format (new Date (unixTime*1000L)));
+ } else {
+ stream.println ("* " + formatter.format (new Date ()));
+ }
+ } catch (Exception e) {
+ //in case of error fall back to default
+ stream.println ("* " + formatter.format (new Date ()));
+ }
// <daz>
///////////////
--
2.19.2

View file

@ -0,0 +1,197 @@
Fix CVE-2018-19788:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19788
https://gitlab.freedesktop.org/polkit/polkit/issues/74
Patch copied from upstream source repository:
https://gitlab.freedesktop.org/polkit/polkit/commit/2cb40c4d5feeaa09325522bd7d97910f1b59e379
From 2cb40c4d5feeaa09325522bd7d97910f1b59e379 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 3 Dec 2018 10:28:58 +0100
Subject: [PATCH] Allow negative uids/gids in PolkitUnixUser and Group objects
(uid_t) -1 is still used as placeholder to mean "unset". This is OK, since
there should be no users with such number, see
https://systemd.io/UIDS-GIDS#special-linux-uids.
(uid_t) -1 is used as the default value in class initialization.
When a user or group above INT32_MAX is created, the numeric uid or
gid wraps around to negative when the value is assigned to gint, and
polkit gets confused. Let's accept such gids, except for -1.
A nicer fix would be to change the underlying type to e.g. uint32 to
not have negative values. But this cannot be done without breaking the
API, so likely new functions will have to be added (a
polkit_unix_user_new variant that takes a unsigned, and the same for
_group_new, _set_uid, _get_uid, _set_gid, _get_gid, etc.). This will
require a bigger patch.
Fixes https://gitlab.freedesktop.org/polkit/polkit/issues/74.
---
src/polkit/polkitunixgroup.c | 15 +++++++++++----
src/polkit/polkitunixprocess.c | 12 ++++++++----
src/polkit/polkitunixuser.c | 13 ++++++++++---
3 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/src/polkit/polkitunixgroup.c b/src/polkit/polkitunixgroup.c
index c57a1aa..309f689 100644
--- a/src/polkit/polkitunixgroup.c
+++ b/src/polkit/polkitunixgroup.c
@@ -71,6 +71,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixGroup, polkit_unix_group, G_TYPE_OBJECT,
static void
polkit_unix_group_init (PolkitUnixGroup *unix_group)
{
+ unix_group->gid = -1; /* (git_t) -1 is not a valid GID under Linux */
}
static void
@@ -100,11 +101,14 @@ polkit_unix_group_set_property (GObject *object,
GParamSpec *pspec)
{
PolkitUnixGroup *unix_group = POLKIT_UNIX_GROUP (object);
+ gint val;
switch (prop_id)
{
case PROP_GID:
- unix_group->gid = g_value_get_int (value);
+ val = g_value_get_int (value);
+ g_return_if_fail (val != -1);
+ unix_group->gid = val;
break;
default:
@@ -131,9 +135,9 @@ polkit_unix_group_class_init (PolkitUnixGroupClass *klass)
g_param_spec_int ("gid",
"Group ID",
"The UNIX group ID",
- 0,
+ G_MININT,
G_MAXINT,
- 0,
+ -1,
G_PARAM_CONSTRUCT |
G_PARAM_READWRITE |
G_PARAM_STATIC_NAME |
@@ -166,9 +170,10 @@ polkit_unix_group_get_gid (PolkitUnixGroup *group)
*/
void
polkit_unix_group_set_gid (PolkitUnixGroup *group,
- gint gid)
+ gint gid)
{
g_return_if_fail (POLKIT_IS_UNIX_GROUP (group));
+ g_return_if_fail (gid != -1);
group->gid = gid;
}
@@ -183,6 +188,8 @@ polkit_unix_group_set_gid (PolkitUnixGroup *group,
PolkitIdentity *
polkit_unix_group_new (gint gid)
{
+ g_return_val_if_fail (gid != -1, NULL);
+
return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_GROUP,
"gid", gid,
NULL));
diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
index 972b777..b02b258 100644
--- a/src/polkit/polkitunixprocess.c
+++ b/src/polkit/polkitunixprocess.c
@@ -159,9 +159,14 @@ polkit_unix_process_set_property (GObject *object,
polkit_unix_process_set_pid (unix_process, g_value_get_int (value));
break;
- case PROP_UID:
- polkit_unix_process_set_uid (unix_process, g_value_get_int (value));
+ case PROP_UID: {
+ gint val;
+
+ val = g_value_get_int (value);
+ g_return_if_fail (val != -1);
+ polkit_unix_process_set_uid (unix_process, val);
break;
+ }
case PROP_START_TIME:
polkit_unix_process_set_start_time (unix_process, g_value_get_uint64 (value));
@@ -239,7 +244,7 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
g_param_spec_int ("uid",
"User ID",
"The UNIX user ID",
- -1,
+ G_MININT,
G_MAXINT,
-1,
G_PARAM_CONSTRUCT |
@@ -303,7 +308,6 @@ polkit_unix_process_set_uid (PolkitUnixProcess *process,
gint uid)
{
g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
- g_return_if_fail (uid >= -1);
process->uid = uid;
}
diff --git a/src/polkit/polkitunixuser.c b/src/polkit/polkitunixuser.c
index 8bfd3a1..234a697 100644
--- a/src/polkit/polkitunixuser.c
+++ b/src/polkit/polkitunixuser.c
@@ -72,6 +72,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixUser, polkit_unix_user, G_TYPE_OBJECT,
static void
polkit_unix_user_init (PolkitUnixUser *unix_user)
{
+ unix_user->uid = -1; /* (uid_t) -1 is not a valid UID under Linux */
unix_user->name = NULL;
}
@@ -112,11 +113,14 @@ polkit_unix_user_set_property (GObject *object,
GParamSpec *pspec)
{
PolkitUnixUser *unix_user = POLKIT_UNIX_USER (object);
+ gint val;
switch (prop_id)
{
case PROP_UID:
- unix_user->uid = g_value_get_int (value);
+ val = g_value_get_int (value);
+ g_return_if_fail (val != -1);
+ unix_user->uid = val;
break;
default:
@@ -144,9 +148,9 @@ polkit_unix_user_class_init (PolkitUnixUserClass *klass)
g_param_spec_int ("uid",
"User ID",
"The UNIX user ID",
- 0,
+ G_MININT,
G_MAXINT,
- 0,
+ -1,
G_PARAM_CONSTRUCT |
G_PARAM_READWRITE |
G_PARAM_STATIC_NAME |
@@ -182,6 +186,7 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
gint uid)
{
g_return_if_fail (POLKIT_IS_UNIX_USER (user));
+ g_return_if_fail (uid != -1);
user->uid = uid;
}
@@ -196,6 +201,8 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
PolkitIdentity *
polkit_unix_user_new (gint uid)
{
+ g_return_val_if_fail (uid != -1, NULL);
+
return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_USER,
"uid", uid,
NULL));
--
2.18.1

View file

@ -429,6 +429,7 @@ (define-public zathura-pdf-mupdf
(inputs (inputs
`(("jbig2dec" ,jbig2dec) `(("jbig2dec" ,jbig2dec)
("libjpeg" ,libjpeg) ("libjpeg" ,libjpeg)
("mujs", mujs)
("mupdf" ,mupdf) ("mupdf" ,mupdf)
("openjpeg" ,openjpeg) ("openjpeg" ,openjpeg)
("openssl" ,openssl) ("openssl" ,openssl)
@ -438,7 +439,18 @@ (define-public zathura-pdf-mupdf
`(#:tests? #f ; package does not contain tests `(#:tests? #f ; package does not contain tests
#:configure-flags (list (string-append "-Dplugindir=" #:configure-flags (list (string-append "-Dplugindir="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib/zathura")))) "/lib/zathura")
"-Dlink-external=true")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'add-mujs-to-dependencies
(lambda _
;; Add mujs to the 'build_dependencies'.
(substitute* "meson.build"
(("^ libopenjp2 = dependency.*" x)
(string-append x " mujs = cc.find_library('mujs')\n"))
(("^ libopenjp2")
" libopenjp2, mujs")))))))
(home-page "https://pwmt.org/projects/zathura-pdf-mupdf/") (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/")
(synopsis "PDF support for zathura (mupdf backend)") (synopsis "PDF support for zathura (mupdf backend)")
(description "The zathura-pdf-mupdf plugin adds PDF support to zathura (description "The zathura-pdf-mupdf plugin adds PDF support to zathura

View file

@ -49,6 +49,7 @@ (define-public polkit
(uri (string-append (uri (string-append
"https://www.freedesktop.org/software/polkit/releases/" "https://www.freedesktop.org/software/polkit/releases/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(patches (search-patches "polkit-CVE-2018-19788.patch"))
(sha256 (sha256
(base32 (base32
"0c91y61y4gy6p91cwbzg32dhavw4b7fflg370rimqhdxpzdfr1rg")) "0c91y61y4gy6p91cwbzg32dhavw4b7fflg370rimqhdxpzdfr1rg"))

View file

@ -908,6 +908,29 @@ (define-public python-semantic-version
(define-public python2-semantic-version (define-public python2-semantic-version
(package-with-python2 python-semantic-version)) (package-with-python2 python-semantic-version))
(define-public python-serpent
(package
(name "python-serpent")
(version "1.27")
(source
(origin
(method url-fetch)
(uri (pypi-uri "serpent" version))
(sha256
(base32
"04p9dsrm5pv8vhk3flvih55kgvlzpi38hlaykdiakddmgwqw93bg"))))
(build-system python-build-system)
(home-page "https://github.com/irmen/Serpent")
(synopsis "Serializer for literal Python expressions")
(description
"Serpent provides ast.literal_eval() compatible object tree
serialization. It serializes an object tree into bytes (utf-8 encoded string)
that can be decoded and then passed as-is to ast.literal_eval() to rebuild it
as the original object tree. As such it is safe to send serpent data to other
machines over the network for instance (because only safe literals are
encoded).")
(license license:expat)))
(define-public python-setuptools (define-public python-setuptools
(package (package
(name "python-setuptools") (name "python-setuptools")
@ -1048,6 +1071,32 @@ (define-public python-capturer
(define-public python2-capturer (define-public python2-capturer
(package-with-python2 python-capturer)) (package-with-python2 python-capturer))
(define-public python-case
(package
(name "python-case")
(version "1.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "case" version))
(sha256
(base32
"1cagg06vfph864s6l5jb0zqliwxh647bki8j6lf4a4qrv40jnhs8"))))
(build-system python-build-system)
(propagated-inputs
`(("python-mock" ,python-mock)
("python-nose" ,python-nose)
("python-six" ,python-six)
("python-unittest2" ,python-unittest2)))
(native-inputs
`(("python-coverage" ,python-coverage)))
(home-page "https://github.com/celery/case")
(synopsis "Unittest utilities and convenience methods")
(description
"The @code{case} package provides utilities on top of unittest, including
some helpful Python 2 compatibility convenience methods.")
(license license:bsd-3)))
(define-public python-verboselogs (define-public python-verboselogs
(package (package
(name "python-verboselogs") (name "python-verboselogs")
@ -2268,6 +2317,30 @@ (define-public python-pyyaml
(define-public python2-pyyaml (define-public python2-pyyaml
(package-with-python2 python-pyyaml)) (package-with-python2 python-pyyaml))
(define-public python-vine
(package
(name "python-vine")
(version "1.1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "vine" version))
(sha256
(base32
"0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)
("python-case" ,python-case)))
(home-page "https://github.com/celery/vine")
(synopsis "Promises for Python")
(description
"@code{vine} provides a special implementation of promises in that it can
be used both for \"promise of a value\" and lazy evaluation. The biggest
upside for this is that everything in a promise can also be a promise,
e.g. filters, callbacks and errbacks can all be promises.")
(license license:bsd-3)))
(define-public python-virtualenv (define-public python-virtualenv
(package (package
(name "python-virtualenv") (name "python-virtualenv")
@ -8196,18 +8269,21 @@ (define-public python2-anyjson
(define-public python-amqp (define-public python-amqp
(package (package
(name "python-amqp") (name "python-amqp")
(version "1.4.9") (version "2.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "amqp" version)) (uri (pypi-uri "amqp" version))
(sha256 (sha256
(base32 (base32
"06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid")))) "1sv600dgqwpimr6i1g59y9hpn50mc236gdqkr7zin13kvlpx0g87"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-nose" ,python-nose) `(("python-case" ,python-case)
("python-pytest-sugar" ,python-pytest-sugar)
("python-mock" ,python-mock))) ("python-mock" ,python-mock)))
(propagated-inputs
`(("python-vine" ,python-vine)))
(home-page "https://github.com/celery/py-amqp") (home-page "https://github.com/celery/py-amqp")
(synopsis (synopsis
"Low-level AMQP client for Python (fork of amqplib)") "Low-level AMQP client for Python (fork of amqplib)")
@ -8261,23 +8337,26 @@ (define-public python2-txamqp
(define-public python-kombu (define-public python-kombu
(package (package
(name "python-kombu") (name "python-kombu")
(version "3.0.37") (version "4.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "kombu" version)) (uri (pypi-uri "kombu" version))
(sha256 (sha256
(base32 (base32
"0l16chb314gpq2v7fh94a22c30lcv6w3ylmhsa60bldlcq6a0r70")))) "15k8f7mzqr049sg9vi48m19vjykviafk3f0p5xzgw9by0x0kyxjj"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
("python-nose" ,python-nose))) ("python-case" ,python-case)
("python-pyro4" ,python-pyro4)
("python-pytest-sugar" ,python-pytest-sugar)
("python-pytz" ,python-pytz)))
(propagated-inputs (propagated-inputs
`(("python-anyjson" ,python-anyjson) `(("python-anyjson" ,python-anyjson)
("python-amqp" ,python-amqp) ("python-amqp" ,python-amqp)
("python-redis" ,python-redis))) ("python-redis" ,python-redis)))
(home-page "http://kombu.readthedocs.org") (home-page "https://kombu.readthedocs.io")
(synopsis "Message passing library for Python") (synopsis "Message passing library for Python")
(description "The aim of Kombu is to make messaging in Python as easy as (description "The aim of Kombu is to make messaging in Python as easy as
possible by providing an idiomatic high-level interface for the AMQ protocol, possible by providing an idiomatic high-level interface for the AMQ protocol,
@ -8303,17 +8382,18 @@ (define-public python2-kombu
(define-public python-billiard (define-public python-billiard
(package (package
(name "python-billiard") (name "python-billiard")
(version "3.3.0.23") (version "3.5.0.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "billiard" version)) (uri (pypi-uri "billiard" version))
(sha256 (sha256
(base32 (base32
"02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9")))) "03msmapj3s5zgqk87d646mafz7a01h5bm2wijalgpi0s80ks5na2"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-nose" ,python-nose))) `(("python-case" ,python-case)
("python-pytest" ,python-pytest)))
(home-page "https://github.com/celery/billiard") (home-page "https://github.com/celery/billiard")
(synopsis (synopsis
"Python multiprocessing fork with improvements and bugfixes") "Python multiprocessing fork with improvements and bugfixes")
@ -8337,31 +8417,35 @@ (define-public python2-billiard
(define-public python-celery (define-public python-celery
(package (package
(name "python-celery") (name "python-celery")
(version "3.1.24") (version "4.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "celery" version)) (uri (pypi-uri "celery" version))
(sha256 (sha256
(base32 (base32
"0yh2prhdnx2dgkb67a5drj12hh2zvzx5f611p7mqqg01ydghif4r")))) "0y66rz7z8dfcgs3s0qxmdddlaq57bzbgxgfz896nbp14grkv9nkp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases '(;; TODO The tests fail with Python 3.7
;; https://github.com/celery/celery/issues/4849
#:tests? #f
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; These tests break with Python 3.5: (add-after 'unpack 'patch-requirements
;; https://github.com/celery/celery/issues/2897#issuecomment-253066295
(replace 'check
(lambda _ (lambda _
(zero? (substitute* "requirements/test.txt"
(system* "nosetests" "--exclude=^test_safe_to_remove.*"))))))) (("pytest>=3\\.0,<3\\.3")
"pytest>=3.0"))
#t)))))
(native-inputs (native-inputs
`(("python-nose" ,python-nose))) `(("python-case" ,python-case)
("python-pytest" ,python-pytest)))
(propagated-inputs (propagated-inputs
`(("python-pytz" ,python-pytz) `(("python-pytz" ,python-pytz)
("python-billiard" ,python-billiard) ("python-billiard" ,python-billiard)
("python-kombu" ,python-kombu))) ("python-kombu" ,python-kombu)))
(home-page "http://celeryproject.org") (home-page "https://celeryproject.org")
(synopsis "Distributed Task Queue") (synopsis "Distributed Task Queue")
(description "Celery is an asynchronous task queue/job queue based on (description "Celery is an asynchronous task queue/job queue based on
distributed message passing. It is focused on real-time operation, but distributed message passing. It is focused on real-time operation, but
@ -9226,6 +9310,13 @@ (define-public python-gevent
(setenv "CPATH" (setenv "CPATH"
(string-append greenlet "/" python))))) (string-append greenlet "/" python)))))
#t)) #t))
(add-before 'check 'skip-timer-test
(lambda _
;; XXX: Skip 'TestTimerResolution', which appears to be
;; unreliable.
(substitute* "src/greentest/test__core_timer.py"
(("not greentest.RUNNING_ON_CI") "False"))
#t))
(replace 'check (replace 'check
(lambda _ (lambda _
;; Make sure the build directory is on PYTHONPATH. ;; Make sure the build directory is on PYTHONPATH.
@ -9266,17 +9357,6 @@ (define-public python2-gevent
(strip-python2-variant python-gevent)))) (strip-python2-variant python-gevent))))
(package (package
(inherit base) (inherit base)
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-before 'check 'skip-timer-test
(lambda _
;; XXX: Skip 'TestTimerResolution', which appears to be
;; unreliable.
(substitute* "src/greentest/test__core_timer.py"
(("not greentest.RUNNING_ON_CI") "False"))
#t))))))
(native-inputs `(,@(package-native-inputs python-gevent) (native-inputs `(,@(package-native-inputs python-gevent)
("python-mock" ,python2-mock)))))) ("python-mock" ,python2-mock))))))
@ -9841,20 +9921,25 @@ (define-public python2-prompt-toolkit
(define-public python-jedi (define-public python-jedi
(package (package
(name "python-jedi") (name "python-jedi")
(version "0.12.1") (version "0.13.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "jedi" version)) (uri (pypi-uri "jedi" version))
(sha256 (sha256
(base32 (base32
"1h8ypnjisn57kiv1zqrkj1im6sbfnhxllqaa8znh39qkd47ys2dl")))) "0j11q42g5vjkyhhjpyy8nb0gdxs78m3rpjai7p1hvgpyl9rkyjdp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `( ;; Many tests are failing with Python 3.7.x as of version 0.13.1 (see:
;; https://github.com/davidhalter/jedi/issues/1263)
#:tests? #f
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (lambda _ (replace 'check
(invoke "py.test" "-vv")))))) (lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "py.test" "-vv")))))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest) `(("python-pytest" ,python-pytest)
("python-docopt" ,python-docopt))) ("python-docopt" ,python-docopt)))
@ -13258,6 +13343,28 @@ (define-public python-semver
(define-public python2-semver (define-public python2-semver
(package-with-python2 python-semver)) (package-with-python2 python-semver))
(define-public python-pyro4
(package
(name "python-pyro4")
(version "4.74")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pyro4" version))
(sha256
(base32
"0pzp7c6q3vvkxq0wy9lr6wd5wky40sajz69g697i5rb2q497pvc9"))))
(build-system python-build-system)
(propagated-inputs
`(("python-serpent" ,python-serpent)))
(home-page "https://pyro4.readthedocs.io")
(synopsis "Distributed object middleware for Python")
(description
"Pyro enables you to build applications in which objects can talk to each
other over the network. You can just use normal Python method calls to call
objects on other machines, also known as remote procedure calls (RPC).")
(license license:expat)))
(define-public python2-pyro (define-public python2-pyro
(package (package
(name "python2-pyro") (name "python2-pyro")

View file

@ -191,6 +191,8 @@ (define rust-1.19
(source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm" (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
#:patches '("rust-1.19-mrustc.patch"))) #:patches '("rust-1.19-mrustc.patch")))
(outputs '("out" "cargo")) (outputs '("out" "cargo"))
(properties '((timeout . 72000) ;20 hours
(max-silent-time . 18000))) ;5 hours (for armel)
(arguments (arguments
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums' `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
#:modules ((guix build utils) (ice-9 match) (guix build gnu-build-system)) #:modules ((guix build utils) (ice-9 match) (guix build gnu-build-system))
@ -427,6 +429,7 @@ (define-public rust-1.20
(package (package
(inherit base-rust) (inherit base-rust)
(outputs '("out" "doc" "cargo")) (outputs '("out" "doc" "cargo"))
(properties '())
(arguments (arguments
(substitute-keyword-arguments (package-arguments rust-1.19) (substitute-keyword-arguments (package-arguments rust-1.19)
((#:phases phases) ((#:phases phases)

View file

@ -51,6 +51,7 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
(define-public ccid (define-public ccid
@ -307,3 +308,36 @@ (define-public yubico-piv-tool
;; license for that one file. Please see it for details. The vast ;; license for that one file. Please see it for details. The vast
;; majority of files are licensed under bsd-2. ;; majority of files are licensed under bsd-2.
(license license:bsd-2))) (license license:bsd-2)))
(define-public yubikey-personalization
(package
(name "yubikey-personalization")
(version "1.19.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://developers.yubico.com/" name
"/Releases/ykpers-" version ".tar.gz"))
(sha256
(base32
"104lc0nnqdr365fa7c4vrq67rxp1dp8idndsh9jlhnj9dnhszj1b"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--with-udevrulesdir="
(assoc-ref %outputs "out")
"/lib/udev/rules.d"))))
(inputs
`(("json-c" ,json-c)
("libusb" ,libusb)
;; The library "libyubikey" is also known as "yubico-c".
("libyubikey" ,libyubikey)))
(native-inputs
`(("pkg-config" ,pkg-config)
("eudev" ,eudev)))
(home-page "https://developers.yubico.com/yubikey-personalization/")
(synopsis "Library and tools to personalize YubiKeys")
(description
"The YubiKey Personalization package contains a C library and command
line tools for personalizing YubiKeys. You can use these to set an AES key,
retrieve a YubiKey's serial number, and so forth.")
(license license:bsd-2)))

View file

@ -529,13 +529,13 @@ (define-public python-acme
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.28.0") (version "0.29.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"11dvcbdifn5d02p4k5li8r6r39bl3p5ap9p3zjwvasm24hf2yz5z")))) "0z5l966b1asbcdzl77bmywf22c1q0xill00jj7qyml9wx2nh7qm2"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -586,7 +586,7 @@ (define-public certbot
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"02h959qkq7z0s13ivgf7jyl3gnc55wcck6n546k0kh155bpf5qri")))) "14i6yrcb9s7ygy99gccfc8jscymi24xb72s5lgg9b2y40z909ikg"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(substitute-keyword-arguments (package-arguments python-acme)

View file

@ -4,7 +4,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
@ -162,7 +162,7 @@ (define-public privoxy
(define-public onionshare (define-public onionshare
(package (package
(name "onionshare") (name "onionshare")
(version "0.9.2") (version "1.3.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -172,7 +172,7 @@ (define-public onionshare
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1nzr6m3jp04p1i8b652s27zv0xhybl3zwcn5r6l9h0f7d7x4iglv")))) "02zic4cxwrcfdg22dq9c2rzni3l18wynjxd38scc59s37vlw7w2r"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -181,55 +181,24 @@ (define-public onionshare
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(onionshare (string-append out "/share/onionshare"))) (onionshare (string-append out "/share/onionshare")))
(substitute* "onionshare/strings.py" (substitute* '("setup.py" "onionshare/common.py")
;; correct the locale directory
(("helpers.get_resource_path\\('locale'\\)")
(string-append "'" onionshare "/locale'")))
(substitute* "onionshare/helpers.py"
;; correct the location of version.txt
(("get_resource_path\\('version.txt'\\)")
(string-append "'" onionshare "/version.txt'"))
(("get_resource_path\\('wordlist.txt'\\)")
(string-append "'" onionshare "/wordlist.txt'")))
(substitute* "onionshare/web.py"
;; fix the location of the html files
(("helpers.get_resource_path\\('html/denied.html'\\)")
(string-append "'" onionshare "/html/denied.html'"))
(("helpers.get_resource_path\\('html/404.html'\\)")
(string-append "'" onionshare "/html/404.html'"))
(("helpers.get_resource_path\\('html/index.html'\\)")
(string-append "'" onionshare "/html/index.html'")))
(substitute* "onionshare_gui/file_selection.py"
;; fancy box image in the GUI
(("helpers.get_resource_path\\('images/drop_files.png'\\)")
(string-append "'" onionshare "/images/drop_files.png'")))
(substitute* "onionshare_gui/server_status.py"
(("helpers.get_resource_path\\('images/server_stopped.png'\\)")
(string-append "'" onionshare "/images/server_stopped.png'"))
(("helpers.get_resource_path\\('images/server_working.png'\\)")
(string-append "'" onionshare "/images/server_working.png'"))
(("helpers.get_resource_path\\('images/server_started.png'\\)")
(string-append "'" onionshare "/images/server_started.png'")))
(substitute* "onionshare_gui/onionshare_gui.py"
;; for the icon on the GUI
(("helpers.get_resource_path\\('images/logo.png'\\)")
(string-append "'" onionshare "/images/logo.png'")))
(substitute* '("setup.py" "onionshare/helpers.py")
(("sys.prefix,") (string-append "'" out "',"))) (("sys.prefix,") (string-append "'" out "',")))
(substitute* "setup.py" (substitute* "setup.py"
;; for the nautilus plugin ;; for the nautilus plugin
(("/usr/share/nautilus") "share/nautilus")) (("/usr/share/nautilus") "share/nautilus"))
#t))) (substitute* "install/onionshare.desktop"
(("/usr") out))
#t)))
(delete 'check) (delete 'check)
(add-before 'strip 'tests (add-before 'strip 'tests
;; After all the patching we run the tests after installing. ;; After all the patching we run the tests after installing.
;; This is also a known issue: ;; This is also a known issue:
;; https://github.com/micahflee/onionshare/issues/284 ;; https://github.com/micahflee/onionshare/issues/284
(lambda _ (lambda _
(invoke "nosetests" "test") (invoke "pytest" "test")
#t))))) #t)))))
(native-inputs (native-inputs
`(("python-nose" ,python-nose))) `(("python-pytest" ,python-pytest)))
(inputs (inputs
`(("python-flask" ,python-flask) `(("python-flask" ,python-flask)
("python-nautilus" ,python-nautilus) ("python-nautilus" ,python-nautilus)

View file

@ -146,14 +146,14 @@ (define-public git
(name "git") (name "git")
;; XXX When updating Git, check if the special 'git-source' input to cgit ;; XXX When updating Git, check if the special 'git-source' input to cgit
;; needs to be updated as well. ;; needs to be updated as well.
(version "2.19.2") (version "2.20.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-" (uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1scbggzghkzzfqg4ky3qh7h9w87c3zya4ls5disz7dbx56is7sgw")))) "07yq186wb3wqvvmzhhsca57m979p7jprkk4h2a516jz1fd87755w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("native-perl" ,perl) `(("native-perl" ,perl)
@ -166,7 +166,7 @@ (define-public git
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1sqhllkabylm46paswg0j54fiar44fmcdmkjkysmjn2gj6hqpz95")))) "141n20migxaazy0vfkivjk6bzazi3ydyq7qkf6wmkg186l4amgbr"))))
;; For subtree documentation. ;; For subtree documentation.
("asciidoc" ,asciidoc) ("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)

View file

@ -1496,7 +1496,7 @@ (define-public you-get
(define-public youtube-viewer (define-public youtube-viewer
(package (package
(name "youtube-viewer") (name "youtube-viewer")
(version "3.4.1") (version "3.5.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1505,7 +1505,7 @@ (define-public youtube-viewer
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0axgb95lx81psgrb2a5rfdd8gl4mhsrzf41jas6l58d1xkaj54ri")))) "1s7hv2a46cx2nbdykrijqfh8hdkf3zqn6q8sg3ajnnc5agaspyrg"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-module-build" ,perl-module-build))) `(("perl-module-build" ,perl-module-build)))
@ -3264,3 +3264,23 @@ (define-public openshot
helps you create the film you have always dreamed of. Easily add sub-titles, helps you create the film you have always dreamed of. Easily add sub-titles,
transitions, and effects and then export your film to many common formats.") transitions, and effects and then export your film to many common formats.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public dav1d
(package
(name "dav1d")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://downloads.videolan.org/pub/videolan/"
"dav1d/" version "/dav1d-" version ".tar.xz"))
(sha256
(base32
"0dw0liday8cbyrirhm6bgzhxg4cdy66nspfkdlq338gdsfqcvrsc"))))
(build-system meson-build-system)
(native-inputs `(("nasm" ,nasm)))
(home-page "https://code.videolan.org/videolan/dav1d")
(synopsis "AV1 decoder")
(description "dav1d is a new AV1 cross-platform decoder, and focused on
speed and correctness.")
(license license:bsd-2)))

View file

@ -1604,7 +1604,15 @@ (define (guix-shepherd-service config)
'()) '())
#$@(if tmpdir #$@(if tmpdir
(list (string-append "TMPDIR=" tmpdir)) (list (string-append "TMPDIR=" tmpdir))
'())) '())
;; Make sure we run in a UTF-8 locale so that 'guix
;; offload' correctly restores nars that contain UTF-8
;; file names such as 'nss-certs'. See
;; <https://bugs.gnu.org/32942>.
(string-append "GUIX_LOCPATH="
#$glibc-utf8-locales "/lib/locale")
"LC_ALL=en_US.utf8")
#:log-file #$log-file)) #:log-file #$log-file))
(stop #~(make-kill-destructor)))))) (stop #~(make-kill-destructor))))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,6 +28,7 @@ (define-module (guix channels)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:autoload (guix self) (whole-package) #:autoload (guix self) (whole-package)
@ -73,7 +75,6 @@ (define-record-type* <channel> channel make-channel
(commit channel-commit (default #f)) (commit channel-commit (default #f))
(location channel-location (location channel-location
(default (current-source-location)) (innate))) (default (current-source-location)) (innate)))
;; TODO: Add a way to express dependencies among channels.
(define %default-channels (define %default-channels
;; Default list of channels. ;; Default list of channels.
@ -93,6 +94,12 @@ (define-record-type <channel-instance>
(commit channel-instance-commit) (commit channel-instance-commit)
(checkout channel-instance-checkout)) (checkout channel-instance-checkout))
(define-record-type <channel-metadata>
(channel-metadata version dependencies)
channel-metadata?
(version channel-metadata-version)
(dependencies channel-metadata-dependencies))
(define (channel-reference channel) (define (channel-reference channel)
"Return the \"reference\" for CHANNEL, an sexp suitable for "Return the \"reference\" for CHANNEL, an sexp suitable for
'latest-repository-commit'." 'latest-repository-commit'."
@ -100,20 +107,90 @@ (define (channel-reference channel)
(#f `(branch . ,(channel-branch channel))) (#f `(branch . ,(channel-branch channel)))
(commit `(commit . ,(channel-commit channel))))) (commit `(commit . ,(channel-commit channel)))))
(define (latest-channel-instances store channels) (define (read-channel-metadata instance)
"Return a channel-metadata record read from the channel INSTANCE's
description file, or return #F if the channel instance does not include the
file."
(let* ((source (channel-instance-checkout instance))
(meta-file (string-append source "/.guix-channel")))
(and (file-exists? meta-file)
(and-let* ((raw (call-with-input-file meta-file read))
(version (and=> (assoc-ref raw 'version) first))
(dependencies (or (assoc-ref raw 'dependencies) '())))
(channel-metadata
version
(map (lambda (item)
(let ((get (lambda* (key #:optional default)
(or (and=> (assoc-ref item key) first) default))))
(and-let* ((name (get 'name))
(url (get 'url))
(branch (get 'branch "master")))
(channel
(name name)
(branch branch)
(url url)
(commit (get 'commit))))))
dependencies))))))
(define (channel-instance-dependencies instance)
"Return the list of channels that are declared as dependencies for the given
channel INSTANCE."
(match (read-channel-metadata instance)
(#f '())
(($ <channel-metadata> version dependencies)
dependencies)))
(define* (latest-channel-instances store channels #:optional (previous-channels '()))
"Return a list of channel instances corresponding to the latest checkouts of "Return a list of channel instances corresponding to the latest checkouts of
CHANNELS." CHANNELS and the channels on which they depend. PREVIOUS-CHANNELS is a list
(map (lambda (channel) of previously processed channels."
(format (current-error-port) ;; Only process channels that are unique, or that are more specific than a
(G_ "Updating channel '~a' from Git repository at '~a'...~%") ;; previous channel specification.
(channel-name channel) (define (ignore? channel others)
(channel-url channel)) (member channel others
(let-values (((checkout commit) (lambda (a b)
(latest-repository-commit store (channel-url channel) (and (eq? (channel-name a) (channel-name b))
#:ref (channel-reference (or (channel-commit b)
channel)))) (not (or (channel-commit a)
(channel-instance channel commit checkout))) (channel-commit b))))))))
channels)) ;; Accumulate a list of instances. A list of processed channels is also
;; accumulated to decide on duplicate channel specifications.
(match (fold (lambda (channel acc)
(match acc
((#:channels previous-channels #:instances instances)
(if (ignore? channel previous-channels)
acc
(begin
(format (current-error-port)
(G_ "Updating channel '~a' from Git repository at '~a'...~%")
(channel-name channel)
(channel-url channel))
(let-values (((checkout commit)
(latest-repository-commit store (channel-url channel)
#:ref (channel-reference
channel))))
(let ((instance (channel-instance channel commit checkout)))
(let-values (((new-instances new-channels)
(latest-channel-instances
store
(channel-instance-dependencies instance)
previous-channels)))
`(#:channels
,(append (cons channel new-channels)
previous-channels)
#:instances
,(append (cons instance new-instances)
instances))))))))))
`(#:channels ,previous-channels #:instances ())
channels)
((#:channels channels #:instances instances)
(let ((instance-name (compose channel-name channel-instance-channel)))
;; Remove all earlier channel specifications if they are followed by a
;; more specific one.
(values (delete-duplicates instances
(lambda (a b)
(eq? (instance-name a) (instance-name b))))
channels)))))
(define* (checkout->channel-instance checkout (define* (checkout->channel-instance checkout
#:key commit #:key commit
@ -235,8 +312,21 @@ (define dependencies
(lambda (instance) (lambda (instance)
(if (eq? instance core-instance) (if (eq? instance core-instance)
(return core) (return core)
(build-channel-instance instance (match (channel-instance-dependencies instance)
(cons core dependencies)))) (()
(build-channel-instance instance
(cons core dependencies)))
(channels
(mlet %store-monad ((dependencies-derivation
(latest-channel-derivation
;; %default-channels is used here to
;; ensure that the core channel is
;; available for channels declared as
;; dependencies.
(append channels %default-channels))))
(build-channel-instance instance
(cons dependencies-derivation
(cons core dependencies))))))))
instances))) instances)))
(define (whole-package-for-legacy name modules) (define (whole-package-for-legacy name modules)

View file

@ -179,24 +179,24 @@ (define (list-updaters-and-exit)
(let* ((packages (fold-packages cons '())) (let* ((packages (fold-packages cons '()))
(total (length packages))) (total (length packages)))
(define covered (define uncovered
(fold (lambda (updater covered) (fold (lambda (updater uncovered)
(let ((matches (count (upstream-updater-predicate updater) (let ((matches (filter (upstream-updater-predicate updater)
packages))) packages)))
;; TRANSLATORS: The parenthetical expression here is rendered ;; TRANSLATORS: The parenthetical expression here is rendered
;; like "(42% coverage)" and denotes the fraction of packages ;; like "(42% coverage)" and denotes the fraction of packages
;; covered by the given updater. ;; covered by the given updater.
(format #t (G_ " - ~a: ~a (~2,1f% coverage)~%") (format #t (G_ " - ~a: ~a (~2,1f% coverage)~%")
(upstream-updater-name updater) (upstream-updater-name updater)
(G_ (upstream-updater-description updater)) (G_ (upstream-updater-description updater))
(* 100. (/ matches total))) (* 100. (/ (length matches) total)))
(+ covered matches))) (lset-difference eq? uncovered matches)))
0 packages
(force %updaters))) (force %updaters)))
(newline) (newline)
(format #t (G_ "~2,1f% of the packages are covered by these updaters.~%") (format #t (G_ "~2,1f% of the packages are covered by these updaters.~%")
(* 100. (/ covered total)))) (* 100. (/ (- total (length uncovered)) total))))
(exit 0)) (exit 0))
(define (warn-no-updater package) (define (warn-no-updater package)

139
tests/channels.scm Normal file
View file

@ -0,0 +1,139 @@
;;; 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/>.
(define-module (test-channels)
#:use-module (guix channels)
#:use-module ((guix build syscalls) #:select (mkdtemp!))
#:use-module (guix tests)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64)
#:use-module (ice-9 match))
(test-begin "channels")
(define* (make-instance #:key
(name 'fake)
(commit "cafebabe")
(spec #f))
(define instance-dir (mkdtemp! "/tmp/checkout.XXXXXX"))
(and spec
(with-output-to-file (string-append instance-dir "/.guix-channel")
(lambda _ (format #t "~a" spec))))
((@@ (guix channels) channel-instance)
name commit instance-dir))
(define instance--boring (make-instance))
(define instance--no-deps
(make-instance #:spec
'(channel
(version 0)
(dependencies
(channel
(name test-channel)
(url "https://example.com/test-channel"))))))
(define instance--simple
(make-instance #:spec
'(channel
(version 0)
(dependencies
(channel
(name test-channel)
(url "https://example.com/test-channel"))))))
(define instance--with-dupes
(make-instance #:spec
'(channel
(version 0)
(dependencies
(channel
(name test-channel)
(url "https://example.com/test-channel"))
(channel
(name test-channel)
(url "https://example.com/test-channel")
(commit "abc1234"))
(channel
(name test-channel)
(url "https://example.com/test-channel-elsewhere"))))))
(define read-channel-metadata
(@@ (guix channels) read-channel-metadata))
(test-equal "read-channel-metadata returns #f if .guix-channel does not exist"
#f
(read-channel-metadata instance--boring))
(test-assert "read-channel-metadata returns <channel-metadata>"
(every (@@ (guix channels) channel-metadata?)
(map read-channel-metadata
(list instance--no-deps
instance--simple
instance--with-dupes))))
(test-assert "read-channel-metadata dependencies are channels"
(let ((deps ((@@ (guix channels) channel-metadata-dependencies)
(read-channel-metadata instance--simple))))
(match deps
(((? channel? dep)) #t)
(_ #f))))
(test-assert "latest-channel-instances includes channel dependencies"
(let* ((channel (channel
(name 'test)
(url "test")))
(test-dir (channel-instance-checkout instance--simple)))
(mock ((guix git) latest-repository-commit
(lambda* (store url #:key ref)
(match url
("test" (values test-dir 'whatever))
(_ (values "/not-important" 'not-important)))))
(let ((instances (latest-channel-instances #f (list channel))))
(and (eq? 2 (length instances))
(lset= eq?
'(test test-channel)
(map (compose channel-name channel-instance-channel)
instances)))))))
(test-assert "latest-channel-instances excludes duplicate channel dependencies"
(let* ((channel (channel
(name 'test)
(url "test")))
(test-dir (channel-instance-checkout instance--with-dupes)))
(mock ((guix git) latest-repository-commit
(lambda* (store url #:key ref)
(match url
("test" (values test-dir 'whatever))
(_ (values "/not-important" 'not-important)))))
(let ((instances (latest-channel-instances #f (list channel))))
(and (eq? 2 (length instances))
(lset= eq?
'(test test-channel)
(map (compose channel-name channel-instance-channel)
instances))
;; only the most specific channel dependency should remain,
;; i.e. the one with a specified commit.
(find (lambda (instance)
(and (eq? (channel-name
(channel-instance-channel instance))
'test-channel)
(eq? (channel-commit
(channel-instance-channel instance))
'abc1234)))
instances))))))
(test-end "channels")