Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2019-07-04 16:16:41 +02:00
commit 42dcfca4cc
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
25 changed files with 489 additions and 320 deletions

View File

@ -321,7 +321,7 @@ engineers, musicians, soundtrack editors and composers.")
(define-public audacity
(package
(name "audacity")
(version "2.2.2")
(version "2.3.2")
(source
(origin
(method git-fetch)
@ -331,7 +331,7 @@ engineers, musicians, soundtrack editors and composers.")
(file-name (git-file-name name version))
(sha256
(base32
"10maxmjxbmjybj7n4m7a9bbm7g8xxw8f8vbsf7c9ih5j2gr15ihs"))
"08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1"))
(patches (search-patches "audacity-build-with-system-portaudio.patch"))
(modules '((guix build utils)))
(snippet
@ -3383,14 +3383,14 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
(version "19.3")
(version "19.5")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
"16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
"0sk6iyykwi2mm3f1g4r0iqbsrwk3zmyagp6jjqkh8njbq42cjr1y"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests

View File

@ -12550,7 +12550,7 @@ once. This package provides tools to perform Drop-seq analyses.")
(define-public pigx-rnaseq
(package
(name "pigx-rnaseq")
(version "0.0.7")
(version "0.0.8")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
@ -12558,7 +12558,7 @@ once. This package provides tools to perform Drop-seq analyses.")
"/pigx_rnaseq-" version ".tar.gz"))
(sha256
(base32
"013inbh22bjvwg2w0kx5i42k66w1zl4310ldip2ax6msgprs2ydj"))))
"19nhflzs6k5c7yhi7gkwggq237cjdd1s4b4qkj5x5fkwg0rhn33i"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; not supported

View File

@ -3,7 +3,7 @@
;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
@ -330,14 +330,14 @@ no man page, refer to the home page for usage details.")
(define-public tomb
(package
(name "tomb")
(version "2.5")
(version "2.6")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dyne.org/tomb/"
"Tomb-" version ".tar.gz"))
(sha256
(base32
"12c6qldngaw520gvb02inzkhnxbl4k0dwmddrgnaf7xashy6j0wc"))))
"1sr3jcn96mciyn8xd0amd1jzamxxzpybakf8an7laf26gjim1dh2"))))
(build-system gnu-build-system)
(native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase
(inputs

View File

@ -433,6 +433,38 @@ these arguments. The prototypical use is for the command to call an external
process, passing on the arguments as command line arguments.")
(license license:gpl3+)))
(define-public emacs-minions
(package
(name "emacs-minions")
(version "0.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tarsius/minions.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
(home-page "https://github.com/tarsius/minions")
(synopsis "Minor-mode menu for the mode line")
(description
"This package implements a menu that lists enabled minor-modes, as well
as commonly but not currently enabled minor-modes. It can be used to toggle
local and global minor-modes, to access mode-specific menus, and to get help
about modes.
This menu is intended as a replacement for the incomplete yet wide list of
enabled minor-modes that is displayed in the mode line by default. To use the
menu like this, enable Minions mode.
Alternatively the menu can be bound globally, for example:
@code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
(license license:gpl3+)))
(define-public emacs-treepy
(package
(name "emacs-treepy")

View File

@ -11,6 +11,7 @@
;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -39,6 +40,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
@ -68,6 +70,7 @@
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages gnuzilla))
@ -428,49 +431,59 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(define-public monero
;; This package bundles easylogging++ and lmdb.
;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
;; The bundled easylogging++ is modified, and the changes will not be
;; upstreamed.
;; The devs deem the lmdb driver too critical a consenus component, to use
;; the system's dynamically linked library.
(package
(name "monero")
(version "0.12.3.0")
(version "0.14.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/monero-project/monero")
(commit (string-append "v" version))))
(url "https://github.com/monero-project/monero.git")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(patches (search-patches "monero-use-system-miniupnpc.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled dependencies.
(for-each
delete-file-recursively
'("external/miniupnp" "external/rapidjson"
"external/unbound"))
#t))
(sha256
(base32
"14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
"1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("googletest" ,googletest)
("git" ,git)
("graphviz" ,graphviz)
("pkg-config" ,pkg-config)))
("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(inputs
`(("bind" ,isc-bind)
("boost" ,boost)
("zeromq" ,zeromq)
`(("boost" ,boost)
("cppzmq" ,cppzmq)
("expat" ,expat)
("libsodium" ,libsodium)
("hidapi" ,hidapi)
("libunwind" ,libunwind)
("lmdb" ,lmdb)
("miniupnpc" ,monero-miniupnpc)
("libsodium" ,libsodium)
("miniupnpc" ,miniupnpc)
("openssl" ,openssl)
("rapidjson" ,rapidjson)
("unbound" ,unbound)))
("readline" ,readline)
("unbound" ,unbound)
("xz" ,xz)
("zeromq" ,zeromq)))
(arguments
`(#:out-of-source? #t
#:build-type "release"
#:configure-flags '("-DBUILD_TESTS=ON"
,@(if (string=? "aarch64-linux" (%current-system))
'("-DARCH=armv8-a")
'())
#:configure-flags '("-DARCH=default"
"-DBUILD_TESTS=ON"
"-DBUILD_GUI_DEPS=ON")
#:phases
(modify-phases %standard-phases
@ -479,24 +492,18 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(lambda _
(setenv "HOME" (getcwd))
#t))
(add-after 'set-home 'fix-wallet-path-for-unit-tests
(lambda _
(substitute* "tests/unit_tests/serialization.cpp"
(("\\.\\./\\.\\./\\.\\./\\.\\./") "../../"))
#t))
(add-after 'fix-wallet-path-for-unit-tests 'change-log-path
(add-after 'set-home 'change-log-path
(lambda _
(substitute* "contrib/epee/src/mlog.cpp"
(("epee::string_tools::get_current_module_folder\\(\\)")
"\".bitmonero\""))
(substitute* "contrib/epee/src/mlog.cpp"
(("return \\(") "return ((std::string(getenv(\"HOME\"))) / "))
"\".bitmonero\"")
(("return \\(")
"return ((std::string(getenv(\"HOME\"))) / "))
#t))
;; Only try tests that don't need access to network or system
(replace 'check
(lambda _
(invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
"test")))
;; The excluded unit tests need network access
(invoke "make" "ARGS=-R 'hash|core_tests'" "test")))
(add-after 'check 'unit-tests
(lambda _
(let ((excluded-unit-tests
@ -506,58 +513,69 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
"DNSResolver.IPv4Success"
"DNSResolver.DNSSECSuccess"
"DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord")
"DNSResolver.GetTXTRecord"
;; TODO: Find why portability_wallet test fails
;; Maybe the Boost version used to create the test
;; wallet and the current Boost version are not
;; completely compatible?
"Serialization.portability_wallet"
"is_hdd.linux_os_root")
":")))
(invoke "tests/unit_tests/unit_tests"
(string-append "--gtest_filter=-"
excluded-unit-tests)))))
(add-after 'install 'install-blockchain-import-export
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "bin/monero-blockchain-import" bin)
(install-file "bin/monero-blockchain-export" bin)))))))
excluded-unit-tests))))))))
(home-page "https://getmonero.org/")
(synopsis "Command-line interface to the Monero currency")
(description
"Monero is a secure, private, untraceable currency. This package provides the
Monero command line client and daemon.")
"Monero is a secure, private, untraceable currency. This package provides
the Monero command line client and daemon.")
(license license:bsd-3)))
(define-public monero-gui
(package
(name "monero-gui")
(version "0.12.2.0")
(version "0.14.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/monero-project/monero-gui")
(url "https://github.com/monero-project/monero-gui.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
"0ilx47771faygf97wilm64xnqxgxa3b43q0g9v014npk0qj8pc31"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("graphviz" ,graphviz)
("pkg-config" ,pkg-config)
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(inputs
`(("boost" ,boost)
("hidapi" ,hidapi)
("libunwind" ,libunwind)
("libsodium" ,libsodium)
("openssl" ,openssl)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
("qtlocation" ,qtlocation)
("qtmultimedia" ,qtmultimedia)
("qtquickcontrols" ,qtquickcontrols)
("readline" ,readline)
("qtquickcontrols2",qtquickcontrols2)
("qtsvg" ,qtsvg)
("qtwebchannel" ,qtwebchannel)
("qtx11extras" ,qtx11extras)
("qtxmlpatterns" ,qtxmlpatterns)
("unbound" ,unbound)))
(propagated-inputs
`(("monero" ,monero)))
(arguments
`(#:phases
`(#:modules ((guix build gnu-build-system)
(guix build qt-utils)
(guix build utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build qt-utils))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
@ -569,32 +587,45 @@ Monero command line client and daemon.")
(add-after 'fix-makefile-vars 'fix-library-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "monero-wallet-gui.pro"
(("-L/usr/local/lib") "")
(("-L/usr/local/lib")
"")
(("-L/usr/local/opt/openssl/lib")
(string-append "-L"
(assoc-ref inputs "openssl")
"/lib"))
(string-append "-L" (assoc-ref inputs "openssl") "/lib"))
(("-L/usr/local/opt/boost/lib")
(string-append "-L"
(assoc-ref inputs "boost")
"/lib")))
(string-append "-L" (assoc-ref inputs "boost") "/lib")))
#t))
(add-after 'fix-library-paths 'fix-monerod-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/daemon/DaemonManager.cpp"
(("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
(string-append "\""(assoc-ref inputs "monero")
(string-append "\"" (assoc-ref inputs "monero")
"/bin/monerod")))
#t))
(add-after 'fix-monerod-path 'fix-qt-paths
(lambda* (#:key inputs #:allow-other-keys)
(let* ((qttools (assoc-ref inputs "qttools"))
(lrelease (string-append qttools "/bin/lrelease"))
(lupdate (string-append qttools "/bin/lupdate")))
(substitute* "monero-wallet-gui.pro"
(("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") lrelease)
(("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate") lupdate))
#t)))
(("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
(string-append (assoc-ref inputs "qttools") "/bin/lrelease"))
(("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate")
(string-append (assoc-ref inputs "qttools") "/bin/lupdate")))
#t))
(add-after 'fix-qt-paths 'make-qt-deterministic
(lambda _
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
#t))
(add-after 'make-qt-deterministic 'fix-version
(lambda _
(substitute* "build.sh"
(("echo .*> version.js")
""))
(with-output-to-file "version.js"
(lambda _
(format #t
"var GUI_VERSION = \"~a\"~@
var GUI_MONERO_VERSION = \"~a\"~%"
,version
,(package-version monero))))
#t))
(replace 'build
(lambda _
(invoke "./build.sh")))
@ -606,28 +637,18 @@ Monero command line client and daemon.")
#t))
(add-before 'install 'change-dir
(lambda _
(chdir "build")))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(chdir "build")
#t))
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/monero-wallet-gui")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins"))
'("qtbase" "qtdeclarative")))
`("QML2_IMPORT_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/qml"))
'("qtdeclarative" "qtgraphicaleffects"
"qtquickcontrols"))))
#t))))))
(wrap-qt-program out "monero-wallet-gui"))
#t)))))
(home-page "https://getmonero.org/")
(synopsis "Graphical user interface for the Monero currency")
(description
"Monero is a secure, private, untraceable currency. This package provides the
Monero GUI client.")
"Monero is a secure, private, untraceable currency. This package provides
the Monero GUI client.")
(license license:bsd-3)))
(define-public monero-core

View File

@ -110,20 +110,25 @@ actions.")
"See 'COPYING' in the distribution."))))
(define-public geeqie
;; The latest release, 1.4, fails to build with Exiv2 0.27.1. The upstream
;; repo has several fixes for that, so take a snapshot.
(let ((commit "c220ddefb1b6b11b54f7598f0d44dd0723325ed4")
(revision "1"))
(package
(name "geeqie")
(version "1.4")
(version (git-version "1.4" revision commit))
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BestImageViewer/geeqie/"
"releases/download/v" version "/geeqie-"
version ".tar.xz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/BestImageViewer/geeqie")
(commit commit)))
(sha256
(base32
"0ciygvcxb78pqg59r6p061mkbpvkgv2rv3r79j3kgv3kalb3ln2w"))))
"07424nzrnwbksgalgg1a6ig2snd986w79kca1cfnv1q9kc7x2h3x"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(;; Enable support for a "map" pane using GPS data.
`( ;; Enable support for a "map" pane using GPS data.
#:configure-flags '("--enable-map")
#:phases
@ -139,6 +144,15 @@ actions.")
(call-with-output-file "ChangeLog.html"
write-dummy-changelog)
(setenv "NOCONFIGURE" "true")
;; Don't try to run 'git' for the version number.
(substitute* "configure.ac"
(("m4_esyscmd_s\\([^)]+\\)")
(string-append "[" ,version "]")))
;; Remove references to non-existent files.
(substitute* "po/POTFILES.in"
(("^plugins/import/.*") ""))
#t)))))
(inputs
`(("clutter" ,clutter)
@ -162,7 +176,7 @@ interoperability; easy integration with other software; geeqie works on files
and directories, there is no need to import images; fast preview for many raw
image formats; tools for image comparison, sorting and managing photo
collection. Geeqie was initially based on GQview.")
(license license:gpl2+)))
(license license:gpl2+))))
(define-public gpicview
(package

View File

@ -170,7 +170,7 @@ script.")
(define-public graphicsmagick
(package
(name "graphicsmagick")
(version "1.3.31")
(version "1.3.32")
(source
(origin
(method url-fetch)
@ -182,7 +182,8 @@ script.")
"GraphicsMagick/" (version-major+minor version)
"/GraphicsMagick-" version ".tar.xz")))
(sha256
(base32 "0y22740f25qxsqqqg26xqlfp920dm57b7hrgaqmx7azksrcvnsq9"))))
(base32
"1qclp9i31idpcbbqswmnq2q11lmv0a7cvdb1y72xcky8sshaahmq"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View File

@ -127,7 +127,7 @@ irssi, but graphical.")
(define-public irssi
(package
(name "irssi")
(version "1.1.2")
(version "1.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
@ -135,7 +135,7 @@ irssi, but graphical.")
version ".tar.xz"))
(sha256
(base32
"0clppwqhllrmqjg1dd47v9v1qiqx7cf9afm81bm1pscllf4jpk2w"))))
"0jq8zjdhdjxkjbfl4g4nfr1ninyfxffa27lm8vcyrihhhkrn65yf"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -430,8 +430,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
It has been modified to remove all non-free binary blobs.")
(license license:gpl2)))
(define %linux-libre-version "5.1.15")
(define %linux-libre-hash "1f0hhyjsm4bl7k7w88aifvhmqmjkvkvlpd2b69y7s6csr22fk6v4")
(define %linux-libre-version "5.1.16")
(define %linux-libre-hash "055vs2g6z6wx34qvi0aw952x9q3drbj7z27s7g7pks6w730xkga8")
(define %linux-libre-5.1-patches
(list %boot-logo-patch
@ -448,8 +448,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-version
%linux-libre-hash))
(define %linux-libre-4.19-version "4.19.56")
(define %linux-libre-4.19-hash "1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx")
(define %linux-libre-4.19-version "4.19.57")
(define %linux-libre-4.19-hash "0p9b27hfbzppxgad9q2g7nvfzv0phzdsk16sqy87q3dglc8wqrqq")
(define %linux-libre-4.19-patches
(list %boot-logo-patch
@ -466,8 +466,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-4.19-version
%linux-libre-4.19-hash))
(define %linux-libre-4.14-version "4.14.131")
(define %linux-libre-4.14-hash "1qcf4cg83zpjirkj8l09y07x4zzskypngampvfw7zyazynwwgs1i")
(define %linux-libre-4.14-version "4.14.132")
(define %linux-libre-4.14-hash "0mvp4izw21f8w5kkk8qm8m8b7qjxbp8hshgffdlh1aik41zvcnyq")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version

