Merge branch 'master' into core-updates
This commit is contained in:
commit
25ca46985c
|
@ -75,6 +75,7 @@ MODULES = \
|
|||
guix/discovery.scm \
|
||||
guix/git-download.scm \
|
||||
guix/hg-download.scm \
|
||||
guix/swh.scm \
|
||||
guix/monads.scm \
|
||||
guix/monad-repl.scm \
|
||||
guix/gexp.scm \
|
||||
|
@ -611,6 +612,7 @@ guix-binary.%.tar.xz:
|
|||
|
||||
dist-hook: $(distdir)/ChangeLog gen-AUTHORS gen-tarball-version
|
||||
dist-hook: assert-no-store-file-names
|
||||
dist-hook: doc-po-update
|
||||
|
||||
distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
|
||||
|
||||
|
|
|
@ -5060,7 +5060,7 @@ a derivation is the @code{derivation} procedure:
|
|||
[#:system (%current-system)] [#:references-graphs #f] @
|
||||
[#:allowed-references #f] [#:disallowed-references #f] @
|
||||
[#:leaked-env-vars #f] [#:local-build? #f] @
|
||||
[#:substitutable? #t]
|
||||
[#:substitutable? #t] [#:properties '()]
|
||||
Build a derivation with the given arguments, and return the resulting
|
||||
@code{<derivation>} object.
|
||||
|
||||
|
@ -5097,6 +5097,9 @@ When @var{substitutable?} is false, declare that substitutes of the
|
|||
derivation's output should not be used (@pxref{Substitutes}). This is
|
||||
useful, for instance, when building packages that capture details of the
|
||||
host CPU instruction set.
|
||||
|
||||
@var{properties} must be an association list describing ``properties'' of the
|
||||
derivation. It is kept as-is, uninterpreted, in the derivation.
|
||||
@end deffn
|
||||
|
||||
@noindent
|
||||
|
@ -5790,7 +5793,8 @@ information about monads.)
|
|||
[#:leaked-env-vars #f] @
|
||||
[#:script-name (string-append @var{name} "-builder")] @
|
||||
[#:deprecation-warnings #f] @
|
||||
[#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f]
|
||||
[#:local-build? #f] [#:substitutable? #t] @
|
||||
[#:properties '()] [#:guile-for-build #f]
|
||||
Return a derivation @var{name} that runs @var{exp} (a gexp) with
|
||||
@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is
|
||||
stored in a file called @var{script-name}. When @var{target} is true,
|
||||
|
@ -6229,6 +6233,10 @@ the end of the build log. This is useful when debugging build issues.
|
|||
@xref{Debugging Build Failures}, for tips and tricks on how to debug
|
||||
build issues.
|
||||
|
||||
This option has no effect when connecting to a remote daemon with a
|
||||
@code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET}
|
||||
variable}).
|
||||
|
||||
@item --keep-going
|
||||
@itemx -k
|
||||
Keep going when some of the derivations fail to build; return only once
|
||||
|
@ -9723,9 +9731,9 @@ environment variable---in addition to the per-user profiles
|
|||
provides all the tools one would expect for basic user and administrator
|
||||
tasks---including the GNU Core Utilities, the GNU Networking Utilities,
|
||||
the GNU Zile lightweight text editor, @command{find}, @command{grep},
|
||||
etc. The example above adds GNU@tie{}Screen and OpenSSH to those,
|
||||
taken from the @code{(gnu packages screen)} and @code{(gnu packages ssh)}
|
||||
modules (@pxref{Package Modules}). The
|
||||
etc. The example above adds GNU@tie{}Screen to those,
|
||||
taken from the @code{(gnu packages screen)}
|
||||
module (@pxref{Package Modules}). The
|
||||
@code{(list package output)} syntax can be used to add a specific output
|
||||
of a package:
|
||||
|
||||
|
|
|
@ -348,6 +348,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/perl-check.scm \
|
||||
%D%/packages/perl-web.scm \
|
||||
%D%/packages/photo.scm \
|
||||
%D%/packages/phabricator.scm \
|
||||
%D%/packages/php.scm \
|
||||
%D%/packages/pkg-config.scm \
|
||||
%D%/packages/plotutils.scm \
|
||||
|
@ -738,6 +739,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/geoclue-config.patch \
|
||||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
||||
%D%/packages/patches/ghc-haddock-library-unbundle.patch \
|
||||
%D%/packages/patches/ghostscript-CVE-2018-16509.patch \
|
||||
%D%/packages/patches/ghostscript-bug-699708.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-id.patch \
|
||||
|
@ -897,6 +899,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
|
||||
%D%/packages/patches/libjxr-fix-function-signature.patch \
|
||||
%D%/packages/patches/libjxr-fix-typos.patch \
|
||||
%D%/packages/patches/libopenshot-tests-with-system-libs.patch \
|
||||
%D%/packages/patches/libotr-test-auth-fix.patch \
|
||||
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \
|
||||
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
|
||||
|
@ -1149,6 +1152,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/scotch-build-parallelism.patch \
|
||||
%D%/packages/patches/scotch-graph-diam-64.patch \
|
||||
%D%/packages/patches/scotch-graph-induce-type-64.patch \
|
||||
%D%/packages/patches/scribus-poppler.patch \
|
||||
%D%/packages/patches/sdl-libx11-1.6.patch \
|
||||
%D%/packages/patches/seq24-rename-mutex.patch \
|
||||
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
|
||||
|
@ -1251,6 +1255,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/wpa-supplicant-fix-zeroed-keys.patch \
|
||||
%D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \
|
||||
%D%/packages/patches/wpa-supplicant-krack-followups.patch \
|
||||
%D%/packages/patches/x265-arm-flags.patch \
|
||||
%D%/packages/patches/x265-detect512-all-arches.patch \
|
||||
%D%/packages/patches/xboing-CVE-2004-0149.patch \
|
||||
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
|
||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
|
||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3639,3 +3640,38 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1
|
|||
surround).")
|
||||
(license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
|
||||
"https://www.gnu.org/licenses/license-list.html#fdk")))))
|
||||
|
||||
(define-public libopenshot-audio
|
||||
(package
|
||||
(name "libopenshot-audio")
|
||||
(version "0.1.7")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenShot/libopenshot-audio")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
;; The following are for JUCE GUI components:
|
||||
("libx11" ,libx11)
|
||||
("freetype" ,freetype)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxcursor" ,libxcursor)))
|
||||
(arguments
|
||||
`(#:tests? #f ;there are no tests
|
||||
#:configure-flags
|
||||
(list (string-append "-DCMAKE_CXX_FLAGS=-I"
|
||||
(assoc-ref %build-inputs "freetype")
|
||||
"/include/freetype2"))))
|
||||
(home-page "https://openshot.org")
|
||||
(synopsis "Audio editing and playback for OpenShot")
|
||||
(description "OpenShot Audio Library (libopenshot-audio) allows
|
||||
high-quality editing and playback of audio, and is based on the JUCE
|
||||
library.")
|
||||
(license license:lgpl3+)))
|
||||
|
|
|
@ -1030,3 +1030,41 @@ maps.")
|
|||
"This package provides tools to parse Illumina Sequence Analysis
|
||||
Viewer (SAV) files, access data, and generate QC plots.")
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public r-chipexoqual
|
||||
(package
|
||||
(name "r-chipexoqual")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ChIPexoQual" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1773bpiybn4g9jlv46z29x19q4dpcvn7lairr3lq5pdqbqmz5hnp"))))
|
||||
(properties `((upstream-name . "ChIPexoQual")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocparallel" ,r-biocparallel)
|
||||
("r-biovizbase" ,r-biovizbase)
|
||||
("r-broom" ,r-broom)
|
||||
("r-data-table" ,r-data-table)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-genomeinfodb" ,r-genomeinfodb)
|
||||
("r-genomicalignments" ,r-genomicalignments)
|
||||
("r-genomicranges" ,r-genomicranges)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-hexbin" ,r-hexbin)
|
||||
("r-iranges" ,r-iranges)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rmarkdown" ,r-rmarkdown)
|
||||
("r-rsamtools" ,r-rsamtools)
|
||||
("r-s4vectors" ,r-s4vectors)
|
||||
("r-scales" ,r-scales)
|
||||
("r-viridis" ,r-viridis)))
|
||||
(home-page "https://github.com/keleslab/ChIPexoQual")
|
||||
(synopsis "Quality control pipeline for ChIP-exo/nexus data")
|
||||
(description
|
||||
"This package provides a quality control pipeline for ChIP-exo/nexus
|
||||
sequencing data.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -540,7 +540,7 @@ independent targets.")
|
|||
(define-public uncrustify
|
||||
(package
|
||||
(name "uncrustify")
|
||||
(version "0.67")
|
||||
(version "0.68.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -548,10 +548,11 @@ independent targets.")
|
|||
"uncrustify-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp"))))
|
||||
"1jb3hmm11m2mgnypapak2lgyyvspnmx9bxd9dxis5swaja2ddxlg"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
`(("unzip" ,unzip)
|
||||
("python" ,python-wrapper)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -1980,14 +1980,14 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
|
|||
(define-public sqlcipher
|
||||
(package
|
||||
(name "sqlcipher")
|
||||
(version "3.3.1")
|
||||
(version "3.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/sqlcipher/" name
|
||||
"/archive/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1gv58dlbpzrmznly52yqbxgvii0ib88zr3aszla1bsypwjr6flff"))
|
||||
(base32 "1nxarwbci8jx99f1d0y1ivxcv25s78l1p7q6qy28lkpkcx8pm2b9"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
|
|
@ -95,14 +95,14 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
|
|||
(package
|
||||
(name "libabigail")
|
||||
(home-page "https://sourceware.org/libabigail/")
|
||||
(version "1.4")
|
||||
(version "1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://sourceware.org/pub/" name
|
||||
"/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17r8i60lxykvdd9pdidmnvkzgf9k8zman0c1czl3zbx0znhlx497"))))
|
||||
"0srfnkbm386sl2n85686nl28da6ksbs7jgnfks9k0n61c772aas4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static"
|
||||
|
|
|
@ -1474,14 +1474,22 @@ current match, total matches and exit status.
|
|||
(name "emacs-go-mode")
|
||||
(version "1.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/dominikh/go-mode.el/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dominikh/go-mode.el.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
|
||||
"1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'make-writable
|
||||
(lambda _
|
||||
(for-each make-file-writable (find-files "." "\\.el$"))
|
||||
#t)))))
|
||||
(home-page "https://github.com/dominikh/go-mode.el")
|
||||
(synopsis "Go mode for Emacs")
|
||||
(description
|
||||
|
@ -2773,7 +2781,7 @@ build jobs.")
|
|||
(define-public emacs-company
|
||||
(package
|
||||
(name "emacs-company")
|
||||
(version "0.9.6")
|
||||
(version "0.9.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2782,7 +2790,7 @@ build jobs.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k"))))
|
||||
"19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -2850,6 +2858,28 @@ described on the homepage.")
|
|||
(build-system cmake-build-system)
|
||||
(synopsis "Server for the Emacs @dfn{irony mode}")))
|
||||
|
||||
(define-public emacs-company-irony
|
||||
(package
|
||||
(name "emacs-company-irony")
|
||||
(version "1.1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Sarcasm/company-irony.git")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256 (base32
|
||||
"1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("emacs-irony-mode" ,emacs-irony-mode)
|
||||
("emacs-company" ,emacs-company)))
|
||||
(synopsis "C++ completion backend for Company using irony-mode")
|
||||
(description "This backend for company-mode allows for C++ code completion
|
||||
with irony-mode using clang-tooling.")
|
||||
(home-page "https://github.com/Sarcasm/company-irony")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-company-quickhelp
|
||||
(package
|
||||
(name "emacs-company-quickhelp")
|
||||
|
@ -3393,7 +3423,7 @@ organizer.")
|
|||
(define-public emacs-zenburn-theme
|
||||
(package
|
||||
(name "emacs-zenburn-theme")
|
||||
(version "2.5")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -3402,7 +3432,7 @@ organizer.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn"))))
|
||||
"0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/bbatsov/zenburn-emacs")
|
||||
(synopsis "Low contrast color theme for Emacs")
|
||||
|
@ -3850,10 +3880,11 @@ expression.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ivy-yasnippet
|
||||
(let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4"))
|
||||
(let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-ivy-yasnippet")
|
||||
(version (git-version "0.1" "1" commit))
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3863,7 +3894,7 @@ expression.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13"))))
|
||||
"1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-ivy" ,emacs-ivy)
|
||||
|
@ -7784,24 +7815,25 @@ through them using @key{C-c C-SPC}.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-slack
|
||||
(let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
|
||||
(revision "4"))
|
||||
(let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d")
|
||||
(revision "5"))
|
||||
(package
|
||||
(name "emacs-slack")
|
||||
(version (string-append "0-" revision "." (string-take commit 7)))
|
||||
(version (git-version "0.0.2" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/yuya373/emacs-slack.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name commit))
|
||||
(sha256
|
||||
(base32
|
||||
"14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib"))))
|
||||
"0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-alert" ,emacs-alert)
|
||||
("emacs-emojify" ,emacs-emojify)
|
||||
("emacs-helm" ,emacs-helm)
|
||||
("emacs-request" ,emacs-request)
|
||||
("emacs-websocket" ,emacs-websocket)
|
||||
("emacs-oauth2" ,emacs-oauth2)
|
||||
|
@ -7916,39 +7948,36 @@ contexts.
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-polymode
|
||||
;; There hasn't been a proper release.
|
||||
(let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-polymode")
|
||||
(version (string-append "1.0-" revision "." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/vspinu/polymode.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include (cons* "^modes/.*\\.el$" %default-include)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
|
||||
(lambda _
|
||||
(setenv "EMACSLOADPATH"
|
||||
(string-append (getenv "EMACSLOADPATH")
|
||||
":" (getcwd) "/modes" ":")))))))
|
||||
(home-page "https://github.com/vspinu/polymode")
|
||||
(synopsis "Framework for multiple Emacs modes based on indirect buffers")
|
||||
(description "Polymode is an Emacs package that offers generic support
|
||||
(package
|
||||
(name "emacs-polymode")
|
||||
(version "0.1.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/vspinu/polymode.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include (cons* "^modes/.*\\.el$" %default-include)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path
|
||||
(lambda _
|
||||
(setenv "EMACSLOADPATH"
|
||||
(string-append (getenv "EMACSLOADPATH")
|
||||
":" (getcwd) "/modes" ":")))))))
|
||||
(home-page "https://github.com/vspinu/polymode")
|
||||
(synopsis "Framework for multiple Emacs modes based on indirect buffers")
|
||||
(description "Polymode is an Emacs package that offers generic support
|
||||
for multiple major modes inside a single Emacs buffer. It is lightweight,
|
||||
object oriented and highly extensible. Creating a new polymode typically
|
||||
takes only a few lines of code. Polymode also provides extensible facilities
|
||||
for external literate programming tools for exporting, weaving and tangling.")
|
||||
(license license:gpl3+))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public eless
|
||||
(package
|
||||
|
@ -12535,43 +12564,6 @@ correctly.")
|
|||
@end itemize\n")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-clang-format
|
||||
(let ((commit "5556c31528af2661bed3011bd63ffc0ed44e18a0"))
|
||||
(package
|
||||
(name "emacs-clang-format")
|
||||
(version (git-version "0.0.0" "1" commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emacsorphanage/clang-format")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ynvnp3vrcpngmwakb23xv4xn7jbkg43s196q7pg9nkl13x4n2nq"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("clang" ,clang)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((clang (assoc-ref inputs "clang")))
|
||||
;; Repo is read-only.
|
||||
(chmod "clang-format.el" #o644)
|
||||
(emacs-substitute-variables "clang-format.el"
|
||||
("clang-format-executable"
|
||||
(string-append clang "/bin/clang-format"))))
|
||||
#t)))))
|
||||
(home-page "https://github.com/emacsorphanage/clang-format")
|
||||
(synopsis "Format code using clang-format")
|
||||
(description "This package allows to filter code through clang-format to
|
||||
fix its formatting. @command{clang-format} is a tool that formats C/C++/Obj-C
|
||||
code according to a set of style options, see
|
||||
@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-gtk-look
|
||||
(package
|
||||
(name "emacs-gtk-look")
|
||||
|
|
|
@ -58,7 +58,8 @@
|
|||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg))
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public efl
|
||||
(package
|
||||
|
@ -139,12 +140,16 @@
|
|||
(arguments
|
||||
`(#:configure-flags '("--disable-silent-rules"
|
||||
"--disable-systemd"
|
||||
"--with-profile=release"
|
||||
"--enable-liblz4"
|
||||
"--enable-xinput22"
|
||||
"--enable-image-loader-webp"
|
||||
"--enable-multisense"
|
||||
"--with-opengl=es"
|
||||
"--enable-egl"
|
||||
,@(match (%current-system)
|
||||
("armhf-linux"
|
||||
'("--with-opengl=es" "--with-egl"))
|
||||
(_
|
||||
'("--with-opengl=full")))
|
||||
"--enable-harfbuzz"
|
||||
;; for wayland
|
||||
"--enable-wayland"
|
||||
|
|
|
@ -2053,8 +2053,8 @@ convenient nested tree operations.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile-simple-zmq
|
||||
(let ((commit "5bb66a0499f94006cfd18b58e80ad6623f911c31")
|
||||
(revision "2"))
|
||||
(let ((commit "68bedb6679716214fb9d3472da57544526f7a618")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "guile-simple-zmq")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -2066,7 +2066,7 @@ convenient nested tree operations.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0dj1brjqa7m4k71sf94aq26ca0la3nr894kfmjnqkpawqfp4dyaz"))
|
||||
"1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -268,7 +268,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
|
|||
(define-public kodi
|
||||
(package
|
||||
(name "kodi")
|
||||
(version "18.0b5")
|
||||
(version "18.0rc1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -277,7 +277,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"042qzvhys3sajby6ywgmrsymhji37qk0iqgppznrvm53vrizwsam"))
|
||||
"0xzzp4x8l0ywx8aq93a1323il6wwslmgdbhasv0r8zp3w1c0wqf1"))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils))
|
||||
|
|
|
@ -400,8 +400,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
;; supports qemu "virt" machine and possibly a large number of ARM boards.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.19.4")
|
||||
(define %linux-libre-hash "0m5k14a89bf5avr3kdh3909qjfnd051fbsb0v7a52d54dkg2nbp6")
|
||||
(define %linux-libre-version "4.19.5")
|
||||
(define %linux-libre-hash "1ailss05c3p9aw2ysv75kj9j7qk04rc0cn9y9dk6fmjhnbnw9abm")
|
||||
|
||||
(define %linux-libre-4.19-patches
|
||||
(list %boot-logo-patch
|
||||
|
@ -412,7 +412,7 @@ It has been modified to remove all non-free binary blobs.")
|
|||
"/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0"
|
||||
"/debian/patches/bugfix/arm/"
|
||||
"arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch"))
|
||||
(file-name "linux-libre-4.18-arm-export-__sync_icache_dcache.patch")
|
||||
(file-name "linux-libre-4.19-arm-export-__sync_icache_dcache.patch")
|
||||
(sha256
|
||||
(base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f")))))
|
||||
|
||||
|
@ -423,8 +423,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:patches %linux-libre-4.19-patches
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.83")
|
||||
(define %linux-libre-4.14-hash "0x6r09bqdrcqigyjx922vji3pdv36l24pl0j33xs8b7xawkvii9g")
|
||||
(define %linux-libre-4.14-version "4.14.84")
|
||||
(define %linux-libre-4.14-hash "0mdf436bxlrsv0jbnzwd5bblpavv9vk5qx7h2x55jp0iy9pvp3n2")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(make-linux-libre %linux-libre-4.14-version
|
||||
|
@ -433,14 +433,14 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.140"
|
||||
"12amh7m0khjx5q3bcv8sq59xkanaxa5xnw4m1iql7503nk4pgg9a"
|
||||
(make-linux-libre "4.9.141"
|
||||
"1cjyni2wf1m9l8nvfl4gcswxlk9rwhpr0q3lvhnlg20761kvixp4"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.164"
|
||||
"04w4x97bkd2javjws9pzv1shfcrhyn4nf9w8b6qk6zdaj45fzasb"
|
||||
(make-linux-libre "4.4.165"
|
||||
"1adpj8hbly5z3j7mlnydnm2kx2isi3194n1hszzwxki8gj0xnqk4"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
|
|
@ -333,7 +333,6 @@ an interpreter, a compiler, a debugger, and much more.")
|
|||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
;; Bootstrap with CLISP.
|
||||
(native-inputs
|
||||
;; From INSTALL:
|
||||
;; Supported build hosts are:
|
||||
|
@ -343,15 +342,20 @@ an interpreter, a compiler, a debugger, and much more.")
|
|||
;; ABCL (recent versions only)
|
||||
;; CLISP (only some versions: 2.44.1 is OK, 2.47 is not)
|
||||
;; XCL
|
||||
;; CCL seems ideal then.
|
||||
`(("ccl" ,ccl)
|
||||
;; CCL seems ideal then, but it unfortunately only builds reliably
|
||||
;; on some architectures.
|
||||
`(,@(match (%current-system)
|
||||
((or "x86_64-linux" "i686-linux")
|
||||
`(("ccl" ,ccl)))
|
||||
(_
|
||||
`(("clisp" ,clisp))))
|
||||
("which" ,which)
|
||||
("inetutils" ,inetutils) ;for hostname(1)
|
||||
("ed" ,ed)
|
||||
("texlive" ,(texlive-union (list texlive-tex-texinfo)))
|
||||
("texinfo" ,texinfo)))
|
||||
(arguments
|
||||
'(#:modules ((guix build gnu-build-system)
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:phases
|
||||
|
@ -410,7 +414,11 @@ an interpreter, a compiler, a debugger, and much more.")
|
|||
(replace 'build
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(setenv "CC" "gcc")
|
||||
(invoke "sh" "make.sh" "ccl"
|
||||
(invoke "sh" "make.sh" ,@(match (%current-system)
|
||||
((or "x86_64-linux" "i686-linux")
|
||||
`("ccl"))
|
||||
(_
|
||||
`("clisp")))
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out")))))
|
||||
(replace 'install
|
||||
|
@ -3494,3 +3502,242 @@ Lisp, featuring:
|
|||
|
||||
(define-public ecl-lparallel
|
||||
(sbcl-package->ecl-package sbcl-lparallel))
|
||||
|
||||
(define-public sbcl-cl-markup
|
||||
(let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
|
||||
(package
|
||||
(name "sbcl-cl-markup")
|
||||
(version (git-version "0.1" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/arielnetworks/cl-markup/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-markup" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "https://github.com/arielnetworks/cl-markup/")
|
||||
(synopsis "Markup generation library for Common Lisp")
|
||||
(description
|
||||
"A modern markup generation library for Common Lisp that features:
|
||||
|
||||
@itemize
|
||||
@item Fast (even faster through compiling the code)
|
||||
@item Safety
|
||||
@item Support for multiple document types (markup, xml, html, html5, xhtml)
|
||||
@item Output with doctype
|
||||
@item Direct output to stream
|
||||
@end itemize\n")
|
||||
(license license:lgpl3+))))
|
||||
|
||||
(define-public cl-markup
|
||||
(sbcl-package->cl-source-package sbcl-cl-markup))
|
||||
|
||||
(define-public ecl-cl-markup
|
||||
(sbcl-package->ecl-package sbcl-cl-markup))
|
||||
|
||||
(define-public sbcl-cl-css
|
||||
(let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
|
||||
(package
|
||||
(name "sbcl-cl-css")
|
||||
(version (git-version "0.1" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/inaimathi/cl-css/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-css" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "https://github.com/inaimathi/cl-css/")
|
||||
(synopsis "Non-validating, inline CSS generator for Common Lisp")
|
||||
(description
|
||||
"This is a dead-simple, non validating, inline CSS generator for Common
|
||||
Lisp. Its goals are axiomatic syntax, simple implementation to support
|
||||
portability, and boilerplate reduction in CSS.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-css
|
||||
(sbcl-package->cl-source-package sbcl-cl-css))
|
||||
|
||||
(define-public ecl-cl-markup
|
||||
(sbcl-package->ecl-package sbcl-cl-css))
|
||||
|
||||
(define-public sbcl-portable-threads
|
||||
(let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
|
||||
(package
|
||||
(name "sbcl-portable-threads")
|
||||
(version (git-version "2.3" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/binghe/portable-threads/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "portable-threads" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
`(;; Tests seem broken.
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/binghe/portable-threads")
|
||||
(synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
|
||||
(description
|
||||
"Portable Threads (and Scheduled and Periodic Functions) API for Common
|
||||
Lisp (from GBBopen project).")
|
||||
(license license:asl2.0))))
|
||||
|
||||
(define-public cl-portable-threads
|
||||
(sbcl-package->cl-source-package sbcl-portable-threads))
|
||||
|
||||
(define-public ecl-portable-threada
|
||||
(sbcl-package->ecl-package sbcl-portable-threads))
|
||||
|
||||
(define-public sbcl-usocket-boot0
|
||||
;; usocket's test rely on usocket-server which depends on usocket itself.
|
||||
;; We break this cyclic dependency with -boot0 that packages usocket.
|
||||
(let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
|
||||
(package
|
||||
(name "sbcl-usocket-boot0")
|
||||
(version (git-version "0.7.1" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/usocket/usocket/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "usocket" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("split-sequence" ,sbcl-split-sequence)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:asd-system-name "usocket"))
|
||||
(home-page "https://common-lisp.net/project/usocket/")
|
||||
(synopsis "Universal socket library for Common Lisp (server side)")
|
||||
(description
|
||||
"This library strives to provide a portable TCP/IP and UDP/IP socket
|
||||
interface for as many Common Lisp implementations as possible, while keeping
|
||||
the abstraction and portability layer as thin as possible.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public sbcl-usocket-server
|
||||
(package
|
||||
(inherit sbcl-usocket-boot0)
|
||||
(name "sbcl-usocket-server")
|
||||
(inputs
|
||||
`(("usocket" ,sbcl-usocket-boot0)
|
||||
("portable-threads" ,sbcl-portable-threads)))
|
||||
(arguments
|
||||
'(#:asd-system-name "usocket-server"))
|
||||
(synopsis "Universal socket library for Common Lisp (server side)")))
|
||||
|
||||
(define-public cl-usocket-server
|
||||
(sbcl-package->cl-source-package sbcl-usocket-server))
|
||||
|
||||
(define-public ecl-socket-server
|
||||
(sbcl-package->ecl-package sbcl-usocket-server))
|
||||
|
||||
(define-public sbcl-usocket
|
||||
(package
|
||||
(inherit sbcl-usocket-boot0)
|
||||
(name "sbcl-usocket")
|
||||
(arguments
|
||||
;; FIXME: Tests need network access?
|
||||
`(#:tests? #f))
|
||||
(native-inputs
|
||||
;; Testing only.
|
||||
`(("usocket-server" ,sbcl-usocket-server)
|
||||
("rt" ,sbcl-rt)))))
|
||||
|
||||
(define-public cl-usocket
|
||||
(sbcl-package->cl-source-package sbcl-usocket))
|
||||
|
||||
(define-public ecl-socket
|
||||
(sbcl-package->ecl-package sbcl-usocket))
|
||||
|
||||
(define-public sbcl-s-xml
|
||||
(package
|
||||
(name "sbcl-s-xml")
|
||||
(version "3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
|
||||
(sha256
|
||||
(base32
|
||||
"061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "https://common-lisp.net/project/s-xml/")
|
||||
(synopsis "Simple XML parser implemented in Common Lisp")
|
||||
(description
|
||||
"S-XML is a simple XML parser implemented in Common Lisp. This XML
|
||||
parser implementation has the following features:
|
||||
|
||||
@itemize
|
||||
@item It works (handling many common XML usages).
|
||||
@item It is very small (the core is about 700 lines of code, including
|
||||
comments and whitespace).
|
||||
@item It has a core API that is simple, efficient and pure functional, much
|
||||
like that from SSAX (see also http://ssax.sourceforge.net).
|
||||
@item It supports different DOM models: an XSML-based one, an LXML-based one
|
||||
and a classic xml-element struct based one.
|
||||
@item It is reasonably time and space efficient (internally avoiding garbage
|
||||
generatation as much as possible).
|
||||
@item It does support CDATA.
|
||||
@item It should support the same character sets as your Common Lisp
|
||||
implementation.
|
||||
@item It does support XML name spaces.
|
||||
@end itemize
|
||||
|
||||
This XML parser implementation has the following limitations:
|
||||
|
||||
@itemize
|
||||
@item It does not support any special tags (like processing instructions).
|
||||
@item It is not validating, even skips DTD's all together.
|
||||
@end itemize\n")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public cl-s-xml
|
||||
(sbcl-package->cl-source-package sbcl-s-xml))
|
||||
|
||||
(define-public ecl-s-xml
|
||||
(sbcl-package->ecl-package sbcl-s-xml))
|
||||
|
||||
(define-public sbcl-s-xml-rpc
|
||||
(package
|
||||
(name "sbcl-s-xml-rpc")
|
||||
(version "7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
|
||||
(sha256
|
||||
(base32
|
||||
"02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("s-xml" ,sbcl-s-xml)))
|
||||
(home-page "https://common-lisp.net/project/s-xml-rpc/")
|
||||
(synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
|
||||
(description
|
||||
"S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
|
||||
client and server.")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public cl-s-xml-rpc
|
||||
(sbcl-package->cl-source-package sbcl-s-xml-rpc))
|
||||
|
||||
(define-public ecl-s-xml-rpc
|
||||
(sbcl-package->ecl-package sbcl-s-xml-rpc))
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -31,6 +33,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gcc)
|
||||
|
@ -233,7 +236,30 @@ compiler. In LLVM this library is called \"compiler-rt\".")
|
|||
(substitute* "lib/Driver/ToolChains.cpp"
|
||||
(("@GLIBC_LIBDIR@")
|
||||
(string-append libc "/lib")))))
|
||||
#t))))))
|
||||
#t)))
|
||||
(add-after 'install 'install-clean-up-/share/clang
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(compl-dir (string-append
|
||||
out "/etc/bash_completion.d")))
|
||||
(with-directory-excursion (string-append out
|
||||
"/share/clang")
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(when (file-exists? file)
|
||||
(delete-file file)))
|
||||
;; Delete extensions for proprietary text editors.
|
||||
'("clang-format-bbedit.applescript"
|
||||
"clang-format-sublime.py"
|
||||
;; Delete Emacs extensions: see their respective Emacs
|
||||
;; Guix package instead.
|
||||
"clang-rename.el" "clang-format.el"))
|
||||
;; Install bash completion.
|
||||
(when (file-exists? "bash-autocomplete.sh")
|
||||
(mkdir-p compl-dir)
|
||||
(rename-file "bash-autocomplete.sh"
|
||||
(string-append compl-dir "/clang")))))
|
||||
#t)))))
|
||||
|
||||
;; Clang supports the same environment variables as GCC.
|
||||
(native-search-paths
|
||||
|
@ -437,3 +463,49 @@ code analysis tools.")
|
|||
(description
|
||||
"This package provides a Python binding to LLVM for use in Numba.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public emacs-clang-format
|
||||
(package
|
||||
(inherit clang)
|
||||
(name "emacs-clang-format")
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("clang" ,clang)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((clang (assoc-ref inputs "clang")))
|
||||
(copy-file "tools/clang-format/clang-format.el" "clang-format.el")
|
||||
(emacs-substitute-variables "clang-format.el"
|
||||
("clang-format-executable"
|
||||
(string-append clang "/bin/clang-format"))))
|
||||
#t)))))
|
||||
(synopsis "Format code using clang-format")
|
||||
(description "This package allows to filter code through @code{clang-format}
|
||||
to fix its formatting. @code{clang-format} is a tool that formats
|
||||
C/C++/Obj-C code according to a set of style options, see
|
||||
@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")))
|
||||
|
||||
(define-public emacs-clang-rename
|
||||
(package
|
||||
(inherit clang)
|
||||
(name "emacs-clang-rename")
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("clang" ,clang)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((clang (assoc-ref inputs "clang")))
|
||||
(copy-file "tools/clang-rename/clang-rename.el" "clang-rename.el")
|
||||
(emacs-substitute-variables "clang-rename.el"
|
||||
("clang-rename-binary"
|
||||
(string-append clang "/bin/clang-rename"))))
|
||||
#t)))))
|
||||
(synopsis "Rename every occurrence of a symbol using clang-rename")
|
||||
(description "This package renames every occurrence of a symbol at point
|
||||
using @code{clang-rename}.")))
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2018 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -331,8 +332,8 @@ algorithm.")
|
|||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.imbs-luebeck.de/imbs/sites/default/files/u59/"
|
||||
"randomjungle-" version ".tar_.gz"))
|
||||
"https://www.imbs.uni-luebeck.de/fileadmin/files/Software"
|
||||
"/randomjungle/randomjungle-" version ".tar_.gz"))
|
||||
(patches (search-patches "randomjungle-disable-static-build.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -361,7 +362,7 @@ algorithm.")
|
|||
;; Non-portable assembly instructions are used so building fails on
|
||||
;; platforms other than x86_64 or i686.
|
||||
(supported-systems '("x86_64-linux" "i686-linux"))
|
||||
(home-page "http://www.imbs-luebeck.de/imbs/de/node/227/")
|
||||
(home-page "https://www.imbs.uni-luebeck.de/forschung/software/details.html#c224")
|
||||
(synopsis "Implementation of the Random Forests machine learning method")
|
||||
(description
|
||||
"Random Jungle is an implementation of Random Forests. It is supposed to
|
||||
|
|
|
@ -257,14 +257,14 @@ aliasing facilities to work just as they would on normal mail.")
|
|||
(define-public mutt
|
||||
(package
|
||||
(name "mutt")
|
||||
(version "1.10.1")
|
||||
(version "1.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
|
||||
"mutt-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk"))
|
||||
"1qqhkhlzvjj0iih8vm0wfagv4fzqqy1wnsb4sqsfv7w06ccjdjcj"))
|
||||
(patches (search-patches "mutt-store-references.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -1202,7 +1202,7 @@ facilities for checking incoming mail.")
|
|||
(define-public dovecot
|
||||
(package
|
||||
(name "dovecot")
|
||||
(version "2.3.2.1")
|
||||
(version "2.3.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1210,7 +1210,7 @@ facilities for checking incoming mail.")
|
|||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0d2ffbicgl3wswbnyjbw6qigz7r1aqzprpchbwp5cynw122i2raa"))))
|
||||
"01ggzf7b3jpl89mjiqr7xbpbs181g2gjf6wzg70qaqfzz3ppc6yr"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -2750,7 +2750,7 @@ to BMP, JPEG or PNG image formats.")
|
|||
(define-public maxima
|
||||
(package
|
||||
(name "maxima")
|
||||
(version "5.42.0")
|
||||
(version "5.42.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2758,7 +2758,7 @@ to BMP, JPEG or PNG image formats.")
|
|||
version "-source/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d5pdihvcbwb7r4i4qs5qqgsz46hxlq33qj8is053llrgn9ylpyn"))
|
||||
"1ka0xf70a55ndgmyrq7p5xxbd78pq7bfkqhgxsivaqdw6gn5lmcg"))
|
||||
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -2849,16 +2849,17 @@ point numbers.")
|
|||
(define-public wxmaxima
|
||||
(package
|
||||
(name "wxmaxima")
|
||||
(version "18.10.1")
|
||||
(version "18.11.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/wxMaxima-developers/" name
|
||||
"/archive/Version-" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/wxMaxima-developers/wxmaxima.git")
|
||||
(commit (string-append "Version-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0c2blq65r0am509p3rjqpwqk6vl5r2yg1p9nh2jczf80vhi3ldas"))))
|
||||
"1sz8n9v23q442l7yjj67pjh0dk78rl4cbcc3j8m1bm88anlfxl9r"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)))
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
(define-public mtools
|
||||
(package
|
||||
(name "mtools")
|
||||
(version "4.0.20")
|
||||
(version "4.0.21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -36,7 +36,7 @@
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vcahr9s6zv1hnrx2bgjnzcas2y951q90r1jvvv4q9v5kwfd6qb0"))))
|
||||
"1kybydx74qgbwpnjvjn49msf8zipchl43d4cq8zzwcyvfkdzw7h2"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.gnu.org/software/mtools/")
|
||||
(synopsis "Access MS-DOS disks without mounting")
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages virtualization)
|
||||
#:use-module (gnu packages web-browsers)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
@ -328,7 +329,7 @@ functional, imperative and object-oriented styles of programming.")
|
|||
(define-public opam
|
||||
(package
|
||||
(name "opam")
|
||||
(version "2.0.0")
|
||||
(version "2.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; Use the '-full' version, which includes all the dependencies.
|
||||
|
@ -340,7 +341,7 @@ functional, imperative and object-oriented styles of programming.")
|
|||
)
|
||||
(sha256
|
||||
(base32
|
||||
"09gdpxiqmyr6z78l85d7pwhiwrycdi2xi1b2mafqr1sk9z5lzbcx"))))
|
||||
"0z6r9qr4awcdn7wyrl5y5jm34jsjlnzd00py893f1hd0c6vg3xw1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; Sometimes, 'make -jX' would fail right after ./configure with
|
||||
|
@ -361,17 +362,29 @@ functional, imperative and object-oriented styles of programming.")
|
|||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'pre-build
|
||||
(lambda* (#:key inputs make-flags #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(let ((bash (assoc-ref inputs "bash"))
|
||||
(bwrap (string-append (assoc-ref inputs "bubblewrap")
|
||||
"/bin/bwrap")))
|
||||
(substitute* "src/core/opamSystem.ml"
|
||||
(("\"/bin/sh\"")
|
||||
(string-append "\"" bash "/bin/sh\"")))
|
||||
(string-append "\"" bash "/bin/sh\""))
|
||||
(("getconf")
|
||||
(which "getconf")))
|
||||
;; Use bwrap from the store directly.
|
||||
(substitute* "src/state/shellscripts/bwrap.sh"
|
||||
(("-v bwrap") (string-append "-v " bwrap))
|
||||
(("exec bwrap") (string-append "exec " bwrap)))
|
||||
(substitute* "src/client/opamInitDefaults.ml"
|
||||
(("\"bwrap\"") (string-append "\"" bwrap "\"")))
|
||||
;; Build dependencies
|
||||
(zero? (apply system* "make" "lib-ext" make-flags)))))
|
||||
(apply invoke "make" "lib-ext" make-flags)
|
||||
#t)))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
(setenv "HOME" (getcwd))
|
||||
(and (system "git config --global user.email guix@gnu.org")
|
||||
(system "git config --global user.name Guix")))))))
|
||||
(invoke "git" "config" "--global" "user.email" "guix@gnu.org")
|
||||
(invoke "git" "config" "--global" "user.name" "Guix")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("git" ,git) ;for the tests
|
||||
("python" ,python) ;for the tests
|
||||
|
@ -379,7 +392,8 @@ functional, imperative and object-oriented styles of programming.")
|
|||
(inputs
|
||||
`(("ocaml" ,ocaml)
|
||||
("ncurses" ,ncurses)
|
||||
("curl" ,curl)))
|
||||
("curl" ,curl)
|
||||
("bubblewrap" ,bubblewrap)))
|
||||
(home-page "http://opam.ocamlpro.com/")
|
||||
(synopsis "Package manager for OCaml")
|
||||
(description
|
||||
|
|
|
@ -102,8 +102,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.15.0")
|
||||
(commit "f5a2724ae453f4a4b55ff848f4ad7e30efb6eef8")
|
||||
(revision 7))
|
||||
(commit "71a78ba65b00ad1f27086a3dcdded7dc4326ade1")
|
||||
(revision 8))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -119,7 +119,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"12glmvifbwvl6lmxh1mc8nbcp0f5qgw40rmf8n1icxvj0mnjrwp4"))
|
||||
"0isagzccfxjqrc38wamknvh0jzv1pjh0wq5baj9jzwl07xkrc0hc"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -343,8 +343,7 @@ the Nix package manager.")
|
|||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "make" "install-binPROGRAMS"
|
||||
"install-nodist_pkglibexecSCRIPTS"
|
||||
"install-nodist_libexecSCRIPTS") ;guix-authenticate
|
||||
"install-nodist_pkglibexecSCRIPTS")
|
||||
|
||||
;; We need to tell 'guix-daemon' which 'guix' command to use.
|
||||
;; Here we use a questionable hack where we hard-code root's
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
(define-public parallel
|
||||
(package
|
||||
(name "parallel")
|
||||
(version "20181022")
|
||||
(version "20181122")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -56,7 +56,7 @@
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v6vrfnn6acjjlp8xiizvcrb3zzs94av5xcl6xm8zfvcapixx11f"))))
|
||||
"1mcqymf6vg8jhnjv71sswcz5xrwpq2h2ishi8m1hz8rwhc65h1ig"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
Combination of two patches that fix libopenshot tests when built with
|
||||
system-provided ffmpeg and jsoncpp. See
|
||||
|
||||
https://github.com/OpenShot/libopenshot/pull/163
|
||||
|
||||
From 0d7691ab53433e1583f6a66ea96683b0f7af8a57 Mon Sep 17 00:00:00 2001
|
||||
From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
|
||||
Date: Mon, 17 Sep 2018 14:04:40 -0400
|
||||
Subject: [PATCH] tests/CMakeFiles: Use FFMpeg like src/
|
||||
|
||||
---
|
||||
tests/CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index 2c45550..4df8464 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -79,7 +79,37 @@ ENDIF (ImageMagick_FOUND)
|
||||
FIND_PACKAGE(FFmpeg REQUIRED)
|
||||
|
||||
# Include FFmpeg headers (needed for compile)
|
||||
-include_directories(${FFMPEG_INCLUDE_DIR})
|
||||
+message('AVCODEC_FOUND: ${AVCODEC_FOUND}')
|
||||
+message('AVCODEC_INCLUDE_DIRS: ${AVCODEC_INCLUDE_DIRS}')
|
||||
+message('AVCODEC_LIBRARIES: ${AVCODEC_LIBRARIES}')
|
||||
+
|
||||
+IF (AVCODEC_FOUND)
|
||||
+ include_directories(${AVCODEC_INCLUDE_DIRS})
|
||||
+ENDIF (AVCODEC_FOUND)
|
||||
+IF (AVDEVICE_FOUND)
|
||||
+ include_directories(${AVDEVICE_INCLUDE_DIRS})
|
||||
+ENDIF (AVDEVICE_FOUND)
|
||||
+IF (AVFORMAT_FOUND)
|
||||
+ include_directories(${AVFORMAT_INCLUDE_DIRS})
|
||||
+ENDIF (AVFORMAT_FOUND)
|
||||
+IF (AVFILTER_FOUND)
|
||||
+ include_directories(${AVFILTER_INCLUDE_DIRS})
|
||||
+ENDIF (AVFILTER_FOUND)
|
||||
+IF (AVUTIL_FOUND)
|
||||
+ include_directories(${AVUTIL_INCLUDE_DIRS})
|
||||
+ENDIF (AVUTIL_FOUND)
|
||||
+IF (POSTPROC_FOUND)
|
||||
+ include_directories(${POSTPROC_INCLUDE_DIRS})
|
||||
+ENDIF (POSTPROC_FOUND)
|
||||
+IF (SWSCALE_FOUND)
|
||||
+ include_directories(${SWSCALE_INCLUDE_DIRS})
|
||||
+ENDIF (SWSCALE_FOUND)
|
||||
+IF (SWRESAMPLE_FOUND)
|
||||
+ include_directories(${SWRESAMPLE_INCLUDE_DIRS})
|
||||
+ENDIF (SWRESAMPLE_FOUND)
|
||||
+IF (AVRESAMPLE_FOUND)
|
||||
+ include_directories(${AVRESAMPLE_INCLUDE_DIRS})
|
||||
+ENDIF (AVRESAMPLE_FOUND)
|
||||
|
||||
################# LIBOPENSHOT-AUDIO ###################
|
||||
# Find JUCE-based openshot Audio libraries
|
||||
|
||||
|
||||
From e9e85cdfd036587adb86341f7f81619dc69f102c Mon Sep 17 00:00:00 2001
|
||||
From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
|
||||
Date: Mon, 17 Sep 2018 19:23:25 -0400
|
||||
Subject: [PATCH] Use system jsoncpp in tests, too
|
||||
|
||||
The tests/ build needs to use the same jsoncpp as the src/ build,
|
||||
or tests in Clip_Tests.cpp can fail.
|
||||
---
|
||||
tests/CMakeLists.txt | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index 4df8464..a1a0356 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -180,12 +180,18 @@ endif(OPENMP_FOUND)
|
||||
# Find ZeroMQ library (used for socket communication & logging)
|
||||
FIND_PACKAGE(ZMQ REQUIRED)
|
||||
|
||||
-# Include FFmpeg headers (needed for compile)
|
||||
+# Include ZeroMQ headers (needed for compile)
|
||||
include_directories(${ZMQ_INCLUDE_DIRS})
|
||||
|
||||
################### JSONCPP #####################
|
||||
# Include jsoncpp headers (needed for JSON parsing)
|
||||
-include_directories("../thirdparty/jsoncpp/include")
|
||||
+if (USE_SYSTEM_JSONCPP)
|
||||
+ find_package(JsonCpp REQUIRED)
|
||||
+ include_directories(${JSONCPP_INCLUDE_DIRS})
|
||||
+else()
|
||||
+ message("Using embedded JsonCpp")
|
||||
+ include_directories("../thirdparty/jsoncpp/include")
|
||||
+endif(USE_SYSTEM_JSONCPP)
|
||||
|
||||
IF (NOT DISABLE_TESTS)
|
||||
############### SET TEST SOURCE FILES #################
|
|
@ -0,0 +1,72 @@
|
|||
Fix build with recent Poppler.
|
||||
|
||||
From d867ec3c386baaed1b8e076dd70b278863411480 Mon Sep 17 00:00:00 2001
|
||||
From: Jean Ghali <jghali@libertysurf.fr>
|
||||
Date: Mon, 30 Apr 2018 09:19:33 +0000
|
||||
Subject: [PATCH] =?UTF-8?q?#15289:=20FTBFS=201.5.4=20with=20error:=20inval?=
|
||||
=?UTF-8?q?id=20conversion=20from=20=E2=80=98const=20GooString*=E2=80=99?=
|
||||
=?UTF-8?q?=20to=20=E2=80=98GooString*=E2=80=99?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://scribus.net/trunk/Scribus@22498 11d20701-8431-0410-a711-e3c959e3b870
|
||||
---
|
||||
scribus/plugins/import/pdf/importpdf.cpp | 2 +-
|
||||
scribus/plugins/import/pdf/importpdf.h | 2 +-
|
||||
scribus/plugins/import/pdf/slaoutput.cpp | 2 +-
|
||||
scribus/plugins/import/pdf/slaoutput.h | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
|
||||
index c1802861aa..d4c5a9ba49 100644
|
||||
--- a/scribus/plugins/import/pdf/importpdf.cpp
|
||||
+++ b/scribus/plugins/import/pdf/importpdf.cpp
|
||||
@@ -1081,7 +1081,7 @@ QRectF PdfPlug::getCBox(int box, int pgNum)
|
||||
return cRect;
|
||||
}
|
||||
|
||||
-QString PdfPlug::UnicodeParsedString(GooString *s1)
|
||||
+QString PdfPlug::UnicodeParsedString(const GooString *s1)
|
||||
{
|
||||
if ( !s1 || s1->getLength() == 0 )
|
||||
return QString();
|
||||
diff --git a/scribus/plugins/import/pdf/importpdf.h b/scribus/plugins/import/pdf/importpdf.h
|
||||
index c8c5efcd0d..5249562692 100644
|
||||
--- a/scribus/plugins/import/pdf/importpdf.h
|
||||
+++ b/scribus/plugins/import/pdf/importpdf.h
|
||||
@@ -81,7 +81,7 @@ class PdfPlug : public QObject
|
||||
private:
|
||||
bool convert(const QString& fn);
|
||||
QRectF getCBox(int box, int pgNum);
|
||||
- QString UnicodeParsedString(GooString *s1);
|
||||
+ QString UnicodeParsedString(const GooString *s1);
|
||||
|
||||
QList<PageItem*> Elements;
|
||||
double baseX, baseY;
|
||||
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
|
||||
index be1815dc29..17b6357246 100644
|
||||
--- a/scribus/plugins/import/pdf/slaoutput.cpp
|
||||
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
|
||||
@@ -4252,7 +4252,7 @@ void SlaOutputDev::pushGroup(QString maskName, GBool forSoftMask, GBool alpha, b
|
||||
m_groupStack.push(gElements);
|
||||
}
|
||||
|
||||
-QString SlaOutputDev::UnicodeParsedString(GooString *s1)
|
||||
+QString SlaOutputDev::UnicodeParsedString(const GooString *s1)
|
||||
{
|
||||
if ( !s1 || s1->getLength() == 0 )
|
||||
return QString();
|
||||
diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h
|
||||
index 20e8b2d311..6698c030e0 100644
|
||||
--- a/scribus/plugins/import/pdf/slaoutput.h
|
||||
+++ b/scribus/plugins/import/pdf/slaoutput.h
|
||||
@@ -266,7 +266,7 @@ class SlaOutputDev : public OutputDev
|
||||
int getBlendMode(GfxState *state);
|
||||
void applyMask(PageItem *ite);
|
||||
void pushGroup(QString maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);
|
||||
- QString UnicodeParsedString(GooString *s1);
|
||||
+ QString UnicodeParsedString(const GooString *s1);
|
||||
bool checkClip();
|
||||
bool pathIsClosed;
|
||||
QString CurrColorFill;
|
|
@ -0,0 +1,36 @@
|
|||
https://sources.debian.org/src/x265/2.9-3/debian/patches/0001-Fix-arm-flags.patch/
|
||||
|
||||
From: Sebastian Ramacher <sramacher@debian.org>
|
||||
Date: Wed, 26 Apr 2017 22:05:06 +0200
|
||||
Subject: Fix arm* flags
|
||||
|
||||
---
|
||||
source/CMakeLists.txt | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
|
||||
index 33b6523..25aecbb 100644
|
||||
--- a/source/CMakeLists.txt
|
||||
+++ b/source/CMakeLists.txt
|
||||
@@ -72,7 +72,7 @@ elseif(ARMMATCH GREATER "-1")
|
||||
endif()
|
||||
message(STATUS "Detected ARM target processor")
|
||||
set(ARM 1)
|
||||
- add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
|
||||
+ # add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
|
||||
else()
|
||||
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
|
||||
message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}")
|
||||
@@ -230,12 +230,8 @@ if(GCC)
|
||||
if(ARM AND CROSS_COMPILE_ARM)
|
||||
set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
|
||||
elseif(ARM)
|
||||
- find_package(Neon)
|
||||
if(CPU_HAS_NEON)
|
||||
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
|
||||
add_definitions(-DHAVE_NEON)
|
||||
- else()
|
||||
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
|
||||
endif()
|
||||
endif()
|
||||
add_definitions(${ARM_ARGS})
|
|
@ -0,0 +1,124 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Robin Templeton <robin@igalia.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages phabricator)
|
||||
#:use-module (gnu packages php)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages))
|
||||
|
||||
(define-public libphutil
|
||||
(let ((commit "b29d76e1709ef018cc5edc7c03033fd9fdebc578")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "libphutil")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/phacility/libphutil.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06j84721r9r8624fmil62b5crs2qs0v6rr3cvv2zvkvwhxwrwv1l"))))
|
||||
(build-system gnu-build-system)
|
||||
;; TODO: Unbundle jsonlint and porter-stemmer.
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((lib (string-append %output "/lib/libphutil")))
|
||||
(mkdir-p lib)
|
||||
(copy-recursively "." lib))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("php" ,php)))
|
||||
(home-page "https://github.com/phacility/libphutil")
|
||||
(synopsis "PHP utility library")
|
||||
(description
|
||||
"@code{libphutil} is a collection of utility classes and functions for
|
||||
PHP.")
|
||||
;; Bundled libraries are expat-licensed.
|
||||
(license (list license:asl2.0 license:expat)))))
|
||||
|
||||
(define-public arcanist
|
||||
(let ((commit "45a8d22c74a62624e69f5cd6ce901c9ab2658904")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "arcanist")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/phacility/arcanist.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"13vswhqy9sap6841y93j4mj71dl27vhcivcn3rzyi0cchkhg2ac9"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append %output "/bin"))
|
||||
(lib (string-append %output "/lib/arcanist")))
|
||||
(mkdir-p lib)
|
||||
(copy-recursively "." lib)
|
||||
(mkdir-p bin)
|
||||
(symlink (string-append lib "/bin/arc")
|
||||
(string-append bin "/arc"))
|
||||
(wrap-program (string-append bin "/arc")
|
||||
`("ARC_PHUTIL_PATH" =
|
||||
(,(string-append (assoc-ref %build-inputs "libphutil")
|
||||
"/lib/libphutil")))
|
||||
`("PATH" ":" prefix
|
||||
(,@(map (lambda (i)
|
||||
(string-append (assoc-ref %build-inputs i) "/bin"))
|
||||
'("git" "mercurial" "subversion"))))))
|
||||
#t))
|
||||
(add-before 'reset-gzip-timestamps 'make-compressed-files-writable
|
||||
(lambda _
|
||||
(for-each make-file-writable
|
||||
(find-files %output ".*\\.t?gz$"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("php" ,php)
|
||||
("libphutil" ,libphutil)
|
||||
("git" ,git)
|
||||
("mercurial" ,mercurial)
|
||||
("subversion" ,subversion)))
|
||||
(home-page "https://github.com/phacility/arcanist")
|
||||
(synopsis "Command-line interface for Phabricator")
|
||||
(description
|
||||
"Arcanist is the command-line tool for the Phabricator software
|
||||
development service. It allows you to interact with Phabricator installs to
|
||||
send code for review, download patches, transfer files, view status, make API
|
||||
calls, and various other things.")
|
||||
(license license:asl2.0))))
|
|
@ -5308,20 +5308,34 @@ SVG, EPS, PNG and terminal output.")
|
|||
(define-public python-seaborn
|
||||
(package
|
||||
(name "python-seaborn")
|
||||
(version "0.7.1")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "seaborn" version))
|
||||
(sha256
|
||||
(base32 "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs"))))
|
||||
(base32 "0bqysi3fxfjl1866m5jq8z7mynhqbqnikim74dmzn8539iwkzj3n"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; Tests requires a running X11 server.
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'start-xserver
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((xorg-server (assoc-ref inputs "xorg-server")))
|
||||
;; There must be a running X server and make check doesn't
|
||||
;; start one. Therefore we must do it.
|
||||
(system (format #f "~a/bin/Xvfb :1 &" xorg-server))
|
||||
(setenv "DISPLAY" ":1")
|
||||
#t)))
|
||||
(replace 'check (lambda _ (invoke "pytest" "seaborn") #t)))))
|
||||
(propagated-inputs
|
||||
`(("python-pandas" ,python-pandas)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-scipy" ,python-scipy)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(home-page "http://stanford.edu/~mwaskom/software/seaborn/")
|
||||
(synopsis "Statistical data visualization")
|
||||
(description
|
||||
|
@ -5329,15 +5343,10 @@ SVG, EPS, PNG and terminal output.")
|
|||
graphics in Python. It is built on top of matplotlib and tightly integrated
|
||||
with the PyData stack, including support for numpy and pandas data structures
|
||||
and statistical routines from scipy and statsmodels.")
|
||||
(license license:bsd-3)
|
||||
(properties `((python2-variant . ,(delay python2-seaborn))))))
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-seaborn
|
||||
(let ((base (package-with-python2 (strip-python2-variant python-seaborn))))
|
||||
(package
|
||||
(inherit base)
|
||||
(propagated-inputs `(("python2-pytz" ,python2-pytz)
|
||||
,@(package-propagated-inputs base))))))
|
||||
(package-with-python2 python-seaborn))
|
||||
|
||||
(define-public python-mpmath
|
||||
(package
|
||||
|
@ -9964,25 +9973,10 @@ hardware-accelerated multitouch applications.")
|
|||
(package-with-python2 python-kivy))
|
||||
|
||||
(define-public python-kivy-next
|
||||
(let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe")
|
||||
(revision "1"))
|
||||
(package (inherit python-kivy)
|
||||
(name "python-kivy-next")
|
||||
(version (string-append "1.9.1-" revision "."
|
||||
(string-take commit 7)))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/kivy/kivy")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
|
||||
(deprecated-package "python-kivy-next" python-kivy))
|
||||
|
||||
(define-public python2-kivy-next
|
||||
(package-with-python2 python-kivy-next))
|
||||
(deprecated-package "python2-kivy-next" python2-kivy))
|
||||
|
||||
(define-public python-binaryornot
|
||||
(package
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -2171,7 +2172,15 @@ different kinds of sliders, and much more.")
|
|||
#:configure-flags (list ;"-DENABLE_API_TESTS=TRUE"
|
||||
"-DPORT=Qt"
|
||||
"-DUSE_LIBHYPHEN=OFF"
|
||||
"-DUSE_SYSTEM_MALLOC=ON")))
|
||||
"-DUSE_SYSTEM_MALLOC=ON"
|
||||
;; XXX: relative dir installs to build dir?
|
||||
(string-append "-DECM_MKSPECS_INSTALL_DIR="
|
||||
%output "/lib/qt5/mkspecs/modules")
|
||||
;; Sacrifice a little speed in order to link
|
||||
;; libraries and test executables in a
|
||||
;; reasonable amount of memory.
|
||||
"-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-keep-memory"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-keep-memory")))
|
||||
(home-page "https://www.webkit.org")
|
||||
(synopsis "Web browser engine and classes to render and interact with web
|
||||
content")
|
||||
|
|
|
@ -206,98 +206,102 @@ features an integrated Emacs-like editor and a large runtime library.")
|
|||
(properties '((ftp-directory . "/gnu/mit-scheme/stable.pkg")))))
|
||||
|
||||
(define-public bigloo
|
||||
(package
|
||||
(name "bigloo")
|
||||
(version "4.3b")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x7xdgsls277zlf6gcaxs2cj62xj6yvb0qxh0ddmxfamvxba0cf4"))
|
||||
;; Remove bundled libraries.
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(for-each delete-file-recursively
|
||||
'("gc" "gmp" "libuv"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Upstream modifies source tarballs in place, making significant changes
|
||||
;; long after the initial publication: <https://bugs.gnu.org/33525>. For
|
||||
;; transparency, we give this "second 4.3b" release a different version
|
||||
;; number.
|
||||
(let ((upstream-version "4.3b"))
|
||||
(package
|
||||
(name "bigloo")
|
||||
(version "4.3b2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
|
||||
upstream-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02s0wrz5b1p0yqk9x6kax1vwzil7g9cyxfvl3vmy7fzznsza9gs4"))
|
||||
;; Remove bundled libraries.
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(for-each delete-file-recursively
|
||||
'("gc" "gmp" "libuv"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
|
||||
(substitute* "configure"
|
||||
(("^shell=.*$")
|
||||
(string-append "shell=" (which "bash") "\n"))
|
||||
(("`date`") "0"))
|
||||
(substitute* "autoconf/runtest.in"
|
||||
((", @DATE@") ""))
|
||||
(substitute* "autoconf/osversion"
|
||||
(("^version.*$") "version=\"\"\n"))
|
||||
(substitute* "comptime/Makefile"
|
||||
(("\\$\\(LDCOMPLIBS\\)")
|
||||
"$(LDCOMPLIBS) $(LDFLAGS)"))
|
||||
(substitute* "configure"
|
||||
(("^shell=.*$")
|
||||
(string-append "shell=" (which "bash") "\n"))
|
||||
(("`date`") "0"))
|
||||
(substitute* "autoconf/runtest.in"
|
||||
((", @DATE@") ""))
|
||||
(substitute* "autoconf/osversion"
|
||||
(("^version.*$") "version=\"\"\n"))
|
||||
(substitute* "comptime/Makefile"
|
||||
(("\\$\\(LDCOMPLIBS\\)")
|
||||
"$(LDCOMPLIBS) $(LDFLAGS)"))
|
||||
|
||||
;; The `configure' script doesn't understand options
|
||||
;; of those of Autoconf.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
; use system libraries
|
||||
"--customgc=no"
|
||||
"--customunistring=no"
|
||||
"--customlibuv=no"
|
||||
(string-append"--mv=" (which "mv"))
|
||||
(string-append "--rm=" (which "rm"))
|
||||
"--cflags=-fPIC"
|
||||
(string-append "--ldflags=-Wl,-rpath="
|
||||
(assoc-ref outputs "out")
|
||||
"/lib/bigloo/" ,version)
|
||||
(string-append "--lispdir=" out
|
||||
"/share/emacs/site-lisp")
|
||||
"--sharedbde=yes"
|
||||
"--sharedcompiler=yes"
|
||||
"--disable-patch"))))
|
||||
(add-after 'install 'install-emacs-modes
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/share/emacs/site-lisp")))
|
||||
(invoke "make" "-C" "bmacs" "all" "install"
|
||||
(string-append "EMACSBRAND=emacs25")
|
||||
(string-append "EMACSDIR=" dir))))))))
|
||||
(inputs
|
||||
`(("emacs" ,emacs) ;UDE needs the X version of Emacs
|
||||
("libgc" ,libgc)
|
||||
("libunistring" ,libunistring)
|
||||
("libuv" ,libuv)
|
||||
("openssl" ,openssl)
|
||||
("sqlite" ,sqlite)
|
||||
;; The `configure' script doesn't understand options
|
||||
;; of those of Autoconf.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
; use system libraries
|
||||
"--customgc=no"
|
||||
"--customunistring=no"
|
||||
"--customlibuv=no"
|
||||
(string-append"--mv=" (which "mv"))
|
||||
(string-append "--rm=" (which "rm"))
|
||||
"--cflags=-fPIC"
|
||||
(string-append "--ldflags=-Wl,-rpath="
|
||||
(assoc-ref outputs "out")
|
||||
"/lib/bigloo/" ,upstream-version)
|
||||
(string-append "--lispdir=" out
|
||||
"/share/emacs/site-lisp")
|
||||
"--sharedbde=yes"
|
||||
"--sharedcompiler=yes"
|
||||
"--disable-patch"))))
|
||||
(add-after 'install 'install-emacs-modes
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/share/emacs/site-lisp")))
|
||||
(invoke "make" "-C" "bmacs" "all" "install"
|
||||
(string-append "EMACSBRAND=emacs25")
|
||||
(string-append "EMACSDIR=" dir))))))))
|
||||
(inputs
|
||||
`(("emacs" ,emacs) ;UDE needs the X version of Emacs
|
||||
("libgc" ,libgc)
|
||||
("libunistring" ,libunistring)
|
||||
("libuv" ,libuv)
|
||||
("openssl" ,openssl)
|
||||
("sqlite" ,sqlite)
|
||||
|
||||
;; Optional APIs for which Bigloo has bindings.
|
||||
("avahi" ,avahi)
|
||||
("libphidget" ,libphidget)
|
||||
("pcre" ,pcre)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("gmp" ,gmp))) ; bigloo.h refers to gmp.h
|
||||
(home-page "http://www-sop.inria.fr/indes/fp/Bigloo/")
|
||||
(synopsis "Efficient Scheme compiler")
|
||||
(description
|
||||
"Bigloo is a Scheme implementation devoted to one goal: enabling
|
||||
Scheme based programming style where C(++) is usually
|
||||
required. Bigloo attempts to make Scheme practical by offering
|
||||
features usually presented by traditional programming languages
|
||||
but not offered by Scheme and functional programming. Bigloo
|
||||
compiles Scheme modules. It delivers small and fast stand alone
|
||||
binary executables. Bigloo enables full connections between
|
||||
Scheme and C programs and between Scheme and Java programs.")
|
||||
(license gpl2+)))
|
||||
;; Optional APIs for which Bigloo has bindings.
|
||||
("avahi" ,avahi)
|
||||
("libphidget" ,libphidget)
|
||||
("pcre" ,pcre)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("gmp" ,gmp))) ; bigloo.h refers to gmp.h
|
||||
(home-page "http://www-sop.inria.fr/indes/fp/Bigloo/")
|
||||
(synopsis "Efficient Scheme compiler")
|
||||
(description
|
||||
"Bigloo is a Scheme implementation devoted to one goal: enabling Scheme
|
||||
based programming style where C(++) is usually required. Bigloo attempts to
|
||||
make Scheme practical by offering features usually presented by traditional
|
||||
programming languages but not offered by Scheme and functional programming.
|
||||
Bigloo compiles Scheme modules. It delivers small and fast stand alone binary
|
||||
executables. Bigloo enables full connections between Scheme and C programs
|
||||
and between Scheme and Java programs.")
|
||||
(license gpl2+))))
|
||||
|
||||
(define-public hop
|
||||
(package
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
|
@ -56,7 +56,7 @@
|
|||
(sha256
|
||||
(base32
|
||||
"00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034"))
|
||||
(modules '((guix build utils)))))
|
||||
(patches (search-patches "scribus-poppler.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;no test target
|
||||
|
|
|
@ -457,6 +457,70 @@ everything from small to very large projects with speed and efficiency.")
|
|||
(license license:gpl2)
|
||||
(home-page "https://git-scm.com/")))
|
||||
|
||||
(define-public git-minimal
|
||||
;; The size of the closure of 'git-minimal' is two thirds that of 'git'.
|
||||
;; Its test suite runs slightly faster and most importantly it doesn't
|
||||
;; depend on packages that are expensive to build such as Subversion.
|
||||
(package
|
||||
(inherit git)
|
||||
(name "git-minimal")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments git)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'patch-makefiles
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("/usr/bin/perl") (which "perl")))
|
||||
#t))
|
||||
(delete 'build-subtree)
|
||||
(delete 'split)
|
||||
(delete 'install-man-pages)
|
||||
(delete 'install-subtree)
|
||||
(delete 'install-credential-netrc)
|
||||
(add-before 'check 'delete-svn-test
|
||||
(lambda _
|
||||
;; This test cannot run since we are not building 'git-svn'.
|
||||
(delete-file "t/t9020-remote-svn.sh")
|
||||
#t))
|
||||
(add-after 'install 'remove-unusable-perl-commands
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(libexec (string-append out "/libexec")))
|
||||
(for-each (lambda (file)
|
||||
(delete-file (string-append libexec
|
||||
"/git-core/" file)))
|
||||
'("git-svn" "git-cvsimport" "git-archimport"
|
||||
"git-cvsserver" "git-request-pull"
|
||||
"git-add--interactive" "git-cvsexportcommit"
|
||||
"git-instaweb" "git-send-email"))
|
||||
(delete-file (string-append bin "/git-cvsserver"))
|
||||
|
||||
;; These templates typically depend on Perl. Remove them.
|
||||
(delete-file-recursively
|
||||
(string-append out "/share/git-core/templates/hooks"))
|
||||
|
||||
;; Gitweb depends on Perl as well.
|
||||
(delete-file-recursively
|
||||
(string-append out "/share/gitweb"))
|
||||
#t)))))
|
||||
((#:configure-flags flags)
|
||||
''())
|
||||
((#:disallowed-references lst '())
|
||||
`(,perl ,@lst))))
|
||||
(outputs '("out"))
|
||||
(native-inputs
|
||||
`(("native-perl" ,perl)
|
||||
("gettext" ,gettext-minimal)))
|
||||
(inputs
|
||||
`(("curl" ,curl) ;for HTTP(S) access
|
||||
("expat" ,expat) ;for 'git push' over HTTP(S)
|
||||
("openssl" ,openssl)
|
||||
("perl" ,perl)
|
||||
("zlib" ,zlib)
|
||||
("bash-for-tests" ,bash)))))
|
||||
|
||||
(define-public libgit2
|
||||
(package
|
||||
(name "libgit2")
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
|
||||
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -112,6 +112,7 @@
|
|||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages ocr)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -128,6 +129,7 @@
|
|||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
|
@ -394,6 +396,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
(package
|
||||
(name "x265")
|
||||
(version "2.9")
|
||||
(outputs '("out" "static"))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -402,7 +405,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
(sha256
|
||||
(base32
|
||||
"090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb"))
|
||||
(patches (search-patches "x265-detect512-all-arches.patch"))
|
||||
(patches (search-patches "x265-arm-flags.patch"
|
||||
"x265-detect512-all-arches.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
(delete-file-recursively "source/compat/getopt")
|
||||
|
@ -410,14 +414,76 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
|
||||
;; Ensure position independent code for everyone.
|
||||
#:configure-flags '("-DENABLE_PIC=TRUE")
|
||||
#:configure-flags
|
||||
;; Ensure position independent code for everyone.
|
||||
(list "-DENABLE_PIC=TRUE"
|
||||
,@(if (string-prefix? "armhf" (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("-DENABLE_ASSEMBLY=OFF")
|
||||
'())
|
||||
(string-append "-DCMAKE_INSTALL_PREFIX="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'prepare-build
|
||||
(add-after 'unpack 'prepare-build
|
||||
(lambda _
|
||||
(delete-file-recursively "build")
|
||||
(chdir "source")
|
||||
;; recognize armv8 in 32-bit mode as ARM
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("armv6l") "armv8l"))
|
||||
#t))
|
||||
(add-before 'configure 'build-12-bit
|
||||
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
|
||||
(mkdir "../build-12bit")
|
||||
(with-directory-excursion "../build-12bit"
|
||||
(apply invoke
|
||||
"cmake" "../source"
|
||||
"-DHIGH_BIT_DEPTH=ON"
|
||||
"-DEXPORT_C_API=OFF"
|
||||
"-DENABLE_CLI=OFF"
|
||||
"-DMAIN12=ON"
|
||||
configure-flags)
|
||||
(substitute* (cons "cmake_install.cmake"
|
||||
(append
|
||||
(find-files "CMakeFiles/x265-shared.dir" ".")
|
||||
(find-files "CMakeFiles/x265-static.dir" ".")))
|
||||
(("libx265") "libx265_main12"))
|
||||
(invoke "make"))))
|
||||
(add-before 'configure 'build-10-bit
|
||||
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
|
||||
(mkdir "../build-10bit")
|
||||
(with-directory-excursion "../build-10bit"
|
||||
(apply invoke
|
||||
"cmake" "../source"
|
||||
"-DHIGH_BIT_DEPTH=ON"
|
||||
"-DEXPORT_C_API=OFF"
|
||||
"-DENABLE_CLI=OFF"
|
||||
configure-flags)
|
||||
(substitute* (cons "cmake_install.cmake"
|
||||
(append
|
||||
(find-files "CMakeFiles/x265-shared.dir" ".")
|
||||
(find-files "CMakeFiles/x265-static.dir" ".")))
|
||||
(("libx265") "libx265_main10"))
|
||||
(invoke "make"))))
|
||||
(add-after 'install 'install-more-libs
|
||||
(lambda _
|
||||
(with-directory-excursion "../build-12bit"
|
||||
(invoke "make" "install"))
|
||||
(with-directory-excursion "../build-10bit"
|
||||
(invoke "make" "install"))))
|
||||
(add-before 'strip 'move-static-libs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(static (assoc-ref outputs "static")))
|
||||
(mkdir-p (string-append static "/lib"))
|
||||
(with-directory-excursion
|
||||
(string-append out "/lib")
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(rename-file file
|
||||
(string-append static "/lib/" file)))
|
||||
(find-files "." "\\.a$"))))
|
||||
#t)))))
|
||||
(home-page "http://x265.org/")
|
||||
(synopsis "Library for encoding h.265/HEVC video streams")
|
||||
|
@ -3082,3 +3148,110 @@ as surfing, skiing, riding and walking while shooting videos are especially
|
|||
prone to erratic camera shakes. Vidstab targets these video contents to help
|
||||
create smoother and stable videos.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public libopenshot
|
||||
(package
|
||||
(name "libopenshot")
|
||||
(version "0.2.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenShot/libopenshot")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x4kv05pdq1pglb6y056aa7llc6iyibyhzg93k7zwj0q08cp5ixd"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
;; Allow overriding of the python installation dir
|
||||
(substitute* "src/bindings/python/CMakeLists.txt"
|
||||
(("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set)
|
||||
(string-append set " CACHE PATH "
|
||||
"\"Python bindings directory\")")))
|
||||
#t))
|
||||
(patches (search-patches "libopenshot-tests-with-system-libs.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python" ,python)
|
||||
("swig" ,swig)
|
||||
("unittest++" ,unittest-cpp)))
|
||||
(propagated-inputs ;all referenced in installed headers
|
||||
`(("cppzmq" ,cppzmq)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("imagemagick" ,imagemagick)
|
||||
("jsoncpp" ,jsoncpp)
|
||||
("libopenshot-audio" ,libopenshot-audio)
|
||||
("qt" ,qt) ;widgets, core, gui, multimedia, and multimediawidgets
|
||||
("zeromq" ,zeromq)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "-DPYTHON_MODULE_PATH:PATH=" %output "/lib/python"
|
||||
,(version-major+minor (package-version python))
|
||||
"/site-packages")
|
||||
"-DUSE_SYSTEM_JSONCPP:BOOL=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-vars
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "LIBOPENSHOT_AUDIO_DIR"
|
||||
(assoc-ref inputs "libopenshot-audio"))
|
||||
(setenv "ZMQDIR"
|
||||
(assoc-ref inputs "zeromq"))
|
||||
(setenv "UNITTEST_DIR"
|
||||
(string-append (assoc-ref inputs "unittest++")
|
||||
"/include/UnitTest++"))
|
||||
#t)))))
|
||||
(home-page "https://openshot.org")
|
||||
(synopsis "Video-editing, animation, and playback library")
|
||||
(description "OpenShot Library (libopenshot) is a powerful C++ video
|
||||
editing library with a multi-threaded and feature rich video editing
|
||||
API. It includes bindings for Python, Ruby, and other languages.")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public openshot
|
||||
(package
|
||||
(name "openshot")
|
||||
(version "2.4.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenShot/openshot-qt")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qdw1mli4y9qhrnllnkaf6ydgw5vfvdb90chs4i679k0x0jyb9a2"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg)
|
||||
("libopenshot" ,libopenshot)
|
||||
("python" ,python)
|
||||
("python-pyqt" ,python-pyqt)
|
||||
("python-pyzmq" ,python-pyzmq)
|
||||
("python-requests" ,python-requests)
|
||||
("qtsvg" ,qtsvg)))
|
||||
(arguments
|
||||
`(#:tests? #f ;no tests
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'build) ;install phase does all the work
|
||||
(add-before 'install 'set-tmp-home
|
||||
(lambda _
|
||||
;; src/classes/info.py "needs" to create several
|
||||
;; directories in $HOME when loaded during build
|
||||
(setenv "HOME" "/tmp")
|
||||
#t))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
"/bin/openshot-qt")
|
||||
`("QT_PLUGIN_PATH" prefix
|
||||
,(list (string-append (assoc-ref inputs "qtsvg")
|
||||
"/lib/qt5/plugins/")))))))))
|
||||
(home-page "https://openshot.org")
|
||||
(synopsis "Video editor")
|
||||
(description "OpenShot takes your videos, photos, and music files and
|
||||
helps you create the film you have always dreamed of. Easily add sub-titles,
|
||||
transitions, and effects and then export your film to many common formats.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
(define-public vim
|
||||
(package
|
||||
(name "vim")
|
||||
(version "8.1.0026")
|
||||
(version "8.1.0551")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/vim/vim/archive/v"
|
||||
|
@ -69,7 +69,7 @@
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14q99dn113czp522j34p71za6g1mkriy04xxwcbm3axnrrpv1y52"))))
|
||||
"1wi6j9w04wg3hxsch3izl2mxb0065vpvxscz19zjn5ypkfypnm8n"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
@ -85,12 +85,18 @@
|
|||
"src/testdir/test_terminal.vim")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
(add-before 'check 'patch-failing-test
|
||||
(add-before 'check 'patch-failing-tests
|
||||
(lambda _
|
||||
;; XXX A single test fails with “Can't create file /dev/stdout” (at
|
||||
;; Test_writefile_sync_dev_stdout line 5) while /dev/stdout exists.
|
||||
(substitute* "src/testdir/test_writefile.vim"
|
||||
(("/dev/stdout") "a-regular-file"))
|
||||
|
||||
;; XXX: This test fails when run in the build container:
|
||||
;; <https://github.com/vim/vim/issues/3348>.
|
||||
(substitute* "src/testdir/test_search.vim"
|
||||
((".*'Test_incsearch_substitute_03'.*" all)
|
||||
(string-append "\"" all "\n")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("gawk" ,gawk)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
|
||||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -998,3 +999,58 @@ the image.
|
|||
@code{vagrant} command line executable, allowing programmatic control of Vagrant
|
||||
virtual machines.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public bubblewrap
|
||||
(package
|
||||
(name "bubblewrap")
|
||||
(version "0.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/projectatomic/bubblewrap/"
|
||||
"releases/download/v" version "/bubblewrap-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1y2bdlxnlr84xcbf31lzirc292c5ak9bd2wvcvh4ppsliih6pjny"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-test
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Tests try to access /var/tmp, which is not possible in our build
|
||||
;; environment. Let's give them another directory.
|
||||
;; /tmp gets overriden in some tests, so we need another directory.
|
||||
;; the only possibility is the output directory.
|
||||
(let ((tmp-dir (string-append (assoc-ref outputs "out") "/tmp")))
|
||||
(mkdir-p tmp-dir)
|
||||
(substitute* "tests/test-run.sh"
|
||||
(("/var/tmp") tmp-dir)
|
||||
;; Tests create a temporary python script, so fix its shebang.
|
||||
(("/usr/bin/env python") (which "python"))
|
||||
;; Some tests try to access /usr, but that doesn't exist.
|
||||
;; Give them /gnu instead.
|
||||
(("/usr") "/gnu")
|
||||
((" */bin/bash") (which "bash"))
|
||||
(("/bin/sh") (which "sh"))
|
||||
(("findmnt") (which "findmnt"))))
|
||||
#t))
|
||||
;; Remove the directory we gave to tests to have a clean package.
|
||||
(add-after 'check 'remove-tmp-dir
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(delete-file-recursively (string-append (assoc-ref outputs "out") "/tmp"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("libcap" ,libcap)))
|
||||
(native-inputs
|
||||
`(("python-2" ,python-2)
|
||||
("util-linux" ,util-linux)))
|
||||
(home-page "https://github.com/projectatomic/bubblewrap")
|
||||
(synopsis "Unprivileged sandboxing tool")
|
||||
(description "Bubblewrap is aimed at running applications in a sandbox,
|
||||
where it has restricted access to parts of the operating system or user data
|
||||
such as the home directory. Bubblewrap always creates a new mount namespace,
|
||||
and the user can specify exactly what parts of the filesystem should be visible
|
||||
in the sandbox. Any such directories specified is mounted nodev by default,
|
||||
and can be made readonly.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -48,6 +49,7 @@
|
|||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system python))
|
||||
|
@ -320,3 +322,40 @@ access.")
|
|||
(description "qutebrowser is a keyboard-focused browser with a minimal
|
||||
GUI. It is based on PyQt5 and QtWebKit.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public vimb
|
||||
(package
|
||||
(name "vimb")
|
||||
(version "3.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fanglingsu/vimb/")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
"DESTDIR="
|
||||
(string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(inputs
|
||||
`(("glib-networking" ,glib-networking)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("webkitgtk" ,webkitgtk)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://fanglingsu.github.io/vimb/")
|
||||
(synopsis "Fast and lightweight Vim-like web browser")
|
||||
(description "Vimb is a fast and lightweight vim like web browser based on
|
||||
the webkit web browser engine and the GTK toolkit. Vimb is modal like the great
|
||||
vim editor and also easily configurable during runtime. Vimb is mostly keyboard
|
||||
driven and does not detract you from your daily work.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
|
@ -5757,7 +5757,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
|
|||
(define-public rss-bridge
|
||||
(package
|
||||
(name "rss-bridge")
|
||||
(version "2018-03-11")
|
||||
(version "2018-11-10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5766,7 +5766,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ix15ck45yb659k63mhwxwia6qnm9nn8jw0bga85abrvk1rchjdn"))))
|
||||
"1l9a82smh6k37bjvzbmkdlssxywlmr40ig4cykgsns1iiszwv4ia"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("gzip" ,gzip)
|
||||
|
|
|
@ -225,7 +225,7 @@ integrate Windows applications into your desktop.")
|
|||
(define-public wine-staging-patchset-data
|
||||
(package
|
||||
(name "wine-staging-patchset-data")
|
||||
(version "3.20")
|
||||
(version "3.21")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -235,7 +235,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"049cwllf4aybrhj4l2i3vd5jvagjz4d448404zkyy0lfxr08id3p"))))
|
||||
"1bxryvqw5rvhcx8vjl714jaj0rjsrh95kh3sn499rrljc3c8qsbl"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("bash" ,bash)
|
||||
|
@ -281,7 +281,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"063garmflbna3mhph8k0dv0bkzq8x75x5xrd0j8y0mjh10i13mik"))))
|
||||
"1h70wb7kysbzv36i3fblyiihvalwhy6sj4s2a8nf21nz2mhc0k58"))))
|
||||
(inputs `(("autoconf" ,autoconf) ; for autoreconf
|
||||
("gtk+" ,gtk+)
|
||||
("libva" ,libva)
|
||||
|
|
|
@ -518,7 +518,15 @@ of user-name/file-like tuples."
|
|||
(service-extension activation-service-type
|
||||
openssh-activation)
|
||||
(service-extension account-service-type
|
||||
(const %openssh-accounts))))
|
||||
(const %openssh-accounts))
|
||||
|
||||
;; Install OpenSSH in the system profile. That way,
|
||||
;; 'scp' is found when someone tries to copy to or from
|
||||
;; this machine.
|
||||
(service-extension profile-service-type
|
||||
(lambda (config)
|
||||
(list (openssh-configuration-openssh
|
||||
config))))))
|
||||
(compose concatenate)
|
||||
(extend extend-openssh-authorized-keys)
|
||||
(default-value (openssh-configuration))))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
(use-modules (gnu))
|
||||
(use-service-modules networking ssh)
|
||||
(use-package-modules screen ssh)
|
||||
(use-package-modules screen)
|
||||
|
||||
(operating-system
|
||||
(host-name "komputilo")
|
||||
|
@ -40,7 +40,7 @@
|
|||
%base-user-accounts))
|
||||
|
||||
;; Globally-installed packages.
|
||||
(packages (cons* screen openssh %base-packages))
|
||||
(packages (cons screen %base-packages))
|
||||
|
||||
;; Add services to the baseline: a DHCP client and
|
||||
;; an SSH server.
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
channel-instance-checkout
|
||||
|
||||
latest-channel-instances
|
||||
checkout->channel-instance
|
||||
latest-channel-derivation
|
||||
channel-instances->manifest
|
||||
channel-instances->derivation))
|
||||
|
@ -114,6 +115,17 @@ CHANNELS."
|
|||
(channel-instance channel commit checkout)))
|
||||
channels))
|
||||
|
||||
(define* (checkout->channel-instance checkout
|
||||
#:key commit
|
||||
(url checkout) (name 'guix))
|
||||
"Return a channel instance for CHECKOUT, which is assumed to be a checkout
|
||||
of COMMIT at URL. Use NAME as the channel name."
|
||||
(let* ((commit (or commit (make-string 40 #\0)))
|
||||
(channel (channel (name name)
|
||||
(commit commit)
|
||||
(url url))))
|
||||
(channel-instance channel commit checkout)))
|
||||
|
||||
(define %self-build-file
|
||||
;; The file containing code to build Guix. This serves the same purpose as
|
||||
;; a makefile, and, similarly, is intended to always keep this name.
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
substitutable-derivation?
|
||||
substitution-oracle
|
||||
derivation-hash
|
||||
derivation-properties
|
||||
|
||||
read-derivation
|
||||
read-derivation-from-file
|
||||
|
@ -681,7 +682,8 @@ name of each input with that input's hash."
|
|||
references-graphs
|
||||
allowed-references disallowed-references
|
||||
leaked-env-vars local-build?
|
||||
(substitutable? #t))
|
||||
(substitutable? #t)
|
||||
(properties '()))
|
||||
"Build a derivation with the given arguments, and return the resulting
|
||||
<derivation> object. When HASH and HASH-ALGO are given, a
|
||||
fixed-output derivation is created---i.e., one whose result is known in
|
||||
|
@ -708,7 +710,10 @@ for offloading and should rather be built locally. This is the case for small
|
|||
derivations where the costs of data transfers would outweigh the benefits.
|
||||
|
||||
When SUBSTITUTABLE? is false, declare that substitutes of the derivation's
|
||||
output should not be used."
|
||||
output should not be used.
|
||||
|
||||
PROPERTIES must be an association list describing \"properties\" of the
|
||||
derivation. It is kept as-is, uninterpreted, in the derivation."
|
||||
(define (add-output-paths drv)
|
||||
;; Return DRV with an actual store path for each of its output and the
|
||||
;; corresponding environment variable.
|
||||
|
@ -763,6 +768,10 @@ output should not be used."
|
|||
`(("impureEnvVars"
|
||||
. ,(string-join leaked-env-vars)))
|
||||
'())
|
||||
,@(match properties
|
||||
(() '())
|
||||
(lst `(("guix properties"
|
||||
. ,(object->string properties)))))
|
||||
,@env-vars)))
|
||||
(match references-graphs
|
||||
(((file . path) ...)
|
||||
|
@ -851,6 +860,14 @@ long-running processes that know what they're doing. Use with care!"
|
|||
(invalidate-memoization! derivation-path->base16-hash)
|
||||
(hash-clear! %derivation-cache))
|
||||
|
||||
(define derivation-properties
|
||||
(mlambdaq (drv)
|
||||
"Return the property alist associated with DRV."
|
||||
(match (assoc "guix properties"
|
||||
(derivation-builder-environment-vars drv))
|
||||
((_ . str) (call-with-input-string str read))
|
||||
(#f '()))))
|
||||
|
||||
(define* (map-derivation store drv mapping
|
||||
#:key (system (%current-system)))
|
||||
"Given MAPPING, a list of pairs of derivations, return a derivation based on
|
||||
|
@ -1129,7 +1146,8 @@ they can refer to each other."
|
|||
references-graphs
|
||||
allowed-references
|
||||
disallowed-references
|
||||
local-build? (substitutable? #t))
|
||||
local-build? (substitutable? #t)
|
||||
(properties '()))
|
||||
"Return a derivation that executes Scheme expression EXP as a builder
|
||||
for derivation NAME. INPUTS must be a list of (NAME DRV-PATH SUB-DRV)
|
||||
tuples; when SUB-DRV is omitted, \"out\" is assumed. MODULES is a list
|
||||
|
@ -1149,7 +1167,8 @@ EXP is built using GUILE-FOR-BUILD (a derivation). When GUILE-FOR-BUILD is
|
|||
omitted or is #f, the value of the `%guile-for-build' fluid is used instead.
|
||||
|
||||
See the `derivation' procedure for the meaning of REFERENCES-GRAPHS,
|
||||
ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, and SUBSTITUTABLE?."
|
||||
ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, SUBSTITUTABLE?,
|
||||
and PROPERTIES."
|
||||
(define guile-drv
|
||||
(or guile-for-build (%guile-for-build)))
|
||||
|
||||
|
@ -1277,7 +1296,8 @@ ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, and SUBSTITUTABLE?."
|
|||
#:allowed-references allowed-references
|
||||
#:disallowed-references disallowed-references
|
||||
#:local-build? local-build?
|
||||
#:substitutable? substitutable?)))
|
||||
#:substitutable? substitutable?
|
||||
#:properties properties)))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
|
@ -209,8 +209,13 @@ SRFI-19 time-utc object, as the creation time in metadata."
|
|||
;; the path "/a" into "/". The presence of "/" in the archive is
|
||||
;; probably benign, but it is definitely safe to remove it, so let's
|
||||
;; do that. This fails when "/" is not in the archive, so use system*
|
||||
;; instead of invoke to avoid an exception in that case.
|
||||
(system* "tar" "--delete" "/" "-f" "layer.tar")
|
||||
;; instead of invoke to avoid an exception in that case, and redirect
|
||||
;; stderr to the bit bucket to avoid "Exiting with failure status"
|
||||
;; error messages.
|
||||
(with-error-to-port (%make-void-port "w")
|
||||
(lambda ()
|
||||
(system* "tar" "--delete" "/" "-f" "layer.tar")))
|
||||
|
||||
(for-each delete-file-recursively
|
||||
(map (compose topmost-component symlink-source)
|
||||
symlinks))
|
||||
|
|
|
@ -373,14 +373,24 @@
|
|||
;; procedure that takes a file name, an algorithm (symbol) and a hash
|
||||
;; (bytevector), and returns a URL or #f.
|
||||
'(begin
|
||||
(use-modules (guix base32) (guix base16))
|
||||
(use-modules (guix base32))
|
||||
|
||||
(list (lambda (file algo hash)
|
||||
;; Files served by 'guix publish' are accessible under a single
|
||||
;; hash algorithm.
|
||||
(string-append "https://mirror.hydra.gnu.org/file/"
|
||||
file "/" (symbol->string algo) "/"
|
||||
(bytevector->nix-base32-string hash)))
|
||||
(define (guix-publish host)
|
||||
(lambda (file algo hash)
|
||||
;; Files served by 'guix publish' are accessible under a single
|
||||
;; hash algorithm.
|
||||
(string-append "https://" host "/file/"
|
||||
file "/" (symbol->string algo) "/"
|
||||
(bytevector->nix-base32-string hash))))
|
||||
|
||||
;; XXX: (guix base16) appeared in March 2017 (and thus 0.13.0) so old
|
||||
;; installations of the daemon might lack it. Thus, load it lazily to
|
||||
;; avoid gratuitous errors. See <https://bugs.gnu.org/33542>.
|
||||
(module-autoload! (current-module)
|
||||
'(guix base16) '(bytevector->base16-string))
|
||||
|
||||
(list (guix-publish "mirror.hydra.gnu.org")
|
||||
(guix-publish "berlin.guixsd.org")
|
||||
(lambda (file algo hash)
|
||||
;; 'tarballs.nixos.org' supports several algorithms.
|
||||
(string-append "https://tarballs.nixos.org/"
|
||||
|
|
|
@ -631,6 +631,8 @@ names and file names suitable for the #:allowed-references argument to
|
|||
allowed-references disallowed-references
|
||||
leaked-env-vars
|
||||
local-build? (substitutable? #t)
|
||||
(properties '())
|
||||
|
||||
deprecation-warnings
|
||||
(script-name (string-append name "-builder")))
|
||||
"Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a
|
||||
|
@ -788,7 +790,8 @@ The other arguments are as for 'derivation'."
|
|||
#:disallowed-references disallowed
|
||||
#:leaked-env-vars leaked-env-vars
|
||||
#:local-build? local-build?
|
||||
#:substitutable? substitutable?))))
|
||||
#:substitutable? substitutable?
|
||||
#:properties properties))))
|
||||
|
||||
(define* (gexp-inputs exp #:key native?)
|
||||
"Return the input list for EXP. When NATIVE? is true, return only native
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
(define (git-package)
|
||||
"Return the default Git package."
|
||||
(let ((distro (resolve-interface '(gnu packages version-control))))
|
||||
(module-ref distro 'git)))
|
||||
(module-ref distro 'git-minimal)))
|
||||
|
||||
(define* (git-fetch ref hash-algo hash
|
||||
#:optional name
|
||||
|
@ -74,11 +74,22 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
|||
;; available so that 'git submodule' works.
|
||||
(if (git-reference-recursive? ref)
|
||||
(standard-packages)
|
||||
'()))
|
||||
|
||||
;; The 'swh-download' procedure requires tar and gzip.
|
||||
`(("gzip" ,(module-ref (resolve-interface '(gnu packages compression))
|
||||
'gzip))
|
||||
("tar" ,(module-ref (resolve-interface '(gnu packages base))
|
||||
'tar)))))
|
||||
|
||||
(define zlib
|
||||
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
|
||||
|
||||
(define guile-json
|
||||
(module-ref (resolve-interface '(gnu packages guile)) 'guile-json))
|
||||
|
||||
(define gnutls
|
||||
(module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
|
||||
|
||||
(define config.scm
|
||||
(scheme-file "config.scm"
|
||||
#~(begin
|
||||
|
@ -93,30 +104,43 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
|||
(delete '(guix config)
|
||||
(source-module-closure '((guix build git)
|
||||
(guix build utils)
|
||||
(guix build download-nar))))))
|
||||
(guix build download-nar)
|
||||
(guix swh))))))
|
||||
|
||||
(define build
|
||||
(with-imported-modules modules
|
||||
#~(begin
|
||||
(use-modules (guix build git)
|
||||
(guix build utils)
|
||||
(guix build download-nar)
|
||||
(ice-9 match))
|
||||
(with-extensions (list guile-json gnutls) ;for (guix swh)
|
||||
#~(begin
|
||||
(use-modules (guix build git)
|
||||
(guix build utils)
|
||||
(guix build download-nar)
|
||||
(guix swh)
|
||||
(ice-9 match))
|
||||
|
||||
;; The 'git submodule' commands expects Coreutils, sed,
|
||||
;; grep, etc. to be in $PATH.
|
||||
(set-path-environment-variable "PATH" '("bin")
|
||||
(match '#+inputs
|
||||
(((names dirs outputs ...) ...)
|
||||
dirs)))
|
||||
(define recursive?
|
||||
(call-with-input-string (getenv "git recursive?") read))
|
||||
|
||||
(or (git-fetch (getenv "git url") (getenv "git commit")
|
||||
#$output
|
||||
#:recursive? (call-with-input-string
|
||||
(getenv "git recursive?")
|
||||
read)
|
||||
#:git-command (string-append #+git "/bin/git"))
|
||||
(download-nar #$output)))))
|
||||
;; The 'git submodule' commands expects Coreutils, sed,
|
||||
;; grep, etc. to be in $PATH.
|
||||
(set-path-environment-variable "PATH" '("bin")
|
||||
(match '#+inputs
|
||||
(((names dirs outputs ...) ...)
|
||||
dirs)))
|
||||
|
||||
(setvbuf (current-output-port) 'line)
|
||||
(setvbuf (current-error-port) 'line)
|
||||
|
||||
(or (git-fetch (getenv "git url") (getenv "git commit")
|
||||
#$output
|
||||
#:recursive? recursive?
|
||||
#:git-command (string-append #+git "/bin/git"))
|
||||
(download-nar #$output)
|
||||
|
||||
;; As a last resort, attempt to download from Software Heritage.
|
||||
;; XXX: Currently recursive checkouts are not supported.
|
||||
(and (not recursive?)
|
||||
(swh-download (getenv "git url") (getenv "git commit")
|
||||
#$output)))))))
|
||||
|
||||
(mlet %store-monad ((guile (package->derivation guile system)))
|
||||
(gexp->derivation (or name "git-checkout") build
|
||||
|
|
|
@ -123,6 +123,10 @@ are not recursively applied to dependencies of DRV."
|
|||
(define add-label
|
||||
(cut cons "x" <>))
|
||||
|
||||
(define properties
|
||||
`((type . graft)
|
||||
(graft (count . ,(length grafts)))))
|
||||
|
||||
(match grafts
|
||||
((($ <graft> sources source-outputs targets target-outputs) ...)
|
||||
(let ((sources (zip sources source-outputs))
|
||||
|
@ -140,7 +144,8 @@ are not recursively applied to dependencies of DRV."
|
|||
,@(append (map add-label sources)
|
||||
(map add-label targets)))
|
||||
#:outputs outputs
|
||||
#:local-build? #t)))))
|
||||
#:local-build? #t
|
||||
#:properties properties)))))
|
||||
(define (item->deriver store item)
|
||||
"Return two values: the derivation that led to ITEM (a store item), and the
|
||||
name of the output of that derivation ITEM corresponds to (for example
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
open-inferior
|
||||
close-inferior
|
||||
inferior-eval
|
||||
inferior-eval-with-store
|
||||
inferior-object?
|
||||
|
||||
inferior-packages
|
||||
|
@ -402,6 +403,48 @@ input/output ports.)"
|
|||
(unless (port-closed? client)
|
||||
(loop))))))
|
||||
|
||||
(define (inferior-eval-with-store inferior store code)
|
||||
"Evaluate CODE in INFERIOR, passing it STORE as its argument. CODE must
|
||||
thus be the code of a one-argument procedure that accepts a store."
|
||||
;; Create a named socket in /tmp and let INFERIOR connect to it and use it
|
||||
;; as its store. This ensures the inferior uses the same store, with the
|
||||
;; same options, the same per-session GC roots, etc.
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(chmod directory #o700)
|
||||
(let* ((name (string-append directory "/inferior"))
|
||||
(socket (socket AF_UNIX SOCK_STREAM 0))
|
||||
(major (nix-server-major-version store))
|
||||
(minor (nix-server-minor-version store))
|
||||
(proto (logior major minor)))
|
||||
(bind socket AF_UNIX name)
|
||||
(listen socket 1024)
|
||||
(send-inferior-request
|
||||
`(let ((proc ,code)
|
||||
(socket (socket AF_UNIX SOCK_STREAM 0)))
|
||||
(connect socket AF_UNIX ,name)
|
||||
|
||||
;; 'port->connection' appeared in June 2018 and we can hardly
|
||||
;; emulate it on older versions. Thus fall back to
|
||||
;; 'open-connection', at the risk of talking to the wrong daemon or
|
||||
;; having our build result reclaimed (XXX).
|
||||
(let ((store (if (defined? 'port->connection)
|
||||
(port->connection socket #:version ,proto)
|
||||
(open-connection))))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(proc store))
|
||||
(lambda ()
|
||||
(close-connection store)
|
||||
(close-port socket)))))
|
||||
inferior)
|
||||
(match (accept socket)
|
||||
((client . address)
|
||||
(proxy client (nix-server-socket store))))
|
||||
(close-port socket)
|
||||
(read-inferior-response inferior)))))
|
||||
|
||||
(define* (inferior-package-derivation store package
|
||||
#:optional
|
||||
(system (%current-system))
|
||||
|
@ -409,48 +452,21 @@ input/output ports.)"
|
|||
"Return the derivation for PACKAGE, an inferior package, built for SYSTEM
|
||||
and cross-built for TARGET if TARGET is true. The inferior corresponding to
|
||||
PACKAGE must be live."
|
||||
;; Create a named socket in /tmp and let the inferior of PACKAGE connect to
|
||||
;; it and use it as its store. This ensures the inferior uses the same
|
||||
;; store, with the same options, the same per-session GC roots, etc.
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(chmod directory #o700)
|
||||
(let* ((name (string-append directory "/inferior"))
|
||||
(socket (socket AF_UNIX SOCK_STREAM 0))
|
||||
(inferior (inferior-package-inferior package))
|
||||
(major (nix-server-major-version store))
|
||||
(minor (nix-server-minor-version store))
|
||||
(proto (logior major minor)))
|
||||
(bind socket AF_UNIX name)
|
||||
(listen socket 1024)
|
||||
(send-inferior-request
|
||||
`(let ((socket (socket AF_UNIX SOCK_STREAM 0)))
|
||||
(connect socket AF_UNIX ,name)
|
||||
(define proc
|
||||
`(lambda (store)
|
||||
(let* ((package (hashv-ref %package-table
|
||||
,(inferior-package-id package)))
|
||||
(drv ,(if target
|
||||
`(package-cross-derivation store package
|
||||
,target
|
||||
,system)
|
||||
`(package-derivation store package
|
||||
,system))))
|
||||
(derivation-file-name drv))))
|
||||
|
||||
;; 'port->connection' appeared in June 2018 and we can hardly
|
||||
;; emulate it on older versions. Thus fall back to
|
||||
;; 'open-connection', at the risk of talking to the wrong daemon or
|
||||
;; having our build result reclaimed (XXX).
|
||||
(let* ((store (if (defined? 'port->connection)
|
||||
(port->connection socket #:version ,proto)
|
||||
(open-connection)))
|
||||
(package (hashv-ref %package-table
|
||||
,(inferior-package-id package)))
|
||||
(drv ,(if target
|
||||
`(package-cross-derivation store package
|
||||
,target
|
||||
,system)
|
||||
`(package-derivation store package
|
||||
,system))))
|
||||
(close-connection store)
|
||||
(close-port socket)
|
||||
(derivation-file-name drv)))
|
||||
inferior)
|
||||
(match (accept socket)
|
||||
((client . address)
|
||||
(proxy client (nix-server-socket store))))
|
||||
(close-port socket)
|
||||
(read-derivation-from-file (read-inferior-response inferior))))))
|
||||
(and=> (inferior-eval-with-store (inferior-package-inferior package) store
|
||||
proc)
|
||||
read-derivation-from-file))
|
||||
|
||||
(define inferior-package->derivation
|
||||
(store-lift inferior-package-derivation))
|
||||
|
|
|
@ -103,11 +103,11 @@ Display information about the channels currently in use.\n"))
|
|||
(format port "url: ~a~%" (channel-url channel))
|
||||
(format port "commit: ~a~%" (channel-commit channel)))
|
||||
|
||||
(define* (display-checkout-info fmt #:optional directory)
|
||||
(define (display-checkout-info fmt)
|
||||
"Display information about the current checkout according to FMT, a symbol
|
||||
denoting the requested format. Exit if the current directory does not lie
|
||||
within a Git checkout."
|
||||
(let* ((program (or directory (car (command-line))))
|
||||
(let* ((program (car (command-line)))
|
||||
(directory (catch 'git-error
|
||||
(lambda ()
|
||||
(repository-discover (dirname program)))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -44,7 +45,7 @@
|
|||
`((format . ,bytevector->nix-base32-string)))
|
||||
|
||||
(define (show-help)
|
||||
(display (G_ "Usage: gcrypt hash [OPTION] FILE
|
||||
(display (G_ "Usage: guix hash [OPTION] FILE
|
||||
Return the cryptographic hash of FILE.
|
||||
|
||||
Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'
|
||||
|
@ -93,7 +94,7 @@ and 'hexadecimal' can be used as well).\n"))
|
|||
(exit 0)))
|
||||
(option '(#\V "version") #f #f
|
||||
(lambda args
|
||||
(show-version-and-exit "gcrypt hash")))))
|
||||
(show-version-and-exit "guix hash")))))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -609,6 +610,18 @@ please email '~a'~%")
|
|||
(squashfs . ,squashfs-image)
|
||||
(docker . ,docker-image)))
|
||||
|
||||
(define (show-formats)
|
||||
;; Print the supported pack formats.
|
||||
(display (G_ "The supported formats for 'guix pack' are:"))
|
||||
(newline)
|
||||
(display (G_ "
|
||||
tarball Self-contained tarball, ready to run on another machine"))
|
||||
(display (G_ "
|
||||
squashfs Squashfs image suitable for Singularity"))
|
||||
(display (G_ "
|
||||
docker Tarball ready for 'docker load'"))
|
||||
(newline))
|
||||
|
||||
(define %options
|
||||
;; Specifications of the command-line options.
|
||||
(cons* (option '(#\h "help") #f #f
|
||||
|
@ -625,6 +638,10 @@ please email '~a'~%")
|
|||
(option '(#\f "format") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'format (string->symbol arg) result)))
|
||||
(option '("list-formats") #f #f
|
||||
(lambda args
|
||||
(show-formats)
|
||||
(exit 0)))
|
||||
(option '(#\R "relocatable") #f #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'relocatable? #t result)))
|
||||
|
@ -686,6 +703,8 @@ Create a bundle of PACKAGE.\n"))
|
|||
(newline)
|
||||
(display (G_ "
|
||||
-f, --format=FORMAT build a pack in the given FORMAT"))
|
||||
(display (G_ "
|
||||
--list-formats list the formats available"))
|
||||
(display (G_ "
|
||||
-R, --relocatable produce relocatable executables"))
|
||||
(display (G_ "
|
||||
|
|
|
@ -188,7 +188,10 @@ call THUNK."
|
|||
(save-module-excursion
|
||||
(lambda ()
|
||||
(set-current-module user-module)
|
||||
(start-repl))))
|
||||
;; Do not exit repl on SIGINT.
|
||||
((@@ (ice-9 top-repl) call-with-sigint)
|
||||
(lambda ()
|
||||
(start-repl))))))
|
||||
((machine)
|
||||
(machine-repl))
|
||||
(else
|
||||
|
|
|
@ -297,9 +297,11 @@ Return the list of store items actually sent."
|
|||
(channel-send-eof port)
|
||||
|
||||
;; Wait for completion of the remote process and read the status sexp from
|
||||
;; PORT.
|
||||
;; PORT. Wait for the exit status only when 'read' completed; otherwise,
|
||||
;; we might wait forever if the other end is stuck.
|
||||
(let* ((result (false-if-exception (read port)))
|
||||
(status (zero? (channel-get-exit-status port))))
|
||||
(status (and result
|
||||
(zero? (channel-get-exit-status port)))))
|
||||
(close-port port)
|
||||
(match result
|
||||
(('success . _)
|
||||
|
|
|
@ -325,7 +325,19 @@ addition to build events."
|
|||
(display "\r" port)) ;erase the spinner
|
||||
(match event
|
||||
(('build-started drv . _)
|
||||
(format port (info (G_ "building ~a...")) drv)
|
||||
(let ((properties (derivation-properties
|
||||
(read-derivation-from-file drv))))
|
||||
(match (assq-ref properties 'type)
|
||||
('graft
|
||||
(let ((count (match (assq-ref properties 'graft)
|
||||
(#f 0)
|
||||
(lst (or (assq-ref lst 'count) 0)))))
|
||||
(format port (info (N_ "applying ~a graft for ~a..."
|
||||
"applying ~a grafts for ~a..."
|
||||
count))
|
||||
count drv)))
|
||||
(_
|
||||
(format port (info (G_ "building ~a...")) drv))))
|
||||
(newline port))
|
||||
(('build-succeeded drv . _)
|
||||
(when (or print-log? (not (extended-build-trace-supported?)))
|
||||
|
|
|
@ -0,0 +1,560 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix swh)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module ((guix build syscalls) #:select (mkdtemp!))
|
||||
#:use-module (web client)
|
||||
#:use-module (web response)
|
||||
#:use-module (json)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module ((ice-9 ftw) #:select (scandir))
|
||||
#:export (origin?
|
||||
origin-id
|
||||
origin-type
|
||||
origin-url
|
||||
origin-visits
|
||||
lookup-origin
|
||||
|
||||
visit?
|
||||
visit-date
|
||||
visit-origin
|
||||
visit-url
|
||||
visit-snapshot-url
|
||||
visit-status
|
||||
visit-number
|
||||
visit-snapshot
|
||||
|
||||
branch?
|
||||
branch-name
|
||||
branch-target
|
||||
|
||||
release?
|
||||
release-id
|
||||
release-name
|
||||
release-message
|
||||
release-target
|
||||
|
||||
revision?
|
||||
revision-id
|
||||
revision-date
|
||||
revision-directory
|
||||
lookup-revision
|
||||
lookup-origin-revision
|
||||
|
||||
content?
|
||||
content-checksums
|
||||
content-data-url
|
||||
content-length
|
||||
lookup-content
|
||||
|
||||
directory-entry?
|
||||
directory-entry-name
|
||||
directory-entry-type
|
||||
directory-entry-checksums
|
||||
directory-entry-length
|
||||
directory-entry-permissions
|
||||
lookup-directory
|
||||
directory-entry-target
|
||||
|
||||
save-reply?
|
||||
save-reply-origin-url
|
||||
save-reply-origin-type
|
||||
save-reply-request-date
|
||||
save-reply-request-status
|
||||
save-reply-task-status
|
||||
save-origin
|
||||
save-origin-status
|
||||
|
||||
vault-reply?
|
||||
vault-reply-id
|
||||
vault-reply-fetch-url
|
||||
vault-reply-object-id
|
||||
vault-reply-object-type
|
||||
vault-reply-progress-message
|
||||
vault-reply-status
|
||||
query-vault
|
||||
request-cooking
|
||||
vault-fetch
|
||||
|
||||
swh-download))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This module provides bindings to the HTTP interface of Software Heritage.
|
||||
;;; It allows you to browse the archive, look up revisions (such as SHA1
|
||||
;;; commit IDs), "origins" (code hosting URLs), content (files), etc. See
|
||||
;;; <https://archive.softwareheritage.org/api/> for more information.
|
||||
;;;
|
||||
;;; The high-level 'swh-download' procedure allows you to download a Git
|
||||
;;; revision from Software Heritage, provided it is available.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %swh-base-url
|
||||
;; Presumably we won't need to change it.
|
||||
"https://archive.softwareheritage.org")
|
||||
|
||||
(define (swh-url path . rest)
|
||||
(define url
|
||||
(string-append %swh-base-url path
|
||||
(string-join rest "/" 'prefix)))
|
||||
|
||||
;; Ensure there's a trailing slash or we get a redirect.
|
||||
(if (string-suffix? "/" url)
|
||||
url
|
||||
(string-append url "/")))
|
||||
|
||||
(define-syntax-rule (define-json-reader json->record ctor spec ...)
|
||||
"Define JSON->RECORD as a procedure that converts a JSON representation,
|
||||
read from a port, string, or hash table, into a record created by CTOR and
|
||||
following SPEC, a series of field specifications."
|
||||
(define (json->record input)
|
||||
(let ((table (cond ((port? input)
|
||||
(json->scm input))
|
||||
((string? input)
|
||||
(json-string->scm input))
|
||||
((hash-table? input)
|
||||
input))))
|
||||
(let-syntax ((extract-field (syntax-rules ()
|
||||
((_ table (field key json->value))
|
||||
(json->value (hash-ref table key)))
|
||||
((_ table (field key))
|
||||
(hash-ref table key))
|
||||
((_ table (field))
|
||||
(hash-ref table
|
||||
(symbol->string 'field))))))
|
||||
(ctor (extract-field table spec) ...)))))
|
||||
|
||||
(define-syntax-rule (define-json-mapping rtd ctor pred json->record
|
||||
(field getter spec ...) ...)
|
||||
"Define RTD as a record type with the given FIELDs and GETTERs, à la SRFI-9,
|
||||
and define JSON->RECORD as a conversion from JSON to a record of this type."
|
||||
(begin
|
||||
(define-record-type rtd
|
||||
(ctor field ...)
|
||||
pred
|
||||
(field getter) ...)
|
||||
|
||||
(define-json-reader json->record ctor
|
||||
(field spec ...) ...)))
|
||||
|
||||
(define %date-regexp
|
||||
;; Match strings like "2014-11-17T22:09:38+01:00" or
|
||||
;; "2018-09-30T23:20:07.815449+00:00"".
|
||||
(make-regexp "^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})((\\.[0-9]+)?)([+-][0-9]{2}):([0-9]{2})$"))
|
||||
|
||||
(define (string->date* str)
|
||||
"Return a SRFI-19 date parsed from STR, a date string as returned by
|
||||
Software Heritage."
|
||||
;; We can't use 'string->date' because of the timezone format: SWH returns
|
||||
;; "+01:00" when the '~z' template expects "+0100". So we roll our own!
|
||||
(or (and=> (regexp-exec %date-regexp str)
|
||||
(lambda (match)
|
||||
(define (ref n)
|
||||
(string->number (match:substring match n)))
|
||||
|
||||
(make-date (let ((ns (match:substring match 8)))
|
||||
(if ns
|
||||
(string->number (string-drop ns 1))
|
||||
0))
|
||||
(ref 6) (ref 5) (ref 4)
|
||||
(ref 3) (ref 2) (ref 1)
|
||||
(+ (* 3600 (ref 9)) ;time zone
|
||||
(if (< (ref 9) 0)
|
||||
(- (ref 10))
|
||||
(ref 10))))))
|
||||
str)) ;oops!
|
||||
|
||||
(define* (call url decode #:optional (method http-get)
|
||||
#:key (false-if-404? #t))
|
||||
"Invoke the endpoint at URL using METHOD. Decode the resulting JSON body
|
||||
using DECODE, a one-argument procedure that takes an input port. When
|
||||
FALSE-IF-404? is true, return #f upon 404 responses."
|
||||
(let*-values (((response port)
|
||||
(method url #:streaming? #t)))
|
||||
;; See <https://archive.softwareheritage.org/api/#rate-limiting>.
|
||||
(match (assq-ref (response-headers response) 'x-ratelimit-remaining)
|
||||
(#f #t)
|
||||
((? (compose zero? string->number))
|
||||
(throw 'swh-error url response))
|
||||
(_ #t))
|
||||
|
||||
(cond ((= 200 (response-code response))
|
||||
(let ((result (decode port)))
|
||||
(close-port port)
|
||||
result))
|
||||
((and false-if-404?
|
||||
(= 404 (response-code response)))
|
||||
(close-port port)
|
||||
#f)
|
||||
(else
|
||||
(close-port port)
|
||||
(throw 'swh-error url response)))))
|
||||
|
||||
(define-syntax define-query
|
||||
(syntax-rules (path)
|
||||
"Define a procedure that performs a Software Heritage query."
|
||||
((_ (name args ...) docstring (path components ...)
|
||||
json->value)
|
||||
(define (name args ...)
|
||||
docstring
|
||||
(call (swh-url components ...) json->value)))))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/origin/git/url/https://github.com/guix-mirror/guix/>
|
||||
(define-json-mapping <origin> make-origin origin?
|
||||
json->origin
|
||||
(id origin-id)
|
||||
(visits-url origin-visits-url "origin_visits_url")
|
||||
(type origin-type)
|
||||
(url origin-url))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/origin/52181937/visits/>
|
||||
(define-json-mapping <visit> make-visit visit?
|
||||
json->visit
|
||||
(date visit-date "date" string->date*)
|
||||
(origin visit-origin)
|
||||
(url visit-url "origin_visit_url")
|
||||
(snapshot-url visit-snapshot-url "snapshot_url")
|
||||
(status visit-status)
|
||||
(number visit-number "visit"))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/>
|
||||
(define-json-mapping <snapshot> make-snapshot snapshot?
|
||||
json->snapshot
|
||||
(branches snapshot-branches "branches" json->branches))
|
||||
|
||||
;; This is used for the "branches" field of snapshots.
|
||||
(define-record-type <branch>
|
||||
(make-branch name target-type target-url)
|
||||
branch?
|
||||
(name branch-name)
|
||||
(target-type branch-target-type) ;release | revision
|
||||
(target-url branch-target-url))
|
||||
|
||||
(define (json->branches branches)
|
||||
(hash-map->list (lambda (key value)
|
||||
(make-branch key
|
||||
(string->symbol
|
||||
(hash-ref value "target_type"))
|
||||
(hash-ref value "target_url")))
|
||||
branches))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/release/1f44934fb6e2cefccbecd4fa347025349fa9ff76/>
|
||||
(define-json-mapping <release> make-release release?
|
||||
json->release
|
||||
(id release-id)
|
||||
(name release-name)
|
||||
(message release-message)
|
||||
(target-type release-target-type "target_type" string->symbol)
|
||||
(target-url release-target-url "target_url"))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/revision/359fdda40f754bbf1b5dc261e7427b75463b59be/>
|
||||
(define-json-mapping <revision> make-revision revision?
|
||||
json->revision
|
||||
(id revision-id)
|
||||
(date revision-date "date" string->date*)
|
||||
(directory revision-directory)
|
||||
(directory-url revision-directory-url "directory_url"))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/content/>
|
||||
(define-json-mapping <content> make-content content?
|
||||
json->content
|
||||
(checksums content-checksums "checksums" json->checksums)
|
||||
(data-url content-data-url "data_url")
|
||||
(file-type-url content-file-type-url "filetype_url")
|
||||
(language-url content-language-url "language_url")
|
||||
(length content-length)
|
||||
(license-url content-license-url "license_url"))
|
||||
|
||||
(define (json->checksums checksums)
|
||||
(hash-map->list (lambda (key value)
|
||||
(cons key (base16-string->bytevector value)))
|
||||
checksums))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/directory/27c69c5d298a43096a53affbf881e7b13f17bdcd/>
|
||||
(define-json-mapping <directory-entry> make-directory-entry directory-entry?
|
||||
json->directory-entry
|
||||
(name directory-entry-name)
|
||||
(type directory-entry-type "type"
|
||||
(match-lambda
|
||||
("dir" 'directory)
|
||||
(str (string->symbol str))))
|
||||
(checksums directory-entry-checksums "checksums"
|
||||
(match-lambda
|
||||
(#f #f)
|
||||
(lst (json->checksums lst))))
|
||||
(id directory-entry-id "dir_id")
|
||||
(length directory-entry-length)
|
||||
(permissions directory-entry-permissions "perms")
|
||||
(target-url directory-entry-target-url "target_url"))
|
||||
|
||||
;; <https://archive.softwareheritage.org/api/1/origin/save/>
|
||||
(define-json-mapping <save-reply> make-save-reply save-reply?
|
||||
json->save-reply
|
||||
(origin-url save-reply-origin-url "origin_url")
|
||||
(origin-type save-reply-origin-type "origin_type")
|
||||
(request-date save-reply-request-date "save_request_date"
|
||||
string->date*)
|
||||
(request-status save-reply-request-status "save_request_status"
|
||||
string->symbol)
|
||||
(task-status save-reply-task-status "save_task_status"
|
||||
(match-lambda
|
||||
("not created" 'not-created)
|
||||
((? string? str) (string->symbol str)))))
|
||||
|
||||
;; <https://docs.softwareheritage.org/devel/swh-vault/api.html#vault-api-ref>
|
||||
(define-json-mapping <vault-reply> make-vault-reply vault-reply?
|
||||
json->vault-reply
|
||||
(id vault-reply-id)
|
||||
(fetch-url vault-reply-fetch-url "fetch_url")
|
||||
(object-id vault-reply-object-id "obj_id")
|
||||
(object-type vault-reply-object-type "obj_type" string->symbol)
|
||||
(progress-message vault-reply-progress-message "progress_message")
|
||||
(status vault-reply-status "status" string->symbol))
|
||||
|
||||
|
||||
;;;
|
||||
;;; RPCs.
|
||||
;;;
|
||||
|
||||
(define-query (lookup-origin url)
|
||||
"Return an origin for URL."
|
||||
(path "/api/1/origin/git/url" url)
|
||||
json->origin)
|
||||
|
||||
(define-query (lookup-content hash type)
|
||||
"Return a content for HASH, of the given TYPE--e.g., \"sha256\"."
|
||||
(path "/api/1/content"
|
||||
(string-append type ":"
|
||||
(bytevector->base16-string hash)))
|
||||
json->content)
|
||||
|
||||
(define-query (lookup-revision id)
|
||||
"Return the revision with the given ID, typically a Git commit SHA1."
|
||||
(path "/api/1/revision" id)
|
||||
json->revision)
|
||||
|
||||
(define-query (lookup-directory id)
|
||||
"Return the directory with the given ID."
|
||||
(path "/api/1/directory" id)
|
||||
json->directory-entries)
|
||||
|
||||
(define (json->directory-entries port)
|
||||
(map json->directory-entry (json->scm port)))
|
||||
|
||||
(define (origin-visits origin)
|
||||
"Return the list of visits of ORIGIN, a record as returned by
|
||||
'lookup-origin'."
|
||||
(call (swh-url (origin-visits-url origin))
|
||||
(lambda (port)
|
||||
(map json->visit (json->scm port)))))
|
||||
|
||||
(define (visit-snapshot visit)
|
||||
"Return the snapshot corresponding to VISIT."
|
||||
(call (swh-url (visit-snapshot-url visit))
|
||||
json->snapshot))
|
||||
|
||||
(define (branch-target branch)
|
||||
"Return the target of BRANCH, either a <revision> or a <release>."
|
||||
(match (branch-target-type branch)
|
||||
('release
|
||||
(call (swh-url (branch-target-url branch))
|
||||
json->release))
|
||||
('revision
|
||||
(call (swh-url (branch-target-url branch))
|
||||
json->revision))))
|
||||
|
||||
(define (lookup-origin-revision url tag)
|
||||
"Return a <revision> corresponding to the given TAG for the repository
|
||||
coming from URL. Example:
|
||||
|
||||
(lookup-origin-release \"https://github.com/guix-mirror/guix/\" \"v0.8\")
|
||||
=> #<<revision> id: \"44941…\" …>
|
||||
|
||||
The information is based on the latest visit of URL available. Return #f if
|
||||
URL could not be found."
|
||||
(match (lookup-origin url)
|
||||
(#f #f)
|
||||
(origin
|
||||
(match (origin-visits origin)
|
||||
((visit . _)
|
||||
(let ((snapshot (visit-snapshot visit)))
|
||||
(match (and=> (find (lambda (branch)
|
||||
(string=? (string-append "refs/tags/" tag)
|
||||
(branch-name branch)))
|
||||
(snapshot-branches snapshot))
|
||||
branch-target)
|
||||
((? release? release)
|
||||
(release-target release))
|
||||
((? revision? revision)
|
||||
revision)
|
||||
(#f ;tag not found
|
||||
#f))))
|
||||
(()
|
||||
#f)))))
|
||||
|
||||
(define (release-target release)
|
||||
"Return the revision that is the target of RELEASE."
|
||||
(match (release-target-type release)
|
||||
('revision
|
||||
(call (swh-url (release-target-url release))
|
||||
json->revision))))
|
||||
|
||||
(define (directory-entry-target entry)
|
||||
"If ENTRY, a directory entry, has type 'directory, return its list of
|
||||
directory entries; if it has type 'file, return its <content> object."
|
||||
(call (swh-url (directory-entry-target-url entry))
|
||||
(match (directory-entry-type entry)
|
||||
('file json->content)
|
||||
('directory json->directory-entries))))
|
||||
|
||||
(define* (save-origin url #:optional (type "git"))
|
||||
"Request URL to be saved."
|
||||
(call (swh-url "/api/1/origin/save" type "url" url) json->save-reply
|
||||
http-post))
|
||||
|
||||
(define-query (save-origin-status url type)
|
||||
"Return the status of a /save request for URL and TYPE (e.g., \"git\")."
|
||||
(path "/api/1/origin/save" type "url" url)
|
||||
json->save-reply)
|
||||
|
||||
(define-query (query-vault id kind)
|
||||
"Ask the availability of object ID and KIND to the vault, where KIND is
|
||||
'directory or 'revision. Return #f if it could not be found, or a
|
||||
<vault-reply> on success."
|
||||
;; <https://docs.softwareheritage.org/devel/swh-vault/api.html#vault-api-ref>
|
||||
;; There's a single format supported for directories and revisions and for
|
||||
;; now, the "/format" bit of the URL *must* be omitted.
|
||||
(path "/api/1/vault" (symbol->string kind) id)
|
||||
json->vault-reply)
|
||||
|
||||
(define (request-cooking id kind)
|
||||
"Request the cooking of object ID and KIND (one of 'directory or 'revision)
|
||||
to the vault. Return a <vault-reply>."
|
||||
(call (swh-url "/api/1/vault" (symbol->string kind) id)
|
||||
json->vault-reply
|
||||
http-post))
|
||||
|
||||
(define* (vault-fetch id kind
|
||||
#:key (log-port (current-error-port)))
|
||||
"Return an input port from which a bundle of the object with the given ID
|
||||
and KIND (one of 'directory or 'revision) can be retrieved, or #f if the
|
||||
object could not be found.
|
||||
|
||||
For a directory, the returned stream is a gzip-compressed tarball. For a
|
||||
revision, it is a gzip-compressed stream for 'git fast-import'."
|
||||
(let loop ((reply (query-vault id kind)))
|
||||
(match reply
|
||||
(#f
|
||||
(and=> (request-cooking id kind) loop))
|
||||
(_
|
||||
(match (vault-reply-status reply)
|
||||
('done
|
||||
;; Fetch the bundle.
|
||||
(let-values (((response port)
|
||||
(http-get (swh-url (vault-reply-fetch-url reply))
|
||||
#:streaming? #t)))
|
||||
(if (= (response-code response) 200)
|
||||
port
|
||||
(begin ;shouldn't happen
|
||||
(close-port port)
|
||||
#f))))
|
||||
('failed
|
||||
;; Upon failure, we're supposed to try again.
|
||||
(format log-port "SWH vault: failure: ~a~%"
|
||||
(vault-reply-progress-message reply))
|
||||
(format log-port "SWH vault: retrying...~%")
|
||||
(loop (request-cooking id kind)))
|
||||
((and (or 'new 'pending) status)
|
||||
;; Wait until the bundle shows up.
|
||||
(let ((message (vault-reply-progress-message reply)))
|
||||
(when (eq? 'new status)
|
||||
(format log-port "SWH vault: \
|
||||
requested bundle cooking, waiting for completion...~%"))
|
||||
(when (string? message)
|
||||
(format log-port "SWH vault: ~a~%" message))
|
||||
|
||||
;; Wait long enough so we don't exhaust our maximum number of
|
||||
;; requests per hour too fast (as of this writing, the limit is 60
|
||||
;; requests per hour per IP address.)
|
||||
(sleep (if (eq? status 'new) 60 30))
|
||||
|
||||
(loop (query-vault id kind)))))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; High-level interface.
|
||||
;;;
|
||||
|
||||
(define (commit-id? reference)
|
||||
"Return true if REFERENCE is likely a commit ID, false otherwise---e.g., if
|
||||
it is a tag name."
|
||||
(and (= (string-length reference) 40)
|
||||
(string-every char-set:hex-digit reference)))
|
||||
|
||||
(define (call-with-temporary-directory proc) ;FIXME: factorize
|
||||
"Call PROC with a name of a temporary directory; close the directory and
|
||||
delete it when leaving the dynamic extent of this call."
|
||||
(let* ((directory (or (getenv "TMPDIR") "/tmp"))
|
||||
(template (string-append directory "/guix-directory.XXXXXX"))
|
||||
(tmp-dir (mkdtemp! template)))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(proc tmp-dir))
|
||||
(lambda ()
|
||||
(false-if-exception (delete-file-recursively tmp-dir))))))
|
||||
|
||||
(define (swh-download url reference output)
|
||||
"Download from Software Heritage a checkout of the Git tag or commit
|
||||
REFERENCE originating from URL, and unpack it in OUTPUT. Return #t on success
|
||||
and #f on failure.
|
||||
|
||||
This procedure uses the \"vault\", which contains \"cooked\" directories in
|
||||
the form of tarballs. If the requested directory is not cooked yet, it will
|
||||
wait until it becomes available, which could take several minutes."
|
||||
(match (if (commit-id? reference)
|
||||
(lookup-revision reference)
|
||||
(lookup-origin-revision url reference))
|
||||
((? revision? revision)
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(let ((input (vault-fetch (revision-directory revision) 'directory))
|
||||
(tar (open-pipe* OPEN_WRITE "tar" "-C" directory "-xzvf" "-")))
|
||||
(dump-port input tar)
|
||||
(close-port input)
|
||||
(let ((status (close-pipe tar)))
|
||||
(unless (zero? status)
|
||||
(error "tar extraction failure" status)))
|
||||
|
||||
(match (scandir directory)
|
||||
(("." ".." sub-directory)
|
||||
(copy-recursively (string-append directory "/" sub-directory)
|
||||
output
|
||||
#:log (%make-void-port "w"))
|
||||
#t))))))
|
||||
(#f
|
||||
#f)))
|
26
guix/ui.scm
26
guix/ui.scm
|
@ -816,6 +816,12 @@ warning."
|
|||
(warning (G_ "at least ~,1h MB needed but only ~,1h MB available in ~a~%")
|
||||
(/ need 1e6) (/ free 1e6) directory))))
|
||||
|
||||
(define (graft-derivation? drv)
|
||||
"Return true if DRV is definitely a graft derivation, false otherwise."
|
||||
(match (assq-ref (derivation-properties drv) 'type)
|
||||
('graft #t)
|
||||
(_ #f)))
|
||||
|
||||
(define* (show-what-to-build store drv
|
||||
#:key dry-run? (use-substitutes? #t)
|
||||
(mode (build-mode normal)))
|
||||
|
@ -865,7 +871,11 @@ report what is prerequisites are available for download."
|
|||
(append-map
|
||||
substitutable-references
|
||||
download))))
|
||||
download)))
|
||||
download))
|
||||
((graft build)
|
||||
(partition (compose graft-derivation?
|
||||
read-derivation-from-file)
|
||||
build)))
|
||||
(define installed-size
|
||||
(reduce + 0 (map substitutable-nar-size download)))
|
||||
|
||||
|
@ -898,7 +908,12 @@ report what is prerequisites are available for download."
|
|||
"~:[The following files would be downloaded:~%~{ ~a~%~}~;~]"
|
||||
(length download))
|
||||
(null? download)
|
||||
(map substitutable-path download))))
|
||||
(map substitutable-path download)))
|
||||
(format (current-error-port)
|
||||
(N_ "~:[The following graft would be made:~%~{ ~a~%~}~;~]"
|
||||
"~:[The following grafts would be made:~%~{ ~a~%~}~;~]"
|
||||
(length graft))
|
||||
(null? graft) graft))
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
(N_ "~:[The following derivation will be built:~%~{ ~a~%~}~;~]"
|
||||
|
@ -918,7 +933,12 @@ report what is prerequisites are available for download."
|
|||
"~:[The following files will be downloaded:~%~{ ~a~%~}~;~]"
|
||||
(length download))
|
||||
(null? download)
|
||||
(map substitutable-path download)))))
|
||||
(map substitutable-path download)))
|
||||
(format (current-error-port)
|
||||
(N_ "~:[The following graft will be made:~%~{ ~a~%~}~;~]"
|
||||
"~:[The following grafts will be made:~%~{ ~a~%~}~;~]"
|
||||
(length graft))
|
||||
(null? graft) graft)))
|
||||
|
||||
(check-available-space installed-size)
|
||||
|
||||
|
|
|
@ -565,6 +565,12 @@ static void performOp(bool trusted, unsigned int clientVersion,
|
|||
|
||||
case wopSetOptions: {
|
||||
settings.keepFailed = readInt(from) != 0;
|
||||
if (isRemoteConnection)
|
||||
/* When the client is remote, don't keep the failed build tree as
|
||||
it is presumably inaccessible to the client and could fill up
|
||||
our disk. */
|
||||
settings.keepFailed = 0;
|
||||
|
||||
settings.keepGoing = readInt(from) != 0;
|
||||
settings.set("build-fallback", readInt(from) ? "true" : "false");
|
||||
verbosity = (Verbosity) readInt(from);
|
||||
|
|
|
@ -16,11 +16,14 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
EXTRA_DIST = \
|
||||
%D%/guix-manual.pot \
|
||||
DOC_PO_FILES= \
|
||||
%D%/guix-manual.de.po \
|
||||
%D%/guix-manual.fr.po
|
||||
|
||||
EXTRA_DIST = \
|
||||
%D%/guix-manual.pot \
|
||||
$(DOC_PO_FILES)
|
||||
|
||||
POT_OPTIONS = --package-name "guix" --package-version "$(VERSION)" \
|
||||
--copyright-holder "Ludovic Courtès" \
|
||||
--msgid-bugs-address "ludo@gnu.org"
|
||||
|
@ -58,3 +61,8 @@ doc-pot-update:
|
|||
done
|
||||
msgcat $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES)) > $(srcdir)/po/doc/guix-manual.pot
|
||||
rm -f $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES))
|
||||
|
||||
doc-po-update: doc-pot-update
|
||||
for f in $(DOC_PO_FILES); do \
|
||||
$(MAKE) "$$f"; \
|
||||
done
|
||||
|
|
|
@ -1132,6 +1132,16 @@
|
|||
((p2 . _)
|
||||
(string<? p1 p2)))))))))))))
|
||||
|
||||
(test-equal "derivation-properties"
|
||||
(list '() '((type . test)))
|
||||
(let ((drv1 (build-expression->derivation %store "bar"
|
||||
'(mkdir %output)))
|
||||
(drv2 (build-expression->derivation %store "foo"
|
||||
'(mkdir %output)
|
||||
#:properties '((type . test)))))
|
||||
(list (derivation-properties drv1)
|
||||
(derivation-properties drv2))))
|
||||
|
||||
(test-equal "map-derivation"
|
||||
"hello"
|
||||
(let* ((joke (package-derivation %store guile-1.8))
|
||||
|
|
|
@ -476,7 +476,15 @@
|
|||
(return (and (string=? (readlink (string-append out "/foo")) guile)
|
||||
(string=? (readlink out2) file)
|
||||
(equal? refs (list (dirname (dirname guile))))
|
||||
(equal? refs2 (list file))))))
|
||||
(equal? refs2 (list file))
|
||||
(null? (derivation-properties drv))))))
|
||||
|
||||
(test-assertm "gexp->derivation properties"
|
||||
(mlet %store-monad ((drv (gexp->derivation "foo"
|
||||
#~(mkdir #$output)
|
||||
#:properties '((type . test)))))
|
||||
(return (equal? '((type . test))
|
||||
(derivation-properties drv)))))
|
||||
|
||||
(test-assertm "gexp->derivation vs. grafts"
|
||||
(mlet* %store-monad ((graft? (set-grafting #f))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -51,7 +51,8 @@
|
|||
|
||||
(test-begin "grafts")
|
||||
|
||||
(test-assert "graft-derivation, grafted item is a direct dependency"
|
||||
(test-equal "graft-derivation, grafted item is a direct dependency"
|
||||
'((type . graft) (graft (count . 2)))
|
||||
(let* ((build `(begin
|
||||
(mkdir %output)
|
||||
(chdir %output)
|
||||
|
@ -76,14 +77,16 @@
|
|||
(origin %mkdir)
|
||||
(replacement two))))))
|
||||
(and (build-derivations %store (list grafted))
|
||||
(let ((two (derivation->output-path two))
|
||||
(grafted (derivation->output-path grafted)))
|
||||
(let ((properties (derivation-properties grafted))
|
||||
(two (derivation->output-path two))
|
||||
(grafted (derivation->output-path grafted)))
|
||||
(and (string=? (format #f "foo/~a/bar" two)
|
||||
(call-with-input-file (string-append grafted "/text")
|
||||
get-string-all))
|
||||
(string=? (readlink (string-append grafted "/sh")) one)
|
||||
(string=? (readlink (string-append grafted "/self"))
|
||||
grafted))))))
|
||||
grafted)
|
||||
properties)))))
|
||||
|
||||
(test-assert "graft-derivation, grafted item uses a different name"
|
||||
(let* ((build `(begin
|
||||
|
|
|
@ -157,6 +157,15 @@
|
|||
(close-inferior inferior)
|
||||
result))
|
||||
|
||||
(test-equal "inferior-eval-with-store"
|
||||
(add-text-to-store %store "foo" "Hello, world!")
|
||||
(let* ((inferior (open-inferior %top-builddir
|
||||
#:command "scripts/guix")))
|
||||
(inferior-eval-with-store inferior %store
|
||||
'(lambda (store)
|
||||
(add-text-to-store store "foo"
|
||||
"Hello, world!")))))
|
||||
|
||||
(test-equal "inferior-package-derivation"
|
||||
(map derivation-file-name
|
||||
(list (package-derivation %store %bootstrap-guile "x86_64-linux")
|
||||
|
|
Loading…
Reference in New Issue