Merge branch 'master' into staging
This commit is contained in:
commit
9b601fc211
@ -1179,6 +1179,7 @@ dist_patch_DATA = \
|
|||||||
%D%/packages/patches/ngircd-handle-zombies.patch \
|
%D%/packages/patches/ngircd-handle-zombies.patch \
|
||||||
%D%/packages/patches/nm-plugin-path.patch \
|
%D%/packages/patches/nm-plugin-path.patch \
|
||||||
%D%/packages/patches/nsis-env-passthru.patch \
|
%D%/packages/patches/nsis-env-passthru.patch \
|
||||||
|
%D%/packages/patches/nss-CVE-2019-11745.patch \
|
||||||
%D%/packages/patches/nss-freebl-stubs.patch \
|
%D%/packages/patches/nss-freebl-stubs.patch \
|
||||||
%D%/packages/patches/nss-increase-test-timeout.patch \
|
%D%/packages/patches/nss-increase-test-timeout.patch \
|
||||||
%D%/packages/patches/nss-pkgconfig.patch \
|
%D%/packages/patches/nss-pkgconfig.patch \
|
||||||
|
@ -629,7 +629,7 @@ would need and has several interesting built-in capabilities.")
|
|||||||
(define-public netcat-openbsd
|
(define-public netcat-openbsd
|
||||||
(package
|
(package
|
||||||
(name "netcat-openbsd")
|
(name "netcat-openbsd")
|
||||||
(version "1.203-2")
|
(version "1.206-1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -638,7 +638,7 @@ would need and has several interesting built-in capabilities.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0j85gzbjzs6yrhgabh3zkwzd27qkr5s0zjjczl0hah8q7yhrjk3m"))))
|
"08r3mmck3s5pbvwyq19wp5g8jqcxza3cm8nkc6jm7rqn4jdydc4z"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no test suite
|
`(#:tests? #f ; no test suite
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages sphinx)
|
#:use-module (gnu packages sphinx)
|
||||||
@ -87,7 +88,7 @@ independently or together to provide resilient infrastructures.")
|
|||||||
(define-public libraft
|
(define-public libraft
|
||||||
(package
|
(package
|
||||||
(name "libraft")
|
(name "libraft")
|
||||||
(version "0.9.5")
|
(version "0.9.11")
|
||||||
(home-page "https://github.com/canonical/raft")
|
(home-page "https://github.com/canonical/raft")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -96,10 +97,17 @@ independently or together to provide resilient infrastructures.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1q49f5mmv6nr6dxhnp044xwc6jlczgh0nj0bl6718wiqh28411x0"))))
|
"00rsq4z9nykmf7r5rlpv1y6bvckcmg3zv57vh1h681y5pij6cch1"))))
|
||||||
(arguments '(#:configure-flags '("--disable-uv")))
|
(arguments '(#:configure-flags '("--enable-uv")
|
||||||
;; The uv plugin tests fail, if libuv (or the example) is enabled,
|
#:phases
|
||||||
;; because setting up the environment requires too much privileges.
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'disable-failing-tests
|
||||||
|
(lambda _
|
||||||
|
(substitute* "Makefile.am"
|
||||||
|
((".*test_uv_append.c.*") ""))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("libuv" ,libuv)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("autoconf" ,autoconf)
|
`(("autoconf" ,autoconf)
|
||||||
("automake" ,automake)
|
("automake" ,automake)
|
||||||
|
@ -4168,6 +4168,30 @@ supports arbitrary vertex/edge/graph attributes.")
|
|||||||
software developed by the Statnet Project.")
|
software developed by the Statnet Project.")
|
||||||
(license license:gpl3)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-statcheck
|
||||||
|
(package
|
||||||
|
(name "r-statcheck")
|
||||||
|
(version "1.3.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "statcheck" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ivybdcrymlsfv6pg6p5bv70qdvgxf2vgp0kf4r0pf2fcvav1mcp"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-ggplot2" ,r-ggplot2)
|
||||||
|
("r-plyr" ,r-plyr)
|
||||||
|
("r-rmarkdown" ,r-rmarkdown)))
|
||||||
|
(home-page "https://cran.r-project.org/web/packages/statcheck/")
|
||||||
|
(synopsis "Extract statistics from articles and recompute p-values")
|
||||||
|
(description "This package can automatically extract statistical
|
||||||
|
null-hypothesis significant testing (NHST) results from articles and recompute
|
||||||
|
the p-values based on the reported test statistic and degrees of freedom to
|
||||||
|
detect possible inconsistencies.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public r-sna
|
(define-public r-sna
|
||||||
(package
|
(package
|
||||||
(name "r-sna")
|
(name "r-sna")
|
||||||
@ -14695,6 +14719,89 @@ they are often difficult to interpret. Rex allows you to build complex
|
|||||||
regular expressions from human readable expressions")
|
regular expressions from human readable expressions")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-xmlparsedata
|
||||||
|
(package
|
||||||
|
(name "r-xmlparsedata")
|
||||||
|
(version "1.0.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "xmlparsedata" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0gjr3l5z5dp276lchr2649as1rkj56d2mlvbr66yg393zzw50lsh"))))
|
||||||
|
(properties `((upstream-name . "xmlparsedata")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "https://github.com/r-lib/xmlparsedata#readme")
|
||||||
|
(synopsis "Parse data of @code{R} code as an @code{XML} tree")
|
||||||
|
(description
|
||||||
|
"This package provides tools to convert the output of
|
||||||
|
@code{utils::getParseData()} to an @code{XML} tree, that one can search via
|
||||||
|
@code{XPath}, and is easier to manipulate in general.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-cyclocomp
|
||||||
|
(package
|
||||||
|
(name "r-cyclocomp")
|
||||||
|
(version "1.1.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "cyclocomp" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0gky3svk02wiajw7nfjh30684h3qxili4bvsab0m7b6cggw6bgyd"))))
|
||||||
|
(properties `((upstream-name . "cyclocomp")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-callr" ,r-callr)
|
||||||
|
("r-crayon" ,r-crayon)
|
||||||
|
("r-desc" ,r-desc)
|
||||||
|
("r-remotes" ,r-remotes)
|
||||||
|
("r-withr" ,r-withr)))
|
||||||
|
(home-page "https://github.com/MangoTheCat/cyclocomp")
|
||||||
|
(synopsis "Cyclomatic complexity of R code")
|
||||||
|
(description
|
||||||
|
"Cyclomatic complexity is a software metric, used to indicate the
|
||||||
|
complexity of a program. It is a quantitative measure of the number of
|
||||||
|
linearly independent paths through a program's source code. This package
|
||||||
|
provides tools to compute this metric.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-lintr
|
||||||
|
(package
|
||||||
|
(name "r-lintr")
|
||||||
|
(version "2.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "lintr" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"09gbci4v5n4gsfzminly8332fw7faxdi1kkyvpa10dydx02sjcwb"))))
|
||||||
|
(properties `((upstream-name . "lintr")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-codetools" ,r-codetools)
|
||||||
|
("r-crayon" ,r-crayon)
|
||||||
|
("r-cyclocomp" ,r-cyclocomp)
|
||||||
|
("r-digest" ,r-digest)
|
||||||
|
("r-httr" ,r-httr)
|
||||||
|
("r-jsonlite" ,r-jsonlite)
|
||||||
|
("r-knitr" ,r-knitr)
|
||||||
|
("r-rex" ,r-rex)
|
||||||
|
("r-rstudioapi" ,r-rstudioapi)
|
||||||
|
("r-stringdist" ,r-stringdist)
|
||||||
|
("r-testthat" ,r-testthat)
|
||||||
|
("r-xml2" ,r-xml2)
|
||||||
|
("r-xmlparsedata" ,r-xmlparsedata)))
|
||||||
|
(home-page "https://github.com/jimhester/lintr")
|
||||||
|
(synopsis "Linter for R code")
|
||||||
|
(description "This package checks adherence to a given style, syntax
|
||||||
|
errors and possible semantic issues. It supports on the fly checking of R
|
||||||
|
code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public r-sctransform
|
(define-public r-sctransform
|
||||||
(package
|
(package
|
||||||
(name "r-sctransform")
|
(name "r-sctransform")
|
||||||
|
@ -852,15 +852,16 @@ cannot sign messages in OpenBSD format yet.")
|
|||||||
(define-public enchive
|
(define-public enchive
|
||||||
(package
|
(package
|
||||||
(name "enchive")
|
(name "enchive")
|
||||||
(version "3.4")
|
(version "3.5")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (string-append "https://github.com/skeeto/" name "/archive/"
|
(uri (git-reference
|
||||||
version ".tar.gz"))
|
(url "https://github.com/skeeto/enchive")
|
||||||
(sha256
|
(commit version)))
|
||||||
(base32
|
(sha256
|
||||||
"17hrxpp4cpn10bk48sfvfjc8hghky34agsnypam1v9f36kbalqfk"))
|
(base32
|
||||||
(file-name (string-append name "-" version ".tar.gz"))))
|
"0fdrfc5l42lj2bvmv9dmkmhmm7qiszwk7cmdvnqad3fs7652g0qa"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; no check target '
|
'(#:tests? #f ; no check target '
|
||||||
|
@ -19734,6 +19734,54 @@ You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
|
|||||||
@code{tao-theme-use-height}.")
|
@code{tao-theme-use-height}.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public emacs-almost-mono-themes
|
||||||
|
(let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "emacs-almost-mono-themes")
|
||||||
|
(version (git-version "0" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/cryon/almost-mono-themes.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/cryon/almost-mono-themes")
|
||||||
|
(synopsis "Almost monochromatic themes for emacs in a few variants")
|
||||||
|
(description
|
||||||
|
"This package provides a collection of almost monochrome Emacs themes:
|
||||||
|
@code{almost-mono-black} and @code{almost-mono-white}.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public emacs-quasi-monochrome
|
||||||
|
(let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "emacs-quasi-monochrome")
|
||||||
|
(version (git-version "1.2" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/lbolla/emacs-quasi-monochrome.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/lbolla/emacs-quasi-monochrome")
|
||||||
|
(synopsis "Dark color theme for Emacs")
|
||||||
|
(description
|
||||||
|
"This package provides a dark color theme with a black background, high
|
||||||
|
contrast and few colors.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public emacs-doom-themes
|
(define-public emacs-doom-themes
|
||||||
(package
|
(package
|
||||||
(name "emacs-doom-themes")
|
(name "emacs-doom-themes")
|
||||||
|
@ -186,7 +186,7 @@ by the b43-open driver of Linux-libre.")
|
|||||||
(define-public seabios
|
(define-public seabios
|
||||||
(package
|
(package
|
||||||
(name "seabios")
|
(name "seabios")
|
||||||
(version "1.12.1")
|
(version "1.13.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
@ -195,10 +195,10 @@ by the b43-open driver of Linux-libre.")
|
|||||||
(commit (string-append "rel-" version))))
|
(commit (string-append "rel-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1g9y03r5ky58q2g9rhbwfhs42z0zb9f59wfxpwh6zjqa6fyv1r80"))))
|
(base32 "1n1bd6msfs7xn8844sz2qnm7hb5x2qfl3zb06kp4bx9vdc3i6619"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-2" ,python-2)))
|
`(("python" ,python-wrapper)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no check target
|
`(#:tests? #f ; no check target
|
||||||
#:phases
|
#:phases
|
||||||
|
@ -117,7 +117,7 @@ the Obsidian icon theme.")
|
|||||||
(define-public gnome-shell-extension-dash-to-dock
|
(define-public gnome-shell-extension-dash-to-dock
|
||||||
(package
|
(package
|
||||||
(name "gnome-shell-extension-dash-to-dock")
|
(name "gnome-shell-extension-dash-to-dock")
|
||||||
(version "65")
|
(version "66")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -126,7 +126,7 @@ the Obsidian icon theme.")
|
|||||||
version))))
|
version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ln49l9s0yfl30pi77pz7xlmh63l9vjppi863kry5lay10dsvz47"))
|
"04krl6rxlp1qc97psraf2kwin7h0mx4c7pnfpi7vhplmvasrwkfh"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
(define-module (gnu packages kde)
|
(define-module (gnu packages kde)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system qt)
|
#:use-module (guix build-system qt)
|
||||||
|
#:use-module (guix deprecation)
|
||||||
#: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:)
|
||||||
@ -37,6 +38,7 @@
|
|||||||
#:use-module (gnu packages apr)
|
#:use-module (gnu packages apr)
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
|
#:use-module (gnu packages code)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages documentation)
|
#:use-module (gnu packages documentation)
|
||||||
@ -145,7 +147,7 @@ projects.")
|
|||||||
(define-public kdevelop
|
(define-public kdevelop
|
||||||
(package
|
(package
|
||||||
(name "kdevelop")
|
(name "kdevelop")
|
||||||
(version "5.1.2")
|
(version "5.4.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -154,73 +156,79 @@ projects.")
|
|||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1iqaq0ilijjigqb34v5wq9in6bnjs0p9cmgbygjmy53xhh3yhm5g"))))
|
"08vhbg9ql0402bw3y3xw1kdxhig9sv3ss8g0h4477vy3z17m1h4j"))))
|
||||||
(build-system cmake-build-system)
|
(build-system qt-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
|
("shared-mime-info" ,shared-mime-info)
|
||||||
("qttools" ,qttools)))
|
("qttools" ,qttools)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("kdevplatform" ,kdevplatform)
|
`(("boost" ,boost)
|
||||||
("kdevelop-pg-qt" ,kdevelop-pg-qt)
|
("clang" ,clang)
|
||||||
("qtbase" ,qtbase)
|
("grantlee" ,grantlee)
|
||||||
("qtdeclarative" ,qtdeclarative)
|
|
||||||
("qtquickcontrols" ,qtquickcontrols)
|
|
||||||
("qtwebkit" ,qtwebkit)
|
|
||||||
("karchive" ,karchive)
|
("karchive" ,karchive)
|
||||||
("kcmutils" ,kcmutils)
|
("kcmutils" ,kcmutils)
|
||||||
("kconfig" ,kconfig)
|
("kcrash" ,kcrash)
|
||||||
("kdeclarative" ,kdeclarative)
|
("kdeclarative" ,kdeclarative)
|
||||||
("kdoctools" ,kdoctools)
|
("kdoctools" ,kdoctools)
|
||||||
("kguiaddons" ,kguiaddons)
|
("kguiaddons" ,kguiaddons)
|
||||||
("ki18n" ,ki18n)
|
("ki18n" ,ki18n)
|
||||||
("kio" ,kio)
|
|
||||||
("kiconthemes" ,kiconthemes)
|
("kiconthemes" ,kiconthemes)
|
||||||
|
("kio" ,kio) ;; not checked as requirement
|
||||||
("kitemmodels" ,kitemmodels)
|
("kitemmodels" ,kitemmodels)
|
||||||
("kitemviews" ,kitemviews)
|
("kitemviews" ,kitemviews)
|
||||||
("kjobwidgets" ,kjobwidgets)
|
("kjobwidgets" ,kjobwidgets)
|
||||||
("knotifyconfig" ,knotifyconfig)
|
|
||||||
("knotifications" ,knotifications)
|
("knotifications" ,knotifications)
|
||||||
|
("knotifyconfig" ,knotifyconfig)
|
||||||
("kparts" ,kparts)
|
("kparts" ,kparts)
|
||||||
("kcrash" ,kcrash)
|
("kservice" ,kservice)
|
||||||
("knewstuff" ,knewstuff)
|
|
||||||
("krunner" ,krunner)
|
|
||||||
("kxmlgui" ,kxmlgui)
|
|
||||||
("libksysguard" ,libksysguard)
|
|
||||||
("threadweaver" ,threadweaver)
|
|
||||||
("ktexteditor" ,ktexteditor)
|
("ktexteditor" ,ktexteditor)
|
||||||
("kwindowsystem" ,kwindowsystem)
|
("kwindowsystem" ,kwindowsystem)
|
||||||
|
("kxmlgui" ,kxmlgui)
|
||||||
|
("libkomparediff2" ,libkomparediff2)
|
||||||
|
("oxygen-icons" ,oxygen-icons)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("qtdeclarative" ,qtdeclarative)
|
||||||
|
("qtquickcontrols" ,qtquickcontrols) ;; not checked as requirement
|
||||||
|
("qtquickcontrols2" ,qtquickcontrols2) ;; not checked as requirement
|
||||||
|
("qtwebkit" ,qtwebkit)
|
||||||
|
("threadweaver" ,threadweaver)
|
||||||
|
|
||||||
|
;; recommendes
|
||||||
|
("astyle" ,astyle)
|
||||||
|
("kdevelop-pg-qt" ,kdevelop-pg-qt)
|
||||||
|
("libksysguard" ,libksysguard)
|
||||||
|
|
||||||
|
;; optional
|
||||||
|
("apr" ,apr) ; required for subversion support
|
||||||
|
("apr-util" ,apr-util) ; required for subversion support
|
||||||
|
("attica" ,attica)
|
||||||
|
("kconfigwidgets" ,kconfigwidgets)
|
||||||
|
("knewstuff" ,knewstuff)
|
||||||
|
("krunner" ,krunner)
|
||||||
|
;; TODO: OktetaGui, OktetaKastenControllers
|
||||||
("plasma" ,plasma-framework)
|
("plasma" ,plasma-framework)
|
||||||
("grantlee" ,grantlee)
|
;; TODO: purpose
|
||||||
("libepoxy" ,libepoxy)
|
("sonnet" ,sonnet)
|
||||||
("clang" ,clang)
|
("subversion" ,subversion)))
|
||||||
("shared-mime-info" ,shared-mime-info)))
|
|
||||||
|
;; run-time packages - TODO
|
||||||
|
;; ClazyStandalone
|
||||||
|
;; Cppcheck
|
||||||
|
;; heaptrack
|
||||||
|
;; heaptrack_gui
|
||||||
|
;; meson
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:tests? #f ;; there are some issues with the test suite
|
||||||
(modify-phases %standard-phases
|
#:phases
|
||||||
(delete 'check) ;; there are some issues with the test suite
|
(modify-phases (@ (guix build qt-build-system) %standard-phases)
|
||||||
(add-after 'install 'wrap-executable
|
(add-before 'configure 'add-include-path
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(substitute* "cmake/modules/FindClang.cmake"
|
||||||
(kdevplatform (assoc-ref inputs "kdevplatform"))
|
(("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
|
||||||
(kio (assoc-ref inputs "kio"))
|
(string-append line " " (assoc-ref inputs "clang") "/lib")))
|
||||||
(kcmutils (assoc-ref inputs "kcmutils"))
|
#t)))))
|
||||||
(qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
|
|
||||||
(qtbase (assoc-ref inputs "qtbase"))
|
|
||||||
(qtdeclarative (assoc-ref inputs "qtdeclarative"))
|
|
||||||
(qml "/qml"))
|
|
||||||
(wrap-program (string-append out "/bin/kdevelop")
|
|
||||||
`("XDG_DATA_DIRS" ":" prefix
|
|
||||||
,(map (lambda (s) (string-append s "/share"))
|
|
||||||
(list out kdevplatform kcmutils)))
|
|
||||||
`("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
|
|
||||||
(,(string-append qtbase "/plugins/platforms")))
|
|
||||||
`("QT_PLUGIN_PATH" ":" prefix
|
|
||||||
,(map (lambda (s) (string-append s "/lib/plugins"))
|
|
||||||
(list out kdevplatform kio)))
|
|
||||||
`("QML2_IMPORT_PATH" ":" prefix
|
|
||||||
(,(string-append qtquickcontrols qml)
|
|
||||||
,(string-append qtdeclarative qml))))))))))
|
|
||||||
(home-page "https://kdevelop.org")
|
(home-page "https://kdevelop.org")
|
||||||
(synopsis "IDE for C, C++, Python, Javascript and PHP")
|
(synopsis "IDE for C, C++, Python, Javascript and PHP")
|
||||||
(description "The KDevelop IDE provides semantic syntax highlighting, as
|
(description "The KDevelop IDE provides semantic syntax highlighting, as
|
||||||
@ -233,7 +241,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
|
|||||||
(define-public kdevelop-pg-qt
|
(define-public kdevelop-pg-qt
|
||||||
(package
|
(package
|
||||||
(name "kdevelop-pg-qt")
|
(name "kdevelop-pg-qt")
|
||||||
(version "2.0.0")
|
(version "2.2.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
@ -241,7 +249,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
|
|||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1av8plqz7hyhrd07avnmn6ryslqlarmxn0pw7swzvb6ddiqp59j4"))))
|
(base32 "15ja19gg6x7gww4ch12hy585x55ghbkpsiyr8fqiyjk0j6v07hh5"))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||||
(inputs
|
(inputs
|
||||||
@ -253,77 +261,8 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
|
|||||||
for some KDevelop language plugins (Ruby, PHP, CSS...).")
|
for some KDevelop language plugins (Ruby, PHP, CSS...).")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public kdevplatform
|
;; kdevplatform was merged into kdevelop as of 5.2.x
|
||||||
(package
|
(define-deprecated kdevplatform kdevelop kdevelop)
|
||||||
(name "kdevplatform")
|
|
||||||
(version "5.1.2")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "mirror://kde/stable/kdevelop"
|
|
||||||
"/" version "/src/kdevplatform-"
|
|
||||||
version ".tar.xz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0jk6g1kiqpyjy8pca0236b9944gxqnymqv8ny6m8nrraannxs8p6"))))
|
|
||||||
(build-system cmake-build-system)
|
|
||||||
(native-inputs
|
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
|
||||||
("pkg-config" ,pkg-config)))
|
|
||||||
(inputs
|
|
||||||
`(("apr" ,apr)
|
|
||||||
("apr-util" ,apr-util)
|
|
||||||
("boost" ,boost)
|
|
||||||
("karchive" ,karchive)
|
|
||||||
("kconfigwidgets" ,kconfigwidgets)
|
|
||||||
("kcmutils" ,kcmutils)
|
|
||||||
("kiconthemes" ,kiconthemes)
|
|
||||||
("kdeclarative" ,kdeclarative)
|
|
||||||
("kdoctools" ,kdoctools)
|
|
||||||
("kguiaddons" ,kguiaddons)
|
|
||||||
("kinit" ,kinit)
|
|
||||||
("kitemmodels" ,kitemmodels)
|
|
||||||
("knewstuff" ,knewstuff)
|
|
||||||
("knotifications" ,knotifications)
|
|
||||||
("knotifyconfig" ,knotifyconfig)
|
|
||||||
("kwindowsystem" ,kwindowsystem)
|
|
||||||
("kio" ,kio)
|
|
||||||
("ki18n" ,ki18n)
|
|
||||||
("kparts" ,kparts)
|
|
||||||
("kservice" ,kservice)
|
|
||||||
("grantlee" ,grantlee)
|
|
||||||
("libkomparediff2" ,libkomparediff2)
|
|
||||||
("sonnet" ,sonnet)
|
|
||||||
("threadweaver" ,threadweaver)
|
|
||||||
("ktexteditor" ,ktexteditor)
|
|
||||||
("qtbase" ,qtbase)
|
|
||||||
("qtdeclarative" ,qtdeclarative)
|
|
||||||
("qtscript" ,qtscript)
|
|
||||||
("qtwebkit" ,qtwebkit)
|
|
||||||
("qtx11extras" ,qtx11extras)
|
|
||||||
("plasma" ,plasma-framework)
|
|
||||||
("subversion" ,subversion)
|
|
||||||
("zlib" ,zlib)))
|
|
||||||
(arguments
|
|
||||||
`(#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(delete 'check)
|
|
||||||
(add-after 'install 'check
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(let ((out (assoc-ref outputs "out")))
|
|
||||||
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
|
|
||||||
(setenv "QT_PLUGIN_PATH"
|
|
||||||
(string-append out "/lib/plugins:"
|
|
||||||
(getenv "QT_PLUGIN_PATH")))
|
|
||||||
(setenv "XDG_DATA_DIRS"
|
|
||||||
(string-append out "/share:"
|
|
||||||
(getenv "XDG_DATA_DIRS")))
|
|
||||||
(invoke "ctest" "-R" ; almost all tests require a display
|
|
||||||
"filteringstrategy|kdevvarlengtharray|kdevhash")))))))
|
|
||||||
(home-page "https://github.com/KDE/kdevplatform")
|
|
||||||
(synopsis "Framework to build integrated development environments (IDEs)")
|
|
||||||
(description "KDevPlatform is the basis of KDevelop and contains some
|
|
||||||
plugins, as well as code to create plugins, or complete applications.")
|
|
||||||
(license license:gpl3+)))
|
|
||||||
|
|
||||||
(define-public krita
|
(define-public krita
|
||||||
(package
|
(package
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
||||||
;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
|
;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
|
||||||
|
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
@ -2522,12 +2523,6 @@ communication over HTTP.")
|
|||||||
(home-page "https://github.com/Corvusoft/restbed")
|
(home-page "https://github.com/Corvusoft/restbed")
|
||||||
(license license:agpl3+))))
|
(license license:agpl3+))))
|
||||||
|
|
||||||
(define fmt-restinio
|
|
||||||
(package
|
|
||||||
(inherit fmt)
|
|
||||||
(arguments
|
|
||||||
'(#:configure-flags '("-DCMAKE_CXX_FLAGS=-fPIC")))))
|
|
||||||
|
|
||||||
(define-public restinio
|
(define-public restinio
|
||||||
(package
|
(package
|
||||||
(name "restinio")
|
(name "restinio")
|
||||||
@ -2552,7 +2547,7 @@ communication over HTTP.")
|
|||||||
("sobjectizer" ,sobjectizer)))
|
("sobjectizer" ,sobjectizer)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("asio", asio)
|
`(("asio", asio)
|
||||||
("fmt" ,fmt-restinio)
|
("fmt" ,fmt)
|
||||||
("http-parser", http-parser)))
|
("http-parser", http-parser)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("-DRESTINIO_INSTALL=on")
|
`(#:configure-flags '("-DRESTINIO_INSTALL=on")
|
||||||
@ -2591,7 +2586,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
|
|||||||
("readline" ,readline)
|
("readline" ,readline)
|
||||||
("jsoncpp" ,jsoncpp)
|
("jsoncpp" ,jsoncpp)
|
||||||
("openssl" ,openssl)
|
("openssl" ,openssl)
|
||||||
("fmt" ,fmt-restinio)))
|
("fmt" ,fmt)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("argon2" ,argon2) ; TODO: Needed for the pkg-config .pc file to work?
|
`(("argon2" ,argon2) ; TODO: Needed for the pkg-config .pc file to work?
|
||||||
("msgpack" ,msgpack))) ;included in several installed headers
|
("msgpack" ,msgpack))) ;included in several installed headers
|
||||||
@ -2822,3 +2817,33 @@ to be a teaching tool and presents the subnetting results as
|
|||||||
easy-to-understand binary values.")
|
easy-to-understand binary values.")
|
||||||
(home-page "http://jodies.de/ipcalc")
|
(home-page "http://jodies.de/ipcalc")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public vde2
|
||||||
|
(package
|
||||||
|
(name "vde2")
|
||||||
|
(version "2.3.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "mirror://sourceforge/vde/vde2/2.3.2/vde2-2.3.2.tar.gz")
|
||||||
|
(sha256
|
||||||
|
(base32 "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:parallel-build? #f)) ; Build fails if #t.
|
||||||
|
(inputs
|
||||||
|
`(("python" ,python)
|
||||||
|
("libpcap" ,libpcap)
|
||||||
|
("openssl" ,openssl-1.0))) ; Build fails with 1.1.
|
||||||
|
(home-page "https://github.com/virtualsquare/vde-2")
|
||||||
|
(synopsis "Virtual Distributed Ethernet")
|
||||||
|
(description "VDE is a set of programs to provide virtual software-defined
|
||||||
|
Ethernet network interface controllers across multiple virtual or
|
||||||
|
physical, local or remote devices. The VDE architecture provides
|
||||||
|
virtual counterparts to hardware components such as switches and
|
||||||
|
cables.")
|
||||||
|
(license (list license:gpl2
|
||||||
|
license:lgpl2.1 ; libvdeplug
|
||||||
|
(license:non-copyleft ; slirpvde
|
||||||
|
"file://COPYING.slirpvde"
|
||||||
|
"See COPYING.slirpvde in the distribution.")))))
|
||||||
|
@ -183,3 +183,11 @@ applications. Applications built with NSS can support SSL v2 and v3, TLS,
|
|||||||
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
|
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
|
||||||
security standards.")
|
security standards.")
|
||||||
(license license:mpl2.0)))
|
(license license:mpl2.0)))
|
||||||
|
|
||||||
|
(define nss/fixed
|
||||||
|
(package
|
||||||
|
(inherit nss)
|
||||||
|
(source (origin
|
||||||
|
(inherit (package-source nss))
|
||||||
|
(patches (append (search-patches "nss-CVE-2019-11745.patch")
|
||||||
|
(origin-patches (package-source nss))))))))
|
||||||
|
24
gnu/packages/patches/nss-CVE-2019-11745.patch
Normal file
24
gnu/packages/patches/nss-CVE-2019-11745.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Fix CVE-2019-11745 (Out-of-bounds write when passing an output buffer smaller
|
||||||
|
than the block size to NSC_EncryptUpdate).
|
||||||
|
|
||||||
|
Copied from Debian, equivalent to upstream fix:
|
||||||
|
<https://hg.mozilla.org/projects/nss/rev/1e22a0c93afe9f46545560c86caedef9dab6cfda>.
|
||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Craig Disselkoen <cdisselk@cs.ucsd.edu>
|
||||||
|
# Date 1574189697 25200
|
||||||
|
# Node ID 60bca7c6dc6dc44579b9b3e0fb62ca3b82d92eec
|
||||||
|
# Parent 64e55c9f658e2a75f0835d00a8a1cdc2f25c74d6
|
||||||
|
Bug 1586176 - EncryptUpdate should use maxout not block size. r=franziskus
|
||||||
|
|
||||||
|
--- a/nss/lib/softoken/pkcs11c.c
|
||||||
|
+++ b/nss/lib/softoken/pkcs11c.c
|
||||||
|
@@ -1285,7 +1285,7 @@ NSC_EncryptUpdate(CK_SESSION_HANDLE hSes
|
||||||
|
}
|
||||||
|
/* encrypt the current padded data */
|
||||||
|
rv = (*context->update)(context->cipherInfo, pEncryptedPart,
|
||||||
|
- &padoutlen, context->blockSize, context->padBuf,
|
||||||
|
+ &padoutlen, maxout, context->padBuf,
|
||||||
|
context->blockSize);
|
||||||
|
if (rv != SECSuccess) {
|
||||||
|
return sftk_MapCryptError(PORT_GetError());
|
@ -174,6 +174,8 @@ different programming languages.")
|
|||||||
(base32
|
(base32
|
||||||
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
|
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("unzip" ,unzip)))
|
`(("unzip" ,unzip)))
|
||||||
(home-page "http://fmtlib.net/")
|
(home-page "http://fmtlib.net/")
|
||||||
|
@ -11768,19 +11768,41 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
|
|||||||
(define-public python-argcomplete
|
(define-public python-argcomplete
|
||||||
(package
|
(package
|
||||||
(name "python-argcomplete")
|
(name "python-argcomplete")
|
||||||
(version "1.7.0")
|
(version "1.10.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "argcomplete" version))
|
(uri (pypi-uri "argcomplete" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"11bwiw6j0nilgz81xnw6f1npyga3prp8asjqrm87cdr3ria5l03x"))))
|
"02jkc44drb0yjz6x28lvg6rj607n8r2irdpdvyylm8xnycn54zx3"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'embed-tool-references
|
||||||
|
(lambda _
|
||||||
|
(substitute* "argcomplete/bash_completion.d/python-argcomplete.sh"
|
||||||
|
((" grep")
|
||||||
|
(string-append " " (which "grep")))
|
||||||
|
((" egrep")
|
||||||
|
(string-append " " (which "egrep")))
|
||||||
|
(("elif which")
|
||||||
|
(string-append "elif " (which "which")))
|
||||||
|
(("\\$\\(which")
|
||||||
|
(string-append "$(" (which "which"))))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("grep" ,grep)
|
||||||
|
("which" ,which)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-pexpect" ,python-pexpect)
|
`(("python-coverage" ,python-coverage)
|
||||||
|
("python-flake8" ,python-flake8)
|
||||||
|
("python-pexpect" ,python-pexpect)
|
||||||
|
("python-wheel" ,python-wheel)
|
||||||
("tcsh" ,tcsh)
|
("tcsh" ,tcsh)
|
||||||
("bash-full" ,bash))) ;full Bash for 'test_file_completion'
|
("fish" ,fish)
|
||||||
|
("bash-full" ,bash))) ;full Bash for 'test_file_completion'
|
||||||
(home-page "https://github.com/kislyuk/argcomplete")
|
(home-page "https://github.com/kislyuk/argcomplete")
|
||||||
(synopsis "Shell tab completion for Python argparse")
|
(synopsis "Shell tab completion for Python argparse")
|
||||||
(description "argcomplete provides extensible command line tab completion
|
(description "argcomplete provides extensible command line tab completion
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
(define-public libssh
|
(define-public libssh
|
||||||
(package
|
(package
|
||||||
(name "libssh")
|
(name "libssh")
|
||||||
(version "0.9.2")
|
(version "0.9.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -79,23 +79,13 @@
|
|||||||
(commit (string-append "libssh-" version))))
|
(commit (string-append "libssh-" version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"14g4rvp91skn2hlsjyhkv58vhng65xrf34cfqffixa4al869hzgj"))
|
"175i3xybg69d5lb078334v6dd3njm743kww8f67ix9w33969rmzf"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(outputs '("out" "debug"))
|
(outputs '("out" "debug"))
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags '("-DWITH_GCRYPT=ON")
|
'(#:configure-flags '("-DWITH_GCRYPT=ON")
|
||||||
|
|
||||||
#:phases (modify-phases %standard-phases
|
|
||||||
(add-before 'configure 'avoid-werror
|
|
||||||
(lambda _
|
|
||||||
;; Avoid '-Werror'. Presumably this works fine with
|
|
||||||
;; gcc@8 on x86_64 but leads to errors with our older
|
|
||||||
;; compiler.
|
|
||||||
(substitute* "CompilerChecks.cmake"
|
|
||||||
(("-Werror=") "-W"))
|
|
||||||
#t)))
|
|
||||||
|
|
||||||
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
|
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(inputs `(("zlib" ,zlib)
|
(inputs `(("zlib" ,zlib)
|
||||||
|
@ -531,7 +531,7 @@ everything from small to very large projects with speed and efficiency.")
|
|||||||
(define-public libgit2
|
(define-public libgit2
|
||||||
(package
|
(package
|
||||||
(name "libgit2")
|
(name "libgit2")
|
||||||
(version "0.28.3")
|
(version "0.28.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
@ -540,7 +540,7 @@ everything from small to very large projects with speed and efficiency.")
|
|||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"07068flm9xi25wmcs65nyfg6a7ikgfv96i2nhgyj5gzs9gljqiz2"))
|
"171b25aym4q88bidc4c76y4l6jmdwifm3q9zjqsll0wjhlkycfy1"))
|
||||||
(patches (search-patches "libgit2-avoid-python.patch"
|
(patches (search-patches "libgit2-avoid-python.patch"
|
||||||
"libgit2-mtime-0.patch"))
|
"libgit2-mtime-0.patch"))
|
||||||
|
|
||||||
|
@ -1454,6 +1454,7 @@ projects while introducing many more.")
|
|||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags (list "--enable-shared"
|
`(#:configure-flags (list "--enable-shared"
|
||||||
|
"--disable-static"
|
||||||
"--as=yasm"
|
"--as=yasm"
|
||||||
;; Limit size to avoid CVE-2015-1258
|
;; Limit size to avoid CVE-2015-1258
|
||||||
"--size-limit=16384x16384"
|
"--size-limit=16384x16384"
|
||||||
|
@ -220,7 +220,7 @@ exec smbd $@")))
|
|||||||
("spice" ,spice)
|
("spice" ,spice)
|
||||||
("usbredir" ,usbredir)
|
("usbredir" ,usbredir)
|
||||||
("util-linux" ,util-linux)
|
("util-linux" ,util-linux)
|
||||||
;; ("vde2" ,vde2)
|
("vde2" ,vde2)
|
||||||
("virglrenderer" ,virglrenderer)
|
("virglrenderer" ,virglrenderer)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(native-inputs `(("gettext" ,gettext-minimal)
|
(native-inputs `(("gettext" ,gettext-minimal)
|
||||||
@ -268,7 +268,7 @@ server and embedded PowerPC, and S390 guests.")
|
|||||||
'("gettext")))
|
'("gettext")))
|
||||||
(inputs (fold alist-delete (package-inputs qemu)
|
(inputs (fold alist-delete (package-inputs qemu)
|
||||||
'("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
|
'("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
|
||||||
"usbredir" "libdrm" "libepoxy" "pulseaudio")))))
|
"usbredir" "libdrm" "libepoxy" "pulseaudio" "vde2")))))
|
||||||
|
|
||||||
;; The GRUB test suite fails with later versions of Qemu, so we
|
;; The GRUB test suite fails with later versions of Qemu, so we
|
||||||
;; keep it at 2.10 for now. See
|
;; keep it at 2.10 for now. See
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
|
;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
|
||||||
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
|
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
@ -42,6 +43,7 @@
|
|||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
#:use-module (gnu packages gnupg)
|
#:use-module (gnu packages gnupg)
|
||||||
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages nss)
|
#:use-module (gnu packages nss)
|
||||||
@ -134,7 +136,8 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
|
|||||||
(base32
|
(base32
|
||||||
"1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak"))))
|
"1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("coreutils" ,coreutils)
|
(inputs `(("guile" ,guile-2.2) ; for the wrapper scripts
|
||||||
|
("coreutils" ,coreutils)
|
||||||
("grep" ,grep)
|
("grep" ,grep)
|
||||||
("iproute2" ,iproute) ; for ‘ip’
|
("iproute2" ,iproute) ; for ‘ip’
|
||||||
("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’
|
("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’
|
||||||
@ -177,7 +180,7 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
|
|||||||
(let ((out (assoc-ref outputs "out")))
|
(let ((out (assoc-ref outputs "out")))
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (script)
|
(lambda (script)
|
||||||
(wrap-program script
|
(wrap-script (string-append out "/etc/vpnc/" script)
|
||||||
`("PATH" ":" prefix
|
`("PATH" ":" prefix
|
||||||
,(map (lambda (name)
|
,(map (lambda (name)
|
||||||
(let ((input (assoc-ref inputs name)))
|
(let ((input (assoc-ref inputs name)))
|
||||||
@ -189,8 +192,9 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
|
|||||||
"net-tools"
|
"net-tools"
|
||||||
"sed"
|
"sed"
|
||||||
"which")))))
|
"which")))))
|
||||||
(find-files (string-append out "/etc/vpnc/vpnc-script")
|
(list "vpnc-script-ptrtd"
|
||||||
"^vpnc-script"))
|
"vpnc-script-sshd"
|
||||||
|
"vpnc-script"))
|
||||||
#t))))
|
#t))))
|
||||||
#:tests? #f)) ; no tests
|
#:tests? #f)) ; no tests
|
||||||
(home-page "http://git.infradead.org/users/dwmw2/vpnc-scripts.git")
|
(home-page "http://git.infradead.org/users/dwmw2/vpnc-scripts.git")
|
||||||
|
@ -143,6 +143,8 @@ compressed video format.")
|
|||||||
(base32
|
(base32
|
||||||
"150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
|
"150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:configure-flags '("--disable-static")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(inputs
|
(inputs
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
@ -505,7 +505,7 @@ s-expression corresponding to that package, or #f on failure."
|
|||||||
((bioconductor)
|
((bioconductor)
|
||||||
;; Retry import from CRAN
|
;; Retry import from CRAN
|
||||||
(cran->guix-package package-name 'cran))
|
(cran->guix-package package-name 'cran))
|
||||||
(else #f)))))))
|
(else (values #f '()))))))))
|
||||||
|
|
||||||
(define* (cran-recursive-import package-name #:optional (repo 'cran))
|
(define* (cran-recursive-import package-name #:optional (repo 'cran))
|
||||||
(recursive-import package-name repo
|
(recursive-import package-name repo
|
||||||
|
@ -178,21 +178,20 @@ and LICENSE."
|
|||||||
(close-port port)
|
(close-port port)
|
||||||
pkg))
|
pkg))
|
||||||
|
|
||||||
(define %dual-license-rx
|
(define (string->license string)
|
||||||
;; Dual licensing is represented by a string such as "MIT OR Apache-2.0".
|
(filter-map (lambda (license)
|
||||||
;; This regexp matches that.
|
(and (not (string-null? license))
|
||||||
(make-regexp "^(.*) OR (.*)$"))
|
(not (any (lambda (elem) (string=? elem license))
|
||||||
|
'("AND" "OR" "WITH")))
|
||||||
|
(or (spdx-string->license license)
|
||||||
|
'unknown-license!)))
|
||||||
|
(string-split string (string->char-set " /"))))
|
||||||
|
|
||||||
(define* (crate->guix-package crate-name #:optional version)
|
(define* (crate->guix-package crate-name #:optional version)
|
||||||
"Fetch the metadata for CRATE-NAME from crates.io, and return the
|
"Fetch the metadata for CRATE-NAME from crates.io, and return the
|
||||||
`package' s-expression corresponding to that package, or #f on failure.
|
`package' s-expression corresponding to that package, or #f on failure.
|
||||||
When VERSION is specified, attempt to fetch that version; otherwise fetch the
|
When VERSION is specified, attempt to fetch that version; otherwise fetch the
|
||||||
latest version of CRATE-NAME."
|
latest version of CRATE-NAME."
|
||||||
(define (string->license string)
|
|
||||||
(match (regexp-exec %dual-license-rx string)
|
|
||||||
(#f (list (spdx-string->license string)))
|
|
||||||
(m (list (spdx-string->license (match:substring m 1))
|
|
||||||
(spdx-string->license (match:substring m 2))))))
|
|
||||||
|
|
||||||
(define (normal-dependency? dependency)
|
(define (normal-dependency? dependency)
|
||||||
(eq? (crate-dependency-kind dependency) 'normal))
|
(eq? (crate-dependency-kind dependency) 'normal))
|
||||||
|
@ -34,15 +34,16 @@
|
|||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix sets)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 rdelim)
|
#:use-module (ice-9 rdelim)
|
||||||
#:use-module (ice-9 receive)
|
#:use-module (ice-9 receive)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-9)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:export (factorize-uri
|
#:export (factorize-uri
|
||||||
|
|
||||||
flatten
|
flatten
|
||||||
@ -377,40 +378,53 @@ separated by PRED."
|
|||||||
(chr (char-downcase chr)))
|
(chr (char-downcase chr)))
|
||||||
name)))
|
name)))
|
||||||
|
|
||||||
|
(define (topological-sort nodes
|
||||||
|
node-dependencies
|
||||||
|
node-name)
|
||||||
|
"Perform a breadth-first traversal of the graph rooted at NODES, a list of
|
||||||
|
nodes, and return the list of nodes sorted in topological order. Call
|
||||||
|
NODE-DEPENDENCIES to obtain the dependencies of a node, and NODE-NAME to
|
||||||
|
obtain a node's uniquely identifying \"key\"."
|
||||||
|
(let loop ((nodes nodes)
|
||||||
|
(result '())
|
||||||
|
(visited (set)))
|
||||||
|
(match nodes
|
||||||
|
(()
|
||||||
|
result)
|
||||||
|
((head . tail)
|
||||||
|
(if (set-contains? visited (node-name head))
|
||||||
|
(loop tail result visited)
|
||||||
|
(let ((dependencies (node-dependencies head)))
|
||||||
|
(loop (append dependencies tail)
|
||||||
|
(cons head result)
|
||||||
|
(set-insert (node-name head) visited))))))))
|
||||||
|
|
||||||
(define* (recursive-import package-name repo
|
(define* (recursive-import package-name repo
|
||||||
#:key repo->guix-package guix-name
|
#:key repo->guix-package guix-name
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
"Generate a stream of package expressions for PACKAGE-NAME and all its
|
"Return a stream of package expressions for PACKAGE-NAME and all its
|
||||||
dependencies."
|
dependencies, sorted in topological order. For each package,
|
||||||
(define (exists? dependency)
|
call (REPO->GUIX-PACKAGE NAME REPO), which should return a package expression
|
||||||
(not (null? (find-packages-by-name (guix-name dependency)))))
|
and a list of dependencies; call (GUIX-NAME NAME) to obtain the Guix package
|
||||||
(define initial-state (list #f (list package-name) (list)))
|
name corresponding to the upstream name."
|
||||||
(define (step state)
|
(define-record-type <node>
|
||||||
(match state
|
(make-node name package dependencies)
|
||||||
((prev (next . rest) done)
|
node?
|
||||||
(define (handle? dep)
|
(name node-name)
|
||||||
(and
|
(package node-package)
|
||||||
(not (equal? dep next))
|
(dependencies node-dependencies))
|
||||||
(not (member dep done))
|
|
||||||
(not (exists? dep))))
|
|
||||||
(receive (package . dependencies) (repo->guix-package next repo)
|
|
||||||
(list
|
|
||||||
(if package package '()) ;; default #f on failure would interrupt
|
|
||||||
(if package
|
|
||||||
(lset-union equal? rest (filter handle? (car dependencies)))
|
|
||||||
rest)
|
|
||||||
(cons next done))))
|
|
||||||
((prev '() done)
|
|
||||||
(list #f '() done))))
|
|
||||||
|
|
||||||
;; Generate a lazy stream of package expressions for all unknown
|
(define (exists? name)
|
||||||
;; dependencies in the graph.
|
(not (null? (find-packages-by-name (guix-name name)))))
|
||||||
(stream-unfold
|
|
||||||
;; map: produce a stream element
|
(define (lookup-node name)
|
||||||
(match-lambda ((latest queue done) latest))
|
(receive (package dependencies) (repo->guix-package name repo)
|
||||||
;; predicate
|
(make-node name package dependencies)))
|
||||||
(match-lambda ((latest queue done) latest))
|
|
||||||
;; generator: update the queue
|
(map node-package
|
||||||
step
|
(topological-sort (list (lookup-node package-name))
|
||||||
;; initial state
|
(lambda (node)
|
||||||
(step initial-state)))
|
(map lookup-node
|
||||||
|
(remove exists?
|
||||||
|
(node-dependencies node))))
|
||||||
|
node-name)))
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-cran))
|
#:export (guix-import-cran))
|
||||||
@ -98,10 +97,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
|
|||||||
(if (assoc-ref opts 'recursive)
|
(if (assoc-ref opts 'recursive)
|
||||||
;; Recursive import
|
;; Recursive import
|
||||||
(map package->definition
|
(map package->definition
|
||||||
(reverse
|
(cran-recursive-import package-name
|
||||||
(stream->list
|
(or (assoc-ref opts 'repo) 'cran)))
|
||||||
(cran-recursive-import package-name
|
|
||||||
(or (assoc-ref opts 'repo) 'cran)))))
|
|
||||||
;; Single import
|
;; Single import
|
||||||
(let ((sexp (cran->guix-package package-name
|
(let ((sexp (cran->guix-package package-name
|
||||||
(or (assoc-ref opts 'repo) 'cran))))
|
(or (assoc-ref opts 'repo) 'cran))))
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-crate))
|
#:export (guix-import-crate))
|
||||||
@ -101,9 +100,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(crate-recursive-import name))
|
||||||
(stream->list
|
|
||||||
(crate-recursive-import name))))
|
|
||||||
(let ((sexp (crate->guix-package name version)))
|
(let ((sexp (crate->guix-package name version)))
|
||||||
(unless sexp
|
(unless sexp
|
||||||
(leave (G_ "failed to download meta-data for package '~a'~%")
|
(leave (G_ "failed to download meta-data for package '~a'~%")
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-elpa))
|
#:export (guix-import-elpa))
|
||||||
@ -101,10 +100,8 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(elpa-recursive-import package-name
|
||||||
(stream->list
|
(or (assoc-ref opts 'repo) 'gnu)))
|
||||||
(elpa-recursive-import package-name
|
|
||||||
(or (assoc-ref opts 'repo) 'gnu)))))
|
|
||||||
(let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo))))
|
(let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo))))
|
||||||
(unless sexp
|
(unless sexp
|
||||||
(leave (G_ "failed to download package '~a'~%") package-name))
|
(leave (G_ "failed to download package '~a'~%") package-name))
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-gem))
|
#:export (guix-import-gem))
|
||||||
@ -95,9 +94,7 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(gem-recursive-import package-name 'rubygems))
|
||||||
(stream->list
|
|
||||||
(gem-recursive-import package-name 'rubygems))))
|
|
||||||
(let ((sexp (gem->guix-package package-name)))
|
(let ((sexp (gem->guix-package package-name)))
|
||||||
(unless sexp
|
(unless sexp
|
||||||
(leave (G_ "failed to download meta-data for package '~a'~%")
|
(leave (G_ "failed to download meta-data for package '~a'~%")
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-hackage))
|
#:export (guix-import-hackage))
|
||||||
@ -130,9 +129,7 @@ version.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(apply hackage-recursive-import arguments))
|
||||||
(stream->list
|
|
||||||
(apply hackage-recursive-import arguments))))
|
|
||||||
;; Single import
|
;; Single import
|
||||||
(apply hackage->guix-package arguments))))
|
(apply hackage->guix-package arguments))))
|
||||||
(unless sexp (error-fn))
|
(unless sexp (error-fn))
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-opam))
|
#:export (guix-import-opam))
|
||||||
@ -94,9 +93,7 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(opam-recursive-import package-name))
|
||||||
(stream->list
|
|
||||||
(opam-recursive-import package-name))))
|
|
||||||
;; Single import
|
;; Single import
|
||||||
(let ((sexp (opam->guix-package package-name)))
|
(let ((sexp (opam->guix-package package-name)))
|
||||||
(unless sexp
|
(unless sexp
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-pypi))
|
#:export (guix-import-pypi))
|
||||||
@ -95,9 +94,7 @@ Import and convert the PyPI package for PACKAGE-NAME.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(pypi-recursive-import package-name))
|
||||||
(stream->list
|
|
||||||
(pypi-recursive-import package-name))))
|
|
||||||
;; Single import
|
;; Single import
|
||||||
(let ((sexp (pypi->guix-package package-name)))
|
(let ((sexp (pypi->guix-package package-name)))
|
||||||
(unless sexp
|
(unless sexp
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:export (guix-import-stackage))
|
#:export (guix-import-stackage))
|
||||||
@ -110,9 +109,7 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n"))
|
|||||||
`(define-public ,(string->symbol name)
|
`(define-public ,(string->symbol name)
|
||||||
,pkg))
|
,pkg))
|
||||||
(_ #f))
|
(_ #f))
|
||||||
(reverse
|
(apply stackage-recursive-import arguments))
|
||||||
(stream->list
|
|
||||||
(apply stackage-recursive-import arguments))))
|
|
||||||
;; Single import
|
;; Single import
|
||||||
(apply stackage->guix-package arguments))))
|
(apply stackage->guix-package arguments))))
|
||||||
(unless sexp (error-fn))
|
(unless sexp (error-fn))
|
||||||
|
357
tests/crate.scm
357
tests/crate.scm
@ -28,7 +28,7 @@
|
|||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-64))
|
#:use-module (srfi srfi-64))
|
||||||
|
|
||||||
(define test-crate
|
(define test-foo-crate
|
||||||
"{
|
"{
|
||||||
\"crate\": {
|
\"crate\": {
|
||||||
\"max_version\": \"1.0.0\",
|
\"max_version\": \"1.0.0\",
|
||||||
@ -50,7 +50,7 @@
|
|||||||
}
|
}
|
||||||
}")
|
}")
|
||||||
|
|
||||||
(define test-dependencies
|
(define test-foo-dependencies
|
||||||
"{
|
"{
|
||||||
\"dependencies\": [
|
\"dependencies\": [
|
||||||
{
|
{
|
||||||
@ -60,9 +60,182 @@
|
|||||||
]
|
]
|
||||||
}")
|
}")
|
||||||
|
|
||||||
|
(define test-root-crate
|
||||||
|
"{
|
||||||
|
\"crate\": {
|
||||||
|
\"max_version\": \"1.0.0\",
|
||||||
|
\"name\": \"root\",
|
||||||
|
\"description\": \"summary\",
|
||||||
|
\"homepage\": \"http://example.com\",
|
||||||
|
\"repository\": \"http://example.com\",
|
||||||
|
\"keywords\": [\"dummy\" \"test\"],
|
||||||
|
\"categories\": [\"test\"]
|
||||||
|
\"actual_versions\": [
|
||||||
|
{ \"id\": \"foo\",
|
||||||
|
\"num\": \"1.0.0\",
|
||||||
|
\"license\": \"MIT OR Apache-2.0\",
|
||||||
|
\"links\": {
|
||||||
|
\"dependencies\": \"/api/v1/crates/root/1.0.0/dependencies\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-root-dependencies
|
||||||
|
"{
|
||||||
|
\"dependencies\": [
|
||||||
|
{
|
||||||
|
\"crate_id\": \"intermediate-1\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
\"crate_id\": \"intermediate-2\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\"crate_id\": \"leaf-alice\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
\"crate_id\": \"leaf-bob\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-intermediate-1-crate
|
||||||
|
"{
|
||||||
|
\"crate\": {
|
||||||
|
\"max_version\": \"1.0.0\",
|
||||||
|
\"name\": \"intermediate-1\",
|
||||||
|
\"description\": \"summary\",
|
||||||
|
\"homepage\": \"http://example.com\",
|
||||||
|
\"repository\": \"http://example.com\",
|
||||||
|
\"keywords\": [\"dummy\" \"test\"],
|
||||||
|
\"categories\": [\"test\"]
|
||||||
|
\"actual_versions\": [
|
||||||
|
{ \"id\": \"intermediate-1\",
|
||||||
|
\"num\": \"1.0.0\",
|
||||||
|
\"license\": \"MIT OR Apache-2.0\",
|
||||||
|
\"links\": {
|
||||||
|
\"dependencies\": \"/api/v1/crates/intermediate-1/1.0.0/dependencies\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-intermediate-1-dependencies
|
||||||
|
"{
|
||||||
|
\"dependencies\": [
|
||||||
|
{
|
||||||
|
\"crate_id\": \"intermediate-2\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
\"crate_id\": \"leaf-alice\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
\"crate_id\": \"leaf-bob\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-intermediate-2-crate
|
||||||
|
"{
|
||||||
|
\"crate\": {
|
||||||
|
\"max_version\": \"1.0.0\",
|
||||||
|
\"name\": \"intermediate-2\",
|
||||||
|
\"description\": \"summary\",
|
||||||
|
\"homepage\": \"http://example.com\",
|
||||||
|
\"repository\": \"http://example.com\",
|
||||||
|
\"keywords\": [\"dummy\" \"test\"],
|
||||||
|
\"categories\": [\"test\"]
|
||||||
|
\"actual_versions\": [
|
||||||
|
{ \"id\": \"intermediate-2\",
|
||||||
|
\"num\": \"1.0.0\",
|
||||||
|
\"license\": \"MIT OR Apache-2.0\",
|
||||||
|
\"links\": {
|
||||||
|
\"dependencies\": \"/api/v1/crates/intermediate-2/1.0.0/dependencies\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-intermediate-2-dependencies
|
||||||
|
"{
|
||||||
|
\"dependencies\": [
|
||||||
|
{
|
||||||
|
\"crate_id\": \"leaf-bob\",
|
||||||
|
\"kind\": \"normal\",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-leaf-alice-crate
|
||||||
|
"{
|
||||||
|
\"crate\": {
|
||||||
|
\"max_version\": \"1.0.0\",
|
||||||
|
\"name\": \"leaf-alice\",
|
||||||
|
\"description\": \"summary\",
|
||||||
|
\"homepage\": \"http://example.com\",
|
||||||
|
\"repository\": \"http://example.com\",
|
||||||
|
\"keywords\": [\"dummy\" \"test\"],
|
||||||
|
\"categories\": [\"test\"]
|
||||||
|
\"actual_versions\": [
|
||||||
|
{ \"id\": \"leaf-alice\",
|
||||||
|
\"num\": \"1.0.0\",
|
||||||
|
\"license\": \"MIT OR Apache-2.0\",
|
||||||
|
\"links\": {
|
||||||
|
\"dependencies\": \"/api/v1/crates/leaf-alice/1.0.0/dependencies\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-leaf-alice-dependencies
|
||||||
|
"{
|
||||||
|
\"dependencies\": []
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-leaf-bob-crate
|
||||||
|
"{
|
||||||
|
\"crate\": {
|
||||||
|
\"max_version\": \"1.0.0\",
|
||||||
|
\"name\": \"leaf-bob\",
|
||||||
|
\"description\": \"summary\",
|
||||||
|
\"homepage\": \"http://example.com\",
|
||||||
|
\"repository\": \"http://example.com\",
|
||||||
|
\"keywords\": [\"dummy\" \"test\"],
|
||||||
|
\"categories\": [\"test\"]
|
||||||
|
\"actual_versions\": [
|
||||||
|
{ \"id\": \"leaf-bob\",
|
||||||
|
\"num\": \"1.0.0\",
|
||||||
|
\"license\": \"MIT OR Apache-2.0\",
|
||||||
|
\"links\": {
|
||||||
|
\"dependencies\": \"/api/v1/crates/leaf-bob/1.0.0/dependencies\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}")
|
||||||
|
|
||||||
|
(define test-leaf-bob-dependencies
|
||||||
|
"{
|
||||||
|
\"dependencies\": []
|
||||||
|
}")
|
||||||
|
|
||||||
(define test-source-hash
|
(define test-source-hash
|
||||||
"")
|
"")
|
||||||
|
|
||||||
|
(define string->license
|
||||||
|
(@@ (guix import crate) string->license))
|
||||||
|
|
||||||
(test-begin "crate")
|
(test-begin "crate")
|
||||||
|
|
||||||
(test-equal "guix-package->crate-name"
|
(test-equal "guix-package->crate-name"
|
||||||
@ -79,14 +252,14 @@
|
|||||||
(lambda (url . rest)
|
(lambda (url . rest)
|
||||||
(match url
|
(match url
|
||||||
("https://crates.io/api/v1/crates/foo"
|
("https://crates.io/api/v1/crates/foo"
|
||||||
(open-input-string test-crate))
|
(open-input-string test-foo-crate))
|
||||||
("https://crates.io/api/v1/crates/foo/1.0.0/download"
|
("https://crates.io/api/v1/crates/foo/1.0.0/download"
|
||||||
(set! test-source-hash
|
(set! test-source-hash
|
||||||
(bytevector->nix-base32-string
|
(bytevector->nix-base32-string
|
||||||
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
(open-input-string "empty file\n"))
|
(open-input-string "empty file\n"))
|
||||||
("https://crates.io/api/v1/crates/foo/1.0.0/dependencies"
|
("https://crates.io/api/v1/crates/foo/1.0.0/dependencies"
|
||||||
(open-input-string test-dependencies))
|
(open-input-string test-foo-dependencies))
|
||||||
(_ (error "Unexpected URL: " url)))))
|
(_ (error "Unexpected URL: " url)))))
|
||||||
(match (crate->guix-package "foo")
|
(match (crate->guix-package "foo")
|
||||||
(('package
|
(('package
|
||||||
@ -111,4 +284,180 @@
|
|||||||
(x
|
(x
|
||||||
(pk 'fail x #f)))))
|
(pk 'fail x #f)))))
|
||||||
|
|
||||||
|
(test-assert "cargo-recursive-import"
|
||||||
|
;; Replace network resources with sample data.
|
||||||
|
(mock ((guix http-client) http-fetch
|
||||||
|
(lambda (url . rest)
|
||||||
|
(match url
|
||||||
|
("https://crates.io/api/v1/crates/root"
|
||||||
|
(open-input-string test-root-crate))
|
||||||
|
("https://crates.io/api/v1/crates/root/1.0.0/download"
|
||||||
|
(set! test-source-hash
|
||||||
|
(bytevector->nix-base32-string
|
||||||
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
|
(open-input-string "empty file\n"))
|
||||||
|
("https://crates.io/api/v1/crates/root/1.0.0/dependencies"
|
||||||
|
(open-input-string test-root-dependencies))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-1"
|
||||||
|
(open-input-string test-intermediate-1-crate))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-1/1.0.0/download"
|
||||||
|
(set! test-source-hash
|
||||||
|
(bytevector->nix-base32-string
|
||||||
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
|
(open-input-string "empty file\n"))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-1/1.0.0/dependencies"
|
||||||
|
(open-input-string test-intermediate-1-dependencies))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-2"
|
||||||
|
(open-input-string test-intermediate-2-crate))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-2/1.0.0/download"
|
||||||
|
(set! test-source-hash
|
||||||
|
(bytevector->nix-base32-string
|
||||||
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
|
(open-input-string "empty file\n"))
|
||||||
|
("https://crates.io/api/v1/crates/intermediate-2/1.0.0/dependencies"
|
||||||
|
(open-input-string test-intermediate-2-dependencies))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-alice"
|
||||||
|
(open-input-string test-leaf-alice-crate))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-alice/1.0.0/download"
|
||||||
|
(set! test-source-hash
|
||||||
|
(bytevector->nix-base32-string
|
||||||
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
|
(open-input-string "empty file\n"))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-alice/1.0.0/dependencies"
|
||||||
|
(open-input-string test-leaf-alice-dependencies))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-bob"
|
||||||
|
(open-input-string test-leaf-bob-crate))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-bob/1.0.0/download"
|
||||||
|
(set! test-source-hash
|
||||||
|
(bytevector->nix-base32-string
|
||||||
|
(sha256 (string->bytevector "empty file\n" "utf-8"))))
|
||||||
|
(open-input-string "empty file\n"))
|
||||||
|
("https://crates.io/api/v1/crates/leaf-bob/1.0.0/dependencies"
|
||||||
|
(open-input-string test-leaf-bob-dependencies))
|
||||||
|
(_ (error "Unexpected URL: " url)))))
|
||||||
|
(match (crate-recursive-import "root")
|
||||||
|
;; rust-intermediate-2 has no dependency on the rust-leaf-alice package, so this is a valid ordering
|
||||||
|
((('package
|
||||||
|
('name "rust-leaf-alice")
|
||||||
|
('version (? string? ver))
|
||||||
|
('source
|
||||||
|
('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri ('crate-uri "leaf-alice" 'version))
|
||||||
|
('file-name
|
||||||
|
('string-append 'name "-" 'version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'cargo-build-system)
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license ('list 'license:expat 'license:asl2.0)))
|
||||||
|
('package
|
||||||
|
('name "rust-leaf-bob")
|
||||||
|
('version (? string? ver))
|
||||||
|
('source
|
||||||
|
('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri ('crate-uri "leaf-bob" 'version))
|
||||||
|
('file-name
|
||||||
|
('string-append 'name "-" 'version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'cargo-build-system)
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license ('list 'license:expat 'license:asl2.0)))
|
||||||
|
('package
|
||||||
|
('name "rust-intermediate-2")
|
||||||
|
('version (? string? ver))
|
||||||
|
('source
|
||||||
|
('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri ('crate-uri "intermediate-2" 'version))
|
||||||
|
('file-name
|
||||||
|
('string-append 'name "-" 'version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'cargo-build-system)
|
||||||
|
('arguments
|
||||||
|
('quasiquote
|
||||||
|
('#:cargo-inputs (("rust-leaf-bob" ('unquote rust-leaf-bob))))))
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license ('list 'license:expat 'license:asl2.0)))
|
||||||
|
('package
|
||||||
|
('name "rust-intermediate-1")
|
||||||
|
('version (? string? ver))
|
||||||
|
('source
|
||||||
|
('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri ('crate-uri "intermediate-1" 'version))
|
||||||
|
('file-name
|
||||||
|
('string-append 'name "-" 'version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'cargo-build-system)
|
||||||
|
('arguments
|
||||||
|
('quasiquote
|
||||||
|
('#:cargo-inputs (("rust-intermediate-2" ('unquote rust-intermediate-2))
|
||||||
|
("rust-leaf-alice" ('unquote rust-leaf-alice))
|
||||||
|
("rust-leaf-bob" ('unquote rust-leaf-bob))))))
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license ('list 'license:expat 'license:asl2.0)))
|
||||||
|
('package
|
||||||
|
('name "rust-root")
|
||||||
|
('version (? string? ver))
|
||||||
|
('source
|
||||||
|
('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri ('crate-uri "root" 'version))
|
||||||
|
('file-name
|
||||||
|
('string-append 'name "-" 'version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'cargo-build-system)
|
||||||
|
('arguments
|
||||||
|
('quasiquote
|
||||||
|
('#:cargo-inputs (("rust-intermediate-1" ('unquote rust-intermediate-1))
|
||||||
|
("rust-intermediate-2" ('unquote rust-intermediate-2))
|
||||||
|
("rust-leaf-alice" ('unquote rust-leaf-alice))
|
||||||
|
("rust-leaf-bob" ('unquote rust-leaf-bob))))))
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license ('list 'license:expat 'license:asl2.0))))
|
||||||
|
#t)
|
||||||
|
(x
|
||||||
|
(pk 'fail x #f)))))
|
||||||
|
|
||||||
|
(test-equal "licenses: MIT OR Apache-2.0"
|
||||||
|
'(license:expat license:asl2.0)
|
||||||
|
(string->license "MIT OR Apache-2.0"))
|
||||||
|
|
||||||
|
(test-equal "licenses: Apache-2.0 / MIT"
|
||||||
|
'(license:asl2.0 license:expat)
|
||||||
|
(string->license "Apache-2.0 / MIT"))
|
||||||
|
|
||||||
|
(test-equal "licenses: Apache-2.0 WITH LLVM-exception"
|
||||||
|
'(license:asl2.0 unknown-license!)
|
||||||
|
(string->license "Apache-2.0 WITH LLVM-exception"))
|
||||||
|
|
||||||
|
(test-equal "licenses: MIT/Apache-2.0 AND BSD-2-Clause"
|
||||||
|
'(license:expat license:asl2.0 unknown-license!)
|
||||||
|
(string->license "MIT/Apache-2.0 AND BSD-2-Clause"))
|
||||||
|
|
||||||
|
(test-equal "licenses: MIT/Apache-2.0"
|
||||||
|
'(license:expat license:asl2.0)
|
||||||
|
(string->license "MIT/Apache-2.0"))
|
||||||
|
|
||||||
(test-end "crate")
|
(test-end "crate")
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
#:use-module (gcrypt hash)
|
#:use-module (gcrypt hash)
|
||||||
#:use-module (guix tests)
|
#:use-module (guix tests)
|
||||||
#:use-module ((guix build utils) #:select (delete-file-recursively))
|
#:use-module ((guix build utils) #:select (delete-file-recursively))
|
||||||
#:use-module (srfi srfi-41)
|
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
@ -121,24 +120,23 @@
|
|||||||
(values (open-input-string test-bundler-json)
|
(values (open-input-string test-bundler-json)
|
||||||
(string-length test-bundler-json)))
|
(string-length test-bundler-json)))
|
||||||
(_ (error "Unexpected URL: " url)))))
|
(_ (error "Unexpected URL: " url)))))
|
||||||
(match (stream->list (gem-recursive-import "foo"))
|
(match (gem-recursive-import "foo")
|
||||||
((('package
|
((('package
|
||||||
('name "ruby-foo")
|
('name "ruby-bar")
|
||||||
('version "1.0.0")
|
('version "1.0.0")
|
||||||
('source
|
('source
|
||||||
('origin
|
('origin
|
||||||
('method 'url-fetch)
|
('method 'url-fetch)
|
||||||
('uri ('rubygems-uri "foo" 'version))
|
('uri ('rubygems-uri "bar" 'version))
|
||||||
('sha256
|
('sha256
|
||||||
('base32
|
('base32
|
||||||
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
|
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
|
||||||
('build-system 'ruby-build-system)
|
('build-system 'ruby-build-system)
|
||||||
('propagated-inputs
|
('propagated-inputs
|
||||||
('quasiquote
|
('quasiquote
|
||||||
(("bundler" ('unquote 'bundler))
|
(('"bundler" ('unquote 'bundler)))))
|
||||||
("ruby-bar" ('unquote 'ruby-bar)))))
|
('synopsis "Another cool gem")
|
||||||
('synopsis "A cool gem")
|
('description "Another cool gem")
|
||||||
('description "This package provides a cool gem")
|
|
||||||
('home-page "https://example.com")
|
('home-page "https://example.com")
|
||||||
('license ('list 'license:expat 'license:asl2.0)))
|
('license ('list 'license:expat 'license:asl2.0)))
|
||||||
('package
|
('package
|
||||||
@ -157,21 +155,22 @@
|
|||||||
('home-page "https://bundler.io/")
|
('home-page "https://bundler.io/")
|
||||||
('license 'license:expat))
|
('license 'license:expat))
|
||||||
('package
|
('package
|
||||||
('name "ruby-bar")
|
('name "ruby-foo")
|
||||||
('version "1.0.0")
|
('version "1.0.0")
|
||||||
('source
|
('source
|
||||||
('origin
|
('origin
|
||||||
('method 'url-fetch)
|
('method 'url-fetch)
|
||||||
('uri ('rubygems-uri "bar" 'version))
|
('uri ('rubygems-uri "foo" 'version))
|
||||||
('sha256
|
('sha256
|
||||||
('base32
|
('base32
|
||||||
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
|
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
|
||||||
('build-system 'ruby-build-system)
|
('build-system 'ruby-build-system)
|
||||||
('propagated-inputs
|
('propagated-inputs
|
||||||
('quasiquote
|
('quasiquote
|
||||||
(('"bundler" ('unquote 'bundler)))))
|
(("bundler" ('unquote 'bundler))
|
||||||
('synopsis "Another cool gem")
|
("ruby-bar" ('unquote 'ruby-bar)))))
|
||||||
('description "Another cool gem")
|
('synopsis "A cool gem")
|
||||||
|
('description "This package provides a cool gem")
|
||||||
('home-page "https://example.com")
|
('home-page "https://example.com")
|
||||||
('license ('list 'license:expat 'license:asl2.0))))
|
('license ('list 'license:expat 'license:asl2.0))))
|
||||||
#t)
|
#t)
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix build-system)
|
#:use-module (guix build-system)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (srfi srfi-64))
|
#:use-module (srfi srfi-64)
|
||||||
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(test-begin "import-utils")
|
(test-begin "import-utils")
|
||||||
|
|
||||||
@ -41,6 +42,26 @@
|
|||||||
'license:lgpl2.0
|
'license:lgpl2.0
|
||||||
(license->symbol license:lgpl2.0))
|
(license->symbol license:lgpl2.0))
|
||||||
|
|
||||||
|
(test-equal "recursive-import"
|
||||||
|
'((package ;package expressions in topological order
|
||||||
|
(name "bar"))
|
||||||
|
(package
|
||||||
|
(name "foo")
|
||||||
|
(inputs `(("bar" ,bar)))))
|
||||||
|
(recursive-import "foo" 'repo
|
||||||
|
#:repo->guix-package
|
||||||
|
(match-lambda*
|
||||||
|
(("foo" 'repo)
|
||||||
|
(values '(package
|
||||||
|
(name "foo")
|
||||||
|
(inputs `(("bar" ,bar))))
|
||||||
|
'("bar")))
|
||||||
|
(("bar" 'repo)
|
||||||
|
(values '(package
|
||||||
|
(name "bar"))
|
||||||
|
'())))
|
||||||
|
#:guix-name identity))
|
||||||
|
|
||||||
(test-assert "alist->package with simple source"
|
(test-assert "alist->package with simple source"
|
||||||
(let* ((meta '(("name" . "hello")
|
(let* ((meta '(("name" . "hello")
|
||||||
("version" . "2.10")
|
("version" . "2.10")
|
||||||
|
Loading…
Reference in New Issue
Block a user