View File

@ -6035,3 +6035,60 @@ cookie headers, cookie creation, cookie jar creation and more.")
(description "cl-cookie is a Common Lisp library featuring parsing of
cookie headers, cookie creation, cookie jar creation and more.")
(license license:bsd-2))))
(define-public sbcl-dexador
(let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
(revision "1"))
(package
(name "sbcl-dexador")
(build-system asdf-build-system/sbcl)
(version (git-version "0.9.10" revision commit))
(home-page "https://github.com/fukamachi/dexador")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
(inputs
`(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
("babel" ,sbcl-babel)
("usocket" ,sbcl-usocket)
("fast-http" ,sbcl-fast-http)
("quri" ,sbcl-quri)
("fast-io" ,sbcl-fast-io)
("chunga" ,sbcl-chunga)
("cl-ppcre" ,sbcl-cl-ppcre)
("cl-cookie" ,sbcl-cl-cookie)
("trivial-mimes" ,sbcl-trivial-mimes)
("chipz" ,sbcl-chipz)
("cl-base64" ,sbcl-cl-base64)
("cl-reexport" ,sbcl-cl-reexport)
("cl+ssl" ,sbcl-cl+ssl)
("bordeaux-threads" ,sbcl-bordeaux-threads)
("alexandria" ,sbcl-alexandria)))
(native-inputs
`(("prove" ,sbcl-prove)
("prove-asdf" ,sbcl-prove-asdf)
("lack-request" ,sbcl-lack-request)
("clack" ,sbcl-clack)
("babel" ,sbcl-babel)
("alexandria" ,sbcl-alexandria)
("quri" ,sbcl-quri)
("cl-ppcre" ,sbcl-cl-ppcre)
("local-time" ,sbcl-local-time)))
(arguments
;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-permissions
(lambda _ (make-file-writable "t/data/test.gz") #t)))))
(synopsis "Yet another HTTP client for Common Lisp")
(description "Dexador is yet another HTTP client for Common Lisp with
neat APIs and connection-pooling. It is meant to supersede Drakma.")
(license license:expat))))

View File

@ -2526,20 +2526,23 @@ operators and scripters.")
(define-public alpine
(package
(name "alpine")
(version "2.21.9999")
;; Upstream doesn't use git tags, but does tag their releases in the
;; commit message. Hence the lack of GIT-VERSIONing despite using a commit
;; ID below. Don't forget to update it…
(version "2.21.99999")
(source
(origin
(method url-fetch)
(method git-fetch)
;; There are two versions: the plain continuation of Alpine without extra
;; patches and the version which adds extra fixes. Every distro uses
;; the patched version, and so do we to not break expectations.
;; http://alpine.freeiz.com/alpine/readme/README.patches
(uri (string-append "http://repo.or.cz/alpine.git/snapshot/"
"d3e6f3932f2af9deca8eed09e30a55e9bd524362.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(uri (git-reference
(url "http://repo.or.cz/alpine.git")
(commit "abeb2c25935ef8c75f1e5deef0f81276754dc975")))
(file-name (git-file-name name version))
(sha256
(base32
"0w4qyybfdxi29r2z3giq0by6aa6v6nrgibh1xgv4d1vwwq4hw35w"))))
(base32 "0rqgbw08a5lj41dkp82aq480lqkc4bnxagna7wpqffi821n8gkwz"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc")
@ -2555,7 +2558,8 @@ operators and scripters.")
"/lib")
(string-append "--with-interactive-spellcheck="
(assoc-ref %build-inputs "aspell")
"/bin/aspell"))
"/bin/aspell")
"--with-date-stamp=Thu 1 Jan 01:00:01 CET 1970")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
@ -2563,9 +2567,6 @@ operators and scripters.")
;; This removes time-dependent code to make alpine reproducible.
(substitute* "pico/blddate.c"
(("%02d-%s-%d") "1970-01-01"))
(substitute* (list "alpine/Makefile.in"
"web/src/alpined.d/Makefile.in")
(("`date`") "1970-01-01"))
#t)))))
(inputs
`(("ncurses" ,ncurses)
@ -2577,7 +2578,7 @@ operators and scripters.")
("aspell" ,aspell)
("tcl" ,tcl)
("linux-pam" ,linux-pam)))
(home-page "http://repo.or.cz/alpine.git")
(home-page "https://repo.or.cz/alpine.git")
(synopsis "Alternatively Licensed Program for Internet News and Email")
(description
"Alpine is a text-based mail and news client. Alpine includes several

View File

@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
(version "0.21.10")
(version "0.21.11")
(source (origin
(method url-fetch)
(uri
@ -100,7 +100,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
"0fx9n6qmyb4ls17j7kl58i1ivg9wfx9zm9wyfnwzw7lcwdl56sqk"))))
"1gbcg8icm0pp918jw1lx1j066m39zg9wyqjla328ic848j5zhbnk"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=true") ; the default is 'false'...

View File

@ -4450,7 +4450,7 @@ discard bad quality ones.
(define-public lpd8editor
(package
(name "lpd8editor")
(version "0.0.12")
(version "0.0.13")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4459,7 +4459,7 @@ discard bad quality ones.
(file-name (git-file-name name version))
(sha256
(base32
"1v3fz8h1zs7kkl80faah79pp6yqwz0j7bkv3dbmh2hp42zbfiz1q"))))
"0lsz3v493ilq2zr016m7kvymrplxd0n3pqv1pjglpq1h7sjw9764"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View File

@ -22,6 +22,7 @@
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;;
;;; This file is part of GNU Guix.
;;;
@ -562,6 +563,78 @@ one-time-password (OTP) secrets, generating OTP codes, and displaying secret
key URIs using the standard otpauth:// scheme.")
(license license:gpl3+)))
(define-public qtpass
(package
(name "qtpass")
(version "1.2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/IJHack/QtPass.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1vfhfyccrxq9snyvayqfzm5rqik8ny2gysyv7nipc91kvhq3bhky"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; lupdate/lrelease need to find qmake.
(setenv "QMAKE" "qmake")
;; qmake needs to find lrelease/lupdate.
(invoke "qmake"
"QMAKE_LRELEASE=lrelease"
"QMAKE_LUPDATE=lupdate"
(string-append "PREFIX=" out)))))
(add-after 'configure 'reset-resource-timestamps
;; Reset timestamps on localization files for a reproducible build.
(lambda _
(with-directory-excursion "localization"
(for-each (lambda (file)
(let* ((base (basename file ".qm"))
(src (string-append base ".ts"))
(st (stat src)))
(set-file-time file st)))
(find-files "." ".*\\.qm")))
#t))
(add-after 'install 'install-auxilliary
;; Install man-page, icon and .desktop file.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(applications (string-append out "/share/applications"))
(icons (string-append out "/share/icons/hicolor/scalable/apps"))
(man (string-append out "/share/man/man1")))
(install-file "qtpass.desktop" applications)
(install-file "artwork/icon.svg" icons)
(rename-file (string-append icons "/icon.svg")
(string-append icons "/qtpass-icon.svg"))
(install-file "qtpass.1" man)
#t)))
(add-before 'check 'check-setup
;; Make Qt render "offscreen", required for tests.
(lambda _
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(native-inputs
`(("qttools" ,qttools)))
(inputs
`(("qtbase" ,qtbase)
("qtsvg" ,qtsvg)))
(home-page "https://qtpass.org")
(synopsis "GUI for password manager password-store")
(description
"Qt-based graphical user interface for the password manager
password-store also known as pass. Can use either pass or gpg to interact
with password-store files. Features configurable password generation,
templates, clipboard handling, and per folder settings for multi-recipient
encryption.")
(license license:gpl3+)))
(define-public argon2
(package
(name "argon2")

View File

@ -1,111 +1,42 @@
This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own
miniupnpc, instead of a git submodule.
---
CMakeLists.txt | 8 ++++++++
external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----------
src/p2p/net_node.inl | 13 ++++++++++---
3 files changed, 49 insertions(+), 13 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b93988e..ef948885 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
add_subdirectory(external)
+# Final setup for miniupnpc
+if(UPNP_STATIC OR IOS)
+ add_definitions("-DUPNP_STATIC")
+else()
+ add_definitions("-DUPNP_DYNAMIC")
+ include_directories(${UPNP_INCLUDE})
+endif()
+
# Final setup for libunbound
include_directories(${UNBOUND_INCLUDE})
link_directories(${UNBOUND_LIBRARY_DIRS})
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 1fc4d64c..b4f712ee 100644
index 7553f87e..8e865c6c 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -34,21 +34,42 @@
# We always compile if we are building statically to reduce static dependency issues...
# ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
# others.
+if(NOT IOS)
+ find_package(Miniupnpc QUIET)
+endif()
@@ -37,19 +37,7 @@
-find_package(Miniupnpc REQUIRED)
+# If we have the correct shared version and we're not building static, use it
+if(STATIC OR IOS)
+ set(USE_SHARED_MINIUPNPC false)
+elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
+ set(USE_SHARED_MINIUPNPC true)
+endif()
find_package(Miniupnpc REQUIRED)
-message(STATUS "Using in-tree miniupnpc")
+if(USE_SHARED_MINIUPNPC)
+ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
-add_subdirectory(miniupnp/miniupnpc)
+ set(UPNP_STATIC false PARENT_SCOPE)
+ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
+ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+else()
+ if(STATIC)
+ message(STATUS "Using miniupnpc from local source tree for static build")
+ else()
+ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
+ endif()
-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-if(MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
-elseif(NOT MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-endif()
+ add_subdirectory(miniupnp/miniupnpc)
+
+ set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+ if(MSVC)
+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
+ elseif(NOT MSVC)
+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
+ endif()
-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
-endif()
-
-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
+ set(UPNP_STATIC true PARENT_SCOPE)
+ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
+endif()
+set(UPNP_LIBRARIES "miniupnpc" PARENT_SCOPE)
find_package(Unbound)
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
index 9b21705e..76340a22 100644
index 74924e4f..3554dd0d 100644
--- a/src/p2p/net_node.inl
+++ b/src/p2p/net_node.inl
@@ -49,9 +49,16 @@
@@ -49,9 +49,9 @@
#include "storages/levin_abstract_invoke2.h"
#include "cryptonote_core/cryptonote_core.h"
-#include <miniupnp/miniupnpc/miniupnpc.h>
-#include <miniupnp/miniupnpc/upnpcommands.h>
-#include <miniupnp/miniupnpc/upnperrors.h>
+// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
+#ifdef UPNP_STATIC
+ #include <miniupnp/miniupnpc/miniupnpc.h>
+ #include <miniupnp/miniupnpc/upnpcommands.h>
+ #include <miniupnp/miniupnpc/upnperrors.h>
+#else
+ #include "miniupnpc.h"
+ #include "upnpcommands.h"
+ #include "upnperrors.h"
+#endif
+#include <miniupnpc/miniupnpc.h>
+#include <miniupnpc/upnpcommands.h>
+#include <miniupnpc/upnperrors.h>
#undef MONERO_DEFAULT_LOG_CATEGORY
#define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
--
2.16.2

View File

@ -3593,13 +3593,13 @@ color scales, and color space conversion easy. It has support for:
(define-public python-pygit2
(package
(name "python-pygit2")
(version "0.28.0")
(version "0.28.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pygit2" version))
(sha256
(base32 "0lngsaz029d4fjcwhl17pr59nh9gwl6hwfin36nph60fgsmfdg3d"))))
(base32 "11kzj5mjkspvplnpdb6bj8dcj6rgmkk986k8hjcklyg5yaxkz32d"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; tests don't run correctly in our environment

View File

@ -14,6 +14,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1081,24 +1082,6 @@ code in Merb and Rails.")
(home-page "https://github.com/jnunemaker/crack")
(license license:expat)))
(define-public ruby-crass
(package
(name "ruby-crass")
(version "1.0.4")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "crass" version))
(sha256
(base32
"0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
(build-system ruby-build-system)
(synopsis "Pure Ruby CSS parser based on CSS Syntax Level 3")
(description
"Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.")
(home-page "https://github.com/rgrove/crass/")
(license license:expat)))
(define-public ruby-cliver
(package
(name "ruby-cliver")
@ -8725,3 +8708,32 @@ app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server,
then check out http://127.0.0.1:1080 to see the mail.")
(home-page "https://mailcatcher.me")
(license license:expat)))
(define-public ruby-backport
(package
(name "ruby-backport")
(version "1.1.1")
(source
(origin
;; The gem does not include test code, so fetch from the Git repository
(method git-fetch)
(uri (git-reference
(url "https://github.com/castwide/backport.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ii3y1wx1n48nd2mhlv0v61b2m21h7dg30if9vc2idza7k4afyw8"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "spec"))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec" ,ruby-rspec)))
(inputs
`(("ruby-simplecov" ,ruby-simplecov)))
(synopsis "Pure Ruby library for event-driven IO")
(description
"This package provides a pure Ruby library for event-driven IO.")
(home-page "https://github.com/castwide/backport")
(license license:expat)))

View File

@ -1549,7 +1549,27 @@ YouTube.com and many more sites.")
(string-append "os.path.join('"
(assoc-ref %outputs "out")
"', 'share'")))
#t)))))
#t))
(add-after 'install 'create-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(applications (string-append out "/share/applications")))
(mkdir-p applications)
(call-with-output-file
(string-append applications "/youtube-dl-gui.desktop")
(lambda (file)
(format
file
"[Desktop Entry]~@
Name=Youtube-dl GUI~@
Comment=Graphical interface to download video with youtube-dl~@
Exec=youtube-dl-gui~@
TryExec=youtube-dl-gui~@
Terminal=false~@
Icon=youtube-dl-gui~@
Type=Application~@
Categories=AudioVideo;Audio;Video;Network~%")))
#t))))))
(inputs
`(("python2-wxpython" ,python2-wxpython)
("youtube-dl" ,youtube-dl)))

View File

@ -399,14 +399,14 @@ manage system or application containers.")
(define-public libvirt
(package
(name "libvirt")
(version "5.4.0")
(version "5.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
(base32
"0ywf8m9yz2hxnic7fylzlmgy4m353r4vv5zsvp89zq5yh4h81yhw"))))
"1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -536,13 +536,15 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
(version "5.3.0")
(source (origin
(version "5.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "libvirt-python" version))
;; The latest version hosted on PyPI at 5.5.0 release time was 5.3.0.
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz"))
(sha256
(base32
"1zrhkz68ka4f08wwm36y3zzwfn1r65h4nw1nm9qgg8jmrfazj4sj"))))
(base32 "00x6idyw9xrrr21vrnsyw37q2sd8yh4n6pwh0l28hh9yp3nsy72n"))))
(build-system python-build-system)
(arguments
`(#:phases

View File

@ -456,14 +456,14 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
(define-public wireguard
(package
(name "wireguard")
(version "0.0.20190601")
(version "0.0.20190702")
(source (origin
(method url-fetch)
(uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/"
"WireGuard-" version ".tar.xz"))
(sha256
(base32
"0s2mys78whsr0yw045a132iqx6nfy3c6hppiskbln5x04hc4ca3m"))))
"1b5s1ncwqxdgb0c6cd07x4ynnj6cpbiqp4bxqir7mm5bf6y124qs"))))
(build-system gnu-build-system)
(outputs '("out" ; The WireGuard userspace tools
"kernel-patch")) ; A patch to build Linux with WireGuard support

View File

@ -716,7 +716,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
(define-public xlockmore
(package
(name "xlockmore")
(version "5.56")
(version "5.57")
(source (origin
(method url-fetch)
(uri (list (string-append "http://sillycycle.com/xlock/"
@ -727,7 +727,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
name "-" version ".tar.xz")))
(sha256
(base32
"1dg1n79rnswhxqz36mxnl5lp8p37i9fbibnzzyrqknmvf2s8xpd0"))))
"18r8rh8fzdn9miicbpc3qbdd4mm2g1jpsbcvj29sr66pxydzkb7r"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--enable-appdefaultdir="

View File

@ -220,7 +220,7 @@ development.")
(define-public garcon
(package
(name "garcon")
(version "0.6.2")
(version "0.6.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@ -228,7 +228,7 @@ development.")
"garcon-" version ".tar.bz2"))
(sha256
(base32
"0z64g6f2vwfjzqsrsn05nbcbs8l6y4cfdgxk4k2la3giixj0jzx8"))))
"00c4g4gmbr8710k0yv1zybnm9s2gkc1rj63zfrg9qgin66jzxcbn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -250,7 +250,7 @@ merging features essential for loading menus modified with menu editors.")
(define-public tumbler
(package
(name "tumbler")
(version "0.2.4")
(version "0.2.5")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@ -258,7 +258,7 @@ merging features essential for loading menus modified with menu editors.")
"tumbler-" version ".tar.bz2"))
(sha256
(base32
"19mnwmcxdhqfqkd9433z8h2y8w49vlc7jw5p5h8j54wz7zhrgx0g"))))
"0nfld1lvrdpsjfvm08y5487km45pm1mdr928hgqm8j0shrx6jiv4"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -596,7 +596,7 @@ like appearance, display, keyboard and mouse settings.")
(define-public thunar
(package
(name "thunar")
(version "1.8.6")
(version "1.8.7")
(source (origin
(method url-fetch)
(uri (string-append "http://archive.xfce.org/src/xfce/"
@ -604,7 +604,7 @@ like appearance, display, keyboard and mouse settings.")
"Thunar-" version ".tar.bz2"))
(sha256
(base32
"0apg70dwkh8q89ybzhj4q2gp4yxiybwxfzpbvx0nj0rxis1gprf0"))))
"0afkp528mwwa2m18m39mvw53qgaijyynrw9wwwiyxgjiczq3l0ry"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -628,14 +628,15 @@ fast.")
(define-public thunar-volman
(package
(name "thunar-volman")
(version "0.8.1")
(source (origin
(version "0.9.3")
(source
(origin
(method url-fetch)
(uri (string-append "http://archive.xfce.org/xfce/4.12/src/"
name "-" version ".tar.bz2"))
(uri (string-append "https://archive.xfce.org/src/xfce/thunar-volman/"
(version-major+minor version) "/"
"thunar-volman-" version ".tar.bz2"))
(sha256
(base32
"1gf259n1v3y23n1zlkhyr6r0i8j59rnl1cmxvxj6la9cwdfbn22s"))))
(base32 "1sfmz40164rg77hclrkrgnbk8cb7f325qqi7lz2hh3wbvf8r0c19"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)

View File

@ -320,8 +320,7 @@ substituter many times."
;; info is not already in cache.
;; Also, skip derivations marked as non-substitutable.
(append-map (lambda (input)
(let ((drv (read-derivation-from-file
(derivation-input-path input))))
(let ((drv (derivation-input-derivation input)))
(if (substitutable-derivation? drv)
(derivation-input-output-paths input)
'())))
@ -652,12 +651,10 @@ list of name/path pairs of its outputs."
;;; Derivation primitive.
;;;
(define derivation-path->base16-hash
(mlambda (file)
"Return a string containing the base16 representation of the hash of the
derivation at FILE."
(bytevector->base16-string
(derivation-hash (read-derivation-from-file file)))))
(define derivation-base16-hash
(mlambdaq (drv)
"Return a string containing the base16 representation of the hash of DRV."
(bytevector->base16-string (derivation-hash drv))))
(define (derivation/masked-inputs drv)
"Assuming DRV is a regular derivation (not fixed-output), replace the file
@ -666,9 +663,8 @@ name of each input with that input's hash."
(($ <derivation> outputs inputs sources
system builder args env-vars)
(let ((inputs (map (match-lambda
(($ <derivation-input> (= derivation-file-name path)
sub-drvs)
(let ((hash (derivation-path->base16-hash path)))
(($ <derivation-input> drv sub-drvs)
(let ((hash (derivation-base16-hash drv)))
(make-derivation-input hash sub-drvs))))
inputs)))
(make-derivation outputs
@ -886,8 +882,11 @@ long-running processes that know what they're doing. Use with care!"
;; Typically this is meant to be used by Cuirass and Hydra, which can clear
;; caches when they start evaluating packages for another architecture.
(invalidate-memoization! derivation->bytevector)
(invalidate-memoization! derivation-path->base16-hash)
(hash-clear! %derivation-cache))
(invalidate-memoization! derivation-base16-hash)
;; FIXME: Comment out to work around <https://bugs.gnu.org/36487>.
;; (hash-clear! %derivation-cache)
)
(define derivation-properties
(mlambdaq (drv)
@ -945,16 +944,14 @@ recursively."
;; in the format used in 'derivation' calls.
(mlambda (input loop)
(match input
(($ <derivation-input> (= derivation-file-name path)
(sub-drvs ...))
(match (vhash-assoc path mapping)
(($ <derivation-input> drv (sub-drvs ...))
(match (vhash-assoc (derivation-file-name drv) mapping)
((_ . (? derivation? replacement))
(cons replacement sub-drvs))
((_ . replacement)
(list replacement))
(#f
(let* ((drv (loop (read-derivation-from-file path))))
(cons drv sub-drvs))))))))
(cons (loop drv) sub-drvs)))))))
(let loop ((drv drv))
(let* ((inputs (map (cut rewritten-input <> loop)

View File

@ -8,6 +8,7 @@
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -337,7 +338,7 @@ denoting a specific output of a package."
(manifest
(map (match-lambda
((package output)
(((? package? package) output)
(package->manifest-entry package output))
((? package? package)
(package->manifest-entry package))

View File

@ -1783,6 +1783,9 @@ the store."
;; when using 'gexp->derivation' and co.
(make-parameter #f))
(define set-store-connection-object-cache!
(record-modifier <store-connection> 'object-cache))
(define* (run-with-store store mval
#:key
(guile-for-build (%guile-for-build))
@ -1798,9 +1801,12 @@ connection, and return the result."
(%current-target-system target))
(call-with-values (lambda ()
(run-with-state mval store))
(lambda (result store)
;; Discard the state.
result))))
(lambda (result new-store)
;; Copy the object cache from NEW-STORE so we don't fully discard the
;; state.
(let ((cache (store-connection-object-cache new-store)))
(set-store-connection-object-cache! store cache)
result)))))
;;;