Merge branch 'master' into staging
commit
d1f3b333e6
|
@ -90,6 +90,7 @@
|
|||
(eval . (put 'eventually 'scheme-indent-function 1))
|
||||
|
||||
(eval . (put 'call-with-progress-reporter 'scheme-indent-function 1))
|
||||
(eval . (put 'with-temporary-git-repository 'scheme-indent-function 2))
|
||||
|
||||
;; This notably allows '(' in Paredit to not insert a space when the
|
||||
;; preceding symbol is one of these.
|
||||
|
|
|
@ -29,22 +29,23 @@
|
|||
/doc/*.1
|
||||
/doc/.dirstamp
|
||||
/doc/contributing.*.texi
|
||||
/doc/guix.*.aux
|
||||
/doc/guix.*.cp
|
||||
/doc/guix.*.cps
|
||||
/doc/guix.*.fn
|
||||
/doc/guix.*.fns
|
||||
/doc/guix.*.html
|
||||
/doc/guix.*.info
|
||||
/doc/guix.*.info-[0-9]
|
||||
/doc/guix.*.ky
|
||||
/doc/guix.*.pg
|
||||
/doc/guix.*.toc
|
||||
/doc/guix.*.t2p
|
||||
/doc/guix.*.tp
|
||||
/doc/guix.*.vr
|
||||
/doc/guix.*.vrs
|
||||
/doc/guix*.aux
|
||||
/doc/guix*.cp
|
||||
/doc/guix*.cps
|
||||
/doc/guix*.fn
|
||||
/doc/guix*.fns
|
||||
/doc/guix*.html
|
||||
/doc/guix*.info
|
||||
/doc/guix*.info-[0-9]
|
||||
/doc/guix*.ky
|
||||
/doc/guix*.pg
|
||||
/doc/guix*.toc
|
||||
/doc/guix*.t2p
|
||||
/doc/guix*.tp
|
||||
/doc/guix*.vr
|
||||
/doc/guix*.vrs
|
||||
/doc/guix.*.texi
|
||||
/doc/guix-cookbook.*.texi
|
||||
/doc/guix.aux
|
||||
/doc/guix.cp
|
||||
/doc/guix.cps
|
||||
|
@ -149,3 +150,4 @@ tmp
|
|||
/etc/indent-code.el
|
||||
/.version
|
||||
/doc/stamp-[0-9]
|
||||
/gnu/packages/bootstrap
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
;; This is a Guix channel.
|
||||
|
||||
(channel
|
||||
(version 0)
|
||||
(news-file "etc/news.scm"))
|
58
Makefile.am
58
Makefile.am
|
@ -68,6 +68,7 @@ MODULES = \
|
|||
guix/cpio.scm \
|
||||
guix/deprecation.scm \
|
||||
guix/docker.scm \
|
||||
guix/json.scm \
|
||||
guix/records.scm \
|
||||
guix/pki.scm \
|
||||
guix/progress.scm \
|
||||
|
@ -125,6 +126,7 @@ MODULES = \
|
|||
guix/build-system/gnu.scm \
|
||||
guix/build-system/guile.scm \
|
||||
guix/build-system/haskell.scm \
|
||||
guix/build-system/julia.scm \
|
||||
guix/build-system/linux-module.scm \
|
||||
guix/build-system/node.scm \
|
||||
guix/build-system/perl.scm \
|
||||
|
@ -183,6 +185,7 @@ MODULES = \
|
|||
guix/build/texlive-build-system.scm \
|
||||
guix/build/waf-build-system.scm \
|
||||
guix/build/haskell-build-system.scm \
|
||||
guix/build/julia-build-system.scm \
|
||||
guix/build/linux-module-build-system.scm \
|
||||
guix/build/store-copy.scm \
|
||||
guix/build/json.scm \
|
||||
|
@ -218,6 +221,7 @@ MODULES = \
|
|||
guix/import/gnu.scm \
|
||||
guix/import/hackage.scm \
|
||||
guix/import/json.scm \
|
||||
guix/import/kde.scm \
|
||||
guix/import/launchpad.scm \
|
||||
guix/import/opam.scm \
|
||||
guix/import/print.scm \
|
||||
|
@ -237,6 +241,7 @@ MODULES = \
|
|||
guix/scripts/remove.scm \
|
||||
guix/scripts/upgrade.scm \
|
||||
guix/scripts/search.scm \
|
||||
guix/scripts/show.scm \
|
||||
guix/scripts/gc.scm \
|
||||
guix/scripts/hash.scm \
|
||||
guix/scripts/pack.scm \
|
||||
|
@ -302,12 +307,20 @@ STORE_MODULES = \
|
|||
MODULES += $(STORE_MODULES)
|
||||
|
||||
# Internal modules with test suite support.
|
||||
dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
|
||||
dist_noinst_DATA = \
|
||||
guix/tests.scm \
|
||||
guix/tests/http.scm \
|
||||
guix/tests/git.scm
|
||||
|
||||
# Auxiliary files for packages.
|
||||
AUX_FILES = \
|
||||
gnu/packages/aux-files/chromium/master-preferences.json \
|
||||
gnu/packages/aux-files/emacs/guix-emacs.el \
|
||||
gnu/packages/aux-files/linux-libre/5.3-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.3-arm-veyron.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.3-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.3-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.3-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.2-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.2-arm-veyron.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.2-arm64.conf \
|
||||
|
@ -386,6 +399,7 @@ SCM_TESTS = \
|
|||
tests/file-systems.scm \
|
||||
tests/gem.scm \
|
||||
tests/gexp.scm \
|
||||
tests/git.scm \
|
||||
tests/glob.scm \
|
||||
tests/gnu-maintenance.scm \
|
||||
tests/grafts.scm \
|
||||
|
@ -399,6 +413,7 @@ SCM_TESTS = \
|
|||
tests/modules.scm \
|
||||
tests/monads.scm \
|
||||
tests/nar.scm \
|
||||
tests/networking.scm \
|
||||
tests/opam.scm \
|
||||
tests/packages.scm \
|
||||
tests/pack.scm \
|
||||
|
@ -523,8 +538,10 @@ EXTRA_DIST += \
|
|||
TODO \
|
||||
CODE-OF-CONDUCT \
|
||||
.dir-locals.el \
|
||||
.guix-channel \
|
||||
scripts/guix.in \
|
||||
etc/guix-install.sh \
|
||||
etc/news.scm \
|
||||
build-aux/build-self.scm \
|
||||
build-aux/compile-all.scm \
|
||||
build-aux/hydra/evaluate.scm \
|
||||
|
@ -597,7 +614,7 @@ $(guix_install_go_files): install-nobase_dist_guilemoduleDATA
|
|||
# The above trick doesn't work for 'config.go' because both 'config.scm' and
|
||||
# 'config.go' are listed in $(nobase_nodist_guileobject_DATA). Thus, give it
|
||||
# special treatment.
|
||||
install-data-hook: set-bootstrap-executable-permissions
|
||||
install-data-hook:
|
||||
touch "$(DESTDIR)$(guileobjectdir)/guix/config.go"
|
||||
|
||||
# Assuming Guix is already installed and the daemon is up and running, this
|
||||
|
@ -809,9 +826,11 @@ assert-no-store-file-names:
|
|||
$(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info \
|
||||
--exclude=*.info-[0-9] --exclude=*.dot \
|
||||
--exclude=*.eps --exclude-dir=bootstrap \
|
||||
--exclude=guix-manual.pot --exclude=guix-manual.*.po \
|
||||
--exclude=guix-manual.pot --exclude=guix-manual.*.po \
|
||||
--exclude=guix-cookbook.pot --exclude=guix-cookbook.*.po \
|
||||
--exclude=guix-prettify.el \
|
||||
--exclude=ChangeLog* \
|
||||
--exclude=binutils-boot-2.20*.patch \
|
||||
-E "$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
|
||||
then \
|
||||
echo "error: store file names embedded in the distribution" >&2 ; \
|
||||
|
@ -851,6 +870,39 @@ cuirass-jobs.scm: $(GOBJECTS)
|
|||
.PHONY: clean-go make-go as-derivation
|
||||
.PHONY: update-guix-package update-NEWS release
|
||||
|
||||
# Downloading up-to-date PO files.
|
||||
|
||||
# make-download-po-rule DOMAIN DIRECTORY [FILE-NAME-PREFIX]
|
||||
define make-download-po-rule
|
||||
|
||||
download-po.$(1):
|
||||
if [ -f "$(top_srcdir)/$(2)/LINGUAS" ]; then \
|
||||
LINGUAS="`grep -v '^[[:blank:]]*#' < $(top_srcdir)/$(2)/LINGUAS`" ; \
|
||||
else \
|
||||
LINGUAS="`(cd $(top_srcdir)/$(2); \
|
||||
for i in *.po; do echo $$$$i; done) | cut -d . -f 2`" ; \
|
||||
fi ; \
|
||||
for lang in $$$$LINGUAS; do \
|
||||
if wget -nv -O "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp" \
|
||||
"https://translationproject.org/latest/$(1)/$$$$lang.po" ; \
|
||||
then \
|
||||
mv "$(top_srcdir)/$(2)/$(3)$$$$lang.po"{.tmp,} ; \
|
||||
else \
|
||||
rm "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp" ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
.PHONY: download-po.$(1)
|
||||
|
||||
endef
|
||||
|
||||
$(eval $(call make-download-po-rule,guix,po/guix))
|
||||
$(eval $(call make-download-po-rule,guix-packages,po/packages))
|
||||
$(eval $(call make-download-po-rule,guix-manual,po/doc,guix-manual.))
|
||||
|
||||
download-po: $(foreach domain,guix guix-packages guix-manual,download-po.$(domain))
|
||||
.PHONY: download-po
|
||||
|
||||
## -------------- ##
|
||||
## Silent rules. ##
|
||||
## -------------- ##
|
||||
|
|
36
README
36
README
|
@ -10,8 +10,8 @@ It provides [[https://www.gnu.org/software/guile/][Guile]] Scheme APIs, includin
|
|||
domain-specific languages (EDSLs) to describe how packages are to be
|
||||
built and composed.
|
||||
|
||||
A user-land free software distribution for GNU/Linux comes as part of
|
||||
Guix.
|
||||
GNU Guix can be used on top of an already-installed GNU/Linux distribution, or
|
||||
it can be used standalone (we call that “Guix System”).
|
||||
|
||||
Guix is based on the [[https://nixos.org/nix/][Nix]] package manager.
|
||||
|
||||
|
@ -75,37 +75,17 @@ the promise of a build; it is stored as a text file under
|
|||
`derivation' primitive, as well as higher-level wrappers such as
|
||||
`build-expression->derivation'.
|
||||
|
||||
Guix does remote procedure calls (RPCs) to the Guix or Nix daemon (the
|
||||
=guix-daemon= or =nix-daemon= command), which in turn performs builds
|
||||
and accesses to the Nix store on its behalf. The RPCs are implemented
|
||||
in the (guix store) module.
|
||||
|
||||
* Installing Guix as non-root
|
||||
|
||||
The Guix daemon allows software builds to be performed under alternate
|
||||
user accounts, which are normally created specifically for this
|
||||
purpose. For instance, you may have a pool of accounts in the
|
||||
=guixbuild= group, and then you can instruct =guix-daemon= to use them
|
||||
like this:
|
||||
|
||||
$ guix-daemon --build-users-group=guixbuild
|
||||
|
||||
However, unless it is run as root, =guix-daemon= cannot switch users.
|
||||
In that case, it falls back to using a setuid-root helper program call
|
||||
=nix-setuid-helper=. That program is not setuid-root by default when
|
||||
you install it; instead you should run a command along these lines
|
||||
(assuming Guix is installed under /usr/local):
|
||||
|
||||
# chown root.root /usr/local/libexec/nix-setuid-helper
|
||||
# chmod 4755 /usr/local/libexec/nix-setuid-helper
|
||||
Guix does remote procedure calls (RPCs) to the build daemon (the =guix-daemon=
|
||||
command), which in turn performs builds and accesses to the store on its
|
||||
behalf. The RPCs are implemented in the (guix store) module.
|
||||
|
||||
* Contact
|
||||
|
||||
GNU Guix is hosted at https://savannah.gnu.org/projects/guix/.
|
||||
|
||||
Please email <bug-guix@gnu.org> for bug reports or questions regarding
|
||||
Guix and its distribution; email <gnu-system-discuss@gnu.org> for
|
||||
general issues regarding the GNU system.
|
||||
Please email <help-guix@gnu.org> for questions and <bug-guix@gnu.org> for bug
|
||||
reports; email <gnu-system-discuss@gnu.org> for general issues regarding the
|
||||
GNU system.
|
||||
|
||||
Join #guix on irc.freenode.net.
|
||||
|
||||
|
|
12
bootstrap
12
bootstrap
|
@ -4,7 +4,7 @@
|
|||
set -e -x
|
||||
|
||||
# Generate stubs for translations.
|
||||
langs=`find po/doc -type f -name '*.po' \
|
||||
langs=`find po/doc -type f -name 'guix-manual*.po' \
|
||||
| sed -e 's,guix-manual\.,,' \
|
||||
| xargs -n 1 -I{} basename {} .po`
|
||||
for lang in ${langs}; do
|
||||
|
@ -15,5 +15,15 @@ for lang in ${langs}; do
|
|||
touch "po/doc/guix-manual.${lang}.po"
|
||||
fi
|
||||
done
|
||||
langs=`find po/doc -type f -name 'guix-cookbook*.po' \
|
||||
| sed -e 's,guix-manual\.,,' \
|
||||
| xargs -n 1 -I{} basename {} .po`
|
||||
for lang in ${langs}; do
|
||||
if [ ! -e "doc/guix-cookbook.${lang}.texi" ]; then
|
||||
echo "@setfilename guix-cookbook.${lang}.info" > "doc/guix-cookbook.${lang}.texi"
|
||||
# Ensure .po file is newer.
|
||||
touch "po/doc/guix-cookbook.${lang}.po"
|
||||
fi
|
||||
done
|
||||
|
||||
exec autoreconf -vfi
|
||||
|
|
|
@ -42,17 +42,9 @@ export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
|
|||
PATH="$abs_top_builddir/scripts:$abs_top_builddir:$PATH"
|
||||
export PATH
|
||||
|
||||
# Daemon helpers.
|
||||
|
||||
NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots"
|
||||
NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'authenticate', etc.
|
||||
|
||||
export NIX_ROOT_FINDER NIX_LIBEXEC_DIR
|
||||
|
||||
NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload"
|
||||
@BUILD_DAEMON_OFFLOAD_TRUE@export NIX_BUILD_HOOK
|
||||
@BUILD_DAEMON_OFFLOAD_FALSE@# No offloading support.
|
||||
@BUILD_DAEMON_OFFLOAD_FALSE@unset NIX_BUILD_HOOK
|
||||
# The daemon invokes 'guix'; tell it which one to use.
|
||||
GUIX="$abs_top_builddir/scripts/guix"
|
||||
export GUIX
|
||||
|
||||
# The following variables need only be defined when compiling Guix
|
||||
# modules, but we define them to be on the safe side in case of
|
||||
|
|
|
@ -148,17 +148,6 @@ if test "x$guix_build_daemon" = "xyes"; then
|
|||
AC_SUBST([GUIX_TEST_ROOT])
|
||||
|
||||
GUIX_CHECK_LOCALSTATEDIR
|
||||
|
||||
AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
|
||||
[chmod +x nix/scripts/list-runtime-roots])
|
||||
AC_CONFIG_FILES([nix/scripts/download],
|
||||
[chmod +x nix/scripts/download])
|
||||
AC_CONFIG_FILES([nix/scripts/substitute],
|
||||
[chmod +x nix/scripts/substitute])
|
||||
AC_CONFIG_FILES([nix/scripts/authenticate],
|
||||
[chmod +x nix/scripts/authenticate])
|
||||
AC_CONFIG_FILES([nix/scripts/offload],
|
||||
[chmod +x nix/scripts/offload])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"])
|
||||
|
|
198
doc/build.scm
198
doc/build.scm
|
@ -29,11 +29,13 @@
|
|||
(guix gexp)
|
||||
(guix git)
|
||||
(guix git-download)
|
||||
(guix utils)
|
||||
(git)
|
||||
(gnu packages base)
|
||||
(gnu packages gawk)
|
||||
(gnu packages gettext)
|
||||
(gnu packages guile)
|
||||
(gnu packages guile-xyz)
|
||||
(gnu packages iso-codes)
|
||||
(gnu packages texinfo)
|
||||
(gnu packages tex)
|
||||
|
@ -164,6 +166,197 @@ as well as images, OS examples, and translations."
|
|||
;; Options passed to 'makeinfo --html'.
|
||||
'("--css-ref=https://www.gnu.org/software/gnulib/manual.css"))
|
||||
|
||||
(define guile-lib/htmlprag-fixed
|
||||
;; Guile-Lib with a hotfix for (htmlprag).
|
||||
(package
|
||||
(inherit guile-lib)
|
||||
(source (origin
|
||||
(inherit (package-source guile-lib))
|
||||
(modules '(( guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; When parsing
|
||||
;; "<body><blockquote><p>foo</p>\n</blockquote></body>",
|
||||
;; 'html->shtml' would mistakenly close 'blockquote' right
|
||||
;; before <p>. This patch removes 'p' from the
|
||||
;; 'parent-constraints' alist to fix that.
|
||||
(substitute* "src/htmlprag.scm"
|
||||
(("^[[:blank:]]*\\(p[[:blank:]]+\\. \\(body td th\\)\\).*")
|
||||
""))
|
||||
#t))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guile-lib)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'skip-known-failure
|
||||
(lambda _
|
||||
;; XXX: The above change causes one test failure among
|
||||
;; the htmlprag tests.
|
||||
(setenv "XFAIL_TESTS" "htmlprag.scm")
|
||||
#t))))))))
|
||||
|
||||
(define* (syntax-highlighted-html input
|
||||
#:key
|
||||
(name "highlighted-syntax")
|
||||
(syntax-css-url
|
||||
"/static/base/css/code.css"))
|
||||
"Return a derivation called NAME that processes all the HTML files in INPUT
|
||||
to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all
|
||||
its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
|
||||
(define build
|
||||
(with-extensions (list guile-lib/htmlprag-fixed guile-syntax-highlight)
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (htmlprag)
|
||||
(syntax-highlight)
|
||||
(syntax-highlight scheme)
|
||||
(syntax-highlight lexers)
|
||||
(guix build utils)
|
||||
(ice-9 match)
|
||||
(ice-9 threads))
|
||||
|
||||
(define (pair-open/close lst)
|
||||
;; Pair 'open' and 'close' tags produced by 'highlights' and
|
||||
;; produce nested 'paren' tags instead.
|
||||
(let loop ((lst lst)
|
||||
(level 0)
|
||||
(result '()))
|
||||
(match lst
|
||||
((('open open) rest ...)
|
||||
(call-with-values
|
||||
(lambda ()
|
||||
(loop rest (+ 1 level) '()))
|
||||
(lambda (inner close rest)
|
||||
(loop rest level
|
||||
(cons `(paren ,level ,open ,inner ,close)
|
||||
result)))))
|
||||
((('close str) rest ...)
|
||||
(if (> level 0)
|
||||
(values (reverse result) str rest)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"warning: extra closing paren; context:~% ~y~%"
|
||||
(reverse result))
|
||||
(loop rest 0 (cons `(close ,str) result)))))
|
||||
((item rest ...)
|
||||
(loop rest level (cons item result)))
|
||||
(()
|
||||
(when (> level 0)
|
||||
(format (current-error-port)
|
||||
"warning: missing ~a closing parens; context:~% ~y%"
|
||||
level (reverse result)))
|
||||
(values (reverse result) "" '())))))
|
||||
|
||||
(define (highlights->sxml* highlights)
|
||||
;; Like 'highlights->sxml', but handle nested 'paren tags. This
|
||||
;; allows for paren matching highlights via appropriate CSS
|
||||
;; "hover" properties.
|
||||
(define (tag->class tag)
|
||||
(string-append "syntax-" (symbol->string tag)))
|
||||
|
||||
(map (match-lambda
|
||||
((? string? str) str)
|
||||
(('paren level open (body ...) close)
|
||||
`(span (@ (class ,(string-append "syntax-paren"
|
||||
(number->string level))))
|
||||
,open
|
||||
(span (@ (class "syntax-symbol"))
|
||||
,@(highlights->sxml* body))
|
||||
,close))
|
||||
((tag text)
|
||||
`(span (@ (class ,(tag->class tag))) ,text)))
|
||||
highlights))
|
||||
|
||||
(define entity->string
|
||||
(match-lambda
|
||||
("rArr" "⇒")
|
||||
("hellip" "…")
|
||||
("rsquo" "’")
|
||||
(e (pk 'unknown-entity e) (primitive-exit 2))))
|
||||
|
||||
(define (concatenate-snippets pieces)
|
||||
;; Concatenate PIECES, which contains strings and entities,
|
||||
;; replacing entities with their corresponding string.
|
||||
(let loop ((pieces pieces)
|
||||
(strings '()))
|
||||
(match pieces
|
||||
(()
|
||||
(string-concatenate-reverse strings))
|
||||
(((? string? str) . rest)
|
||||
(loop rest (cons str strings)))
|
||||
((('*ENTITY* "additional" entity) . rest)
|
||||
(loop rest (cons (entity->string entity) strings)))
|
||||
((('span _ lst ...) . rest) ;for <span class="roman">
|
||||
(loop (append lst rest) strings))
|
||||
(something
|
||||
(pk 'unsupported-code-snippet something)
|
||||
(primitive-exit 1)))))
|
||||
|
||||
(define (syntax-highlight sxml)
|
||||
;; Recurse over SXML and syntax-highlight code snippets.
|
||||
(match sxml
|
||||
(('*TOP* decl body ...)
|
||||
`(*TOP* ,decl ,@(map syntax-highlight body)))
|
||||
(('head things ...)
|
||||
`(head ,@things
|
||||
(link (@ (rel "stylesheet")
|
||||
(type "text/css")
|
||||
(href #$syntax-css-url)))))
|
||||
(('pre ('@ ('class "lisp")) code-snippet ...)
|
||||
`(pre (@ (class "lisp"))
|
||||
,@(highlights->sxml*
|
||||
(pair-open/close
|
||||
(highlight lex-scheme
|
||||
(concatenate-snippets code-snippet))))))
|
||||
((tag ('@ attributes ...) body ...)
|
||||
`(,tag (@ ,@attributes) ,@(map syntax-highlight body)))
|
||||
((tag body ...)
|
||||
`(,tag ,@(map syntax-highlight body)))
|
||||
((? string? str)
|
||||
str)))
|
||||
|
||||
(define (process-html file)
|
||||
;; Parse FILE and perform syntax highlighting for its Scheme
|
||||
;; snippets. Install the result to #$output.
|
||||
(format (current-error-port) "processing ~a...~%" file)
|
||||
(let* ((shtml (call-with-input-file file html->shtml))
|
||||
(highlighted (syntax-highlight shtml))
|
||||
(base (string-drop file (string-length #$input)))
|
||||
(target (string-append #$output base)))
|
||||
(mkdir-p (dirname target))
|
||||
(call-with-output-file target
|
||||
(lambda (port)
|
||||
(write-shtml-as-html highlighted port)))))
|
||||
|
||||
(define (copy-as-is file)
|
||||
;; Copy FILE as is to #$output.
|
||||
(let* ((base (string-drop file (string-length #$input)))
|
||||
(target (string-append #$output base)))
|
||||
(mkdir-p (dirname target))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(if (eq? 'symlink (stat:type (lstat file)))
|
||||
(symlink (readlink file) target)
|
||||
(link file target)))
|
||||
(lambda args
|
||||
(let ((errno (system-error-errno args)))
|
||||
(pk 'error-link file target (strerror errno))
|
||||
(primitive-exit 3))))))
|
||||
|
||||
;; Install a UTF-8 locale so we can process UTF-8 files.
|
||||
(setenv "GUIX_LOCPATH"
|
||||
#+(file-append glibc-utf8-locales "/lib/locale"))
|
||||
(setlocale LC_ALL "en_US.utf8")
|
||||
|
||||
(n-par-for-each (parallel-job-count)
|
||||
(lambda (file)
|
||||
(if (string-suffix? ".html" file)
|
||||
(process-html file)
|
||||
(copy-as-is file)))
|
||||
(find-files #$input))))))
|
||||
|
||||
(computed-file name build))
|
||||
|
||||
(define* (html-manual source #:key (languages %languages)
|
||||
(version "0.0")
|
||||
(manual "guix")
|
||||
|
@ -242,7 +435,10 @@ makeinfo OPTIONS."
|
|||
"/html_node/images"))))
|
||||
'#$languages))))
|
||||
|
||||
(computed-file (string-append manual "-html-manual") build))
|
||||
(let* ((name (string-append manual "-html-manual"))
|
||||
(manual (computed-file name build)))
|
||||
(syntax-highlighted-html manual
|
||||
#:name (string-append name "-highlighted"))))
|
||||
|
||||
(define* (pdf-manual source #:key (languages %languages)
|
||||
(version "0.0")
|
||||
|
|
|
@ -376,7 +376,7 @@ package and does not contain any version number.
|
|||
|
||||
For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:
|
||||
|
||||
@example
|
||||
@lisp
|
||||
(define-public gtk+
|
||||
(package
|
||||
(name "gtk+")
|
||||
|
@ -387,15 +387,15 @@ For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows
|
|||
(name "gtk+")
|
||||
(version "2.24.20")
|
||||
...))
|
||||
@end example
|
||||
@end lisp
|
||||
If we also wanted GTK+ 3.8.2, this would be packaged as
|
||||
@example
|
||||
@lisp
|
||||
(define-public gtk+-3.8
|
||||
(package
|
||||
(name "gtk+")
|
||||
(version "3.8.2")
|
||||
...))
|
||||
@end example
|
||||
@end lisp
|
||||
|
||||
@c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>,
|
||||
@c for a discussion of what follows.
|
||||
|
@ -432,7 +432,7 @@ kernel.) It is best to use the full commit identifiers in
|
|||
@code{origin}s, though, to avoid ambiguities. A typical package
|
||||
definition may look like this:
|
||||
|
||||
@example
|
||||
@lisp
|
||||
(define my-package
|
||||
(let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7")
|
||||
(revision "1")) ;Guix package revision
|
||||
|
@ -447,7 +447,7 @@ definition may look like this:
|
|||
(file-name (git-file-name name version))))
|
||||
;; @dots{}
|
||||
)))
|
||||
@end example
|
||||
@end lisp
|
||||
|
||||
@node Synopses and Descriptions
|
||||
@subsection Synopses and Descriptions
|
||||
|
@ -825,12 +825,12 @@ recommend using the @code{qemu-binfmt-service-type} to emulate them. In
|
|||
order to enable it, add the following service to the list of services in
|
||||
your @code{operating-system} configuration:
|
||||
|
||||
@example
|
||||
@lisp
|
||||
(service qemu-binfmt-service-type
|
||||
(qemu-binfmt-configuration
|
||||
(platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))
|
||||
(guix-support? #t)))
|
||||
@end example
|
||||
@end lisp
|
||||
|
||||
Then reconfigure your system.
|
||||
|
||||
|
|
|
@ -0,0 +1,821 @@
|
|||
\input texinfo
|
||||
@c -*-texinfo-*-
|
||||
|
||||
@c %**start of header
|
||||
@setfilename guix-cookbook.info
|
||||
@documentencoding UTF-8
|
||||
@settitle GNU Guix Cookbook
|
||||
@c %**end of header
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 2019 Ricardo Wurmus@*
|
||||
Copyright @copyright{} 2019 Efraim Flashner@*
|
||||
Copyright @copyright{} 2019 Pierre Neidhardt@*
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
|
||||
copy of the license is included in the section entitled ``GNU Free
|
||||
Documentation License''.
|
||||
@end copying
|
||||
|
||||
@dircategory System administration
|
||||
@direntry
|
||||
* Guix cookbook: (guix-cookbook). Tutorials and examples for GNU Guix.
|
||||
@end direntry
|
||||
|
||||
@titlepage
|
||||
@title GNU Guix Cookbook
|
||||
@subtitle Tutorials and examples for using the GNU Guix Functional Package Manager
|
||||
@author The GNU Guix Developers
|
||||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
|
||||
@insertcopying
|
||||
@end titlepage
|
||||
|
||||
@contents
|
||||
|
||||
@c *********************************************************************
|
||||
@node Top
|
||||
@top GNU Guix Cookbook
|
||||
|
||||
This document presents tutorials and detailed examples for GNU@tie{}Guix, a
|
||||
functional package management tool written for the GNU system. Please
|
||||
@pxref{Top,,, guix, GNU Guix reference manual} for details about the system,
|
||||
its API, and related concepts.
|
||||
|
||||
@c TRANSLATORS: You can replace the following paragraph with information on
|
||||
@c how to join your own translation team and how to report issues with the
|
||||
@c translation.
|
||||
If you would like to translate this document in your native language, consider
|
||||
joining the @uref{https://translationproject.org/domain/guix-cookbook.html,
|
||||
Translation Project}.
|
||||
|
||||
@menu
|
||||
* Scheme tutorials:: Meet your new favorite language!
|
||||
* Packaging:: Packaging tutorials
|
||||
* System Configuration:: Customizing the GNU System
|
||||
|
||||
* Acknowledgments:: Thanks!
|
||||
* GNU Free Documentation License:: The license of this document.
|
||||
* Concept Index:: Concepts.
|
||||
|
||||
@detailmenu
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
Scheme tutorials
|
||||
|
||||
* A Scheme Crash Course:: Learn the basics of Scheme
|
||||
|
||||
Packaging
|
||||
|
||||
* Packaging Tutorial:: Let's add a package to Guix!
|
||||
|
||||
System Configuration
|
||||
|
||||
* Customizing the Kernel:: Creating and using a custom Linux kernel
|
||||
|
||||
|
||||
@end detailmenu
|
||||
@end menu
|
||||
|
||||
@c *********************************************************************
|
||||
@node Scheme tutorials
|
||||
@chapter Scheme tutorials
|
||||
|
||||
GNU@tie{}Guix is written in the general purpose programming language Scheme,
|
||||
and many of its features can be accessed and manipulated programmatically.
|
||||
You can use Scheme to generate package definitions, to modify them, to build
|
||||
them, to deploy whole operating systems, etc.
|
||||
|
||||
Knowing the basics of how to program in Scheme will unlock many of the
|
||||
advanced features Guix provides --- and you don't even need to be an
|
||||
experienced programmer to use them!
|
||||
|
||||
Let's get started!
|
||||
|
||||
@node A Scheme Crash Course
|
||||
@section A Scheme Crash Course
|
||||
|
||||
@cindex Scheme, crash course
|
||||
|
||||
Guix uses the Guile implementation of Scheme. To start playing with the
|
||||
language, install it with @code{guix install guile} and start a
|
||||
@uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop,
|
||||
REPL} by running @code{guile} from the command line.
|
||||
|
||||
Alternatively you can also run @code{guix environment --ad-hoc guile -- guile}
|
||||
if you'd rather not have Guile installed in your user profile.
|
||||
|
||||
In the following examples we use the @code{>} symbol to denote the REPL
|
||||
prompt, that is, the line reserved for user input. @xref{Using Guile
|
||||
Interactively,,, guile, GNU Guile Reference Manual}) for more details on the
|
||||
REPL.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in
|
||||
Lisp lingo). An expression can be a literal such as numbers and strings, or a
|
||||
compound which is a parenthesized list of compounds and literals. @code{#t}
|
||||
and @code{#f} stand for the booleans "true" and "false", respectively.
|
||||
|
||||
Examples of valid expressions:
|
||||
|
||||
@example scheme
|
||||
> "Hello World!"
|
||||
"Hello World!"
|
||||
> 17
|
||||
17
|
||||
> (display (string-append "Hello " "Guix" "\n"))
|
||||
"Hello Guix!"
|
||||
@end example
|
||||
|
||||
@item
|
||||
This last example is a function call nested in another function call. When a
|
||||
parenthesized expression is evaluated, the first term is the function and the
|
||||
rest are the arguments passed to the function. Every function returns the
|
||||
last evaluated expression as its return value.
|
||||
|
||||
@item
|
||||
Anonymous functions are declared with the @code{lambda} term:
|
||||
|
||||
@example scheme
|
||||
> (lambda (x) (* x x))
|
||||
#<procedure 120e348 at <unknown port>:24:0 (x)>
|
||||
@end example
|
||||
|
||||
The above procedure returns the square of its argument. Since everything is
|
||||
an expression, the @code{lambda} expression returns an anonymous procedure,
|
||||
which can in turn be applied to an argument:
|
||||
|
||||
@example scheme
|
||||
> ((lambda (x) (* x x)) 3)
|
||||
9
|
||||
@end example
|
||||
|
||||
@item
|
||||
Anything can be assigned a global name with @code{define}:
|
||||
|
||||
@example scheme
|
||||
> (define a 3)
|
||||
> (define square (lambda (x) (* x x)))
|
||||
> (square a)
|
||||
9
|
||||
@end example
|
||||
|
||||
@item
|
||||
Procedures can be defined more concisely with the following syntax:
|
||||
|
||||
@example scheme
|
||||
(define (square x) (* x x))
|
||||
@end example
|
||||
|
||||
@item
|
||||
A list structure can be created with the @code{list} procedure:
|
||||
|
||||
@example scheme
|
||||
> (list 2 a 5 7)
|
||||
(2 3 5 7)
|
||||
@end example
|
||||
|
||||
@item
|
||||
The @emph{quote} disables evaluation of a parenthesized expression: the first
|
||||
term is not called over the other terms. Thus it effectively returns a list
|
||||
of terms.
|
||||
|
||||
@example scheme
|
||||
> '(display (string-append "Hello " "Guix" "\n"))
|
||||
(display (string-append "Hello " "Guix" "\n"))
|
||||
> '(2 a 5 7)
|
||||
(2 a 5 7)
|
||||
@end example
|
||||
|
||||
@item
|
||||
The @emph{quasiquote} disables evaluation of a parenthesized expression until
|
||||
a comma re-enables it. Thus it provides us with fine-grained control over
|
||||
what is evaluated and what is not.
|
||||
|
||||
@example scheme
|
||||
> `(2 a 5 7 (2 ,a 5 ,(+ a 4)))
|
||||
(2 a 5 7 (2 3 5 7))
|
||||
@end example
|
||||
|
||||
Note that the above result is a list of mixed elements: numbers, symbols (here
|
||||
@code{a}) and the last element is a list itself.
|
||||
|
||||
@item
|
||||
Multiple variables can be named locally with @code{let}:
|
||||
|
||||
@example scheme
|
||||
> (define x 10)
|
||||
> (let ((x 2)
|
||||
(y 3))
|
||||
(list x y))
|
||||
(2 3)
|
||||
> x
|
||||
10
|
||||
> y
|
||||
ERROR: In procedure module-lookup: Unbound variable: y
|
||||
@end example
|
||||
|
||||
Use @code{let*} to allow later variable declarations to refer to earlier
|
||||
definitions.
|
||||
|
||||
@example scheme
|
||||
> (let* ((x 2)
|
||||
(y (* x 3)))
|
||||
(list x y))
|
||||
(2 6)
|
||||
@end example
|
||||
|
||||
@item
|
||||
The keyword syntax is @code{#:}; it is used to create unique identifiers.
|
||||
@pxref{Keywords,,, guile, GNU Guile Reference Manual}.
|
||||
|
||||
@item
|
||||
The percentage @code{%} is typically used for read-only global variables in
|
||||
the build stage. Note that it is merely a convention, like @code{_} in C.
|
||||
Scheme treats @code{%} exactly the same as any other letter.
|
||||
|
||||
@item
|
||||
Modules are created with @code{define-module}. For instance
|
||||
|
||||
@example scheme
|
||||
(define-module (guix build-system ruby)
|
||||
#:use-module (guix store)
|
||||
#:export (ruby-build
|
||||
ruby-build-system))
|
||||
@end example
|
||||
|
||||
defines the module @code{guix build-system ruby} which must be located in
|
||||
@file{guix/build-system/ruby.scm} somewhere in the Guile load path. It
|
||||
depends on the @code{(guix store)} module and it exports two variables,
|
||||
@code{ruby-build} and @code{ruby-build-system}.
|
||||
@end itemize
|
||||
|
||||
For a more detailed introduction, check out
|
||||
@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, Scheme
|
||||
at a Glance}, by Steve Litt.
|
||||
|
||||
One of the reference Scheme books is the seminal ``Structure and
|
||||
Interpretation of Computer Programs'', by Harold Abelson and Gerald Jay
|
||||
Sussman, with Julie Sussman. You'll find a
|
||||
@uref{https://mitpress.mit.edu/sites/default/files/sicp/index.html, free copy
|
||||
online}, together with
|
||||
@uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/,
|
||||
videos of the lectures by the authors}. The book is available in Texinfo
|
||||
format as the @code{sicp} Guix package. Go ahead, run @code{guix install
|
||||
sicp} and start reading with @code{info sicp} (or with the Emacs Info reader).
|
||||
An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also
|
||||
available}.
|
||||
|
||||
You'll find more books, tutorials and other resources at
|
||||
@url{https://schemers.org/}.
|
||||
|
||||
|
||||
@c *********************************************************************
|
||||
@node Packaging
|
||||
@chapter Packaging
|
||||
|
||||
@cindex packaging
|
||||
|
||||
This chapter is dedicated to teaching you how to add packages to the
|
||||
collection of packages that come with GNU Guix. This involves writing package
|
||||
definitions in Guile Scheme, organizing them in package modules, and building
|
||||
them.
|
||||
|
||||
@menu
|
||||
* Packaging Tutorial:: A tutorial on how to add packages to Guix.
|
||||
@end menu
|
||||
|
||||
@node Packaging Tutorial
|
||||
@section Packaging Tutorial
|
||||
|
||||
GNU Guix stands out as the @emph{hackable} package manager, mostly because it
|
||||
uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful
|
||||
high-level programming language, one of the
|
||||
@uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme}
|
||||
dialects from the
|
||||
@uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}.
|
||||
|
||||
Package definitions are also written in Scheme, which empowers Guix in some
|
||||
very unique ways, unlike most other package managers that use shell scripts or
|
||||
simple languages.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Use functions, structures, macros and all of Scheme expressiveness for your
|
||||
package definitions.
|
||||
|
||||
@item
|
||||
Inheritance makes it easy to customize a package by inheriting from it and
|
||||
modifying only what is needed.
|
||||
|
||||
@item
|
||||
Batch processing: the whole package collection can be parsed, filtered and
|
||||
processed. Building a headless server with all graphical interfaces stripped
|
||||
out? It's possible. Want to rebuild everything from source using specific
|
||||
compiler optimization flags? Pass the @code{#:make-flags "..."} argument to
|
||||
the list of packages. It wouldn't be a stretch to think
|
||||
@uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this
|
||||
goes even further: the changes don't have to be thought out beforehand by the
|
||||
packager, they can be @emph{programmed} by the user!
|
||||
@end itemize
|
||||
|
||||
The following tutorial covers all the basics around package creation with Guix.
|
||||
It does not assume much knowledge of the Guix system nor of the Lisp language.
|
||||
The reader is only expected to be familiar with the command line and to have some
|
||||
basic programming knowledge.
|
||||
|
||||
@subsection A "Hello World" package
|
||||
|
||||
The “Defining Packages” section of the manual introduces the basics of Guix
|
||||
packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In
|
||||
the following section, we will partly go over those basics again.
|
||||
|
||||
``GNU hello'' is a dummy project that serves as an idiomatic example for
|
||||
packaging. It uses the GNU build system (@code{./configure && make && make
|
||||
install}). Guix already provides a package definition which is a perfect
|
||||
example to start with. You can look up its declaration with @code{guix edit
|
||||
hello} from the command line. Let's see how it looks:
|
||||
|
||||
@example scheme
|
||||
(define-public hello
|
||||
(package
|
||||
(name "hello")
|
||||
(version "2.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/hello/hello-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Hello, GNU world: An example GNU package")
|
||||
(description
|
||||
"GNU Hello prints the message \"Hello, world!\" and then exits. It
|
||||
serves as an example of standard GNU coding practices. As such, it supports
|
||||
command-line arguments, multiple languages, and so on.")
|
||||
(home-page "https://www.gnu.org/software/hello/")
|
||||
(license gpl3+)))
|
||||
@end example
|
||||
|
||||
As you can see, most of it is rather straightforward. But let's review the
|
||||
fields together:
|
||||
|
||||
@table @samp
|
||||
@item name
|
||||
The project name. Using Scheme conventions, we prefer to keep it
|
||||
lower case, without underscore and using dash-separated words.
|
||||
|
||||
@item source
|
||||
This field contains a description of the source code origin. The
|
||||
@code{origin} record contains these fields:
|
||||
|
||||
@enumerate
|
||||
@item The method, here @code{url-fetch} to download via HTTP/FTP, but other methods
|
||||
exist, such as @code{git-fetch} for Git repositories.
|
||||
@item The URI, which is typically some @code{https://} location for @code{url-fetch}. Here
|
||||
the special `mirror://gnu` refers to a set of well known locations, all of
|
||||
which can be used by Guix to fetch the source, should some of them fail.
|
||||
@item The @code{sha256} checksum of the requested file. This is essential to ensure
|
||||
the source is not corrupted. Note that Guix works with base32 strings,
|
||||
hence the call to the @code{base32} function.
|
||||
@end enumerate
|
||||
|
||||
@item build-system
|
||||
|
||||
This is where the power of abstraction provided by the Scheme language really
|
||||
shines: in this case, the @code{gnu-build-system} abstracts away the famous
|
||||
@code{./configure && make && make install} shell invocations. Other build
|
||||
systems include the @code{trivial-build-system} which does not do anything and
|
||||
requires from the packager to program all the build steps, the
|
||||
@code{python-build-system}, the @code{emacs-build-system}, and many more
|
||||
(@pxref{Build Systems,,, guix, GNU Guix Reference Manual}).
|
||||
|
||||
@item synopsis
|
||||
It should be a concise summary of what the package does. For many packages a
|
||||
tagline from the project's home page can be used as the synopsis.
|
||||
|
||||
@item description
|
||||
Same as for the synopsis, it's fine to re-use the project description from the
|
||||
homepage. Note that Guix uses Texinfo syntax.
|
||||
|
||||
@item home-page
|
||||
Use HTTPS if available.
|
||||
|
||||
@item license
|
||||
See @code{guix/licenses.scm} in the project source for a full list of
|
||||
available licenses.
|
||||
@end table
|
||||
|
||||
Time to build our first package! Nothing fancy here for now: we will stick to a
|
||||
dummy "my-hello", a copy of the above declaration.
|
||||
|
||||
As with the ritualistic "Hello World" taught with most programming languages,
|
||||
this will possibly be the most "manual" approach. We will work out an ideal
|
||||
setup later; for now we will go the simplest route.
|
||||
|
||||
Save the following to a file @file{my-hello.scm}.
|
||||
|
||||
@example scheme
|
||||
(use-modules (guix packages)
|
||||
(guix download)
|
||||
(guix build-system gnu)
|
||||
(guix licenses))
|
||||
|
||||
(package
|
||||
(name "my-hello")
|
||||
(version "2.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/hello/hello-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Hello, Guix world: An example custom Guix package")
|
||||
(description
|
||||
"GNU Hello prints the message \"Hello, world!\" and then exits. It
|
||||
serves as an example of standard GNU coding practices. As such, it supports
|
||||
command-line arguments, multiple languages, and so on.")
|
||||
(home-page "https://www.gnu.org/software/hello/")
|
||||
(license gpl3+))
|
||||
@end example
|
||||
|
||||
We will explain the extra code in a moment.
|
||||
|
||||
Feel free to play with the different values of the various fields. If you
|
||||
change the source, you'll need to update the checksum. Indeed, Guix refuses to
|
||||
build anything if the given checksum does not match the computed checksum of the
|
||||
source code. To obtain the correct checksum of the package declaration, we
|
||||
need to download the source, compute the sha256 checksum and convert it to
|
||||
base32.
|
||||
|
||||
Thankfully, Guix can automate this task for us; all we need is to provide the
|
||||
URI:
|
||||
|
||||
@c TRANSLATORS: This is example shell output.
|
||||
@example sh
|
||||
$ guix download mirror://gnu/hello/hello-2.10.tar.gz
|
||||
|
||||
Starting download of /tmp/guix-file.JLYgL7
|
||||
From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...
|
||||
following redirection to `https://mirror.ibcp.fr/pub/gnu/hello/hello-2.10.tar.gz'...
|
||||
…10.tar.gz 709KiB 2.5MiB/s 00:00 [##################] 100.0%
|
||||
/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz
|
||||
0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i
|
||||
@end example
|
||||
|
||||
In this specific case the output tells us which mirror was chosen.
|
||||
If the result of the above command is not the same as in the above snippet,
|
||||
update your @code{my-hello} declaration accordingly.
|
||||
|
||||
Note that GNU package tarballs come with an OpenPGP signature, so you
|
||||
should definitely check the signature of this tarball with `gpg` to
|
||||
authenticate it before going further:
|
||||
|
||||
@c TRANSLATORS: This is example shell output.
|
||||
@example sh
|
||||
$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig
|
||||
|
||||
Starting download of /tmp/guix-file.03tFfb
|
||||
From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz.sig...
|
||||
following redirection to `https://ftp.igh.cnrs.fr/pub/gnu/hello/hello-2.10.tar.gz.sig'...
|
||||
….tar.gz.sig 819B 1.2MiB/s 00:00 [##################] 100.0%
|
||||
/gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig
|
||||
0q0v86n3y38z17rl146gdakw9xc4mcscpk8dscs412j22glrv9jf
|
||||
$ gpg --verify /gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig /gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz
|
||||
gpg: Signature made Sun 16 Nov 2014 01:08:37 PM CET
|
||||
gpg: using RSA key A9553245FDE9B739
|
||||
gpg: Good signature from "Sami Kerola <kerolasa@@iki.fi>" [unknown]
|
||||
gpg: aka "Sami Kerola (http://www.iki.fi/kerolasa/) <kerolasa@@iki.fi>" [unknown]
|
||||
gpg: WARNING: This key is not certified with a trusted signature!
|
||||
gpg: There is no indication that the signature belongs to the owner.
|
||||
Primary key fingerprint: 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739
|
||||
@end example
|
||||
|
||||
You can then happily run
|
||||
|
||||
@c TRANSLATORS: Do not translate this command
|
||||
@example sh
|
||||
$ guix package --install-from-file=my-hello.scm
|
||||
@end example
|
||||
|
||||
You should now have @code{my-hello} in your profile!
|
||||
|
||||
@c TRANSLATORS: Do not translate this command
|
||||
@example sh
|
||||
$ guix package --list-installed=my-hello
|
||||
my-hello 2.10 out
|
||||
/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10
|
||||
@end example
|
||||
|
||||
We've gone as far as we could without any knowledge of Scheme. Before moving
|
||||
on to more complex packages, now is the right time to brush up on your Scheme
|
||||
knowledge. @pxref{A Scheme Crash Course} to get up to speed.
|
||||
|
||||
@c TODO: Continue the tutorial
|
||||
|
||||
|
||||
@c *********************************************************************
|
||||
@node System Configuration
|
||||
@chapter System Configuration
|
||||
|
||||
Guix offers a flexible language for declaratively configuring your Guix
|
||||
System. This flexibility can at times be overwhelming. The purpose of this
|
||||
chapter is to demonstrate some advanced configuration concepts.
|
||||
|
||||
@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete
|
||||
reference.
|
||||
|
||||
@menu
|
||||
* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System.
|
||||
@end menu
|
||||
|
||||
@node Customizing the Kernel
|
||||
@section Customizing the Kernel
|
||||
|
||||
Guix is, at its core, a source based distribution with substitutes
|
||||
(@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building
|
||||
packages from their source code is an expected part of regular package
|
||||
installations and upgrades. Given this starting point, it makes sense that
|
||||
efforts are made to reduce the amount of time spent compiling packages, and
|
||||
recent changes and upgrades to the building and distribution of substitutes
|
||||
continues to be a topic of discussion within Guix.
|
||||
|
||||
The kernel, while not requiring an overabundance of RAM to build, does take a
|
||||
rather long time on an average machine. The official kernel configuration, as
|
||||
is the case with many GNU/Linux distributions, errs on the side of
|
||||
inclusiveness, and this is really what causes the build to take such a long
|
||||
time when the kernel is built from source.
|
||||
|
||||
The Linux kernel, however, can also just be described as a regular old
|
||||
package, and as such can be customized just like any other package. The
|
||||
procedure is a little bit different, although this is primarily due to the
|
||||
nature of how the package definition is written.
|
||||
|
||||
The @code{linux-libre} kernel package definition is actually a procedure which
|
||||
creates a package.
|
||||
|
||||
@example scheme
|
||||
(define* (make-linux-libre version hash supported-systems
|
||||
#:key
|
||||
;; A function that takes an arch and a variant.
|
||||
;; See kernel-config for an example.
|
||||
(extra-version #f)
|
||||
(configuration-file #f)
|
||||
(defconfig "defconfig")
|
||||
(extra-options %default-extra-linux-options)
|
||||
(patches (list %boot-logo-patch)))
|
||||
...)
|
||||
@end example
|
||||
|
||||
The current @code{linux-libre} package is for the 5.1.x series, and is
|
||||
declared like this:
|
||||
|
||||
@example scheme
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
%linux-libre-hash
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
||||
#:patches %linux-libre-5.1-patches
|
||||
#:configuration-file kernel-config))
|
||||
@end example
|
||||
|
||||
Any keys which are not assigned values inherit their default value from the
|
||||
@code{make-linux-libre} definition. When comparing the two snippets above,
|
||||
you may notice that the code comment in the first doesn't actually refer to
|
||||
the @code{#:extra-version} keyword; it is actually for
|
||||
@code{#:configuration-file}. Because of this, it is not actually easy to
|
||||
include a custom kernel configuration from the definition, but don't worry,
|
||||
there are other ways to work with what we do have.
|
||||
|
||||
There are two ways to create a kernel with a custom kernel configuration. The
|
||||
first is to provide a standard @file{.config} file during the build process by
|
||||
including an actual @file{.config} file as a native input to our custom
|
||||
kernel. The following is a snippet from the custom @code{'configure} phase of
|
||||
the @code{make-linux-libre} package definition:
|
||||
|
||||
@example scheme
|
||||
(let ((build (assoc-ref %standard-phases 'build))
|
||||
(config (assoc-ref (or native-inputs inputs) "kconfig")))
|
||||
|
||||
;; Use a custom kernel configuration file or a default
|
||||
;; configuration file.
|
||||
(if config
|
||||
(begin
|
||||
(copy-file config ".config")
|
||||
(chmod ".config" #o666))
|
||||
(invoke "make" ,defconfig))
|
||||
@end example
|
||||
|
||||
Below is a sample kernel package. The @code{linux-libre} package is nothing
|
||||
special and can be inherited from and have its fields overridden like any
|
||||
other package:
|
||||
|
||||
@example scheme
|
||||
(define-public linux-libre/E2140
|
||||
(package
|
||||
(inherit linux-libre)
|
||||
(native-inputs
|
||||
`(("kconfig" ,(local-file "E2140.config"))
|
||||
,@@(alist-delete "kconfig"
|
||||
(package-native-inputs linux-libre))))))
|
||||
@end example
|
||||
|
||||
In the same directory as the file defining @code{linux-libre-E2140} is a file
|
||||
named @file{E2140.config}, which is an actual kernel configuration file. The
|
||||
@code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the
|
||||
only kernel configuration in the package is the one which was included in the
|
||||
@code{native-inputs} field.
|
||||
|
||||
The second way to create a custom kernel is to pass a new value to the
|
||||
@code{extra-options} keyword of the @code{make-linux-libre} procedure. The
|
||||
@code{extra-options} keyword works with another function defined right below
|
||||
it:
|
||||
|
||||
@example scheme
|
||||
(define %default-extra-linux-options
|
||||
`(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
|
||||
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)
|
||||
;; Modules required for initrd:
|
||||
("CONFIG_NET_9P" . m)
|
||||
("CONFIG_NET_9P_VIRTIO" . m)
|
||||
("CONFIG_VIRTIO_BLK" . m)
|
||||
("CONFIG_VIRTIO_NET" . m)
|
||||
("CONFIG_VIRTIO_PCI" . m)
|
||||
("CONFIG_VIRTIO_BALLOON" . m)
|
||||
("CONFIG_VIRTIO_MMIO" . m)
|
||||
("CONFIG_FUSE_FS" . m)
|
||||
("CONFIG_CIFS" . m)
|
||||
("CONFIG_9P_FS" . m)))
|
||||
|
||||
(define (config->string options)
|
||||
(string-join (map (match-lambda
|
||||
((option . 'm)
|
||||
(string-append option "=m"))
|
||||
((option . #t)
|
||||
(string-append option "=y"))
|
||||
((option . #f)
|
||||
(string-append option "=n")))
|
||||
options)
|
||||
"\n"))
|
||||
@end example
|
||||
|
||||
And in the custom configure script from the `make-linux-libre` package:
|
||||
|
||||
@example scheme
|
||||
;; Appending works even when the option wasn't in the
|
||||
;; file. The last one prevails if duplicated.
|
||||
(let ((port (open-file ".config" "a"))
|
||||
(extra-configuration ,(config->string extra-options)))
|
||||
(display extra-configuration port)
|
||||
(close-port port))
|
||||
|
||||
(invoke "make" "oldconfig"))))
|
||||
@end example
|
||||
|
||||
So by not providing a configuration-file the @file{.config} starts blank, and
|
||||
then we write into it the collection of flags that we want. Here's another
|
||||
custom kernel:
|
||||
|
||||
@example scheme
|
||||
(define %macbook41-full-config
|
||||
(append %macbook41-config-options
|
||||
%filesystems
|
||||
%efi-support
|
||||
%emulation
|
||||
(@@@@ (gnu packages linux) %default-extra-linux-options)))
|
||||
|
||||
(define-public linux-libre-macbook41
|
||||
;; XXX: Access the internal 'make-linux-libre' procedure, which is
|
||||
;; private and unexported, and is liable to change in the future.
|
||||
((@@@@ (gnu packages linux) make-linux-libre) (@@@@ (gnu packages linux) %linux-libre-version)
|
||||
(@@@@ (gnu packages linux) %linux-libre-hash)
|
||||
'("x86_64-linux")
|
||||
#:extra-version "macbook41"
|
||||
#:patches (@@@@ (gnu packages linux) %linux-libre-5.1-patches)
|
||||
#:extra-options %macbook41-config-options))
|
||||
@end example
|
||||
|
||||
In the above example @code{%filesystems} is a collection of flags enabling
|
||||
different filesystem support, @code{%efi-support} enables EFI support and
|
||||
@code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also.
|
||||
@code{%default-extra-linux-options} are the ones quoted above, which had to be
|
||||
added in since they were replaced in the @code{extra-options} keyword.
|
||||
|
||||
This all sounds like it should be doable, but how does one even know which
|
||||
modules are required for a particular system? Two places that can be helpful
|
||||
in trying to answer this question is the
|
||||
@uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo
|
||||
Handbook} and the
|
||||
@uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig,
|
||||
documentation from the kernel itself}. From the kernel documentation, it
|
||||
seems that @code{make localmodconfig} is the command we want.
|
||||
|
||||
In order to actually run @code{make localmodconfig} we first need to get and
|
||||
unpack the kernel source code:
|
||||
|
||||
@example shell
|
||||
tar xf $(guix build linux-libre --source)
|
||||
@end example
|
||||
|
||||
Once inside the directory containing the source code run @code{touch .config}
|
||||
to create an initial, empty @file{.config} to start with. @code{make
|
||||
localmodconfig} works by seeing what you already have in @file{.config} and
|
||||
letting you know what you're missing. If the file is blank then you're
|
||||
missing everything. The next step is to run:
|
||||
|
||||
@example shell
|
||||
guix environment linux-libre -- make localmodconfig
|
||||
@end example
|
||||
|
||||
and note the output. Do note that the @file{.config} file is still empty.
|
||||
The output generally contains two types of warnings. The first start with
|
||||
"WARNING" and can actually be ignored in our case. The second read:
|
||||
|
||||
@example shell
|
||||
module pcspkr did not have configs CONFIG_INPUT_PCSPKR
|
||||
@end example
|
||||
|
||||
For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the
|
||||
@file{.config} in the directory, and append @code{=m}, so in the end it looks
|
||||
like this:
|
||||
|
||||
@example shell
|
||||
CONFIG_INPUT_PCSPKR=m
|
||||
CONFIG_VIRTIO=m
|
||||
@end example
|
||||
|
||||
After copying all the configuration options, run @code{make localmodconfig}
|
||||
again to make sure that you don't have any output starting with "module".
|
||||
After all of these machine specific modules there are a couple more left that
|
||||
are also needed. @code{CONFIG_MODULES} is necessary so that you can build and
|
||||
load modules separately and not have everything built into the kernel.
|
||||
@code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is
|
||||
possible that there are other modules which you will need.
|
||||
|
||||
This post does not aim to be a guide to configuring your own kernel however,
|
||||
so if you do decide to build a custom kernel you'll have to seek out other
|
||||
guides to create a kernel which is just right for your needs.
|
||||
|
||||
The second way to setup the kernel configuration makes more use of Guix's
|
||||
features and allows you to share configuration segments between different
|
||||
kernels. For example, all machines using EFI to boot have a number of EFI
|
||||
configuration flags that they need. It is likely that all the kernels will
|
||||
share a list of filesystems to support. By using variables it is easier to
|
||||
see at a glance what features are enabled and to make sure you don't have
|
||||
features in one kernel but missing in another.
|
||||
|
||||
Left undiscussed however, is Guix's initrd and its customization. It is
|
||||
likely that you'll need to modify the initrd on a machine using a custom
|
||||
kernel, since certain modules which are expected to be built may not be
|
||||
available for inclusion into the initrd.
|
||||
|
||||
@c *********************************************************************
|
||||
@node Acknowledgments
|
||||
@chapter Acknowledgments
|
||||
|
||||
Guix is based on the @uref{https://nixos.org/nix/, Nix package manager},
|
||||
which was designed and
|
||||
implemented by Eelco Dolstra, with contributions from other people (see
|
||||
the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package
|
||||
management, and promoted unprecedented features, such as transactional
|
||||
package upgrades and rollbacks, per-user profiles, and referentially
|
||||
transparent build processes. Without this work, Guix would not exist.
|
||||
|
||||
The Nix-based software distributions, Nixpkgs and NixOS, have also been
|
||||
an inspiration for Guix.
|
||||
|
||||
GNU@tie{}Guix itself is a collective work with contributions from a
|
||||
number of people. See the @file{AUTHORS} file in Guix for more
|
||||
information on these fine people. The @file{THANKS} file lists people
|
||||
who have helped by reporting bugs, taking care of the infrastructure,
|
||||
providing artwork and themes, making suggestions, and more---thank you!
|
||||
|
||||
This document includes adapted sections from articles that have previously
|
||||
been published on the Guix blog at @uref{https://guix.gnu.org/blog}.
|
||||
|
||||
|
||||
@c *********************************************************************
|
||||
@node GNU Free Documentation License
|
||||
@appendix GNU Free Documentation License
|
||||
@cindex license, GNU Free Documentation License
|
||||
@include fdl-1.3.texi
|
||||
|
||||
@c *********************************************************************
|
||||
@node Concept Index
|
||||
@unnumbered Concept Index
|
||||
@printindex cp
|
||||
|
||||
@bye
|
||||
|
||||
@c Local Variables:
|
||||
@c ispell-local-dictionary: "american";
|
||||
@c End:
|
1394
doc/guix.texi
1394
doc/guix.texi
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,123 @@
|
|||
digraph "Guix bag" {
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/86dqsl7b3qrzxl0zd049i5rl7l19gnk0-gcc-mesboot1-wrapper-4.7.4.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkviolet];
|
||||
"/gnu/store/5gkanb1d995yrpdd2h4iqkjmc5g1j0q4-gcc-mesboot-4.9.4.drv" -> "/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" [color = darkviolet];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = dimgrey];
|
||||
"/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = peachpuff4];
|
||||
"/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" -> "/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" [color = cyan3];
|
||||
"/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" -> "/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" [color = cyan3];
|
||||
"/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" [label = "mes-boot@0.18", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = darkviolet];
|
||||
"/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" -> "/gnu/store/viccpx5izm9z0ci5nvib0xkdrsfqixlr-bootstrap-mes-0.drv" [color = darkviolet];
|
||||
"/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/viccpx5izm9z0ci5nvib0xkdrsfqixlr-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" [label = "tcc-boot0@0.9.26-5.c7b3f59", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" [color = dimgrey];
|
||||
"/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = dimgrey];
|
||||
"/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/p437zhq42yavzknp3miacrgnaw206h7i-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/viccpx5izm9z0ci5nvib0xkdrsfqixlr-bootstrap-mes-0.drv" [color = dimgrey];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" -> "/gnu/store/as3hax4r1zzxz4ihlzj9yq3rs83gm93c-mes-boot-0.18.drv" [color = peachpuff4];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" -> "/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" -> "/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.18.drv" [color = darkseagreen];
|
||||
"/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/xjvyz26a4m191p5aqyifi7fw57vjps15-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.18.drv" [label = "mesboot-headers@0.18", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.18.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.18.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/ia8z1bsk6hw80inpxxn751n4haas5zbv-gcc-core-mesboot-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/86dqsl7b3qrzxl0zd049i5rl7l19gnk0-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/86dqsl7b3qrzxl0zd049i5rl7l19gnk0-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/86dqsl7b3qrzxl0zd049i5rl7l19gnk0-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" [color = red];
|
||||
"/gnu/store/86dqsl7b3qrzxl0zd049i5rl7l19gnk0-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" [color = red];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = blue];
|
||||
"/gnu/store/f89fk16sm2l8amhjqli2zg6hil71c7m3-glibc-mesboot-2.16.0.drv" -> "/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" [color = blue];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.18.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = red];
|
||||
"/gnu/store/l92gwa7d9jylv25q7fra0hd4cqsxyxz8-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" [color = red];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" [label = "gcc-mesboot1@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/91nyq32kpndqj8qywqx17zy1ahv4xzgf-binutils-mesboot-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/yn5ryq346dhxhjsg3glcnb0wmdz4cn8c-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/8jk8qkbvi8bgf1h2m0f8c2gmriql52p4-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" [color = darkseagreen];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" [label = "make-mesboot@3.82", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/0w4i240rlsq7bd9ig4nixpbijkf4qy12-binutils-mesboot0-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/0admz8igq3lvcyga32gp87q2g7918zwy-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/r9rsmhz659147krcvksx53b0mjdavr05-gcc-mesboot0-2.95.3.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/mrbi3ffh1v62b7sc3g40qvz0i0dbbvbi-make-mesboot0-3.80.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/79zblx3zhbmycl30kvwylpxyhjv52qi4-make-mesboot-3.82.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
|
||||
}
|
10
doc/local.mk
10
doc/local.mk
|
@ -26,7 +26,8 @@ info_TEXINFOS = %D%/guix.texi \
|
|||
%D%/guix.es.texi \
|
||||
%D%/guix.fr.texi \
|
||||
%D%/guix.ru.texi \
|
||||
%D%/guix.zh_CN.texi
|
||||
%D%/guix.zh_CN.texi \
|
||||
%D%/guix-cookbook.texi
|
||||
|
||||
%C%_guix_TEXINFOS = \
|
||||
%D%/contributing.texi \
|
||||
|
@ -37,6 +38,7 @@ DOT_FILES = \
|
|||
%D%/images/bootstrap-packages.dot \
|
||||
%D%/images/coreutils-graph.dot \
|
||||
%D%/images/coreutils-bag-graph.dot \
|
||||
%D%/images/gcc-mesboot-bag-graph.dot \
|
||||
%D%/images/service-graph.dot \
|
||||
%D%/images/shepherd-graph.dot
|
||||
|
||||
|
@ -108,6 +110,12 @@ $(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.
|
|||
-$(AM_V_POXREF)$(xref_command)
|
||||
-mv "$@.tmp" "$@"
|
||||
|
||||
$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po
|
||||
-$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix-cookbook.texi" -p "$<" -l "$@.tmp"
|
||||
-sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
|
||||
-$(AM_V_POXREF)$(xref_command)
|
||||
-mv "$@.tmp" "$@"
|
||||
|
||||
$(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po
|
||||
-$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/contributing.texi" -p "$<" -l "$@.tmp"
|
||||
-$(AM_V_POXREF)$(xref_command)
|
||||
|
|
|
@ -277,9 +277,5 @@
|
|||
file (system_u object_r guix_daemon_exec_t (low low)))
|
||||
(filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon"
|
||||
file (system_u object_r guix_daemon_exec_t (low low)))
|
||||
(filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix-authenticate"
|
||||
file (system_u object_r guix_daemon_exec_t (low low)))
|
||||
(filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix/(.*)?"
|
||||
any (system_u object_r guix_daemon_exec_t (low low)))
|
||||
(filecon "@guix_localstatedir@/guix/daemon-socket/socket"
|
||||
any (system_u object_r guix_daemon_socket_t (low low))))
|
||||
|
|
|
@ -345,6 +345,17 @@ sys_enable_guix_daemon()
|
|||
{ cp "${ROOT_HOME}/.config/guix/current/lib/systemd/system/guix-daemon.service" \
|
||||
/etc/systemd/system/;
|
||||
chmod 664 /etc/systemd/system/guix-daemon.service;
|
||||
|
||||
# Work around <https://bugs.gnu.org/36074>, present in 1.0.1.
|
||||
sed -i /etc/systemd/system/guix-daemon.service \
|
||||
-e "s/GUIX_LOCPATH='/'GUIX_LOCPATH=/";
|
||||
|
||||
# Work around <https://bugs.gnu.org/35671>, present in 1.0.1.
|
||||
if ! grep en_US /etc/systemd/system/guix-daemon.service >/dev/null;
|
||||
then sed -i /etc/systemd/system/guix-daemon.service \
|
||||
-e 's/^Environment=\(.*\)$/Environment=\1 LC_ALL=en_US.UTF-8';
|
||||
fi;
|
||||
|
||||
systemctl daemon-reload &&
|
||||
systemctl start guix-daemon &&
|
||||
systemctl enable guix-daemon; } &&
|
||||
|
|
|
@ -0,0 +1,120 @@
|
|||
;; GNU Guix news, for use by 'guix pull'.
|
||||
;;
|
||||
;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;
|
||||
;; Copying and distribution of this file, with or without modification, are
|
||||
;; permitted in any medium without royalty provided the copyright notice and
|
||||
;; this notice are preserved.
|
||||
|
||||
(channel-news
|
||||
(version 0)
|
||||
|
||||
(entry (commit "5f3f70391809f8791c55c05bd1646bc58508fa2c")
|
||||
(title (en "GNU C Library upgraded")
|
||||
(de "GNU-C-Bibliothek aktualisiert")
|
||||
(fr "Mise à jour de la bibliothèque C de GNU")
|
||||
(nl "GNU C-bibliotheek bijgewerkt"))
|
||||
(body
|
||||
(en "The GNU C Library (glibc) has been upgraded to version 2.29. To
|
||||
run previously-installed programs linked against glibc 2.28, you need to
|
||||
install locale data for version 2.28 in addition to locale data for 2.29:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.28
|
||||
@end example
|
||||
|
||||
On Guix System, you can adjust the @code{locale-libcs} field of your
|
||||
@code{operating-system} form. Run @code{info \"(guix) Locales\"}, for more
|
||||
info.")
|
||||
(de "Die GNU-C-Bibliothek (glibc) wurde auf Version 2.29
|
||||
aktualisiert. Um zuvor installierte Programme, die an glibc 2.28 gebunden
|
||||
worden sind, weiter benutzen zu können, müssen Sie Locale-Daten für Version
|
||||
2.28 zusätzlich zu den Locale-Daten für 2.29 installieren:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.28
|
||||
@end example
|
||||
|
||||
Auf Guix System genügt es, das @code{locale-libcs}-Feld Ihrer
|
||||
@code{operating-system}-Form anzupassen. Führen Sie @code{info \"(guix.de)
|
||||
Locales\"} aus, um weitere Informationen dazu zu erhalten.")
|
||||
(fr "La bibliothèque C de GNU (glibc) a été mise à jour en version
|
||||
2.29. Pour pouvoir lancer tes programmes déjà installés et liés à glibc 2.28,
|
||||
tu dois installer les données pour la version 2.28 en plus des données de
|
||||
régionalisation pour la version 2.29 :
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.28
|
||||
@end example
|
||||
|
||||
Sur le système Guix, tu peux ajuster le champ @code{locale-libcs} de ta forme
|
||||
@code{operating-system}. Lance @code{info \"(guix.fr) Régionalisation\"} pour
|
||||
plus de détails.")
|
||||
(nl "De GNU C-bibliotheek (glibc) werd bijgewerkt naar versie 2.29.
|
||||
Om gebruik te maken van reeds geïnstalleerde programma's die aan glibc 2.28
|
||||
gebonden zijn, moet u de regionale informatie van versie 2.28 naast die van
|
||||
versie 2.29 installeren:
|
||||
|
||||
@example
|
||||
guix install glibc-locales glibc-locales-2.28
|
||||
@end example
|
||||
|
||||
Op Guix System kunt u het @code{locale-libcs}-veld van uw
|
||||
@code{operating-system}-vorm aanpassen. Voer @code{info \"(guix) Locales\"}
|
||||
uit voor verdere uitleg." )))
|
||||
(entry (commit "cdd3bcf03883d129581a79e6d6611b2afd3b277b")
|
||||
(title (en "New reduced binary seed bootstrap")
|
||||
(de "Neues Bootstrapping mit kleinerem Seed")
|
||||
(fr "Nouvel ensemble de binaires de bootstrap réduit")
|
||||
(nl "Nieuwe bootstrap met verkleinde binaire kiem"))
|
||||
(body
|
||||
(en "The package graph on x86_64 and i686 is now rooted in a
|
||||
@dfn{reduced set of binary seeds}. The initial set of binaries from which
|
||||
packages are built now weighs in at approximately 130 MiB, half of what it
|
||||
used to be. Run @code{info \"(guix) Bootstrapping\"} to learn more, or watch
|
||||
the talk at @uref{https://archive.fosdem.org/2019/schedule/event/gnumes/}.")
|
||||
(de "Der Paketgraph auf x86_64 und i686 hat jetzt eine @dfn{kleinere
|
||||
Menge an binären Seeds} als Wurzel. Das heißt, die ursprüngliche Menge an
|
||||
Binärdateien, aus denen heraus Pakete erstellt werden, machen nun ungefähr
|
||||
130 MiB aus, halb so viel wie früher. Führen Sie @code{info \"(guix.de)
|
||||
Bootstrapping\"} aus, um mehr zu erfahren, oder schauen Sie sich den Vortrag
|
||||
auf @uref{https://archive.fosdem.org/2019/schedule/event/gnumes/} an.")
|
||||
(fr "Le graphe des paquets sur x86_64 et i686 prend maintenant sa
|
||||
source dans un @dfn{ensemble réduit de binaires}. L'ensemble initial des
|
||||
binaires à partir desquels les paquets sont construits pèse maintenant environ
|
||||
130 Mio, soit la moitié par rapport à l'ensemble précédent. Tu peux lancer
|
||||
@code{info \"(guix) Bootstrapping\"} pour plus de détails, ou regarder la
|
||||
présentation sur @uref{https://archive.fosdem.org/2019/schedule/event/gnumes/}.")
|
||||
(nl "Het netwerk van pakketten voor x86_64 en i686 is nu geworteld in
|
||||
een @dfn{verkleinde verzameling van binaire kiemen}. Die beginverzameling
|
||||
van binaire bestanden waaruit pakketten gebouwd worden is nu zo'n 130 MiB
|
||||
groot; nog maar half zo groot als voorheen. Voer @code{info \"(guix)
|
||||
Bootstrapping\"} uit voor meer details, of bekijk de presentatie op
|
||||
@uref{https://archive.fosdem.org/2019/schedule/event/gnumes/}.")))
|
||||
|
||||
(entry (commit "dcc90d15581189dbc30e201db2b807273d6484f0")
|
||||
(title (en "New channel news mechanism")
|
||||
(de "Neuer Mechanismus, um Neuigkeiten über Kanäle anzuzeigen.")
|
||||
(fr "Nouveau mécanisme d'information sur les canaux")
|
||||
(nl "Nieuw mechanisme voor nieuwsberichten per kanaal"))
|
||||
(body
|
||||
(en "You are reading this message through the new channel news
|
||||
mechanism, congratulations! This mechanism allows channel authors to provide
|
||||
@dfn{news entries} that their users can view with @command{guix pull --news}.
|
||||
Run @command{info \"(guix) Invoking guix pull\"} for more info.")
|
||||
(de "Sie lesen diese Meldung mit Hilfe des neuen Mechanismus, um
|
||||
Neuigkeiten über Kanäle anzuzeigen — Glückwunsch! Mit diesem
|
||||
Mechanismus können Kanalautoren Ihren Nutzern @dfn{Einträge zu
|
||||
Neuigkeiten} mitteilen, die diese sich mit @command{guix pull --news}
|
||||
anzeigen lassen können. Führen Sie @command{info \"(guix.de) Aufruf
|
||||
von guix pull\"} aus, um weitere Informationen zu erhalten.")
|
||||
(fr "Ce message t'arrive à travers le nouveau mécanisme d'information
|
||||
des canaux, bravo ! Ce mécanisme permet aux auteur·rice·s de canaux de
|
||||
fournir des informations qu'on peut visualiser avec @command{guix pull
|
||||
--news}. Tape @command{info \"(guix.fr) Invoquer guix pull\"} pour plus de
|
||||
détails.")
|
||||
(nl "U leest dit bericht door een nieuw mechanisme om per kanaal
|
||||
@dfn{nieuwsberichten} te verspreiden. Proficiat! Hiermee kunnen kanaalauteurs
|
||||
mededelingen uitzenden die hun gebruikers met @command{guix pull --news} kunnen
|
||||
lezen. Voer @command{info \"(guix) Invoking guix pull\"} uit voor meer
|
||||
informatie."))))
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2017 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,6 +24,7 @@
|
|||
#:use-module (guix records)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (menu-entry
|
||||
menu-entry?
|
||||
menu-entry-label
|
||||
|
@ -32,6 +34,9 @@
|
|||
menu-entry-initrd
|
||||
menu-entry-device-mount-point
|
||||
|
||||
menu-entry->sexp
|
||||
sexp->menu-entry
|
||||
|
||||
bootloader
|
||||
bootloader?
|
||||
bootloader-name
|
||||
|
@ -76,6 +81,35 @@
|
|||
(default '())) ; list of string-valued gexps
|
||||
(initrd menu-entry-initrd)) ; file name of the initrd as a gexp
|
||||
|
||||
(define (menu-entry->sexp entry)
|
||||
"Return ENTRY serialized as an sexp."
|
||||
(match entry
|
||||
(($ <menu-entry> label device mount-point linux linux-arguments initrd)
|
||||
`(menu-entry (version 0)
|
||||
(label ,label)
|
||||
(device ,device)
|
||||
(device-mount-point ,mount-point)
|
||||
(linux ,linux)
|
||||
(linux-arguments ,linux-arguments)
|
||||
(initrd ,initrd)))))
|
||||
|
||||
(define (sexp->menu-entry sexp)
|
||||
"Turn SEXP, an sexp as returned by 'menu-entry->sexp', into a <menu-entry>
|
||||
record."
|
||||
(match sexp
|
||||
(('menu-entry ('version 0)
|
||||
('label label) ('device device)
|
||||
('device-mount-point mount-point)
|
||||
('linux linux) ('linux-arguments linux-arguments)
|
||||
('initrd initrd) _ ...)
|
||||
(menu-entry
|
||||
(label label)
|
||||
(device device)
|
||||
(device-mount-point mount-point)
|
||||
(linux linux)
|
||||
(linux-arguments linux-arguments)
|
||||
(initrd initrd)))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Bootloader record.
|
||||
|
@ -108,7 +142,7 @@
|
|||
(bootloader bootloader-configuration-bootloader) ;<bootloader>
|
||||
(target bootloader-configuration-target ;string
|
||||
(default #f))
|
||||
(menu-entries bootloader-configuration-menu-entries ;list of <boot-parameters>
|
||||
(menu-entries bootloader-configuration-menu-entries ;list of <menu-entry>
|
||||
(default '()))
|
||||
(default-entry bootloader-configuration-default-entry ;integer
|
||||
(default 0))
|
||||
|
|
|
@ -238,7 +238,7 @@ to it atomically and set the appropriate permissions."
|
|||
(for-each (lambda (entry)
|
||||
(display (entry->string entry) port)
|
||||
(newline port))
|
||||
entries))
|
||||
(delete-duplicates entries)))
|
||||
|
||||
(if (port? file-or-port)
|
||||
(write-entries file-or-port)
|
||||
|
|
|
@ -18,15 +18,8 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build bootloader)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 format)
|
||||
#:export (write-file-on-device
|
||||
invoke/quiet))
|
||||
#:export (write-file-on-device))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -43,56 +36,3 @@
|
|||
(seek output offset SEEK_SET)
|
||||
(put-bytevector output bv))
|
||||
#:binary #t)))))
|
||||
|
||||
(define-syntax-rule (G_ str) str) ;for xgettext
|
||||
|
||||
(define (open-pipe-with-stderr program . args)
|
||||
"Run PROGRAM with ARGS in an input pipe, but, unlike 'open-pipe*', redirect
|
||||
both its standard output and standard error to the pipe. Return two value:
|
||||
the pipe to read PROGRAM's data from, and the PID of the child process running
|
||||
PROGRAM."
|
||||
;; 'open-pipe*' doesn't attempt to capture stderr in any way, which is why
|
||||
;; we need to roll our own.
|
||||
(match (pipe)
|
||||
((input . output)
|
||||
(match (primitive-fork)
|
||||
(0
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(close-port input)
|
||||
(dup2 (fileno output) 1)
|
||||
(dup2 (fileno output) 2)
|
||||
(apply execlp program program args))
|
||||
(lambda ()
|
||||
(primitive-exit 127))))
|
||||
(pid
|
||||
(close-port output)
|
||||
(values input pid))))))
|
||||
|
||||
;; TODO: Move to (guix build utils) on the next rebuild cycle.
|
||||
(define (invoke/quiet program . args)
|
||||
"Invoke PROGRAM with ARGS and capture PROGRAM's standard output and standard
|
||||
error. If PROGRAM succeeds, print nothing and return the unspecified value;
|
||||
otherwise, raise a '&message' error condition that includes the status code
|
||||
and the output of PROGRAM."
|
||||
(define-values (pipe pid)
|
||||
(apply open-pipe-with-stderr program args))
|
||||
|
||||
(let loop ((lines '()))
|
||||
(match (read-line pipe)
|
||||
((? eof-object?)
|
||||
(close-port pipe)
|
||||
(match (waitpid pid)
|
||||
((_ . status)
|
||||
(unless (zero? status)
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "'~a~{ ~a~}' exited with status ~a; \
|
||||
output follows:~%~%~{ ~a~%~}")
|
||||
program args
|
||||
(or (status:exit-val status)
|
||||
status)
|
||||
(reverse lines))))))))))
|
||||
(line
|
||||
(loop (cons line lines))))))
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -36,11 +38,8 @@
|
|||
|
||||
(define %gcc-include-paths
|
||||
;; Environment variables for header search paths.
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"))
|
||||
;; Note: See <http://bugs.gnu.org/30756> for why not 'C_INCLUDE_PATH' & co.
|
||||
'("CPATH"))
|
||||
|
||||
(define %gcc-cross-include-paths
|
||||
;; Search path for target headers when cross-compiling.
|
||||
|
@ -95,7 +94,7 @@ C_INCLUDE_PATH et al."
|
|||
;; We're building the sans-libc cross-compiler, so nothing to do.
|
||||
#t)))
|
||||
|
||||
(define* (set-cross-path/mingw #:key inputs #:allow-other-keys)
|
||||
(define* (set-cross-path/mingw #:key inputs target #:allow-other-keys)
|
||||
"Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from
|
||||
C_*INCLUDE_PATH."
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
|
@ -112,7 +111,7 @@ C_*INCLUDE_PATH."
|
|||
|
||||
(if libc
|
||||
(let ((cpath (string-append libc "/include"
|
||||
":" libc "/i686-w64-mingw32/include")))
|
||||
":" libc "/" target "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
%gcc-cross-include-paths))
|
||||
|
||||
|
@ -129,7 +128,11 @@ C_*INCLUDE_PATH."
|
|||
|
||||
(substitute* (string-append mingw-headers "/crt/_mingw.h")
|
||||
(("@MINGW_HAS_SECURE_API@")
|
||||
"#define MINGW_HAS_SECURE_API 1"))
|
||||
"#define MINGW_HAS_SECURE_API 1")
|
||||
(("@DEFAULT_WIN32_WINNT@")
|
||||
"0x502")
|
||||
(("@DEFAULT_MSVCRT_VERSION@")
|
||||
"0x700"))
|
||||
|
||||
(let ((cpath (string-append mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
|
@ -142,7 +145,7 @@ C_*INCLUDE_PATH."
|
|||
(when libc
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib"
|
||||
":" libc "/i686-w64-mingw32/lib")))
|
||||
":" libc "/" target "/lib")))
|
||||
|
||||
(setenv "CPP" (string-append gcc "/bin/cpp"))
|
||||
(for-each (lambda (var)
|
||||
|
@ -168,8 +171,12 @@ C_*INCLUDE_PATH."
|
|||
a target triplet."
|
||||
(modify-phases phases
|
||||
(add-before 'configure 'set-cross-path
|
||||
(if (string-contains target "mingw")
|
||||
set-cross-path/mingw
|
||||
;; This mingw32 target checking logic should match that of target-mingw?
|
||||
;; in (guix utils), but (guix utils) is too large too copy over to the
|
||||
;; build side entirely and for now we have no way to select variables to
|
||||
;; copy over. See (gnu packages cross-base) for more details.
|
||||
(if (string-suffix? "-mingw32" target)
|
||||
(cut set-cross-path/mingw #:target target <...>)
|
||||
set-cross-path))
|
||||
(add-after 'install 'make-cross-binutils-visible
|
||||
(cut make-cross-binutils-visible #:target target <...>))
|
||||
|
|
|
@ -359,8 +359,9 @@ the last argument of `mknod'."
|
|||
(define* (mount-root-file-system root type
|
||||
#:key volatile-root?)
|
||||
"Mount the root file system of type TYPE at device ROOT. If VOLATILE-ROOT?
|
||||
is true, mount ROOT read-only and make it a overlay with a writable tmpfs
|
||||
using the kernel build-in overlayfs."
|
||||
is true, mount ROOT read-only and make it an overlay with a writable tmpfs
|
||||
using the kernel built-in overlayfs."
|
||||
|
||||
(if volatile-root?
|
||||
(begin
|
||||
(mkdir-p "/real-root")
|
||||
|
@ -471,10 +472,6 @@ upon error."
|
|||
mounts)
|
||||
"ext4"))
|
||||
|
||||
(define (lookup-module name)
|
||||
(string-append linux-module-directory "/"
|
||||
(ensure-dot-ko name)))
|
||||
|
||||
(display "Welcome, this is GNU's early boot Guile.\n")
|
||||
(display "Use '--repl' for an initrd REPL.\n\n")
|
||||
|
||||
|
@ -489,9 +486,8 @@ upon error."
|
|||
(start-repl))
|
||||
|
||||
(display "loading kernel modules...\n")
|
||||
(for-each (cut load-linux-module* <>
|
||||
#:lookup-module lookup-module)
|
||||
(map lookup-module linux-modules))
|
||||
(load-linux-modules-from-directory linux-modules
|
||||
linux-module-directory)
|
||||
|
||||
(when keymap-file
|
||||
(let ((status (system* "loadkeys" keymap-file)))
|
||||
|
|
|
@ -299,8 +299,10 @@ delete it when leaving the dynamic extent of this call."
|
|||
(false-if-exception (delete-file-recursively tmp-dir))))))
|
||||
|
||||
(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
|
||||
(host-uids 1) (guest-uid 0) (guest-gid 0))
|
||||
"Run THUNK in a new container process and return its exit status.
|
||||
(host-uids 1) (guest-uid 0) (guest-gid 0)
|
||||
(process-spawned-hook (const #t)))
|
||||
"Run THUNK in a new container process and return its exit status; call
|
||||
PROCESS-SPAWNED-HOOK with the PID of the new process that has been spawned.
|
||||
MOUNTS is a list of <file-system> objects that specify file systems to mount
|
||||
inside the container. NAMESPACES is a list of symbols corresponding to
|
||||
the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By
|
||||
|
@ -329,6 +331,7 @@ load path must be adjusted as needed."
|
|||
(false-if-exception
|
||||
(kill pid SIGKILL))))
|
||||
|
||||
(process-spawned-hook pid)
|
||||
(match (waitpid pid)
|
||||
((_ . status) status))))))
|
||||
|
||||
|
|
|
@ -71,8 +71,7 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
|
|||
(cpio:write-cpio-archive files port
|
||||
#:file->header cpio:file->cpio-header*)))
|
||||
|
||||
(or (not compress?)
|
||||
|
||||
(if compress?
|
||||
;; Gzip insists on adding a '.gz' suffix and does nothing if the input
|
||||
;; file already has that suffix. Shuffle files around to placate it.
|
||||
(let* ((gz-suffix? (string-suffix? ".gz" output))
|
||||
|
@ -88,7 +87,6 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
|
|||
(unless gz-suffix?
|
||||
(rename-file (string-append output ".gz") output))
|
||||
output)))
|
||||
|
||||
output))
|
||||
|
||||
(define (cache-compiled-file-name file)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,8 +31,10 @@
|
|||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:autoload (ice-9 pretty-print) (pretty-print)
|
||||
#:export (dot-ko
|
||||
ensure-dot-ko
|
||||
module-formal-name
|
||||
module-aliases
|
||||
module-dependencies
|
||||
module-soft-dependencies
|
||||
|
@ -42,13 +45,18 @@
|
|||
modules-loaded
|
||||
module-loaded?
|
||||
load-linux-module*
|
||||
load-linux-modules-from-directory
|
||||
|
||||
current-module-debugging-port
|
||||
|
||||
device-module-aliases
|
||||
known-module-aliases
|
||||
matching-modules
|
||||
missing-modules))
|
||||
missing-modules
|
||||
|
||||
write-module-name-database
|
||||
write-module-alias-database
|
||||
write-module-device-database))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -95,6 +103,14 @@ key/value pairs.."
|
|||
(define %not-comma
|
||||
(char-set-complement (char-set #\,)))
|
||||
|
||||
(define (module-formal-name file)
|
||||
"Return the module name of FILE as it appears in its info section. Usually
|
||||
the module name is the same as the base name of FILE, modulo hyphens and minus
|
||||
the \".ko\" extension."
|
||||
(match (assq 'name (modinfo-section-contents file))
|
||||
(('name . name) name)
|
||||
(#f #f)))
|
||||
|
||||
(define (module-dependencies file)
|
||||
"Return the list of modules that FILE depends on. The returned list
|
||||
contains module names, not actual file names."
|
||||
|
@ -310,6 +326,18 @@ appears in BLACK-LIST are not loaded."
|
|||
(or (and recursive? (= EEXIST (system-error-errno args)))
|
||||
(apply throw args)))))))
|
||||
|
||||
(define (load-linux-modules-from-directory modules directory)
|
||||
"Load MODULES and their dependencies from DIRECTORY, a directory containing
|
||||
the '.ko' files. The '.ko' suffix is automatically added to MODULES if
|
||||
needed."
|
||||
(define module-name->file-name
|
||||
(module-name-lookup directory))
|
||||
|
||||
(for-each (lambda (module)
|
||||
(load-linux-module* (module-name->file-name module)
|
||||
#:lookup-module module-name->file-name))
|
||||
modules))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Device modules.
|
||||
|
@ -486,4 +514,121 @@ are required to access DEVICE."
|
|||
(remove (cut member <> provided) modules))
|
||||
'()))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Module databases.
|
||||
;;;
|
||||
|
||||
(define (module-name->file-name/guess directory name)
|
||||
"Guess the file name corresponding to NAME, a module name. That doesn't
|
||||
always work because sometimes underscores in NAME map to hyphens (e.g.,
|
||||
\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")."
|
||||
(string-append directory "/" (ensure-dot-ko name)))
|
||||
|
||||
(define (module-name-lookup directory)
|
||||
"Return a one argument procedure that takes a module name (e.g.,
|
||||
\"input_leds\") and returns its absolute file name (e.g.,
|
||||
\"/.../input-leds.ko\")."
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(define mapping
|
||||
(call-with-input-file (string-append directory "/modules.name")
|
||||
read))
|
||||
|
||||
(lambda (name)
|
||||
(or (assoc-ref mapping name)
|
||||
(module-name->file-name/guess directory name))))
|
||||
(lambda args
|
||||
(if (= ENOENT (system-error-errno args))
|
||||
(cut module-name->file-name/guess directory <>)
|
||||
(apply throw args)))))
|
||||
|
||||
(define (write-module-name-database directory)
|
||||
"Write a database that maps \"module names\" as they appear in the relevant
|
||||
ELF section of '.ko' files, to actual file names. This format is
|
||||
Guix-specific. It aims to deal with inconsistent naming, in particular
|
||||
hyphens vs. underscores."
|
||||
(define mapping
|
||||
(map (lambda (file)
|
||||
(match (module-formal-name file)
|
||||
(#f (cons (basename file ".ko") file))
|
||||
(name (cons name file))))
|
||||
(find-files directory "\\.ko$")))
|
||||
|
||||
(call-with-output-file (string-append directory "/modules.name")
|
||||
(lambda (port)
|
||||
(display ";; Module name to file name mapping.
|
||||
;;
|
||||
;; This format is Guix-specific; it is not supported by upstream Linux tools.
|
||||
\n"
|
||||
port)
|
||||
(pretty-print mapping port))))
|
||||
|
||||
(define (write-module-alias-database directory)
|
||||
"Traverse the '.ko' files in DIRECTORY and create the corresponding
|
||||
'modules.alias' file."
|
||||
(define aliases
|
||||
(map (lambda (file)
|
||||
(cons (file-name->module-name file) (module-aliases file)))
|
||||
(find-files directory "\\.ko$")))
|
||||
|
||||
(call-with-output-file (string-append directory "/modules.alias")
|
||||
(lambda (port)
|
||||
(display "# Aliases extracted from modules themselves.\n" port)
|
||||
(for-each (match-lambda
|
||||
((module . aliases)
|
||||
(for-each (lambda (alias)
|
||||
(format port "alias ~a ~a\n" alias module))
|
||||
aliases)))
|
||||
aliases))))
|
||||
|
||||
(define (aliases->device-tuple aliases)
|
||||
"Traverse ALIASES, a list of module aliases, and search for
|
||||
\"char-major-M-N\", \"block-major-M-N\", or \"devname:\" aliases. When they
|
||||
are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f."
|
||||
(define (char/block-major? alias)
|
||||
(or (string-prefix? "char-major-" alias)
|
||||
(string-prefix? "block-major-" alias)))
|
||||
|
||||
(define (char/block-major->tuple alias)
|
||||
(match (string-tokenize alias %not-dash)
|
||||
((type "major" (= string->number major) (= string->number minor))
|
||||
(list (match type
|
||||
("char" "c")
|
||||
("block" "b"))
|
||||
major minor))))
|
||||
|
||||
(let* ((devname (any (lambda (alias)
|
||||
(and (string-prefix? "devname:" alias)
|
||||
(string-drop alias 8)))
|
||||
aliases))
|
||||
(major/minor (match (find char/block-major? aliases)
|
||||
(#f #f)
|
||||
(str (char/block-major->tuple str)))))
|
||||
(and devname major/minor
|
||||
(cons devname major/minor))))
|
||||
|
||||
(define %not-dash
|
||||
(char-set-complement (char-set #\-)))
|
||||
|
||||
(define (write-module-device-database directory)
|
||||
"Traverse the '.ko' files in DIRECTORY and create the corresponding
|
||||
'modules.devname' file. This file contains information about modules that can
|
||||
be loaded on-demand, such as file system modules."
|
||||
(define aliases
|
||||
(filter-map (lambda (file)
|
||||
(match (aliases->device-tuple (module-aliases file))
|
||||
(#f #f)
|
||||
(tuple (cons (file-name->module-name file) tuple))))
|
||||
(find-files directory "\\.ko$")))
|
||||
|
||||
(call-with-output-file (string-append directory "/modules.devname")
|
||||
(lambda (port)
|
||||
(display "# Device nodes to trigger on-demand module loading.\n" port)
|
||||
(for-each (match-lambda
|
||||
((module devname type major minor)
|
||||
(format port "~a ~a ~a~a:~a~%"
|
||||
module devname type major minor)))
|
||||
aliases))))
|
||||
|
||||
;;; linux-modules.scm ends here
|
||||
|
|
|
@ -67,16 +67,10 @@
|
|||
(file-system-mapping
|
||||
(source "/etc/group") (target source))))
|
||||
|
||||
(define nscd-socket
|
||||
(file-system-mapping
|
||||
(source "/var/run/nscd") (target source)
|
||||
(writable? #t)))
|
||||
|
||||
(append (cons (tmpfs "/tmp") %container-file-systems)
|
||||
(let ((mappings `(,@(if (memq 'net namespaces)
|
||||
'()
|
||||
(cons nscd-socket
|
||||
%network-file-mappings))
|
||||
%network-file-mappings)
|
||||
,@(if (and (memq 'mnt namespaces)
|
||||
(not (memq 'user namespaces)))
|
||||
accounts
|
||||
|
@ -156,14 +150,16 @@ namespace, in addition to essential bind-mounts such /proc."
|
|||
(when log-file
|
||||
;; Create LOG-FILE so we can map it in the container.
|
||||
(unless (file-exists? log-file)
|
||||
(call-with-output-file log-file (const #t))))
|
||||
(call-with-output-file log-file (const #t))
|
||||
(when user
|
||||
(let ((pw (getpwnam user)))
|
||||
(chown log-file (passwd:uid pw) (passwd:gid pw))))))
|
||||
|
||||
(let ((pid (run-container container-directory
|
||||
mounts namespaces 1
|
||||
(lambda ()
|
||||
(mkdir-p "/var/run")
|
||||
(clean-up pid-file)
|
||||
(clean-up log-file)
|
||||
|
||||
(exec-command command
|
||||
#:user user
|
||||
|
|
11
gnu/ci.scm
11
gnu/ci.scm
|
@ -130,7 +130,8 @@ SYSTEM."
|
|||
"aarch64-linux-gnu"
|
||||
"powerpc-linux-gnu"
|
||||
"i586-pc-gnu" ;aka. GNU/Hurd
|
||||
"i686-w64-mingw32"))
|
||||
"i686-w64-mingw32"
|
||||
"x86_64-w64-mingw32"))
|
||||
|
||||
(define %guixsd-supported-systems
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux"))
|
||||
|
@ -330,8 +331,12 @@ valid."
|
|||
"Return the list of packages to build."
|
||||
(define (adjust package result)
|
||||
(cond ((package-replacement package)
|
||||
(cons* package ;build both
|
||||
(package-replacement package)
|
||||
;; XXX: If PACKAGE and its replacement have the same name/version,
|
||||
;; then both Cuirass jobs will have the same name, which
|
||||
;; effectively means that the second one will be ignored. Thus,
|
||||
;; return the replacement first.
|
||||
(cons* (package-replacement package) ;build both
|
||||
package
|
||||
result))
|
||||
((package-superseded package)
|
||||
result) ;don't build it
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -226,15 +227,6 @@ selected keymap."
|
|||
(#$keymap-step current-installer)))
|
||||
(configuration-formatter keyboard-layout->configuration))
|
||||
|
||||
;; Run a partitioning tool allowing the user to modify
|
||||
;; partition tables, partitions and their mount points.
|
||||
(installer-step
|
||||
(id 'partition)
|
||||
(description (G_ "Partitioning"))
|
||||
(compute (lambda _
|
||||
((installer-partition-page current-installer))))
|
||||
(configuration-formatter user-partitions->configuration))
|
||||
|
||||
;; Ask the user to input a hostname for the system.
|
||||
(installer-step
|
||||
(id 'hostname)
|
||||
|
@ -267,6 +259,17 @@ selected keymap."
|
|||
((installer-services-page current-installer))))
|
||||
(configuration-formatter system-services->configuration))
|
||||
|
||||
;; Run a partitioning tool allowing the user to modify
|
||||
;; partition tables, partitions and their mount points.
|
||||
;; Do this last so the user has something to boot if any
|
||||
;; of the previous steps didn't go as expected.
|
||||
(installer-step
|
||||
(id 'partition)
|
||||
(description (G_ "Partitioning"))
|
||||
(compute (lambda _
|
||||
((installer-partition-page current-installer))))
|
||||
(configuration-formatter user-partitions->configuration))
|
||||
|
||||
(installer-step
|
||||
(id 'final)
|
||||
(description (G_ "Configuration file"))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -75,7 +76,7 @@ this page to TITLE."
|
|||
#:key
|
||||
(allow-empty-input? #f)
|
||||
(default-text #f)
|
||||
(input-hide-checkbox? #f)
|
||||
(input-visibility-checkbox? #f)
|
||||
(input-field-width 40)
|
||||
(input-flags 0))
|
||||
"Run a page to prompt user for an input. The given TEXT will be displayed
|
||||
|
@ -88,8 +89,8 @@ input box, such as FLAG-PASSWORD."
|
|||
input-field-width
|
||||
#:flags FLAG-BORDER))
|
||||
(input-visible-cb
|
||||
(make-checkbox -1 -1 (G_ "Hide") #\x "x "))
|
||||
(input-flags* (if input-hide-checkbox?
|
||||
(make-checkbox -1 -1 (G_ "Show") #\space "x "))
|
||||
(input-flags* (if input-visibility-checkbox?
|
||||
(logior FLAG-PASSWORD FLAG-SCROLL
|
||||
input-flags)
|
||||
input-flags))
|
||||
|
@ -102,7 +103,7 @@ input box, such as FLAG-PASSWORD."
|
|||
(apply
|
||||
horizontal-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT input-entry
|
||||
`(,@(if input-hide-checkbox?
|
||||
`(,@(if input-visibility-checkbox?
|
||||
(list GRID-ELEMENT-COMPONENT input-visible-cb)
|
||||
'())))
|
||||
GRID-ELEMENT-COMPONENT ok-button))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -159,14 +159,14 @@ USER-PARTITIONS list. Return this list with password fields filled-in."
|
|||
(format #f (G_ "Please enter the password for the \
|
||||
encryption of partition ~a (label: ~a).") file-name crypt-label)
|
||||
(G_ "Password required")
|
||||
#:input-hide-checkbox? #t)))
|
||||
#:input-visibility-checkbox? #t)))
|
||||
(password-confirm-page
|
||||
(lambda ()
|
||||
(run-input-page
|
||||
(format #f (G_ "Please confirm the password for the \
|
||||
encryption of partition ~a (label: ~a).") file-name crypt-label)
|
||||
(G_ "Password confirmation required")
|
||||
#:input-hide-checkbox? #t))))
|
||||
#:input-visibility-checkbox? #t))))
|
||||
(if crypt-label
|
||||
(let loop ()
|
||||
(let ((password (password-page))
|
||||
|
@ -587,7 +587,6 @@ edit it."
|
|||
disks))
|
||||
(new-user-partitions
|
||||
(remove-user-partition-by-disk user-partitions item)))
|
||||
(disk-destroy item)
|
||||
`((disks . ,(cons new-disk other-disks))
|
||||
(user-partitions . ,new-user-partitions)))
|
||||
`((disks . ,disks)
|
||||
|
@ -625,7 +624,7 @@ edit it."
|
|||
info-text)))
|
||||
(case result
|
||||
((1)
|
||||
(disk-delete-all item)
|
||||
(disk-remove-all-partitions item)
|
||||
`((disks . ,disks)
|
||||
(user-partitions
|
||||
. ,(remove-user-partition-by-disk user-partitions item))))
|
||||
|
@ -649,7 +648,7 @@ edit it."
|
|||
(let ((new-user-partitions
|
||||
(remove-user-partition-by-partition user-partitions
|
||||
item)))
|
||||
(disk-delete-partition disk item)
|
||||
(disk-remove-partition* disk item)
|
||||
`((disks . ,disks)
|
||||
(user-partitions . ,new-user-partitions))))
|
||||
(else
|
||||
|
@ -696,9 +695,7 @@ by pressing the Exit button.~%~%")))
|
|||
#f))
|
||||
(check-user-partitions user-partitions))))
|
||||
(if user-partitions-ok?
|
||||
(begin
|
||||
(for-each (cut disk-destroy <>) disks)
|
||||
user-partitions)
|
||||
user-partitions
|
||||
(run-disk-page disks user-partitions
|
||||
#:guided? guided?)))
|
||||
(let* ((result-disks (assoc-ref result 'disks))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -55,7 +56,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
|||
(entry-home-directory (make-entry -1 -1 entry-width
|
||||
#:initial-value home-directory))
|
||||
(password-visible-cb
|
||||
(make-checkbox -1 -1 (G_ "Hide") #\x "x "))
|
||||
(make-checkbox -1 -1 (G_ "Show") #\space "x "))
|
||||
(entry-password (make-entry -1 -1 entry-width
|
||||
#:flags (logior FLAG-PASSWORD
|
||||
FLAG-SCROLL)))
|
||||
|
@ -156,7 +157,7 @@ a thunk, if the confirmation doesn't match PASSWORD, and return its result."
|
|||
(run-input-page (G_ "Please confirm the password.")
|
||||
(G_ "Password confirmation required")
|
||||
#:allow-empty-input? #t
|
||||
#:input-hide-checkbox? #t))
|
||||
#:input-visibility-checkbox? #t))
|
||||
|
||||
(if (string=? password confirmation)
|
||||
password
|
||||
|
@ -173,7 +174,7 @@ a thunk, if the confirmation doesn't match PASSWORD, and return its result."
|
|||
(run-input-page (G_ "Please choose a password for the system \
|
||||
administrator (\"root\").")
|
||||
(G_ "System administrator password")
|
||||
#:input-hide-checkbox? #t))
|
||||
#:input-visibility-checkbox? #t))
|
||||
|
||||
(confirm-password password run-root-password-page))
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -88,7 +89,8 @@ nmc_wifi_strength_bars."
|
|||
(define (run-wifi-password-page)
|
||||
"Run a page prompting user for a password and return it."
|
||||
(run-input-page (G_ "Please enter the wifi password.")
|
||||
(G_ "Password required")))
|
||||
(G_ "Password required")
|
||||
#:input-visibility-checkbox? #t))
|
||||
|
||||
(define (run-wrong-password-page service-name)
|
||||
"Run a page to inform user of a wrong password input."
|
||||
|
|
|
@ -64,13 +64,7 @@
|
|||
user-partition-parted-object
|
||||
|
||||
find-esp-partition
|
||||
data-partition?
|
||||
metadata-partition?
|
||||
freespace-partition?
|
||||
small-freespace-partition?
|
||||
normal-partition?
|
||||
extended-partition?
|
||||
logical-partition?
|
||||
esp-partition?
|
||||
boot-partition?
|
||||
default-esp-mount-point
|
||||
|
@ -172,24 +166,6 @@
|
|||
"Find and return the ESP partition among PARTITIONS."
|
||||
(find esp-partition? partitions))
|
||||
|
||||
(define (data-partition? partition)
|
||||
"Return #t if PARTITION is a partition dedicated to data (by opposition to
|
||||
freespace, metadata and protected partition types), return #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(not (any (lambda (flag)
|
||||
(member flag type))
|
||||
'(free-space metadata protected)))))
|
||||
|
||||
(define (metadata-partition? partition)
|
||||
"Return #t if PARTITION is a metadata partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'metadata type)))
|
||||
|
||||
(define (freespace-partition? partition)
|
||||
"Return #t if PARTITION is a free-space partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'free-space type)))
|
||||
|
||||
(define* (small-freespace-partition? device
|
||||
partition
|
||||
#:key (max-size MEBIBYTE-SIZE))
|
||||
|
@ -200,21 +176,6 @@ inferior to MAX-SIZE, #f otherwise."
|
|||
(device-sector-size device))))
|
||||
(< size max-sector-size)))
|
||||
|
||||
(define (normal-partition? partition)
|
||||
"return #t if partition is a normal partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'normal type)))
|
||||
|
||||
(define (extended-partition? partition)
|
||||
"return #t if partition is an extended partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'extended type)))
|
||||
|
||||
(define (logical-partition? partition)
|
||||
"Return #t if PARTITION is a logical partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'logical type)))
|
||||
|
||||
(define (partition-user-type partition)
|
||||
"Return the type of PARTITION, to be stored in the TYPE field of
|
||||
<user-partition> record. It can be 'normal, 'extended or 'logical."
|
||||
|
@ -813,7 +774,7 @@ cause them to cross."
|
|||
(define (rmpart disk number)
|
||||
"Remove the partition with the given NUMBER on DISK."
|
||||
(let ((partition (disk-get-partition disk number)))
|
||||
(disk-remove-partition disk partition)))
|
||||
(disk-remove-partition* disk partition)))
|
||||
|
||||
|
||||
;;
|
||||
|
@ -928,12 +889,12 @@ exists."
|
|||
|
||||
(if has-extended?
|
||||
;; msdos - remove everything.
|
||||
(disk-delete-all disk)
|
||||
(disk-remove-all-partitions disk)
|
||||
;; gpt - remove everything but esp if it exists.
|
||||
(for-each
|
||||
(lambda (partition)
|
||||
(and (data-partition? partition)
|
||||
(disk-remove-partition disk partition)))
|
||||
(disk-remove-partition* disk partition)))
|
||||
non-boot-partitions))
|
||||
|
||||
(let* ((start-partition
|
||||
|
@ -1348,7 +1309,7 @@ USER-PARTITIONS, or return nothing."
|
|||
|
||||
(define (init-parted)
|
||||
"Initialize libparted support."
|
||||
(probe-all-devices)
|
||||
(probe-all-devices!)
|
||||
(exception-set-handler (lambda (exception)
|
||||
EXCEPTION-OPTION-UNHANDLED)))
|
||||
|
||||
|
@ -1364,7 +1325,6 @@ the devices not to be used before returning."
|
|||
;; https://mail.gnome.org/archives/commits-list/2013-March/msg18423.html.
|
||||
(let ((device-file-names (map device-path devices)))
|
||||
(for-each force-device-sync devices)
|
||||
(free-all-devices)
|
||||
(for-each (lambda (file-name)
|
||||
(let ((in-use? (with-delay-device-in-use? file-name)))
|
||||
(and in-use?
|
||||
|
|
148
gnu/local.mk
148
gnu/local.mk
|
@ -11,7 +11,7 @@
|
|||
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
# Copyright © 2016, 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2016, 2017, 2018, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
|
@ -21,6 +21,7 @@
|
|||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
|
||||
# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
# Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -99,6 +100,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/calcurse.scm \
|
||||
%D%/packages/ccache.scm \
|
||||
%D%/packages/cdrom.scm \
|
||||
%D%/packages/cedille.scm \
|
||||
%D%/packages/certs.scm \
|
||||
%D%/packages/check.scm \
|
||||
%D%/packages/chemistry.scm \
|
||||
|
@ -128,6 +130,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/cryptsetup.scm \
|
||||
%D%/packages/cups.scm \
|
||||
%D%/packages/curl.scm \
|
||||
%D%/packages/cvassistant.scm \
|
||||
%D%/packages/cyrus-sasl.scm \
|
||||
%D%/packages/databases.scm \
|
||||
%D%/packages/datamash.scm \
|
||||
|
@ -140,9 +143,11 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/dejagnu.scm \
|
||||
%D%/packages/dico.scm \
|
||||
%D%/packages/dictionaries.scm \
|
||||
%D%/packages/diffoscope.scm \
|
||||
%D%/packages/digest.scm \
|
||||
%D%/packages/direct-connect.scm \
|
||||
%D%/packages/disk.scm \
|
||||
%D%/packages/disk.scm \
|
||||
%D%/packages/distributed.scm \
|
||||
%D%/packages/display-managers.scm \
|
||||
%D%/packages/django.scm \
|
||||
%D%/packages/djvu.scm \
|
||||
|
@ -161,6 +166,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/electronics.scm \
|
||||
%D%/packages/elf.scm \
|
||||
%D%/packages/elixir.scm \
|
||||
%D%/packages/elm.scm \
|
||||
%D%/packages/embedded.scm \
|
||||
%D%/packages/emacs.scm \
|
||||
%D%/packages/emacs-xyz.scm \
|
||||
|
@ -266,6 +272,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/jrnl.scm \
|
||||
%D%/packages/jose.scm \
|
||||
%D%/packages/julia.scm \
|
||||
%D%/packages/jupyter.scm \
|
||||
%D%/packages/kawa.scm \
|
||||
%D%/packages/kde.scm \
|
||||
%D%/packages/kde-frameworks.scm \
|
||||
|
@ -409,6 +416,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/rdf.scm \
|
||||
%D%/packages/re2c.scm \
|
||||
%D%/packages/readline.scm \
|
||||
%D%/packages/rednotebook.scm \
|
||||
%D%/packages/regex.scm \
|
||||
%D%/packages/robotics.scm \
|
||||
%D%/packages/rrdtool.scm \
|
||||
|
@ -467,6 +475,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/tex.scm \
|
||||
%D%/packages/textutils.scm \
|
||||
%D%/packages/text-editors.scm \
|
||||
%D%/packages/tigervnc.scm \
|
||||
%D%/packages/time.scm \
|
||||
%D%/packages/tls.scm \
|
||||
%D%/packages/tmux.scm \
|
||||
|
@ -527,6 +536,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/services/authentication.scm \
|
||||
%D%/services/games.scm \
|
||||
%D%/services/getmail.scm \
|
||||
%D%/services/guix.scm \
|
||||
%D%/services/kerberos.scm \
|
||||
%D%/services/lirc.scm \
|
||||
%D%/services/virtualization.scm \
|
||||
|
@ -591,6 +601,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/tests/desktop.scm \
|
||||
%D%/tests/dict.scm \
|
||||
%D%/tests/docker.scm \
|
||||
%D%/tests/guix.scm \
|
||||
%D%/tests/monitoring.scm \
|
||||
%D%/tests/nfs.scm \
|
||||
%D%/tests/install.scm \
|
||||
|
@ -664,10 +675,9 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/a2ps-CVE-2001-1593.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
|
||||
%D%/packages/patches/abcl-fix-build-xml.patch \
|
||||
%D%/packages/patches/abiword-explictly-cast-bools.patch \
|
||||
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
|
||||
%D%/packages/patches/acl-fix-perl-regex.patch \
|
||||
%D%/packages/patches/acl-hurd-path-max.patch \
|
||||
%D%/packages/patches/adb-add-libraries.patch \
|
||||
%D%/packages/patches/aegis-constness-error.patch \
|
||||
%D%/packages/patches/aegis-perl-tempdir1.patch \
|
||||
|
@ -683,8 +693,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
||||
%D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \
|
||||
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
||||
%D%/packages/patches/aria2-CVE-2019-3500.patch \
|
||||
%D%/packages/patches/aspell-default-dict-dir.patch \
|
||||
%D%/packages/patches/aspell-gcc-compat.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
|
||||
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
|
||||
|
@ -697,17 +707,17 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/avidemux-install-to-lib.patch \
|
||||
%D%/packages/patches/awesome-reproducible-png.patch \
|
||||
%D%/packages/patches/azr3.patch \
|
||||
%D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch \
|
||||
%D%/packages/patches/bash-completion-directories.patch \
|
||||
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \
|
||||
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
|
||||
%D%/packages/patches/beets-python-3.7-fix.patch \
|
||||
%D%/packages/patches/beignet-correct-file-names.patch \
|
||||
%D%/packages/patches/benchmark-unbundle-googletest.patch \
|
||||
%D%/packages/patches/biber-fix-encoding-write.patch \
|
||||
%D%/packages/patches/binutils-boot-2.20.1a.patch \
|
||||
%D%/packages/patches/binutils-loongson-workaround.patch \
|
||||
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
|
||||
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
|
||||
%D%/packages/patches/boost-fix-icu-build.patch \
|
||||
%D%/packages/patches/byobu-writable-status.patch \
|
||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||
%D%/packages/patches/calibre-remove-test-bs4.patch \
|
||||
|
@ -738,6 +748,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/clementine-use-openssl.patch \
|
||||
%D%/packages/patches/clisp-remove-failing-test.patch \
|
||||
%D%/packages/patches/clucene-pkgconfig.patch \
|
||||
%D%/packages/patches/cmake-curl-certificates.patch \
|
||||
%D%/packages/patches/coda-use-system-libs.patch \
|
||||
%D%/packages/patches/combinatorial-blas-awpm.patch \
|
||||
%D%/packages/patches/combinatorial-blas-io-fix.patch \
|
||||
|
@ -752,12 +763,13 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||
%D%/packages/patches/darkice-workaround-fpermissive-error.patch \
|
||||
%D%/packages/patches/dbus-helper-search-path.patch \
|
||||
%D%/packages/patches/dbus-CVE-2019-12749.patch \
|
||||
%D%/packages/patches/dealii-mpi-deprecations.patch \
|
||||
%D%/packages/patches/dbus-c++-gcc-compat.patch \
|
||||
%D%/packages/patches/dbus-c++-threading-mutex.patch \
|
||||
%D%/packages/patches/debops-constants-for-external-program-names.patch \
|
||||
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
|
||||
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
||||
%D%/packages/patches/diffutils-getopt.patch \
|
||||
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
|
||||
%D%/packages/patches/doc++-include-directives.patch \
|
||||
|
@ -770,9 +782,12 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
||||
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
||||
%D%/packages/patches/dvd+rw-tools-add-include.patch \
|
||||
%D%/packages/patches/einstein-build.patch \
|
||||
%D%/packages/patches/elfutils-tests-ptrace.patch \
|
||||
%D%/packages/patches/elixir-path-length.patch \
|
||||
%D%/packages/patches/einstein-build.patch \
|
||||
%D%/packages/patches/elm-compiler-disable-reactor.patch \
|
||||
%D%/packages/patches/elm-compiler-fix-map-key.patch \
|
||||
%D%/packages/patches/elm-compiler-relax-glsl-bound.patch \
|
||||
%D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \
|
||||
%D%/packages/patches/emacs-exec-path.patch \
|
||||
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
|
||||
|
@ -780,17 +795,17 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
|
||||
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
|
||||
%D%/packages/patches/emacs-source-date-epoch.patch \
|
||||
%D%/packages/patches/emacs-unpackaged-req.patch \
|
||||
%D%/packages/patches/emacs-undohist-ignored.patch \
|
||||
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
|
||||
%D%/packages/patches/emacs-zones-called-interactively.patch \
|
||||
%D%/packages/patches/enjarify-setup-py.patch \
|
||||
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
|
||||
%D%/packages/patches/erlang-man-path.patch \
|
||||
%D%/packages/patches/eudev-rules-directory.patch \
|
||||
%D%/packages/patches/evilwm-lost-focus-bug.patch \
|
||||
%D%/packages/patches/evolution-data-server-locales.patch \
|
||||
%D%/packages/patches/exiv2-CVE-2017-14860.patch \
|
||||
%D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \
|
||||
%D%/packages/patches/expat-CVE-2018-20843.patch \
|
||||
%D%/packages/patches/extundelete-e2fsprogs-1.44.patch \
|
||||
%D%/packages/patches/fastcap-mulGlobal.patch \
|
||||
%D%/packages/patches/fastcap-mulSetup.patch \
|
||||
|
@ -813,15 +828,14 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/flint-ldconfig.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
|
||||
%D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
%D%/packages/patches/fuse-overlapping-headers.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
%D%/packages/patches/gcc-arm-bug-71399.patch \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
%D%/packages/patches/gcc-asan-missing-include.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3.patch \
|
||||
%D%/packages/patches/gcc-boot-4.7.4.patch \
|
||||
%D%/packages/patches/gcc-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-fix-texi2pod.patch \
|
||||
%D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \
|
||||
|
@ -840,6 +854,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gcc-6-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-6-source-date-epoch-1.patch \
|
||||
%D%/packages/patches/gcc-6-source-date-epoch-2.patch \
|
||||
%D%/packages/patches/gcc-7-cross-mingw.patch \
|
||||
%D%/packages/patches/gcc-8-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
|
||||
|
@ -850,7 +865,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gd-CVE-2019-6978.patch \
|
||||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||
%D%/packages/patches/gd-freetype-test-failure.patch \
|
||||
%D%/packages/patches/gdm-CVE-2018-14424.patch \
|
||||
%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 \
|
||||
|
@ -860,7 +874,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
%D%/packages/patches/giflib-make-reallocarray-private.patch \
|
||||
%D%/packages/patches/glib-tests-timer.patch \
|
||||
%D%/packages/patches/glib-networking-connection.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-5180.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-7547.patch \
|
||||
%D%/packages/patches/glibc-CVE-2016-3075.patch \
|
||||
|
@ -871,38 +884,51 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
|
||||
%D%/packages/patches/glibc-CVE-2018-11236.patch \
|
||||
%D%/packages/patches/glibc-CVE-2018-11237.patch \
|
||||
%D%/packages/patches/glibc-CVE-2019-7309.patch \
|
||||
%D%/packages/patches/glibc-CVE-2019-9169.patch \
|
||||
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
|
||||
%D%/packages/patches/glibc-boot-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-boot-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
|
||||
%D%/packages/patches/glibc-hurd-magic-pid.patch \
|
||||
%D%/packages/patches/glibc-ldd-x86_64.patch \
|
||||
%D%/packages/patches/glibc-locales.patch \
|
||||
%D%/packages/patches/glibc-locales-2.28.patch \
|
||||
%D%/packages/patches/glibc-o-largefile.patch \
|
||||
%D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \
|
||||
%D%/packages/patches/glibc-vectorized-strcspn-guards.patch \
|
||||
%D%/packages/patches/glibc-versioned-locpath.patch \
|
||||
%D%/packages/patches/glibc-2.27-git-fixes.patch \
|
||||
%D%/packages/patches/glibc-2.28-git-fixes.patch \
|
||||
%D%/packages/patches/glibc-2.29-git-updates.patch \
|
||||
%D%/packages/patches/glibc-2.27-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.28-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-supported-locales.patch \
|
||||
%D%/packages/patches/glm-restore-install-target.patch \
|
||||
%D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
|
||||
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||
%D%/packages/patches/gmp-faulty-test.patch \
|
||||
%D%/packages/patches/gnome-control-center-udisks.patch \
|
||||
%D%/packages/patches/gnome-shell-theme.patch \
|
||||
%D%/packages/patches/gnome-tweaks-search-paths.patch \
|
||||
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
|
||||
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
%D%/packages/patches/gobject-introspection-cc.patch \
|
||||
%D%/packages/patches/gobject-introspection-girepository.patch \
|
||||
%D%/packages/patches/go-skip-gc-test.patch \
|
||||
%D%/packages/patches/gpm-glibc-2.26.patch \
|
||||
%D%/packages/patches/gpsbabel-minizip.patch \
|
||||
%D%/packages/patches/gpsbabel-qstring.patch \
|
||||
%D%/packages/patches/grep-timing-sensitive-test.patch \
|
||||
%D%/packages/patches/groff-source-date-epoch.patch \
|
||||
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
|
||||
%D%/packages/patches/grub-efi-fat-serial-number.patch \
|
||||
%D%/packages/patches/gsl-test-i686.patch \
|
||||
%D%/packages/patches/gspell-dash-test.patch \
|
||||
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
||||
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
||||
%D%/packages/patches/guile-default-utf8.patch \
|
||||
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
||||
%D%/packages/patches/guile-linux-syscalls.patch \
|
||||
|
@ -919,11 +945,13 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
||||
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
|
||||
%D%/packages/patches/gzdoom-search-in-installed-share.patch \
|
||||
%D%/packages/patches/handbrake-opt-in-nvenc.patch \
|
||||
%D%/packages/patches/haskell-mode-unused-variables.patch \
|
||||
%D%/packages/patches/haskell-mode-make-check.patch \
|
||||
%D%/packages/patches/hdf4-architectures.patch \
|
||||
%D%/packages/patches/hdf4-reproducibility.patch \
|
||||
%D%/packages/patches/hdf4-shared-fortran.patch \
|
||||
%D%/packages/patches/hdf4-tirpc.patch \
|
||||
%D%/packages/patches/hdf5-config-date.patch \
|
||||
%D%/packages/patches/hdf5-mpi-deprecations.patch \
|
||||
%D%/packages/patches/hdf5-1.8-mpi-deprecations.patch \
|
||||
|
@ -946,10 +974,12 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \
|
||||
%D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \
|
||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||
%D%/packages/patches/idris-test-no-node.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/ilmbase-openexr-pkg-config.patch \
|
||||
%D%/packages/patches/inkscape-poppler-0.76.patch \
|
||||
%D%/packages/patches/intltool-perl-compatibility.patch \
|
||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||
%D%/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch \
|
||||
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
||||
%D%/packages/patches/jacal-fix-texinfo.patch \
|
||||
%D%/packages/patches/jamvm-arm.patch \
|
||||
|
@ -996,28 +1026,20 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/liba52-link-with-libm.patch \
|
||||
%D%/packages/patches/liba52-set-soname.patch \
|
||||
%D%/packages/patches/liba52-use-mtune-not-mcpu.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2017-14166.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2017-14502.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2018-1000877.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2018-1000878.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2018-1000880.patch \
|
||||
%D%/packages/patches/libbase-fix-includes.patch \
|
||||
%D%/packages/patches/libbase-use-own-logging.patch \
|
||||
%D%/packages/patches/libbonobo-activation-test-race.patch \
|
||||
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
|
||||
%D%/packages/patches/libcroco-CVE-2017-7960.patch \
|
||||
%D%/packages/patches/libcroco-CVE-2017-7961.patch \
|
||||
%D%/packages/patches/libdrm-symbol-check.patch \
|
||||
%D%/packages/patches/libexif-CVE-2016-6328.patch \
|
||||
%D%/packages/patches/libexif-CVE-2017-7544.patch \
|
||||
%D%/packages/patches/libexif-CVE-2018-20030.patch \
|
||||
%D%/packages/patches/libgcrypt-make-yat2m-reproducible.patch \
|
||||
%D%/packages/patches/libextractor-exiv2.patch \
|
||||
%D%/packages/patches/libgit2-avoid-python.patch \
|
||||
%D%/packages/patches/libgit2-mtime-0.patch \
|
||||
%D%/packages/patches/libgdata-fix-tests.patch \
|
||||
%D%/packages/patches/libgdata-glib-duplicate-tests.patch \
|
||||
%D%/packages/patches/libgnome-encoding.patch \
|
||||
%D%/packages/patches/libgnomeui-utf8.patch \
|
||||
%D%/packages/patches/libgpg-error-gawk-compat.patch \
|
||||
%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 \
|
||||
|
@ -1027,6 +1049,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libmad-length-check.patch \
|
||||
%D%/packages/patches/libmad-md_size.patch \
|
||||
%D%/packages/patches/libmad-mips-newgcc.patch \
|
||||
%D%/packages/patches/libmp4v2-c++11.patch \
|
||||
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
|
||||
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
|
||||
%D%/packages/patches/libreoffice-boost.patch \
|
||||
|
@ -1036,7 +1059,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
|
||||
%D%/packages/patches/libsndfile-CVE-2017-12562.patch \
|
||||
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
|
||||
%D%/packages/patches/libtar-CVE-2013-4420.patch \
|
||||
%D%/packages/patches/libtheora-config-guess.patch \
|
||||
%D%/packages/patches/libtommath-fix-linkage.patch \
|
||||
|
@ -1056,6 +1078,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/lierolibre-remove-arch-warning.patch \
|
||||
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
|
||||
%D%/packages/patches/linkchecker-tests-require-network.patch \
|
||||
%D%/packages/patches/linux-libre-active-entropy.patch \
|
||||
%D%/packages/patches/linux-pam-no-setfsuid.patch \
|
||||
%D%/packages/patches/lirc-localstatedir.patch \
|
||||
%D%/packages/patches/lirc-reproducible-build.patch \
|
||||
|
@ -1086,10 +1109,11 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
|
||||
%D%/packages/patches/mesa-skip-disk-cache-test.patch \
|
||||
%D%/packages/patches/mescc-tools-boot.patch \
|
||||
%D%/packages/patches/meson-for-build-rpath.patch \
|
||||
%D%/packages/patches/metabat-fix-compilation.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
|
||||
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
|
@ -1158,7 +1182,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/osip-CVE-2017-7853.patch \
|
||||
%D%/packages/patches/ots-no-include-missing-file.patch \
|
||||
%D%/packages/patches/owncloud-disable-updatecheck.patch \
|
||||
%D%/packages/patches/p11-kit-jks-timestamps.patch \
|
||||
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
|
||||
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
|
||||
%D%/packages/patches/p7zip-remove-unused-code.patch \
|
||||
|
@ -1215,8 +1238,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \
|
||||
%D%/packages/patches/pyqt-configure.patch \
|
||||
%D%/packages/patches/pyqt-public-sip.patch \
|
||||
%D%/packages/patches/python2-CVE-2018-14647.patch \
|
||||
%D%/packages/patches/python2-CVE-2018-1000802.patch \
|
||||
%D%/packages/patches/python-2-deterministic-build-info.patch \
|
||||
%D%/packages/patches/python-2.7-adjust-tests.patch \
|
||||
%D%/packages/patches/python-2.7-search-paths.patch \
|
||||
|
@ -1229,12 +1250,13 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python-axolotl-AES-fix.patch \
|
||||
%D%/packages/patches/python-cairocffi-dlopen-path.patch \
|
||||
%D%/packages/patches/python-cffi-x87-stack-clean.patch \
|
||||
%D%/packages/patches/python-fix-tests.patch \
|
||||
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
|
||||
%D%/packages/patches/python-configobj-setuptools.patch \
|
||||
%D%/packages/patches/python-faker-fix-build-32bit.patch \
|
||||
%D%/packages/patches/python-keras-integration-test.patch \
|
||||
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
|
||||
%D%/packages/patches/python-flint-includes.patch \
|
||||
%D%/packages/patches/python-libxml2-utf8.patch \
|
||||
%D%/packages/patches/python-mox3-python3.6-compat.patch \
|
||||
%D%/packages/patches/python-testtools.patch \
|
||||
%D%/packages/patches/python-paste-remove-timing-test.patch \
|
||||
|
@ -1249,8 +1271,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
||||
%D%/packages/patches/python-waitress-fix-tests.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||
%D%/packages/patches/qemu-CVE-2018-16872.patch \
|
||||
%D%/packages/patches/qemu-CVE-2019-6778.patch \
|
||||
%D%/packages/patches/qt4-ldflags.patch \
|
||||
%D%/packages/patches/qtbase-use-TZDIR.patch \
|
||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||
|
@ -1259,6 +1279,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/qtwebkit-pbutils-include.patch \
|
||||
%D%/packages/patches/randomjungle-disable-static-build.patch \
|
||||
%D%/packages/patches/rapicorn-isnan.patch \
|
||||
%D%/packages/patches/rapidjson-gcc-compat.patch \
|
||||
%D%/packages/patches/raptor2-heap-overflow.patch \
|
||||
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
|
||||
%D%/packages/patches/ratpoison-shell.patch \
|
||||
|
@ -1290,7 +1311,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/scheme48-tests.patch \
|
||||
%D%/packages/patches/scotch-build-parallelism.patch \
|
||||
%D%/packages/patches/scotch-integer-declarations.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 \
|
||||
|
@ -1304,15 +1324,14 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
|
||||
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
|
||||
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
|
||||
%D%/packages/patches/sssd-curl-compat.patch \
|
||||
%D%/packages/patches/steghide-fixes.patch \
|
||||
%D%/packages/patches/strace-ipc-tests.patch \
|
||||
%D%/packages/patches/streamlink-update-test.patch \
|
||||
%D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
|
||||
%D%/packages/patches/supercollider-boost-1.70-build-fix.patch \
|
||||
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
||||
%D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \
|
||||
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
||||
%D%/packages/patches/supertux-fix-build-with-gcc5.patch \
|
||||
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
||||
%D%/packages/patches/swig-guile-gc.patch \
|
||||
%D%/packages/patches/swish-e-search.patch \
|
||||
|
@ -1326,12 +1345,12 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/t1lib-CVE-2011-1552+.patch \
|
||||
%D%/packages/patches/tar-remove-wholesparse-check.patch \
|
||||
%D%/packages/patches/tar-skip-unreliable-tests.patch \
|
||||
%D%/packages/patches/tcc-boot-0.9.27.patch \
|
||||
%D%/packages/patches/tclxml-3.2-install.patch \
|
||||
%D%/packages/patches/tcsh-fix-autotest.patch \
|
||||
%D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \
|
||||
%D%/packages/patches/teensy-loader-cli-help.patch \
|
||||
%D%/packages/patches/teeworlds-use-latest-wavpack.patch \
|
||||
%D%/packages/patches/texinfo-perl-compat.patch \
|
||||
%D%/packages/patches/texinfo-5-perl-compat.patch \
|
||||
%D%/packages/patches/texlive-bin-CVE-2018-17407.patch \
|
||||
%D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \
|
||||
|
@ -1350,7 +1369,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/totem-meson-compat.patch \
|
||||
%D%/packages/patches/totem-meson-easy-codec.patch \
|
||||
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
||||
%D%/packages/patches/twinkle-include-qregexpvalidator.patch \
|
||||
%D%/packages/patches/txr-shell.patch \
|
||||
%D%/packages/patches/u-boot-fix-mkimage-header-verification.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
||||
|
@ -1387,7 +1405,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/wavpack-CVE-2018-6767.patch \
|
||||
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
|
||||
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
|
||||
%D%/packages/patches/weechat-python.patch \
|
||||
%D%/packages/patches/wicd-bitrate-none-fix.patch \
|
||||
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
|
||||
%D%/packages/patches/wicd-urwid-1.3.patch \
|
||||
|
@ -1408,7 +1425,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch \
|
||||
%D%/packages/patches/xf86-video-voodoo-pcitag.patch \
|
||||
%D%/packages/patches/xfce4-panel-plugins.patch \
|
||||
%D%/packages/patches/xfce4-session-fix-xflock4.patch \
|
||||
%D%/packages/patches/xfce4-settings-defaults.patch \
|
||||
%D%/packages/patches/xinetd-fix-fd-leak.patch \
|
||||
%D%/packages/patches/xinetd-CVE-2013-4342.patch \
|
||||
|
@ -1417,45 +1433,3 @@ dist_patch_DATA = \
|
|||
|
||||
MISC_DISTRO_FILES = \
|
||||
%D%/packages/ld-wrapper.in
|
||||
|
||||
bootstrapdir = $(guilemoduledir)/%D%/packages/bootstrap
|
||||
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
|
||||
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
|
||||
bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
|
||||
bootstrap_aarch64_linuxdir = $(bootstrapdir)/aarch64-linux
|
||||
bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
|
||||
|
||||
dist_bootstrap_x86_64_linux_DATA = \
|
||||
%D%/packages/bootstrap/x86_64-linux/bash \
|
||||
%D%/packages/bootstrap/x86_64-linux/mkdir \
|
||||
%D%/packages/bootstrap/x86_64-linux/tar \
|
||||
%D%/packages/bootstrap/x86_64-linux/xz
|
||||
|
||||
dist_bootstrap_i686_linux_DATA = \
|
||||
%D%/packages/bootstrap/i686-linux/bash \
|
||||
%D%/packages/bootstrap/i686-linux/mkdir \
|
||||
%D%/packages/bootstrap/i686-linux/tar \
|
||||
%D%/packages/bootstrap/i686-linux/xz
|
||||
|
||||
dist_bootstrap_armhf_linux_DATA = \
|
||||
%D%/packages/bootstrap/armhf-linux/bash \
|
||||
%D%/packages/bootstrap/armhf-linux/mkdir \
|
||||
%D%/packages/bootstrap/armhf-linux/tar \
|
||||
%D%/packages/bootstrap/armhf-linux/xz
|
||||
|
||||
dist_bootstrap_aarch64_linux_DATA = \
|
||||
%D%/packages/bootstrap/aarch64-linux/bash \
|
||||
%D%/packages/bootstrap/aarch64-linux/mkdir \
|
||||
%D%/packages/bootstrap/aarch64-linux/tar \
|
||||
%D%/packages/bootstrap/aarch64-linux/xz
|
||||
|
||||
dist_bootstrap_mips64el_linux_DATA = \
|
||||
%D%/packages/bootstrap/mips64el-linux/bash \
|
||||
%D%/packages/bootstrap/mips64el-linux/mkdir \
|
||||
%D%/packages/bootstrap/mips64el-linux/tar \
|
||||
%D%/packages/bootstrap/mips64el-linux/xz
|
||||
|
||||
# Those files must remain executable, so they remain executable once
|
||||
# imported into the store.
|
||||
set-bootstrap-executable-permissions:
|
||||
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#:use-module (guix records)
|
||||
#:use-module (guix store)
|
||||
#:use-module ((guix utils) #:select (source-properties->location))
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (environment-type
|
||||
environment-type?
|
||||
environment-type-name
|
||||
|
@ -40,7 +41,13 @@
|
|||
machine-display-name
|
||||
|
||||
deploy-machine
|
||||
machine-remote-eval))
|
||||
roll-back-machine
|
||||
machine-remote-eval
|
||||
|
||||
&deploy-error
|
||||
deploy-error?
|
||||
deploy-error-should-roll-back
|
||||
deploy-error-captured-args))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -66,6 +73,7 @@
|
|||
;; of the form '(machine-remote-eval machine exp)'.
|
||||
(machine-remote-eval environment-type-machine-remote-eval) ; procedure
|
||||
(deploy-machine environment-type-deploy-machine) ; procedure
|
||||
(roll-back-machine environment-type-roll-back-machine) ; procedure
|
||||
|
||||
;; Metadata.
|
||||
(name environment-type-name) ; symbol
|
||||
|
@ -105,3 +113,20 @@ are built and deployed to MACHINE beforehand."
|
|||
MACHINE, activating it on MACHINE and switching MACHINE to the new generation."
|
||||
(let ((environment (machine-environment machine)))
|
||||
((environment-type-deploy-machine environment) machine)))
|
||||
|
||||
(define (roll-back-machine machine)
|
||||
"Monadic procedure rolling back to the previous system generation on
|
||||
MACHINE. Return the number of the generation that was current before switching
|
||||
and the new generation number."
|
||||
(let ((environment (machine-environment machine)))
|
||||
((environment-type-roll-back-machine environment) machine)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Error types.
|
||||
;;;
|
||||
|
||||
(define-condition-type &deploy-error &error
|
||||
deploy-error?
|
||||
(should-roll-back deploy-error-should-roll-back)
|
||||
(captured-args deploy-error-captured-args))
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu machine ssh)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu machine)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu system)
|
||||
|
@ -27,15 +28,20 @@
|
|||
#:use-module (guix i18n)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix remote)
|
||||
#:use-module (guix scripts system reconfigure)
|
||||
#:use-module (guix ssh)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 textual-ports)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (managed-host-environment-type
|
||||
|
||||
|
@ -45,6 +51,7 @@
|
|||
|
||||
machine-ssh-configuration-host-name
|
||||
machine-ssh-configuration-build-locally?
|
||||
machine-ssh-configuration-authorize?
|
||||
machine-ssh-configuration-port
|
||||
machine-ssh-configuration-user
|
||||
machine-ssh-configuration-session))
|
||||
|
@ -67,16 +74,19 @@
|
|||
make-machine-ssh-configuration
|
||||
machine-ssh-configuration?
|
||||
this-machine-ssh-configuration
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(build-locally? machine-ssh-configuration-build-locally?
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(system machine-ssh-configuration-system) ; string
|
||||
(build-locally? machine-ssh-configuration-build-locally? ; boolean
|
||||
(default #t))
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(authorize? machine-ssh-configuration-authorize? ; boolean
|
||||
(default #t))
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(default 22))
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(default "root"))
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(default #f))
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(default #f)))
|
||||
|
||||
(define (machine-ssh-session machine)
|
||||
|
@ -99,14 +109,26 @@ one from the configuration's parameters if one was not provided."
|
|||
;;; Remote evaluation.
|
||||
;;;
|
||||
|
||||
(define (machine-become-command machine)
|
||||
"Return as a list of strings the program and arguments necessary to run a
|
||||
shell command with escalated privileges for MACHINE's configuration."
|
||||
(if (string= "root" (machine-ssh-configuration-user
|
||||
(machine-configuration machine)))
|
||||
'()
|
||||
'("/run/setuid-programs/sudo" "-n" "--")))
|
||||
|
||||
(define (managed-host-remote-eval machine exp)
|
||||
"Internal implementation of 'machine-remote-eval' for MACHINE instances with
|
||||
an environment type of 'managed-host."
|
||||
(maybe-raise-unsupported-configuration-error machine)
|
||||
(remote-eval exp (machine-ssh-session machine)
|
||||
#:build-locally?
|
||||
(machine-ssh-configuration-build-locally?
|
||||
(machine-configuration machine))))
|
||||
(let ((config (machine-configuration machine)))
|
||||
(remote-eval exp (machine-ssh-session machine)
|
||||
#:build-locally?
|
||||
(machine-ssh-configuration-build-locally? config)
|
||||
#:system
|
||||
(machine-ssh-configuration-system config)
|
||||
#:become-command
|
||||
(machine-become-command machine))))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -144,7 +166,8 @@ MACHINE's 'system' declaration do not exist on the machine."
|
|||
|
||||
(define (check-labeled-file-system fs)
|
||||
(define remote-exp
|
||||
(with-imported-modules '((gnu build file-systems))
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build file-systems)))
|
||||
#~(begin
|
||||
(use-modules (gnu build file-systems))
|
||||
(find-partition-by-label #$(file-system-label->string
|
||||
|
@ -221,7 +244,7 @@ MACHINE's 'system' declaration do not exist on the machine."
|
|||
#$(uuid->string device))))
|
||||
((file-system-label? device)
|
||||
#~(find-partition-by-label
|
||||
(file-system-label->string #$device)))))
|
||||
#$(file-system-label->string device)))))
|
||||
|
||||
(missing-modules dev '#$(operating-system-initrd-modules
|
||||
(machine-operating-system machine)))))))
|
||||
|
@ -240,10 +263,29 @@ MACHINE's 'system' declaration do not exist on the machine."
|
|||
device)
|
||||
(return #t)))
|
||||
|
||||
(define (machine-check-building-for-appropriate-system machine)
|
||||
"Raise a '&message' error condition if MACHINE is configured to be built
|
||||
locally and the 'system' field does not match the '%current-system' reported
|
||||
by MACHINE."
|
||||
(let ((config (machine-configuration machine))
|
||||
(system (remote-system (machine-ssh-session machine))))
|
||||
(when (and (machine-ssh-configuration-build-locally? config)
|
||||
(not (string= system (machine-ssh-configuration-system config))))
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "incorrect target system \
|
||||
('~a' was given, while the system reports that it is '~a')~%")
|
||||
(machine-ssh-configuration-system config)
|
||||
system)))))))
|
||||
(with-monad %store-monad (return #t)))
|
||||
|
||||
(define (check-deployment-sanity machine)
|
||||
"Raise a '&message' error condition if it is clear that deploying MACHINE's
|
||||
'system' declaration would fail."
|
||||
;; Order is important here -- an incorrect value for 'system' will cause
|
||||
;; invocations of 'remote-eval' to fail.
|
||||
(mbegin %store-monad
|
||||
(machine-check-building-for-appropriate-system machine)
|
||||
(machine-check-file-system-availability machine)
|
||||
(machine-check-initrd-modules machine)))
|
||||
|
||||
|
@ -310,10 +352,36 @@ of MACHINE's system profile, ordered from most recent to oldest."
|
|||
(boot-parameters-kernel-arguments params))))))))
|
||||
generations))))
|
||||
|
||||
(define-syntax-rule (with-roll-back should-roll-back? mbody ...)
|
||||
"Catch exceptions that arise when binding MBODY, a monadic expression in
|
||||
%STORE-MONAD, and collect their arguments in a &deploy-error condition, with
|
||||
the 'should-roll-back' field set to SHOULD-ROLL-BACK?"
|
||||
(catch #t
|
||||
(lambda ()
|
||||
mbody ...)
|
||||
(lambda args
|
||||
(raise (condition (&deploy-error
|
||||
(should-roll-back should-roll-back?)
|
||||
(captured-args args)))))))
|
||||
|
||||
(define (deploy-managed-host machine)
|
||||
"Internal implementation of 'deploy-machine' for MACHINE instances with an
|
||||
environment type of 'managed-host."
|
||||
(maybe-raise-unsupported-configuration-error machine)
|
||||
(when (machine-ssh-configuration-authorize?
|
||||
(machine-configuration machine))
|
||||
(unless (file-exists? %public-key-file)
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f (G_ "no signing key '~a'. \
|
||||
have you run 'guix archive --generate-key?'")
|
||||
%public-key-file))))))
|
||||
(remote-authorize-signing-key (call-with-input-file %public-key-file
|
||||
(lambda (port)
|
||||
(string->canonical-sexp
|
||||
(get-string-all port))))
|
||||
(machine-ssh-session machine)
|
||||
(machine-become-command machine)))
|
||||
(mlet %store-monad ((_ (check-deployment-sanity machine))
|
||||
(boot-parameters (machine-boot-parameters machine)))
|
||||
(let* ((os (machine-operating-system machine))
|
||||
|
@ -322,9 +390,60 @@ environment type of 'managed-host."
|
|||
(bootloader-configuration (operating-system-bootloader os))
|
||||
(bootcfg (operating-system-bootcfg os menu-entries)))
|
||||
(mbegin %store-monad
|
||||
(switch-to-system eval os)
|
||||
(upgrade-shepherd-services eval os)
|
||||
(install-bootloader eval bootloader-configuration bootcfg)))))
|
||||
(with-roll-back #f
|
||||
(switch-to-system eval os))
|
||||
(with-roll-back #t
|
||||
(mbegin %store-monad
|
||||
(upgrade-shepherd-services eval os)
|
||||
(install-bootloader eval bootloader-configuration bootcfg)))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Roll-back.
|
||||
;;;
|
||||
|
||||
(define (roll-back-managed-host machine)
|
||||
"Internal implementation of 'roll-back-machine' for MACHINE instances with
|
||||
an environment type of 'managed-host."
|
||||
(define remote-exp
|
||||
(with-extensions (list guile-gcrypt)
|
||||
(with-imported-modules (source-module-closure '((guix config)
|
||||
(guix profiles)))
|
||||
#~(begin
|
||||
(use-modules (guix config)
|
||||
(guix profiles))
|
||||
|
||||
(define %system-profile
|
||||
(string-append %state-directory "/profiles/system"))
|
||||
|
||||
(define target-generation
|
||||
(relative-generation %system-profile -1))
|
||||
|
||||
(if target-generation
|
||||
(switch-to-generation %system-profile target-generation)
|
||||
'error)))))
|
||||
|
||||
(define roll-back-failure
|
||||
(condition (&message (message (G_ "could not roll-back machine")))))
|
||||
|
||||
(mlet* %store-monad ((boot-parameters (machine-boot-parameters machine))
|
||||
(_ -> (if (< (length boot-parameters) 2)
|
||||
(raise roll-back-failure)))
|
||||
(entries -> (map boot-parameters->menu-entry
|
||||
(list (second boot-parameters))))
|
||||
(old-entries -> (map boot-parameters->menu-entry
|
||||
(drop boot-parameters 2)))
|
||||
(bootloader -> (operating-system-bootloader
|
||||
(machine-operating-system machine)))
|
||||
(bootcfg (lower-object
|
||||
((bootloader-configuration-file-generator
|
||||
(bootloader-configuration-bootloader
|
||||
bootloader))
|
||||
bootloader entries
|
||||
#:old-entries old-entries)))
|
||||
(remote-result (machine-remote-eval machine remote-exp)))
|
||||
(when (eqv? 'error remote-result)
|
||||
(raise roll-back-failure))))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -335,6 +454,7 @@ environment type of 'managed-host."
|
|||
(environment-type
|
||||
(machine-remote-eval managed-host-remote-eval)
|
||||
(deploy-machine deploy-managed-host)
|
||||
(roll-back-machine roll-back-managed-host)
|
||||
(name 'managed-host-environment-type)
|
||||
(description "Provisioning for machines that are accessible over SSH
|
||||
and have a known host-name. This entails little more than maintaining an SSH
|
||||
|
|
|
@ -46,10 +46,8 @@
|
|||
#:export (search-patch
|
||||
search-patches
|
||||
search-auxiliary-file
|
||||
search-bootstrap-binary
|
||||
%patch-path
|
||||
%auxiliary-files-path
|
||||
%bootstrap-binaries-path
|
||||
%package-module-path
|
||||
%default-package-module-path
|
||||
|
||||
|
@ -75,18 +73,13 @@
|
|||
;;;
|
||||
;;; Code:
|
||||
|
||||
;; By default, we store patches, auxiliary files and bootstrap binaries
|
||||
;; By default, we store patches and auxiliary files
|
||||
;; alongside Guile modules. This is so that these extra files can be
|
||||
;; found without requiring a special setup, such as a specific
|
||||
;; installation directory and an extra environment variable. One
|
||||
;; advantage of this setup is that everything just works in an
|
||||
;; auto-compilation setting.
|
||||
|
||||
(define %bootstrap-binaries-path
|
||||
(make-parameter
|
||||
(map (cut string-append <> "/gnu/packages/bootstrap")
|
||||
%load-path)))
|
||||
|
||||
(define %auxiliary-files-path
|
||||
(make-parameter
|
||||
(map (cut string-append <> "/gnu/packages/aux-files")
|
||||
|
@ -108,18 +101,6 @@
|
|||
FILE-NAME found in %PATCH-PATH."
|
||||
(list (search-patch file-name) ...))
|
||||
|
||||
(define (search-bootstrap-binary file-name system)
|
||||
"Search the bootstrap binary FILE-NAME for SYSTEM. Raise an error if not
|
||||
found."
|
||||
(or (search-path (%bootstrap-binaries-path)
|
||||
(string-append system "/" file-name))
|
||||
(raise (condition
|
||||
(&message
|
||||
(message
|
||||
(format #f (G_ "could not find bootstrap binary '~a' \
|
||||
for system '~a'")
|
||||
file-name system)))))))
|
||||
|
||||
(define %distro-root-directory
|
||||
;; Absolute file name of the module hierarchy. Since (gnu packages …) might
|
||||
;; live in a directory different from (guix), try to get the best match.
|
||||
|
@ -412,9 +393,7 @@ reducing the memory footprint."
|
|||
,(module-name module)
|
||||
,symbol
|
||||
,(package-outputs package)
|
||||
,(->bool
|
||||
(member (%current-system)
|
||||
(package-supported-systems package)))
|
||||
,(->bool (supported-package? package))
|
||||
,(->bool (package-superseded package))
|
||||
,@(let ((loc (package-location package)))
|
||||
(if loc
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -34,21 +35,18 @@
|
|||
(define-public acl
|
||||
(package
|
||||
(name "acl")
|
||||
(version "2.2.52")
|
||||
(version "2.2.53")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/acl/acl-"
|
||||
version ".src.tar.gz"))
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p"))
|
||||
(patches (search-patches "acl-fix-perl-regex.patch"
|
||||
"acl-hurd-path-max.patch"))))
|
||||
"1ir6my3w74s6nfbgbqgzj6w570sn0qjf3524zx8xh67lqrjrigh6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "tests"
|
||||
#:modules ((ice-9 ftw)
|
||||
`(#:modules ((ice-9 ftw)
|
||||
,@%gnu-build-system-modules)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
@ -75,13 +73,11 @@
|
|||
(("\\| sed.*'") ""))
|
||||
;; These tests require the existence of a user named "bin", but
|
||||
;; this user does not exist within Guix's build environment.
|
||||
(for-each (lambda (file)
|
||||
(delete-file (string-append "test/" file)))
|
||||
'("setfacl-X.test" "cp.test" "misc.test"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(invoke "make" "install" "install-lib" "install-dev"))))))
|
||||
(substitute* "Makefile.in"
|
||||
((".*test/misc\\.test.*") "")
|
||||
((".*test/cp\\.test.*") "")
|
||||
((".*test/setfacl-X\\.test.*") ""))
|
||||
#t)))))
|
||||
(inputs `(("attr" ,attr)))
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
||||
|
@ -25,6 +25,8 @@
|
|||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
|
||||
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -55,9 +57,11 @@
|
|||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages file)
|
||||
|
@ -110,6 +114,7 @@
|
|||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages web))
|
||||
|
||||
(define-public aide
|
||||
|
@ -684,9 +689,9 @@ connection alive.")
|
|||
(define-public isc-dhcp
|
||||
(let* ((bind-major-version "9")
|
||||
(bind-minor-version "11")
|
||||
(bind-patch-version "4")
|
||||
(bind-release-type "-P") ; for patch release, use "-P"
|
||||
(bind-release-version "2") ; for patch release, e.g. "6"
|
||||
(bind-patch-version "11")
|
||||
(bind-release-type "") ; for patch release, use "-P"
|
||||
(bind-release-version "") ; for patch release, e.g. "6"
|
||||
(bind-version (string-append bind-major-version
|
||||
"."
|
||||
bind-minor-version
|
||||
|
@ -710,7 +715,18 @@ connection alive.")
|
|||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'replace-bundled-bind
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
;; XXX TODO: Remove the following invocation of 'patch' when
|
||||
;; isc-dhcp is updated. It should be needed only for 4.4.1.
|
||||
(let ((patch (string-append (assoc-ref (or native-inputs inputs)
|
||||
"patch")
|
||||
"/bin/patch"))
|
||||
(the-patch (assoc-ref (or native-inputs inputs)
|
||||
"fixes-for-newer-bind.patch")))
|
||||
(format #t "applying '~a'...~%" the-patch)
|
||||
(invoke patch "--force" "--no-backup-if-mismatch"
|
||||
"-p1" "--input" the-patch))
|
||||
|
||||
(delete-file "bind/bind.tar.gz")
|
||||
(copy-file (assoc-ref inputs "bind-source-tarball")
|
||||
"bind/bind.tar.gz")
|
||||
|
@ -743,15 +759,18 @@ connection alive.")
|
|||
;; shell is used.
|
||||
(with-directory-excursion "bind"
|
||||
(substitute* "Makefile"
|
||||
(("\\./configure")
|
||||
(("\\./configure ")
|
||||
(let ((sh (which "sh")))
|
||||
(string-append "./configure CONFIG_SHELL="
|
||||
sh " SHELL=" sh))))
|
||||
sh " SHELL=" sh " "))))
|
||||
|
||||
(let ((bind-directory (string-append "bind-" ,bind-version)))
|
||||
(invoke "tar" "xf" "bind.tar.gz")
|
||||
(for-each patch-shebang
|
||||
(find-files bind-directory ".*"))
|
||||
(substitute* (string-append bind-directory "/configure")
|
||||
(("/usr/bin/file")
|
||||
(which "file")))
|
||||
(invoke "tar" "cf" "bind.tar.gz"
|
||||
bind-directory
|
||||
;; avoid non-determinism in the archive
|
||||
|
@ -787,7 +806,15 @@ connection alive.")
|
|||
(list inetutils net-tools coreutils sed))))
|
||||
#t))))))
|
||||
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("file" ,file)
|
||||
|
||||
;; XXX TODO: Remove the following patch, and also the 'patch'
|
||||
;; program, when isc-dhcp is updated.
|
||||
("fixes-for-newer-bind.patch"
|
||||
,(search-patch "isc-dhcp-4.4.1-fixes-for-newer-bind.patch"))
|
||||
("patch" ,patch)))
|
||||
|
||||
(inputs `(("inetutils" ,inetutils)
|
||||
("net-tools" ,net-tools)
|
||||
|
@ -803,7 +830,7 @@ connection alive.")
|
|||
"/bind-" bind-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04fq17zksd2b3w6w6padps5n7b6s2lasxpksbhl4378h56vgfnm8"))))
|
||||
"0swavslyli3vcrkcm2ip11s6p58g3k7r4gjs2b899r25cqrk0lk1"))))
|
||||
|
||||
;; When cross-compiling, we need the cross Coreutils and sed.
|
||||
;; Otherwise just use those from %FINAL-INPUTS.
|
||||
|
@ -824,14 +851,14 @@ tools: server, client, and relay agent.")
|
|||
(define-public libpcap
|
||||
(package
|
||||
(name "libpcap")
|
||||
(version "1.9.0")
|
||||
(version "1.9.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.tcpdump.org/release/libpcap-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06bhydl4vr4z9c3vahl76f2j96z1fbrcl7wwismgs4sris08inrf"))))
|
||||
"153h1378diqyc27jjgz6gg5nxmb4ddk006d9xg69nqavgiikflk3"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
|
@ -852,14 +879,14 @@ network statistics collection, security monitoring, network debugging, etc.")
|
|||
(define-public tcpdump
|
||||
(package
|
||||
(name "tcpdump")
|
||||
(version "4.9.2")
|
||||
(version "4.9.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.tcpdump.org/release/tcpdump-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr"))))
|
||||
"0434vdcnbqaia672rggjzdn4bb8p8dchz559yiszzdk0sjrprm1c"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libpcap" ,libpcap)
|
||||
("openssl" ,openssl)))
|
||||
|
@ -1218,9 +1245,10 @@ commands and their arguments.")
|
|||
CONFIG_READLINE=y\n" port)
|
||||
(close-port port))
|
||||
#t))
|
||||
(add-after 'install 'install-man-pages
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc/wpa-supplicant"))
|
||||
(man (string-append out "/share/man"))
|
||||
(man5 (string-append man "/man5"))
|
||||
(man8 (string-append man "/man8")))
|
||||
|
@ -1233,6 +1261,15 @@ commands and their arguments.")
|
|||
(find-files "doc/docbook" "\\.5"))
|
||||
(for-each (copy-man-page man8)
|
||||
(find-files "doc/docbook" "\\.8"))
|
||||
|
||||
;; wpa_supplicant.conf(5) does not explain all configuration
|
||||
;; options but refers to the example config file, so install it
|
||||
;; along with READMEs.
|
||||
(for-each (lambda (file)
|
||||
(install-file file doc))
|
||||
'("README" "README-DPP" "README-HS20"
|
||||
"README-P2P" "README-WPS"
|
||||
"wpa_supplicant.conf"))
|
||||
#t))))
|
||||
|
||||
#:make-flags (list "CC=gcc"
|
||||
|
@ -1281,7 +1318,7 @@ command.")
|
|||
CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
|
||||
(close-port port))
|
||||
#t))
|
||||
(add-after 'install-man-pages 'install-dbus-conf
|
||||
(add-after 'install-documentation 'install-dbus-conf
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/etc/dbus-1/system.d")))
|
||||
|
@ -1468,7 +1505,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
|
|||
(define-public acpica
|
||||
(package
|
||||
(name "acpica")
|
||||
(version "20190703")
|
||||
(version "20190816")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1476,7 +1513,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kp3ian3lffx9709ajrr3bp6b9cb6c6v1crjziyr8j8pp639jlwz"))))
|
||||
"0lipy3jwl498lvgwzj6xcvmg61myl7hhilpallh1cf3ppgrq13l8"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("flex" ,flex)
|
||||
("bison" ,bison)))
|
||||
|
@ -1686,7 +1723,7 @@ track changes in important system configuration files.")
|
|||
(define-public libcap-ng
|
||||
(package
|
||||
(name "libcap-ng")
|
||||
(version "0.7.9")
|
||||
(version "0.7.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1694,7 +1731,7 @@ track changes in important system configuration files.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa"))))
|
||||
"1gzzy12agfa9ddipdf72h9y68zqqnvsjjylv4vnq6hj4w2safk58"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -1869,6 +1906,101 @@ ad hoc task execution, and multinode orchestration---including trivializing
|
|||
things like zero-downtime rolling updates with load balancers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public debops
|
||||
(package
|
||||
(name "debops")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/debops/debops")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "052b2dykdn35pdpn9s4prawl6nl6yzih8nyf54hpvhpisvjrm1v5"))
|
||||
(patches
|
||||
(search-patches "debops-constants-for-external-program-names.patch"
|
||||
"debops-debops-defaults-fall-back-to-less.patch"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("git" ,git)))
|
||||
(inputs
|
||||
`(("ansible" ,ansible)
|
||||
("encfs" ,encfs)
|
||||
("fuse" ,fuse)
|
||||
("util-linux" ,util-linux) ;; for umount
|
||||
("findutils" ,findutils)
|
||||
("gnupg" ,gnupg)
|
||||
("which" ,which)))
|
||||
(propagated-inputs
|
||||
`(("python-future" ,python-future)
|
||||
("python-distro" ,python-distro)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'nuke-debops-update
|
||||
(lambda _
|
||||
(chmod "bin/debops-update" #o755) ; FIXME work-around git-fetch issue
|
||||
(with-output-to-file "bin/debops-update"
|
||||
(lambda ()
|
||||
(format #t "#!/bin/sh
|
||||
echo 'debops is installed via guix. guix-update is useless in this case.
|
||||
Please use `guix package -u debops` instead.'")))
|
||||
#t))
|
||||
;; patch shebangs only in actuall scripts, not in files included in
|
||||
;; roles (which are to be delivered to the targte systems)
|
||||
(delete `patch-generated-file-shebangs)
|
||||
(replace 'patch-source-shebangs
|
||||
(lambda _
|
||||
(for-each patch-shebang
|
||||
(find-files "bin"
|
||||
(lambda (file stat)
|
||||
;; Filter out symlinks.
|
||||
(eq? 'regular (stat:type stat)))
|
||||
#:stat lstat))))
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda _
|
||||
(define (substitute-program-names file)
|
||||
;; e.g. ANSIBLE_PLAYBOOK = '/gnu/store/…/bin/ansible-playbook'
|
||||
(for-each
|
||||
(lambda (name)
|
||||
(let ((varname (string-upcase
|
||||
(string-map
|
||||
(lambda (c) (if (char=? c #\-) #\_ c))
|
||||
name))))
|
||||
(substitute* file
|
||||
(((string-append "^(" varname " = )'.*'") line prefix)
|
||||
(string-append prefix "'" (which name) "'")))))
|
||||
'("ansible-playbook" "encfs" "find" "fusermount"
|
||||
"umount" "gpg" "ansible" "which")))
|
||||
(for-each substitute-program-names
|
||||
'("bin/debops"
|
||||
"bin/debops-padlock"
|
||||
"bin/debops-task"
|
||||
"debops/__init__.py"
|
||||
"debops/cmds/__init__.py"))
|
||||
#t)))))
|
||||
(home-page "https://www.debops.org/")
|
||||
(synopsis "Collection of general-purpose Ansible roles")
|
||||
(description "The Ansible roles provided by that can be used to manage
|
||||
Debian or Ubuntu hosts. In addition, a default set of Ansible playbooks can
|
||||
be used to apply the provided roles in a controlled way, using Ansible
|
||||
inventory groups.
|
||||
|
||||
The roles are written with a high customization in mind, which can be done
|
||||
using Ansible inventory. This way the role and playbook code can be shared
|
||||
between multiple environments, with different configuration in to each one.
|
||||
|
||||
Services can be managed on a single host, or spread between multiple hosts.
|
||||
DebOps provides support for different SQL and NoSQL databases, web servers,
|
||||
programming languages and specialized applications useful in a data center
|
||||
environment or in a cluster. The project can also be used to deploy
|
||||
virtualization environments using KVM/libvirt, Docker or LXC technologies to
|
||||
manage virtual machines and/or containers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ansible-doc
|
||||
(let ((commit "86083a7bb2ed0468ca64e52076b06441a2f8e9e0"))
|
||||
(package
|
||||
|
@ -2102,14 +2234,14 @@ done with the @code{auditctl} utility.")
|
|||
(define-public nmap
|
||||
(package
|
||||
(name "nmap")
|
||||
(version "7.70")
|
||||
(version "7.80")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nmap.org/dist/nmap-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"063fg8adx23l4irrh5kn57hsmi1xvjkar4vm4k6g94ppan4hcyw4"))
|
||||
"1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -2693,7 +2825,7 @@ tool for remote execution and deployment.")
|
|||
(define-public neofetch
|
||||
(package
|
||||
(name "neofetch")
|
||||
(version "6.0.0")
|
||||
(version "6.1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2701,7 +2833,7 @@ tool for remote execution and deployment.")
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0j0r40llyry1sgc6p9wd7jrpydps2lnj4rwajjp37697g2bik89i"))))
|
||||
"022xzn9jk18k2f4b6011d8jk5nbl84i3mw3inlz4q52p2hvk8fch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
|
@ -2719,17 +2851,73 @@ used in screenshots to show other users what operating system or distribution
|
|||
you are running, what theme or icon set you are using, etc.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public screenfetch
|
||||
(package
|
||||
(name "screenfetch")
|
||||
(version "3.9.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/KittyKatt/screenFetch")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"13i7dczbqwhws08zzrdraki1zkqv0qkbgx9c1r8vmg5qr9f7hfzg"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((source (assoc-ref %build-inputs "source"))
|
||||
(out (assoc-ref %outputs "out")))
|
||||
(mkdir-p (string-append out "/bin/"))
|
||||
(copy-file (string-append source "/screenfetch-dev")
|
||||
(string-append out "/bin/screenfetch"))
|
||||
(install-file (string-append source "/screenfetch.1")
|
||||
(string-append out "/man/man1/"))
|
||||
(install-file (string-append source "/COPYING")
|
||||
(string-append out "/share/doc/" ,name "-" ,version))
|
||||
(substitute* (string-append out "/bin/screenfetch")
|
||||
(("/usr/bin/env bash")
|
||||
(string-append (assoc-ref %build-inputs "bash")
|
||||
"/bin/bash")))
|
||||
(wrap-program
|
||||
(string-append out "/bin/screenfetch")
|
||||
`("PATH" ":" prefix
|
||||
(,(string-append (assoc-ref %build-inputs "bc") "/bin:"
|
||||
(assoc-ref %build-inputs "scrot") "/bin:"
|
||||
(assoc-ref %build-inputs "xdpyinfo") "/bin"
|
||||
(assoc-ref %build-inputs "xprop") "/bin"))))
|
||||
(substitute* (string-append out "/bin/screenfetch")
|
||||
(("#!#f")
|
||||
(string-append "#!" (assoc-ref %build-inputs "bash")
|
||||
"/bin/bash")))))))
|
||||
(inputs
|
||||
`(("bash" ,bash)
|
||||
("bc" ,bc)
|
||||
("scrot" ,scrot)
|
||||
("xdpyinfo" ,xdpyinfo)
|
||||
("xprop" ,xprop)))
|
||||
(home-page "https://github.com/KittyKatt/screenFetch")
|
||||
(synopsis "System information script")
|
||||
(description "Bash screenshot information tool which can be used to
|
||||
generate those nifty terminal theme information and ASCII distribution logos in
|
||||
everyone's screenshots nowadays.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public nnn
|
||||
(package
|
||||
(name "nnn")
|
||||
(version "1.9")
|
||||
(version "2.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jarun/nnn/releases/download/v"
|
||||
version "/nnn-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
|
||||
(base32 "0xb6crd9vig3xgjwl8m4bmgcs4azfmfdpx3g8pdpzs28jdg7i3rr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
|
@ -3153,7 +3341,7 @@ Logitech Unifying Receiver.")
|
|||
(package
|
||||
(name "lynis")
|
||||
;; Also update the ‘lynis-sdk’ input to the commit matching this release.
|
||||
(version "2.7.4")
|
||||
(version "2.7.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3162,7 +3350,7 @@ Logitech Unifying Receiver.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
|
||||
(base32 "1lkkbvxm0rgrrlx0szaxmf8ghc3d26wal96sgqk84m37mvs1f7p0"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -3179,10 +3367,10 @@ Logitech Unifying Receiver.")
|
|||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/CISOfy/lynis-sdk")
|
||||
(commit "90f301e21c204792cf372f1cf05890a562f2e31b")))
|
||||
(commit "bf1c1d95121da9ca79a9eac5a15ed8d81e34094d")))
|
||||
(file-name (git-file-name "lynis-sdk" version))
|
||||
(sha256
|
||||
(base32 "1d0smr1fxrvbc3hl8lzy33im9ahzr0hgs3kk09r8g8xccjkcm52l"))))))
|
||||
(base32 "1ndz5v0039dqa87cva2dk55a8hkw0fibsw8hh2ddmny9qkr4l3dp"))))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -61,7 +62,7 @@ scripts.")
|
|||
(define-public c-ares
|
||||
(package
|
||||
(name "c-ares")
|
||||
(version "1.14.0")
|
||||
(version "1.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -69,7 +70,7 @@ scripts.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vnwmbvymw677k780kpb6sb8i3szdp89rzy8mz1fwg1657yw3ls5"))))
|
||||
"0lk8knip4xk6qzksdkn7085mmgm4ixfczdyyjw656c193y3rgnvc"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -83,32 +84,16 @@ The primary examples of such applications are servers which communicate with
|
|||
multiple clients and programs with graphical user interfaces.")
|
||||
(license (x11-style "https://c-ares.haxx.se/license.html"))))
|
||||
|
||||
;; XXX: temporary package for tensorflow / grpc
|
||||
(define-public c-ares-next
|
||||
(package
|
||||
(name "c-ares")
|
||||
(version "1.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://c-ares.haxx.se/download/" name "-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lk8knip4xk6qzksdkn7085mmgm4ixfczdyyjw656c193y3rgnvc"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; some tests seem to require Internet connection
|
||||
#:configure-flags
|
||||
(list "-DCARES_BUILD_TESTS=ON")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://c-ares.haxx.se/")
|
||||
(synopsis "C library for asynchronous DNS requests")
|
||||
(description
|
||||
"C-ares is a C library that performs DNS requests and name resolution
|
||||
asynchronously. It is intended for applications which need to perform DNS
|
||||
queries without blocking, or need to perform multiple DNS queries in parallel.
|
||||
The primary examples of such applications are servers which communicate with
|
||||
multiple clients and programs with graphical user interfaces.")
|
||||
(license (x11-style "https://c-ares.haxx.se/license.html"))))
|
||||
;; gRPC requires a c-ares built with CMake in order to get the .cmake modules.
|
||||
;; We can not build c-ares itself with CMake because that would introduce a
|
||||
;; circular dependency through nghttp2.
|
||||
;; XXX: It would be nice if we could extract the modules somehow and make them
|
||||
;; work with the "normal" c-ares package instead of building a whole new library.
|
||||
(define-public c-ares/cmake
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit c-ares)
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(;; XXX: Tests require name resolution (the normal variant runs no tests).
|
||||
#:tests? #f)))))
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -20,13 +22,15 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages agda)
|
||||
#:use-module (gnu packages haskell)
|
||||
#:use-module (gnu packages haskell-check)
|
||||
#:use-module (gnu packages haskell-web)
|
||||
#:use-module (gnu packages haskell-xyz)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages))
|
||||
|
||||
|
@ -154,3 +158,45 @@ such as Coq, Epigram and NuPRL.")
|
|||
(synopsis "Emacs mode for Agda")
|
||||
(description "This Emacs mode enables interactive development with
|
||||
Agda. It also aids the input of Unicode characters.")))
|
||||
|
||||
(define-public agda-ial
|
||||
(package
|
||||
(name "agda-ial")
|
||||
(version "1.5.0")
|
||||
(home-page "https://github.com/cedille/ial")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url home-page)
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0dlis6v6nzbscf713cmwlx8h9n2gxghci8y21qak3hp18gkxdp0g"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("agda" ,agda)))
|
||||
(arguments
|
||||
`(#:parallel-build? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'patch-dependencies
|
||||
(lambda _ (patch-shebang "find-deps.sh") #t))
|
||||
(delete 'check)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(include (string-append out "/include/agda/ial")))
|
||||
(for-each (lambda (file)
|
||||
(make-file-writable file)
|
||||
(install-file file include))
|
||||
(find-files "." "\\.agdai?(-lib)?$"))
|
||||
#t))))))
|
||||
(synopsis "The Iowa Agda Library")
|
||||
(description
|
||||
"The goal is to provide a concrete library focused on verification
|
||||
examples, as opposed to mathematics. The library has a good number
|
||||
of theorems for booleans, natural numbers, and lists. It also has
|
||||
trees, tries, vectors, and rudimentary IO. A number of good ideas
|
||||
come from Agda's standard library.")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -344,7 +344,7 @@ precision.")
|
|||
(define-public giac
|
||||
(package
|
||||
(name "giac")
|
||||
(version "1.5.0-63")
|
||||
(version "1.5.0-65")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; "~parisse/giac" is not used because the maintainer regularly
|
||||
|
@ -356,7 +356,7 @@ precision.")
|
|||
"source/giac_" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jp7awyp8j8w6fhn802z8ddbq1fxhkyk9xdf0mq0mm0chpkylwqk"))))
|
||||
"1g2fp9vgy0gqjmi6mlc3ldfn8ryq3h4mfd7rcq5hs6ry21hblv30"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
|
@ -987,7 +987,7 @@ features, and more.")
|
|||
(define-public xtensor
|
||||
(package
|
||||
(name "xtensor")
|
||||
(version "0.20.5")
|
||||
(version "0.20.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -995,7 +995,7 @@ features, and more.")
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0kkc4ar7p2d94jnclmrh46dwv7ldy9lx630vm9gci3pp4hnhbj9f"))
|
||||
"1rw04bdi7mzp362dhkxr9m4rafnvb47xjsi9p3fp4vfif8v0jij8"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
|
@ -1005,7 +1005,7 @@ features, and more.")
|
|||
`(#:configure-flags
|
||||
'("-DBUILD_TESTS=ON")
|
||||
#:test-target "xtest"))
|
||||
(home-page "http://quantstack.net/xtensor")
|
||||
(home-page "https://quantstack.net/xtensor")
|
||||
(synopsis "C++ tensors with broadcasting and lazy computing")
|
||||
(description "xtensor is a C++ library meant for numerical analysis with
|
||||
multi-dimensional array expressions.
|
||||
|
@ -1435,7 +1435,7 @@ of M4RI from F_2 to F_{2^e}.")
|
|||
(define-public eclib
|
||||
(package
|
||||
(name "eclib")
|
||||
(version "20190226")
|
||||
(version "20190909")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1444,7 +1444,7 @@ of M4RI from F_2 to F_{2^e}.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1910np1xzyjzszay24xn4b81qhpsvhp5aix9vdpknplni2mq8kwb"))))
|
||||
"1gw27lqc3f525n8qdcmr2nyn16y9g10z9f6dnmckyyxcdzvhq35n"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
|
|
|
@ -38,7 +38,9 @@
|
|||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages docker)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -374,7 +376,7 @@ various Android core host applications.")
|
|||
`(("android-libbase" ,android-libbase)
|
||||
("android-libcutils" ,android-libcutils)
|
||||
("android-liblog" ,android-liblog)
|
||||
("openssl" ,openssl)))
|
||||
("openssl" ,openssl-1.0)))
|
||||
(home-page "https://developer.android.com/studio/command-line/adb.html")
|
||||
(synopsis "Android Debug Bridge")
|
||||
(description
|
||||
|
@ -615,7 +617,8 @@ file system.")
|
|||
("android-libcutils" ,android-libcutils)))
|
||||
(native-inputs
|
||||
`(("android-bionic-uapi" ,android-bionic-uapi)
|
||||
("android-liblog" ,android-liblog)))
|
||||
("android-liblog" ,android-liblog)
|
||||
("gcc" ,gcc-5))) ; XXX: fails to build with GCC 7
|
||||
(home-page "https://developer.android.com/")
|
||||
(synopsis "Android utility library")
|
||||
(description "@code{android-libutils} provides utilities for Android NDK developers.")
|
||||
|
@ -934,3 +937,60 @@ these same tools to create your own additional or alternative repository for
|
|||
publishing, or to assist in creating, testing and submitting metadata to the
|
||||
main repository.")
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public enjarify
|
||||
(package
|
||||
(name "enjarify")
|
||||
(version "1.0.3")
|
||||
(home-page "https://github.com/Storyyeller/enjarify")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(patches
|
||||
(search-patches "enjarify-setup-py.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nam7h1g4f1h6jla4qcjjagnyvd24dv6d5445w04q8hx07nxdapk"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enjarify-wrapper-inherit-pythonpath
|
||||
;; enjarify sets PYTHONPATH from a shell script, overwriting
|
||||
;; PYTHONPATH set from guix. Comment out this line.
|
||||
(lambda _
|
||||
(substitute* "enjarify.sh"
|
||||
(("export PYTHONPATH") "# export PYTHONPATH"))
|
||||
#t))
|
||||
(add-before 'check 'fixup-expected-test-results
|
||||
;; Upstream adjusted this test in commit:
|
||||
;; 3ae884a6485af82d300515813f537685b08dd800
|
||||
(lambda _
|
||||
(substitute* "tests/test2/expected.txt"
|
||||
(("^20") "0"))
|
||||
#t))
|
||||
(add-before 'check 'drop-java-xss-argument
|
||||
;; Upstream removed this argument in order to support 32-bit
|
||||
;; architectures. commit: 4be0111d879aa95fdc0d9f24fe529f8c664d4093
|
||||
(lambda _
|
||||
(substitute* "enjarify/runtests.py"
|
||||
(("java -Xss515m") "java "))
|
||||
#t))
|
||||
(add-after 'install 'install-enjarify-wrapper
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out")))
|
||||
(mkdir-p (string-append out "/bin/"))
|
||||
(copy-file "enjarify.sh" (string-append out "/bin/enjarify"))
|
||||
#t))))))
|
||||
(native-inputs `(("openjdk" ,openjdk12)))
|
||||
(synopsis "Translate Dalvik bytecode to equivalent Java bytecode")
|
||||
(description "Android applications are Java programs that run on a
|
||||
customized virtual machine, which is part of the Android operating system, the
|
||||
Dalvik VM. Their bytecode differs from the bytecode of normal Java
|
||||
applications. Enjarify can translate the Dalvik bytecode back to equivalent
|
||||
Java bytecode, which simplifies the analysis of Android applications.")
|
||||
(license license:asl2.0)))
|
||||
|
|
|
@ -47,7 +47,8 @@
|
|||
(sha256
|
||||
(base32
|
||||
"1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))
|
||||
(patches (search-patches "aspell-default-dict-dir.patch"))))
|
||||
(patches (search-patches "aspell-default-dict-dir.patch"
|
||||
"aspell-gcc-compat.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -48,14 +48,14 @@
|
|||
(define-public nasm
|
||||
(package
|
||||
(name "nasm")
|
||||
(version "2.13.03")
|
||||
(version "2.14.02")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/"
|
||||
version "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wr58pb2wnyihcl6635hlx98fnscx5yirxm8m84x8nxwvjqcybl1"))))
|
||||
"1xg8dfr49py15vbwk1rzcjc3zpqydmr49ahlijm56wlgj8zdwjp2"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl) ;for doc and test target
|
||||
("texinfo" ,texinfo)))
|
||||
|
|
|
@ -81,15 +81,15 @@ in FITS files.")
|
|||
(define-public wcslib
|
||||
(package
|
||||
(name "wcslib")
|
||||
(version "6.2")
|
||||
(version "6.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib" version
|
||||
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "01fqckazhbfqqhyr0wd9vcks1m2afmsh83l981alxg2r54jgwkdv"))))
|
||||
(base32 "003h23m6d5wcs29v2vbnl63f3z35k5x70lpsqlz5c9bp1bvizh8k"))))
|
||||
(inputs
|
||||
`(("cfitsio" ,cfitsio)))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -120,7 +120,7 @@ header.")
|
|||
(define-public gnuastro
|
||||
(package
|
||||
(name "gnuastro")
|
||||
(version "0.9")
|
||||
(version "0.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -128,7 +128,7 @@ header.")
|
|||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig"))))
|
||||
"0gmhmh0yddb2aql4hd5ffrr0d4hrmh4pa3yln0n186hslqinp81b"))))
|
||||
(inputs
|
||||
`(("cfitsio" ,cfitsio)
|
||||
("gsl" ,gsl)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,28 +30,18 @@
|
|||
(define-public attr
|
||||
(package
|
||||
(name "attr")
|
||||
(version "2.4.47")
|
||||
(version "2.4.48")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/attr/attr-"
|
||||
version ".src.tar.gz"))
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nd8y0m6awc9ahv0ciiwf8gy54c8d3j51pw9xg7f7cn579jjyxr5"))))
|
||||
"1rr4adzwax4bzr2c00f06zcsljv5y6p9wymz1g89ww7cb2rp5bay"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'configure 'patch-makefile-SHELL
|
||||
(lambda _
|
||||
(patch-makefile-SHELL "include/buildmacros")
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(invoke "make"
|
||||
"install"
|
||||
"install-lib"
|
||||
"install-dev")))
|
||||
(replace 'check
|
||||
(lambda* (#:key target #:allow-other-keys)
|
||||
;; Use the right shell.
|
||||
|
@ -80,4 +71,4 @@
|
|||
(synopsis "Library and tools for manipulating extended attributes")
|
||||
(description
|
||||
"Portable library and tools for manipulating extended attributes.")
|
||||
(license (list gpl2+ lgpl2.1+))))
|
||||
(license lgpl2.1+)))
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -67,6 +68,7 @@
|
|||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
|
@ -76,6 +78,7 @@
|
|||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages linux)
|
||||
|
@ -143,7 +146,8 @@
|
|||
("qtbase" ,qtbase)
|
||||
("qttools" ,qttools)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("gcc" ,gcc-5)))
|
||||
(home-page "http://alsamodular.sourceforge.net/")
|
||||
(synopsis "Realtime modular synthesizer and effect processor")
|
||||
(description
|
||||
|
@ -714,7 +718,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(define-public csound
|
||||
(package
|
||||
(name "csound")
|
||||
(version "6.12.2")
|
||||
(version "6.13.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -723,7 +727,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
|
||||
"14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
|
@ -1024,7 +1028,7 @@ audio signals.")
|
|||
@enumerate
|
||||
@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
|
||||
@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
|
||||
@item Rec-VCO, a square / rectange oscillator
|
||||
@item Rec-VCO, a square / rectangle oscillator
|
||||
@end enumerate\n
|
||||
|
||||
All oscillators are low-pass filtered to provide waveforms similar to the
|
||||
|
@ -1105,16 +1109,16 @@ follower.")
|
|||
(define-public fluidsynth
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
(version "2.0.5")
|
||||
(version "2.0.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/FluidSynth/fluidsynth.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
|
||||
"0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
|
@ -1532,7 +1536,7 @@ synchronous execution of all clients, and low latency operation.")
|
|||
(define-public jack-2
|
||||
(package (inherit jack-1)
|
||||
(name "jack2")
|
||||
(version "1.9.12")
|
||||
(version "1.9.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jackaudio/jack2/releases/"
|
||||
|
@ -1541,40 +1545,38 @@ synchronous execution of all clients, and low latency operation.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0crf4y9a5j9miw8r5ji4l3w5w0y2frrf7xyfsfdgacnw6vwy5vyy"))))
|
||||
"1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f ; no check target
|
||||
`(#:tests? #f ; no check target
|
||||
#:configure-flags '("--dbus"
|
||||
"--alsa")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before
|
||||
'configure 'set-linkflags
|
||||
(lambda _
|
||||
;; Add $libdir to the RUNPATH of all the binaries.
|
||||
(substitute* "wscript"
|
||||
((".*CFLAGS.*-Wall.*" m)
|
||||
(string-append m
|
||||
" conf.env.append_unique('LINKFLAGS',"
|
||||
"'-Wl,-rpath=" %output "/lib')\n")))
|
||||
#t))
|
||||
(add-before 'configure 'set-linkflags
|
||||
(lambda _
|
||||
;; Add $libdir to the RUNPATH of all the binaries.
|
||||
(substitute* "wscript"
|
||||
((".*CFLAGS.*-Wall.*" m)
|
||||
(string-append m
|
||||
" conf.env.append_unique('LINKFLAGS',"
|
||||
"'-Wl,-rpath=" %output "/lib')\n")))
|
||||
#t))
|
||||
(add-after 'install 'wrap-python-scripts
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Make sure 'jack_control' runs with the correct PYTHONPATH.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(path (getenv "PYTHONPATH")))
|
||||
(wrap-program (string-append out "/bin/jack_control")
|
||||
`("PYTHONPATH" ":" prefix (,path))))
|
||||
#t)))))
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Make sure 'jack_control' runs with the correct PYTHONPATH.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(path (getenv "PYTHONPATH")))
|
||||
(wrap-program (string-append out "/bin/jack_control")
|
||||
`("PYTHONPATH" ":" prefix (,path))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("dbus" ,dbus)
|
||||
("expat" ,expat)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("opus" ,opus)
|
||||
("python2-dbus" ,python2-dbus)
|
||||
("python-dbus" ,python-dbus)
|
||||
("readline" ,readline)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -1595,15 +1597,7 @@ synchronous execution of all clients, and low latency operation.")
|
|||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
#:python ,python-2
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before
|
||||
'configure 'set-flags
|
||||
(lambda _
|
||||
;; Compile with C++11, required by gtkmm.
|
||||
(setenv "CXXFLAGS" "-std=c++11")
|
||||
#t)))))
|
||||
#:python ,python-2))
|
||||
(inputs
|
||||
`(("lv2" ,lv2)
|
||||
("lilv" ,lilv)
|
||||
|
@ -1684,7 +1678,12 @@ to be plugged into a wide range of audio synthesis and recording packages.")
|
|||
"12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
'(;; Glibc no longer includes Sun RPC support, so tell the build system
|
||||
;; to use libtirpc instead.
|
||||
#:make-flags (list (string-append "CFLAGS=-I"
|
||||
(assoc-ref %build-inputs "libtirpc")
|
||||
"/include/tirpc -ltirpc"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; lashd embeds an ancient version of sigsegv so we just skip it
|
||||
(add-after 'unpack 'skip-lashd
|
||||
|
@ -1697,6 +1696,7 @@ to be plugged into a wide range of audio synthesis and recording packages.")
|
|||
`(("bdb" ,bdb)
|
||||
("gtk" ,gtk+-2)
|
||||
("jack" ,jack-1)
|
||||
("libtirpc" ,libtirpc)
|
||||
("readline" ,readline)
|
||||
("python" ,python-2)))
|
||||
;; According to pkg-config, packages depending on lash also need to have
|
||||
|
@ -1949,22 +1949,7 @@ software.")
|
|||
#:configure-flags
|
||||
(list (string-append "--boost-includes="
|
||||
(assoc-ref %build-inputs "boost")
|
||||
"/include"))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before
|
||||
'configure 'set-flags
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; See e.g. https://github.com/lvtk/lvtk/issues/21
|
||||
(setenv "LDFLAGS"
|
||||
(string-append
|
||||
"-L" (assoc-ref inputs "boost") "/lib "
|
||||
"-lboost_system"))
|
||||
;; Needed for gtkmm
|
||||
(substitute* '("src/wscript_build"
|
||||
"examples/wscript_build")
|
||||
(("cxxflags.*= \\[" line)
|
||||
(string-append line "\"-std=c++11\", ")))
|
||||
#t)))))
|
||||
"/include"))))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("gtkmm" ,gtkmm-2)
|
||||
|
@ -2012,6 +1997,13 @@ lv2-c++-tools.")
|
|||
"/lib/libasound.so.2"
|
||||
"\")")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(;; FIXME: On i686-linux, GCC 7 hits an internal compiler error
|
||||
;; upon building utils/makehrtf.c:3281:
|
||||
;; "internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:908"
|
||||
;; https://ci.guix.gnu.org/log/r2fjx9m75m9rifg2yjbnn853wqy2547n-openal-1.19.1
|
||||
;; Remove this when the default compiler is GCC 9 or later.
|
||||
("gcc" ,gcc-9)))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("pulseaudio" ,pulseaudio)))
|
||||
|
@ -2184,16 +2176,18 @@ background file post-processing.")
|
|||
(define-public supercollider
|
||||
(package
|
||||
(name "supercollider")
|
||||
(version "3.10.2")
|
||||
(version "3.10.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/supercollider/supercollider"
|
||||
"/releases/download/Version-" version
|
||||
"/SuperCollider-" version "-Source-linux.tar.bz2"))
|
||||
(patches
|
||||
(search-patches "supercollider-boost-1.70-build-fix.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ynz1ydcpsd5h57h1n4a7avm6p1cif5a8rkmz4qpr46pr8z9p6iq"))))
|
||||
"0srm6wbazidkrd4ckjy4ypyhkdwcnx2i7k9msjyngalh0mrc9zz1"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
|
||||
|
@ -2205,12 +2199,6 @@ background file post-processing.")
|
|||
(ice-9 ftw))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-build-with-boost-1.68
|
||||
(lambda _
|
||||
(substitute* "server/supernova/utilities/time_tag.hpp"
|
||||
(("(time_duration offset = .+ microseconds\\().*" _ m)
|
||||
(string-append m "static_cast<long>(get_nanoseconds()/1000));\n")))
|
||||
#t))
|
||||
(add-after 'unpack 'rm-bundled-libs
|
||||
(lambda _
|
||||
;; The build system doesn't allow us to unbundle the following
|
||||
|
@ -3203,24 +3191,28 @@ with support for HD extensions.")
|
|||
(define-public bs1770gain
|
||||
(package
|
||||
(name "bs1770gain")
|
||||
(version "0.5.2")
|
||||
(version "0.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
|
||||
version "/bs1770gain-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk"))
|
||||
(base32 "0nnqixvw3x7i22nsr54n4bgm35z9nh3d9qj5s75cfd3ajjsjndyh"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; XXX
|
||||
(substitute* "bs1770gain/bs1770gain.c"
|
||||
(("\"N.*\"") "\"\""))
|
||||
(substitute* "configure"
|
||||
(("URL=.*$")
|
||||
"https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html\n"))))))
|
||||
(substitute* "libbg/bgx.c"
|
||||
(("#define BS.* ") "#define BS ")
|
||||
(("BS.*NO?.*N.*S.*E.*N.*SE?") "NO")
|
||||
(("\"( #|N).*\"") "\"\""))
|
||||
(substitute* (list "config.h"
|
||||
"configure.ac"
|
||||
"configure")
|
||||
(("https?://bs1770gain[^/]*/")
|
||||
"https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ffmpeg" ,ffmpeg)
|
||||
("sox" ,sox)))
|
||||
|
@ -3382,21 +3374,22 @@ on the ALSA software PCM plugin.")
|
|||
(define-public snd
|
||||
(package
|
||||
(name "snd")
|
||||
(version "19.5")
|
||||
(version "19.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
|
||||
"snd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sk6iyykwi2mm3f1g4r0iqbsrwk3zmyagp6jjqkh8njbq42cjr1y"))))
|
||||
"0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
#:out-of-source? #f ; for the 'install-doc' phase
|
||||
#:configure-flags
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(docdir (string-append out "/share/doc/snd")))
|
||||
(docdir (string-append out "/share/doc/"
|
||||
,name "-" ,version)))
|
||||
(list "--with-alsa" "--with-jack" "--with-gmp"
|
||||
(string-append "--with-doc-dir=" docdir)))
|
||||
#:phases
|
||||
|
@ -3409,7 +3402,7 @@ on the ALSA software PCM plugin.")
|
|||
(for-each
|
||||
(lambda (f)
|
||||
(install-file f doc))
|
||||
(find-files "." "\\.html$|COPYING"))
|
||||
(find-files "." "\\.html$"))
|
||||
(copy-recursively "pix" (string-append doc "/pix"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
|
@ -3700,7 +3693,7 @@ library.")
|
|||
(define-public faudio
|
||||
(package
|
||||
(name "faudio")
|
||||
(version "19.08")
|
||||
(version "19.09")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3709,7 +3702,7 @@ library.")
|
|||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32 "1v13kfhyr46241vb6a4dcb4gw5f149525sprwa9cj4rv6wlcqgm5"))))
|
||||
(base32 "0fagik55jmy3qmb27nhg0zxash1ahfkxphx8m8gs0pimqqrdrd9d"))))
|
||||
(arguments
|
||||
'(#:tests? #f ; No tests.
|
||||
#:configure-flags '("-DFFMPEG=ON")))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -18,16 +19,18 @@
|
|||
|
||||
(define-module (gnu packages authentication)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages security-token)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages))
|
||||
|
||||
(define-public oath-toolkit
|
||||
;; If gcc@7 breaks this package before its next release, try patching it:
|
||||
;; <https://gitlab.com/oath-toolkit/oath-toolkit/issues/2#note_52958748>.
|
||||
(package
|
||||
(name "oath-toolkit")
|
||||
(version "2.6.2")
|
||||
|
@ -36,7 +39,18 @@
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://download.savannah.nongnu.org/releases/"
|
||||
name "/" name "-" version ".tar.gz"))
|
||||
(patches (search-patches "oath-toolkit-glibc-compat.patch"))
|
||||
(patches
|
||||
(append (search-patches "oath-toolkit-glibc-compat.patch")
|
||||
(list (origin
|
||||
;; This huge commit updates gnulib for GCC 7 compatibility.
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://gitlab.com/oath-toolkit/oath-toolkit/commit/"
|
||||
"2fffce2a471f74a585939c84cce16ef3015e5d3d.diff"))
|
||||
(file-name "oath-toolkit-update-gnulib.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"088c9s4ay1b54bjqc4mwfs5l3f6357zj5vpw771zlq5g4addd4s0"))))))
|
||||
(sha256
|
||||
(base32 "182ah8vfbg0yhv6mh1b6ap944d0na6x7lpfkwkmzb6jl9gx4cd5h"))))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -77,3 +91,39 @@ Supported technologies include the event-based @dfn{HOTP} algorithm (RFC4226)
|
|||
and the time-based @dfn{TOTP} algorithm (RFC6238).")
|
||||
(license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/)
|
||||
license:gpl3+)))) ; the tools (everything else)
|
||||
|
||||
(define-public yubico-pam
|
||||
(let ((commit "b5bd00db81e0e0e0ecced65c684080bb56ddc35b")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "yubico-pam")
|
||||
(version (git-version "2.26" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Yubico/yubico-pam.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10dq8dqi3jldllj6p8r9hldx9sank9n82c44w8akxrs1vli6nj3m"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; The pam_test fails because ykclient fails to build a Curl handle.
|
||||
'(#:make-flags '("TESTS=util_test")))
|
||||
(inputs
|
||||
`(("linux-pam" ,linux-pam)
|
||||
("libyubikey" ,libyubikey)
|
||||
("ykclient" ,ykclient)
|
||||
("yubikey-personalization" ,yubikey-personalization)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("asciidoc" ,asciidoc)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://developers.yubico.com/yubico-pam")
|
||||
(synopsis "Yubico pluggable authentication module")
|
||||
(description "The Yubico PAM module provides an easy way to integrate the
|
||||
YubiKey into your existing user authentication infrastructure.")
|
||||
(license license:bsd-2))))
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
"alternate_error_pages": {
|
||||
"enabled": false
|
||||
},
|
||||
"hardware": {
|
||||
"audio_capture_enabled": false
|
||||
},
|
||||
"default_apps": "noinstall",
|
||||
"hide_web_store_icon": true,
|
||||
"homepage": "https://www.gnu.org/software/guix/"
|
||||
|
|
|
@ -1133,7 +1133,7 @@ CONFIG_NETFILTER_NETLINK_LOG=m
|
|||
CONFIG_NETFILTER_NETLINK_OSF=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_LOG_COMMON=m
|
||||
# CONFIG_NF_LOG_NETDEV is not set
|
||||
CONFIG_NF_LOG_NETDEV=m
|
||||
CONFIG_NETFILTER_CONNCOUNT=m
|
||||
CONFIG_NF_CONNTRACK_MARK=y
|
||||
CONFIG_NF_CONNTRACK_SECMARK=y
|
||||
|
@ -1176,8 +1176,8 @@ CONFIG_NF_NAT_REDIRECT=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1189,15 +1189,22 @@ CONFIG_NFT_MASQ=m
|
|||
CONFIG_NFT_REDIR=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
# CONFIG_NFT_OBJREF is not set
|
||||
CONFIG_NFT_OBJREF=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1361,8 +1368,12 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1370,6 +1381,9 @@ CONFIG_NF_LOG_IPV4=m
|
|||
CONFIG_NF_REJECT_IPV4=m
|
||||
CONFIG_NF_NAT_IPV4=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV4=y
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_REDIR_IPV4=m
|
||||
CONFIG_NF_NAT_SNMP_BASIC=m
|
||||
CONFIG_NF_NAT_PROTO_GRE=m
|
||||
CONFIG_NF_NAT_PPTP=m
|
||||
|
@ -1401,7 +1415,14 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1430,7 +1451,9 @@ CONFIG_IP6_NF_NAT=m
|
|||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP6_NF_TARGET_NPT=m
|
||||
CONFIG_NF_DEFRAG_IPV6=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1120,10 +1120,11 @@ CONFIG_NF_NAT_REDIRECT=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
CONFIG_NFT_COUNTER=m
|
||||
CONFIG_NFT_CONNLIMIT=m
|
||||
CONFIG_NFT_LOG=m
|
||||
|
@ -1136,12 +1137,20 @@ CONFIG_NFT_OBJREF=m
|
|||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
# CONFIG_NF_FLOW_TABLE is not set
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
||||
#
|
||||
|
@ -1303,14 +1312,22 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
CONFIG_NF_LOG_IPV4=m
|
||||
CONFIG_NF_REJECT_IPV4=m
|
||||
CONFIG_NF_NAT_IPV4=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV4=y
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_REDIR_IPV4=m
|
||||
CONFIG_NF_NAT_SNMP_BASIC=m
|
||||
CONFIG_NF_NAT_PROTO_GRE=m
|
||||
CONFIG_NF_NAT_PPTP=m
|
||||
|
@ -1342,7 +1359,15 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
CONFIG_NF_LOG_IPV6=m
|
||||
|
@ -1358,7 +1383,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m
|
|||
CONFIG_IP6_NF_MATCH_MH=m
|
||||
CONFIG_IP6_NF_MATCH_RPFILTER=m
|
||||
CONFIG_IP6_NF_MATCH_RT=m
|
||||
# CONFIG_IP6_NF_MATCH_SRH is not set
|
||||
CONFIG_IP6_NF_MATCH_SRH=m
|
||||
CONFIG_IP6_NF_TARGET_HL=m
|
||||
CONFIG_IP6_NF_FILTER=m
|
||||
CONFIG_IP6_NF_TARGET_REJECT=m
|
||||
|
@ -1370,7 +1395,9 @@ CONFIG_IP6_NF_NAT=m
|
|||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP6_NF_TARGET_NPT=m
|
||||
CONFIG_NF_DEFRAG_IPV6=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1209,8 +1209,8 @@ CONFIG_NF_NAT_REDIRECT=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1226,11 +1226,18 @@ CONFIG_NFT_OBJREF=m
|
|||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1394,8 +1401,12 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1403,6 +1414,9 @@ CONFIG_NF_LOG_IPV4=m
|
|||
CONFIG_NF_REJECT_IPV4=m
|
||||
CONFIG_NF_NAT_IPV4=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV4=y
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_REDIR_IPV4=m
|
||||
CONFIG_NF_NAT_SNMP_BASIC=m
|
||||
CONFIG_NF_NAT_PROTO_GRE=m
|
||||
CONFIG_NF_NAT_PPTP=m
|
||||
|
@ -1434,7 +1448,14 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1468,7 +1489,9 @@ CONFIG_NF_DEFRAG_IPV6=m
|
|||
# DECnet: Netfilter Configuration
|
||||
#
|
||||
CONFIG_DECNET_NF_GRABULATOR=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1219,8 +1219,8 @@ CONFIG_NF_NAT_REDIRECT=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1236,11 +1236,18 @@ CONFIG_NFT_OBJREF=m
|
|||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1404,8 +1411,12 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1413,6 +1424,9 @@ CONFIG_NF_LOG_IPV4=m
|
|||
CONFIG_NF_REJECT_IPV4=m
|
||||
CONFIG_NF_NAT_IPV4=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV4=y
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_REDIR_IPV4=m
|
||||
CONFIG_NF_NAT_SNMP_BASIC=m
|
||||
CONFIG_NF_NAT_PROTO_GRE=m
|
||||
CONFIG_NF_NAT_PPTP=m
|
||||
|
@ -1444,7 +1458,14 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1478,7 +1499,9 @@ CONFIG_NF_DEFRAG_IPV6=m
|
|||
# DECnet: Netfilter Configuration
|
||||
#
|
||||
CONFIG_DECNET_NF_GRABULATOR=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1117,7 +1117,7 @@ CONFIG_NETFILTER_NETLINK_LOG=m
|
|||
CONFIG_NETFILTER_NETLINK_OSF=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_LOG_COMMON=m
|
||||
# CONFIG_NF_LOG_NETDEV is not set
|
||||
CONFIG_NF_LOG_NETDEV=m
|
||||
CONFIG_NETFILTER_CONNCOUNT=m
|
||||
CONFIG_NF_CONNTRACK_MARK=y
|
||||
CONFIG_NF_CONNTRACK_SECMARK=y
|
||||
|
@ -1157,8 +1157,8 @@ CONFIG_NF_NAT_MASQUERADE=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1168,17 +1168,25 @@ CONFIG_NFT_LOG=m
|
|||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_REDIR=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
# CONFIG_NFT_OBJREF is not set
|
||||
CONFIG_NFT_OBJREF=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_XFRM=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1345,8 +1353,11 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1383,7 +1394,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1412,7 +1426,9 @@ CONFIG_IP6_NF_TARGET_NPT=m
|
|||
# end of IPv6: Netfilter Configuration
|
||||
|
||||
CONFIG_NF_DEFRAG_IPV6=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1118,28 +1118,38 @@ CONFIG_NF_NAT_MASQUERADE=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
# CONFIG_NFT_FLOW_OFFLOAD is not set
|
||||
CONFIG_NFT_COUNTER=m
|
||||
CONFIG_NFT_CONNLIMIT=m
|
||||
CONFIG_NFT_LOG=m
|
||||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_REDIR=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
CONFIG_NFT_OBJREF=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_XFRM=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
# CONFIG_NF_FLOW_TABLE is not set
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
||||
#
|
||||
|
@ -1304,8 +1314,12 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
CONFIG_NF_LOG_IPV4=m
|
||||
|
@ -1341,7 +1355,11 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
CONFIG_NF_LOG_IPV6=m
|
||||
|
@ -1355,7 +1373,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m
|
|||
CONFIG_IP6_NF_MATCH_MH=m
|
||||
CONFIG_IP6_NF_MATCH_RPFILTER=m
|
||||
CONFIG_IP6_NF_MATCH_RT=m
|
||||
# CONFIG_IP6_NF_MATCH_SRH is not set
|
||||
CONFIG_IP6_NF_MATCH_SRH=m
|
||||
CONFIG_IP6_NF_TARGET_HL=m
|
||||
CONFIG_IP6_NF_FILTER=m
|
||||
CONFIG_IP6_NF_TARGET_REJECT=m
|
||||
|
@ -1369,7 +1387,9 @@ CONFIG_IP6_NF_TARGET_NPT=m
|
|||
# end of IPv6: Netfilter Configuration
|
||||
|
||||
CONFIG_NF_DEFRAG_IPV6=m
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
@ -8023,14 +8043,14 @@ CONFIG_VALIDATE_FS_PARSER=y
|
|||
CONFIG_FS_IOMAP=y
|
||||
# CONFIG_EXT2_FS is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
CONFIG_EXT4_FS=m
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT2=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=m
|
||||
CONFIG_JBD2=y
|
||||
# CONFIG_JBD2_DEBUG is not set
|
||||
CONFIG_FS_MBCACHE=m
|
||||
CONFIG_FS_MBCACHE=y
|
||||
CONFIG_REISERFS_FS=m
|
||||
# CONFIG_REISERFS_CHECK is not set
|
||||
# CONFIG_REISERFS_PROC_INFO is not set
|
||||
|
@ -8687,7 +8707,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
|||
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
|
||||
# CONFIG_INDIRECT_PIO is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC16=m
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_CRC_ITU_T=m
|
||||
CONFIG_CRC32=y
|
||||
|
|
|
@ -1147,8 +1147,8 @@ CONFIG_NF_NAT_MASQUERADE=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1158,17 +1158,25 @@ CONFIG_NFT_LOG=m
|
|||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_REDIR=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
CONFIG_NFT_OBJREF=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_XFRM=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1335,8 +1343,11 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1373,7 +1384,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1409,7 +1423,9 @@ CONFIG_NF_DEFRAG_IPV6=m
|
|||
CONFIG_DECNET_NF_GRABULATOR=m
|
||||
# end of DECnet: Netfilter Configuration
|
||||
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
|
@ -1168,8 +1168,8 @@ CONFIG_NF_NAT_MASQUERADE=y
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
# CONFIG_NF_TABLES_INET is not set
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NUMGEN=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_FLOW_OFFLOAD=m
|
||||
|
@ -1179,17 +1179,25 @@ CONFIG_NFT_LOG=m
|
|||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_REDIR=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
CONFIG_NFT_OBJREF=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_REJECT_INET=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_FIB=m
|
||||
CONFIG_NFT_FIB_INET=m
|
||||
CONFIG_NFT_XFRM=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_OSF=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_FIB_NETDEV=m
|
||||
CONFIG_NF_FLOW_TABLE_INET=m
|
||||
CONFIG_NF_FLOW_TABLE=m
|
||||
CONFIG_NETFILTER_XTABLES=m
|
||||
|
@ -1356,8 +1364,11 @@ CONFIG_IP_VS_PE_SIP=m
|
|||
CONFIG_NF_DEFRAG_IPV4=m
|
||||
CONFIG_NF_SOCKET_IPV4=m
|
||||
CONFIG_NF_TPROXY_IPV4=m
|
||||
# CONFIG_NF_TABLES_IPV4 is not set
|
||||
# CONFIG_NF_TABLES_ARP is not set
|
||||
CONFIG_NF_TABLES_IPV4=y
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_DUP_IPV4=m
|
||||
CONFIG_NFT_FIB_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=y
|
||||
CONFIG_NF_FLOW_TABLE_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
CONFIG_NF_LOG_ARP=m
|
||||
|
@ -1394,7 +1405,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
|
|||
#
|
||||
CONFIG_NF_SOCKET_IPV6=m
|
||||
CONFIG_NF_TPROXY_IPV6=m
|
||||
# CONFIG_NF_TABLES_IPV6 is not set
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
CONFIG_NF_FLOW_TABLE_IPV6=m
|
||||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
|
@ -1430,7 +1444,9 @@ CONFIG_NF_DEFRAG_IPV6=m
|
|||
CONFIG_DECNET_NF_GRABULATOR=m
|
||||
# end of DECnet: Netfilter Configuration
|
||||
|
||||
# CONFIG_NF_TABLES_BRIDGE is not set
|
||||
CONFIG_NF_TABLES_BRIDGE=y
|
||||
CONFIG_NFT_BRIDGE_REJECT=m
|
||||
CONFIG_NF_LOG_BRIDGE=m
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -67,7 +67,10 @@
|
|||
(files '("avr/include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files '("avr/lib"))))))))
|
||||
(files '("avr/lib")))))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-5)
|
||||
,@(package-native-inputs xgcc))))))
|
||||
|
||||
(define-public avr-gcc-5
|
||||
(package
|
||||
|
@ -94,11 +97,12 @@
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'unpack 'fix-cpath
|
||||
(lambda _
|
||||
;; C_INCLUDE_PATH poses issues for cross-building, leading to
|
||||
;; failures when building avr-libc on 64-bit systems. Simply
|
||||
;; unsetting it allows the build to succeed because it doesn't
|
||||
;; try to use any of the native system's headers.
|
||||
;; C_INCLUDE_PATH and CPATH pose issues for cross-building,
|
||||
;; leading to failures when building avr-libc on 64-bit systems.
|
||||
;; Simply unsetting them allows the build to succeed because it
|
||||
;; doesn't try to use any of the native system's headers.
|
||||
(unsetenv "C_INCLUDE_PATH")
|
||||
(unsetenv "CPATH")
|
||||
#t)))))
|
||||
(native-inputs `(("avr-binutils" ,avr-binutils)
|
||||
("avr-gcc" ,avr-gcc)))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -20,6 +21,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system ant)
|
||||
|
@ -64,20 +66,21 @@
|
|||
(package
|
||||
(name "axoloti-runtime")
|
||||
(version "1.0.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/axoloti/axoloti/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dynk6h0nixp4zihpirpqa4vi8fq1lhm443jsmvhk135ykhf364p"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove pre-built Java binaries.
|
||||
(delete-file-recursively "lib/")
|
||||
#t))))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/axoloti/axoloti.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "05hyr9qx9dplp0gkx4v34i17972b3f512qndnarzy4wzfpnp0s3b"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove pre-built Java binaries.
|
||||
(delete-file-recursively "lib/")
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
|
@ -231,6 +234,10 @@ runtime.")
|
|||
,@%gnu-build-system-modules)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'make-git-checkout-writable
|
||||
(lambda _
|
||||
(for-each make-file-writable (find-files "."))
|
||||
#t))
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -198,28 +199,30 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
|||
(define-public libarchive
|
||||
(package
|
||||
(name "libarchive")
|
||||
(replacement libarchive-3.3.3)
|
||||
(version "3.3.2")
|
||||
(version "3.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "libarchive-CVE-2017-14166.patch"
|
||||
"libarchive-CVE-2017-14502.patch"))
|
||||
(uri (list (string-append "https://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.gz")
|
||||
(string-append "https://github.com/libarchive/libarchive"
|
||||
"/releases/download/v" version "/libarchive-"
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))
|
||||
"0pl25mmz1b1cnwf35kxmygyy9g7z7hslxbx329a9yx8csh7dahw6"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)
|
||||
("nettle" ,nettle)
|
||||
("lzo" ,lzo)
|
||||
("bzip2" ,bzip2)
|
||||
`(("bzip2" ,bzip2)
|
||||
("libxml2" ,libxml2)
|
||||
("xz" ,xz)))
|
||||
("lzo" ,lzo)
|
||||
("nettle" ,nettle)
|
||||
("xz" ,xz)
|
||||
("zlib" ,zlib)
|
||||
("zstd" ,zstd "lib")))
|
||||
(arguments
|
||||
`(#:phases
|
||||
`(#:configure-flags '("--disable-static")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'patch-pwd
|
||||
(lambda _
|
||||
|
@ -232,6 +235,13 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
|||
;; test_write_disk_lookup tests expect user 'root' to exist, but
|
||||
;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
|
||||
;;
|
||||
;; XXX: Adjust test that fails with zstd 1.4.1 because the default
|
||||
;; options compresses two bytes better than this test expects.
|
||||
;; https://github.com/libarchive/libarchive/issues/1226
|
||||
(substitute* "libarchive/test/test_write_filter_zstd.c"
|
||||
(("compression-level\", \"6\"")
|
||||
"compression-level\", \"7\""))
|
||||
|
||||
;; The tests allow one to disable tests matching a globbing pattern.
|
||||
(invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
|
||||
;; XXX: This glob disables too much.
|
||||
|
@ -246,8 +256,11 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
|||
(libxml2 (assoc-ref inputs "libxml2"))
|
||||
(xz (assoc-ref inputs "xz"))
|
||||
(zlib (assoc-ref inputs "zlib"))
|
||||
(zstd (assoc-ref inputs "zstd"))
|
||||
(bzip2 (assoc-ref inputs "bzip2")))
|
||||
(substitute* (string-append lib "/pkgconfig/libarchive.pc")
|
||||
;; Embed absolute references to these inputs to avoid propagation.
|
||||
(substitute* (list (string-append lib "/pkgconfig/libarchive.pc")
|
||||
(string-append lib "/libarchive.la"))
|
||||
(("-lnettle")
|
||||
(string-append "-L" nettle "/lib -lnettle"))
|
||||
(("-lxml2")
|
||||
|
@ -256,13 +269,11 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
|||
(string-append "-L" xz "/lib -llzma"))
|
||||
(("-lz")
|
||||
(string-append "-L" zlib "/lib -lz"))
|
||||
(("-lzstd")
|
||||
(string-append "-L" zstd "/lib -lzstd"))
|
||||
(("-lbz2")
|
||||
(string-append "-L" bzip2 "/lib -lbz2")))
|
||||
#t))))
|
||||
|
||||
;; libarchive/test/test_write_format_gnutar_filenames.c needs to be
|
||||
;; compiled with C99 or C11 or a gnu variant.
|
||||
#:configure-flags '("CFLAGS=-O2 -g -std=c99")))
|
||||
#t))))))
|
||||
(home-page "https://libarchive.org/")
|
||||
(synopsis "Multi-format archive and compression library")
|
||||
(description
|
||||
|
@ -275,22 +286,6 @@ archive. In particular, note that there is currently no built-in support for
|
|||
random access nor for in-place modification.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public libarchive-3.3.3
|
||||
(package
|
||||
(inherit libarchive)
|
||||
(version "3.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "libarchive-CVE-2018-1000877.patch"
|
||||
"libarchive-CVE-2018-1000878.patch"
|
||||
"libarchive-CVE-2018-1000880.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bhfncid058p7n1n8v29l6wxm3mhdqfassscihbsxfwz3iwb2zms"))))))
|
||||
|
||||
(define-public rdup
|
||||
(package
|
||||
(name "rdup")
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
|
@ -91,14 +92,14 @@ command-line arguments, multiple languages, and so on.")
|
|||
(define-public grep
|
||||
(package
|
||||
(name "grep")
|
||||
(version "3.1")
|
||||
(version "3.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grep/grep-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zm0ywmyz9g8vn1plw14mn8kj74yipx5qsljndbyfgmvndx5qqnv"))
|
||||
"055mqp6vrd0brkygmygb2673qwz409a7kyp1mzbfy6cn94f58q5r"))
|
||||
(patches (search-patches "grep-timing-sensitive-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl))) ;some of the tests require it
|
||||
|
@ -106,15 +107,6 @@ command-line arguments, multiple languages, and so on.")
|
|||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'disable-failing-tests
|
||||
(lambda _
|
||||
;; These tests are expected to fail due to a glibc bug which has
|
||||
;; been fixed in 2.28, so they are unexpectedly passing. They
|
||||
;; should be fixed for grep versions > 3.1.
|
||||
(substitute* "tests/Makefile.in"
|
||||
(("^[[:blank:]]+backref-alt[[:blank:]]+\\\\") "\\")
|
||||
(("^[[:blank:]]+triple-backref[[:blank:]]+\\\\") "\\"))
|
||||
#t))
|
||||
(add-after 'install 'fix-egrep-and-fgrep
|
||||
;; Patch 'egrep' and 'fgrep' to execute 'grep' via its
|
||||
;; absolute file name instead of searching for it in $PATH.
|
||||
|
@ -141,28 +133,16 @@ including, for example, recursive directory searching.")
|
|||
(define-public sed
|
||||
(package
|
||||
(name "sed")
|
||||
(version "4.5")
|
||||
(version "4.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/sed/sed-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h3b2jfj57wmz680vkbyavlsrkak556qhvs7m7fdlawwhg477bbs"))))
|
||||
"0smxcx66vx29djzb542nxcynl7qnzxqa5032ibazi7x2s267d198"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Stream editor")
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'dont-rebuild-sed.1
|
||||
(lambda _
|
||||
;; Make sure we do not attempt to rebuild 'doc/sed.1', which does
|
||||
;; not work when cross-compiling because we cannot run 'sed'.
|
||||
;; This is fixed upstream as commit a0a25e3.
|
||||
(substitute* "Makefile.in"
|
||||
(("^doc/sed\\.1:.*")
|
||||
"doc/sed.1:\n"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("perl" ,perl))) ;for tests
|
||||
(description
|
||||
|
@ -177,14 +157,14 @@ implementation offers several extensions over the standard utility.")
|
|||
(define-public tar
|
||||
(package
|
||||
(name "tar")
|
||||
(version "1.30")
|
||||
(version "1.32")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/tar/tar-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi"))
|
||||
"1n7xy657ii0sa42zx6944v2m4v9qrh6sqgmw17l3nch3y43sxlyh"))
|
||||
(patches (search-patches "tar-skip-unreliable-tests.patch"
|
||||
"tar-remove-wholesparse-check.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -198,27 +178,7 @@ implementation offers several extensions over the standard utility.")
|
|||
(substitute* "src/system.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))
|
||||
#t))))
|
||||
|
||||
;; Work around a cross-compilation bug whereby libgnu.a would provide
|
||||
;; '__mktime_internal', which conflicts with the one in libc.a.
|
||||
,@(if (%current-target-system)
|
||||
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
|
||||
'())
|
||||
|
||||
;; Test #92 "link mismatch" expects "a/z: Not linked to a/y" but gets
|
||||
;; "a/y: Not linked to a/z" and fails, presumably due to differences in
|
||||
;; the order in which 'diff' traverses directories. That leads to a
|
||||
;; test failure even though conceptually the test passes. Skip it.
|
||||
;; Test 117 and 118 are prone to race conditions too, particularly
|
||||
;; when cross-compiling, so we skip those as well. All issues have
|
||||
;; been fixed upstream in these commits:
|
||||
;; <https://git.savannah.gnu.org/cgit/tar.git/commit/?id=847a36f>
|
||||
;; <https://git.savannah.gnu.org/cgit/tar.git/commit/?id=64b43fd>
|
||||
#:make-flags (list (string-append
|
||||
"TESTSUITEFLAGS= -k '!link mismatch,"
|
||||
"!directory removed before reading,"
|
||||
"!explicitly named directory removed before reading'"))))
|
||||
#t))))))
|
||||
|
||||
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
|
||||
;; to refer to the target Bash.
|
||||
|
@ -270,16 +230,16 @@ differences.")
|
|||
(define-public diffutils
|
||||
(package
|
||||
(name "diffutils")
|
||||
(version "3.6")
|
||||
(version "3.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/diffutils/diffutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mivg0fy3a6fcn535ln8nkgfj6vxh5hsxxs5h6692wxmsjyyh8fn"))
|
||||
(patches (search-patches "diffutils-getopt.patch"))))
|
||||
"09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
(synopsis "Comparing and merging files")
|
||||
(description
|
||||
"GNU Diffutils is a package containing tools for finding the
|
||||
|
@ -341,14 +301,14 @@ used to apply commands with arbitrarily long arguments.")
|
|||
(define-public coreutils
|
||||
(package
|
||||
(name "coreutils")
|
||||
(version "8.30")
|
||||
(version "8.31")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/coreutils/coreutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mxhw43d4wpqmvg0l4znk1vm10fy92biyh90lzdnqjcic2lb6cg8"))))
|
||||
"1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("acl" ,acl) ; TODO: add SELinux
|
||||
("gmp" ,gmp) ;bignums in 'expr', yay!
|
||||
|
@ -390,13 +350,7 @@ used to apply commands with arbitrarily long arguments.")
|
|||
;; environments with long prefixes (/tmp/guix-build-...).
|
||||
(substitute* "Makefile"
|
||||
(("^.*tests/misc/env-S.pl.*$") ""))
|
||||
#t)))
|
||||
|
||||
;; Work around a cross-compilation bug whereby libcoreutils.a would
|
||||
;; provide '__mktime_internal', which conflicts with the one in libc.a.
|
||||
,@(if (%current-target-system)
|
||||
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
|
||||
'())))
|
||||
#t)))))
|
||||
(synopsis "Core GNU utilities (file, text, shell)")
|
||||
(description
|
||||
"GNU Coreutils includes all of the basic command-line tools that are
|
||||
|
@ -460,14 +414,14 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
|||
(define-public binutils
|
||||
(package
|
||||
(name "binutils")
|
||||
(version "2.31.1")
|
||||
(version "2.32")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/binutils/binutils-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l34hn1zkmhr1wcrgf0d4z7r3najxnw3cx2y2fk7v55zjlk3ik7z"))
|
||||
"0b8767nyal1bc4cyzg5h9iis8kpkln1i3wkamig75cifj1fb2f6y"))
|
||||
(patches (search-patches "binutils-loongson-workaround.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
|
@ -613,15 +567,13 @@ the store.")
|
|||
;; version 2.28, GNU/Hurd used a different glibc branch.
|
||||
(package
|
||||
(name "glibc")
|
||||
;; Note: Always use a dot after the minor version since various places rely
|
||||
;; on "version-major+minor" to determine where locales are found.
|
||||
(version "2.28")
|
||||
(version "2.29")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10iha5ynvdj5m62vgpgqbq4cwvc2yhyl2w9yyyjgfxmdmx8h145i"))
|
||||
"0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
|
||||
(snippet
|
||||
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
|
||||
;; required on LFS distros to avoid loading the distro's libc.so
|
||||
|
@ -633,11 +585,14 @@ the store.")
|
|||
#t))
|
||||
(modules '((guix build utils)))
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-2.28-git-fixes.patch"
|
||||
"glibc-CVE-2019-7309.patch"
|
||||
"glibc-CVE-2019-9169.patch"
|
||||
"glibc-2.29-git-updates.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"))))
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-supported-locales.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
||||
|
@ -712,18 +667,6 @@ the store.")
|
|||
|
||||
#:tests? #f ; XXX
|
||||
#:phases (modify-phases %standard-phases
|
||||
,@(if (hurd-target?)
|
||||
`((add-after 'unpack 'apply-hurd-patch
|
||||
(lambda* (#:key inputs native-inputs
|
||||
#:allow-other-keys)
|
||||
;; TODO: Move this to 'patches' field.
|
||||
(let ((patch (or (assoc-ref native-inputs
|
||||
"hurd-magic-pid-patch")
|
||||
(assoc-ref inputs
|
||||
"hurd-magic-pid-patch"))))
|
||||
(invoke "patch" "-p1" "--force" "--input"
|
||||
patch)))))
|
||||
'())
|
||||
(add-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs native-inputs outputs
|
||||
|
@ -846,12 +789,11 @@ the store.")
|
|||
("perl" ,perl)
|
||||
("bison" ,bison)
|
||||
("gettext" ,gettext-minimal)
|
||||
("python" ,python-minimal)
|
||||
|
||||
,@(if (hurd-target?)
|
||||
`(("mig" ,mig)
|
||||
("perl" ,perl)
|
||||
("hurd-magic-pid-patch"
|
||||
,(search-patch "glibc-hurd-magic-pid.patch")))
|
||||
("perl" ,perl))
|
||||
'())))
|
||||
|
||||
(native-search-paths
|
||||
|
@ -877,6 +819,25 @@ with the Linux kernel.")
|
|||
;; Below are old libc versions, which we use mostly to build locale data in
|
||||
;; the old format (which the new libc cannot cope with.)
|
||||
|
||||
(define-public glibc-2.28
|
||||
(package
|
||||
(inherit glibc)
|
||||
(version "2.28")
|
||||
(source (origin
|
||||
(inherit (package-source glibc))
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10iha5ynvdj5m62vgpgqbq4cwvc2yhyl2w9yyyjgfxmdmx8h145i"))
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-2.28-git-fixes.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-hurd-magic-pid.patch"
|
||||
"glibc-2.28-supported-locales.patch"))))))
|
||||
|
||||
(define-public glibc-2.27
|
||||
(package
|
||||
(inherit glibc)
|
||||
|
@ -893,6 +854,7 @@ with the Linux kernel.")
|
|||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-2.27-supported-locales.patch"
|
||||
"glibc-CVE-2018-11236.patch"
|
||||
"glibc-CVE-2018-11237.patch"))))
|
||||
(properties `((lint-hidden-cve . ("CVE-2017-18269")))))) ; glibc-2.27-git-fixes
|
||||
|
@ -1037,7 +999,14 @@ with the Linux kernel.")
|
|||
(inherit glibc)
|
||||
(name "glibc-locales")
|
||||
(source (origin (inherit (package-source glibc))
|
||||
(patches (cons (search-patch "glibc-locales.patch")
|
||||
;; The patch for glibc 2.28 and earlier replaces the same
|
||||
;; content, but the context in the patch is different
|
||||
;; enough to fail to merge.
|
||||
(patches (cons (search-patch
|
||||
(if (version>=? (package-version glibc)
|
||||
"2.29")
|
||||
"glibc-locales.patch"
|
||||
"glibc-locales-2.28.patch"))
|
||||
(origin-patches (package-source glibc))))))
|
||||
(synopsis "All the locales supported by the GNU C Library")
|
||||
(description
|
||||
|
@ -1143,8 +1112,8 @@ to the @code{share/locale} sub-directory of this package.")
|
|||
;; tests---e.g., in Guile's i18n tests.
|
||||
'("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR"))
|
||||
#t))))
|
||||
(inputs `(("glibc" ,glibc)
|
||||
("gzip" ,gzip)))
|
||||
(native-inputs `(("glibc" ,glibc)
|
||||
("gzip" ,gzip)))
|
||||
(synopsis "Small sample of UTF-8 locales")
|
||||
(description
|
||||
"This package provides a small sample of UTF-8 locales mostly useful in
|
||||
|
@ -1157,12 +1126,19 @@ test environments.")
|
|||
(define-public glibc-utf8-locales
|
||||
(make-glibc-utf8-locales glibc))
|
||||
|
||||
(define-public glibc-locales-2.27
|
||||
(package (inherit (make-glibc-locales glibc-2.27))
|
||||
(name "glibc-locales-2.27")))
|
||||
;; Packages provided to ease use of binaries linked against the previous libc.
|
||||
(define-public glibc-locales-2.28
|
||||
(package (inherit (make-glibc-locales glibc-2.28))
|
||||
(name "glibc-locales-2.28")))
|
||||
(define-public glibc-utf8-locales-2.28
|
||||
(package (inherit (make-glibc-utf8-locales glibc-2.28))
|
||||
(name "glibc-utf8-locales-2.28")))
|
||||
|
||||
;; These should no longer be needed.
|
||||
(define-public glibc-utf8-locales-2.27
|
||||
(package (inherit (make-glibc-utf8-locales glibc-2.27))
|
||||
(name "glibc-utf8-locales-2.27")))
|
||||
(deprecated-package "glibc-utf8-locales-2.27" glibc-utf8-locales-2.28))
|
||||
(define-public glibc-locales-2.27
|
||||
(deprecated-package "glibc-locales-2.27" glibc-locales-2.28))
|
||||
|
||||
(define-public which
|
||||
(package
|
||||
|
@ -1291,25 +1267,7 @@ and daylight-saving rules.")
|
|||
(define-public tzdata-for-tests
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit tzdata)
|
||||
(version "2018g")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://data.iana.org/time-zones/releases/tzdata"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05kayi3w9pvhj6ljx1hvwd0r8mxfzn436fjmwhx53xkj919xxpq2"))))
|
||||
(inputs
|
||||
`(("tzcode" ,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://data.iana.org/time-zones/releases/tzcode"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09y44fzcdq3c06saa8iqqa0a59cyw6ni3p31ps0j1w3hcpxz8lxa")))))))))
|
||||
(inherit tzdata))))
|
||||
|
||||
(define-public libiconv
|
||||
(package
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
|
@ -45,7 +45,7 @@
|
|||
|
||||
(define (patch-url seqno)
|
||||
"Return the URL of Bash patch number SEQNO."
|
||||
(format #f "mirror://gnu/bash/bash-4.4-patches/bash44-~3,'0d" seqno))
|
||||
(format #f "mirror://gnu/bash/bash-5.0-patches/bash50-~3,'0d" seqno))
|
||||
|
||||
(define (bash-patch seqno sha256)
|
||||
"Return the origin of Bash patch SEQNO, with expected hash SHA256"
|
||||
|
@ -58,33 +58,17 @@
|
|||
(list (bash-patch seqno (base32 hash))
|
||||
...))
|
||||
|
||||
(define %patch-series-4.4
|
||||
;; This is the current patches series for 4.4, generated using
|
||||
(define %patch-series-5.0
|
||||
;; This is the current patches series for 5.0, generated using
|
||||
;; 'download-patches' below.
|
||||
(patch-series
|
||||
(1 "03vzy7qwjdd5qvl3ydg99naazas2qmyd0yhnrflgjbbm64axja1y")
|
||||
(2 "0lrwq6vyqism3yqv9s7kzaf3dsl4q5w9r5svcqz279qp7qca083h")
|
||||
(3 "1chqww2rj6g42b8s60q5zlzy0jzp684jkpsbrbfy1vzxja8mmpsi")
|
||||
(4 "1cy8abf96hkrjhw921ndr0shlcnc52bg45rn6xri4v5clhq0l25d")
|
||||
(5 "0a8515kyk4zsgmvlqvlganjfr7pq0j6kzpr4d6xx02kpbdr4n7i2")
|
||||
(6 "1f24wgqngmj2mrj9yibwvc2zvlmn5xi53mnw777g3l40c4m2x3ka")
|
||||
(7 "1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y") ;CVE-2017-5932
|
||||
(8 "1firw915mjm03hbbw9a70ch3cpgrgnvqjpllgdnn6csr8q04f546")
|
||||
(9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb")
|
||||
(10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4")
|
||||
(11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx")
|
||||
(12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps")
|
||||
(13 "1djkx0w9v62q78gz3jsvamj1jq53i6hbfrfhhsw86ihwpjnfy98v")
|
||||
(14 "0z5ikcq9zyxw79d0z36r5p0mspnb5piavbv03jmlan1wnknmrxx7")
|
||||
(15 "09n307fi1j257abhm295k6ksmnzw47ka2zhnr0i5lbdnpvn04xnk")
|
||||
(16 "1cgi1y6mifm8hsgv4avj5ih76535js3qba1sqwbfvp7si76927sh")
|
||||
(17 "0w6jpj2giakji1ir83rpkx1y7n7xqppah3j748m6dm38hywr0gvp")
|
||||
(18 "1k58h4wxbsg7r4rwhrvzx5hfbapba2nxjysbhh6qp6ki5ys99i2v")
|
||||
(19 "07n1i5610lbs672x1s8g82qn3qfj06s0ip3z80sri0g8vxp0s5r7")
|
||||
(20 "0b2jk5n1af1vh590qfc52hv65mafb4vl1xv26s8j5a3byb5y4h0q")
|
||||
(21 "1hblcd2xmqqlp0idnavw66570n7m0yv5rbbr873c2gkn982mk3xx")
|
||||
(22 "0yfbjzr79vzjs2hyi5m8iy2b38fq7vikdfa4zqdvjsp36q4iycs5")
|
||||
(23 "1dlism6qdx60nvzj0v7ndr7lfahl4a8zmzckp13hqgdx7xpj7v2g")))
|
||||
(1 "12bjfdy6bg8nhyw27bdgxn7h4paylx8d927skfmi9pxd1wgrxzpj")
|
||||
(2 "01w7yrzmz10mw06ys0546vhl7isv2v402ziyvfd7k67588spvs47")
|
||||
(3 "0ny81ridp5n0j69hb8ixrc7dmxybby54jbsz5hikly8kgg1wvssf")
|
||||
(4 "021gqqvgydixkrmqss64b6srfdlkvnx88lyfzpxfrn5d6bc7li0l")
|
||||
(5 "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav")
|
||||
(6 "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn")
|
||||
(7 "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p")))
|
||||
|
||||
(define (download-patches store count)
|
||||
"Download COUNT Bash patches into store. Return a list of
|
||||
|
@ -120,7 +104,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
|||
" -Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "ncurses")
|
||||
"/lib")))
|
||||
(version "4.4"))
|
||||
(version "5.0"))
|
||||
(package
|
||||
(name "bash")
|
||||
(source (origin
|
||||
|
@ -129,11 +113,10 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
|||
"mirror://gnu/bash/bash-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jyz6snd63xjn6skk7za6psgidsd53k05cr3lksqybi0q6936syq"))
|
||||
"0kgvfwqdcd90waczf4gx39xnrxzijhjrzyzv7s8v4w31qqm0za5l"))
|
||||
(patch-flags '("-p0"))
|
||||
(patches %patch-series-4.4)))
|
||||
(version (string-append version "."
|
||||
(number->string (length %patch-series-4.4))))
|
||||
(patches %patch-series-5.0)))
|
||||
(version (string-append version "." (number->string (length %patch-series-5.0))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
(outputs '("out"
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,14 +31,14 @@
|
|||
(define-public libgc
|
||||
(package
|
||||
(name "libgc")
|
||||
(version "7.6.6")
|
||||
(version "7.6.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ivmai/bdwgc/releases"
|
||||
"/download/v" version "/gc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1p1r015a7jbpvkkbgzv1y8nxrbbp6dg0mq3ksi6ji0qdz3wfss79"))))
|
||||
"10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -53,7 +54,19 @@
|
|||
,@(if (hurd-triplet? (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("--disable-gcj-support")
|
||||
'()))))
|
||||
'()))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'adjust-pc-file
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libatomic-ops (assoc-ref inputs "libatomic-ops")))
|
||||
;; GC 7.6.10 and later includes -latomic_ops in the
|
||||
;; pkg-config file. To avoid propagation, insert an
|
||||
;; absolute reference so dependent programs can find it.
|
||||
(substitute* "bdw-gc.pc.in"
|
||||
(("@ATOMIC_OPS_LIBS@" match)
|
||||
(string-append "-L" libatomic-ops "/lib "
|
||||
match)))
|
||||
#t))))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libatomic-ops" ,libatomic-ops)))
|
||||
(outputs '("out" "debug"))
|
||||
|
@ -91,7 +104,7 @@ C or C++ programs, though that is not its primary goal.")
|
|||
(define-public libatomic-ops
|
||||
(package
|
||||
(name "libatomic-ops")
|
||||
(version "7.6.6")
|
||||
(version "7.6.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -99,7 +112,7 @@ C or C++ programs, though that is not its primary goal.")
|
|||
version "/libatomic_ops-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x7071z707msvyrv9dmgahd1sghbkw8fpbagvcag6xs8yp2spzlr"))))
|
||||
"1bwry043f62pc4mgdd37zx3fif19qyrs8f5bw7qxlmkzh5hdyzjq"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "debug"))
|
||||
(synopsis "Accessing hardware atomic memory update operations")
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -77,9 +77,9 @@
|
|||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages guile-xyz)
|
||||
#:use-module (gnu packages haskell)
|
||||
#:use-module (gnu packages haskell-check)
|
||||
#:use-module (gnu packages haskell-web)
|
||||
#:use-module (gnu packages haskell-xyz)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages java)
|
||||
|
@ -1110,9 +1110,6 @@ relying on a complex dependency tree.")
|
|||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:parallel-build? #f))
|
||||
(inputs
|
||||
`(("gcc" ,gcc-5))) ; Compilation of bpp-phyl fails with GCC 4.9 so we
|
||||
; compile all of the bpp packages with GCC 5.
|
||||
(home-page "http://biopp.univ-montp2.fr")
|
||||
(synopsis "C++ libraries for Bioinformatics")
|
||||
(description
|
||||
|
@ -1148,10 +1145,7 @@ providing them a set of re-usable tools.")
|
|||
#:out-of-source? #f))
|
||||
(inputs
|
||||
`(("bpp-core" ,bpp-core)
|
||||
("bpp-seq" ,bpp-seq)
|
||||
;; GCC 4.8 fails due to an 'internal compiler error', so we use a more
|
||||
;; modern GCC.
|
||||
("gcc" ,gcc-5)))
|
||||
("bpp-seq" ,bpp-seq)))
|
||||
(home-page "http://biopp.univ-montp2.fr")
|
||||
(synopsis "Bio++ phylogenetic Library")
|
||||
(description
|
||||
|
@ -1183,8 +1177,7 @@ library provides phylogenetics-related modules.")
|
|||
#:tests? #f)) ; There are no tests.
|
||||
(inputs
|
||||
`(("bpp-core" ,bpp-core)
|
||||
("bpp-seq" ,bpp-seq)
|
||||
("gcc" ,gcc-5)))
|
||||
("bpp-seq" ,bpp-seq)))
|
||||
(home-page "http://biopp.univ-montp2.fr")
|
||||
(synopsis "Bio++ population genetics library")
|
||||
(description
|
||||
|
@ -1217,8 +1210,7 @@ library provides population genetics-related modules.")
|
|||
;; so the tests fail.
|
||||
#:out-of-source? #f))
|
||||
(inputs
|
||||
`(("bpp-core" ,bpp-core)
|
||||
("gcc" ,gcc-5))) ; Use GCC 5 as per 'bpp-core'.
|
||||
`(("bpp-core" ,bpp-core)))
|
||||
(home-page "http://biopp.univ-montp2.fr")
|
||||
(synopsis "Bio++ sequence library")
|
||||
(description
|
||||
|
@ -1256,8 +1248,7 @@ library provides sequence-related modules.")
|
|||
`(("bpp-core" ,bpp-core)
|
||||
("bpp-seq" ,bpp-seq)
|
||||
("bpp-phyl" ,bpp-phyl)
|
||||
("bpp-phyl" ,bpp-popgen)
|
||||
("gcc" ,gcc-5)))
|
||||
("bpp-phyl" ,bpp-popgen)))
|
||||
(home-page "http://biopp.univ-montp2.fr")
|
||||
(synopsis "Bioinformatics tools written with the Bio++ libraries")
|
||||
(description
|
||||
|
@ -1767,8 +1758,8 @@ well as many of the command line options.")
|
|||
(add-after 'unpack 'keep-references-to-bwa
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "bwameth.py"
|
||||
(("bwa mem")
|
||||
(string-append (which "bwa") " mem"))
|
||||
(("bwa (mem|index)" _ command)
|
||||
(string-append (which "bwa") " " command))
|
||||
;; There's an ill-advised check for "samtools" on PATH.
|
||||
(("^checkX.*") ""))
|
||||
#t)))))
|
||||
|
@ -2353,16 +2344,16 @@ other types of unwanted sequence from high-throughput sequencing reads.")
|
|||
(define-public libbigwig
|
||||
(package
|
||||
(name "libbigwig")
|
||||
(version "0.4.2")
|
||||
(version "0.4.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dpryan79/libBigWig.git")
|
||||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0h2smg24v5srdcqzrmz2g23cmlp4va465mgx8r2z571sfz8pv454"))))
|
||||
"09693dmf1scdac5pyq6qyn8b4mcipvnmc370k9a5z41z81m3dcsj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
@ -2749,7 +2740,7 @@ quantitative phenotypes.")
|
|||
(define-public edirect
|
||||
(package
|
||||
(name "edirect")
|
||||
(version "10.2.20181018")
|
||||
(version "12.1.20190819")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
|
||||
|
@ -2757,7 +2748,7 @@ quantitative phenotypes.")
|
|||
"/edirect-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"091f4aigzpbqih6h82nq566gkp3y07i72yqndmqskfgar1vwgci7"))))
|
||||
"1i9s9mppcfqd60pfywpm8vdyz5vpnyslw22nd7dv0bhykrdnkz9g"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -3261,9 +3252,7 @@ comment or quality sections.")
|
|||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Ensure that Eigen headers can be found
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (getenv "CPLUS_INCLUDE_PATH")
|
||||
":"
|
||||
(assoc-ref inputs "eigen")
|
||||
(string-append (assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
#t))
|
||||
(add-before 'build 'bin-mkdir
|
||||
|
@ -4848,7 +4837,7 @@ generated using the PacBio Iso-Seq protocol.")
|
|||
(define-public prank
|
||||
(package
|
||||
(name "prank")
|
||||
(version "150803")
|
||||
(version "170427")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -4856,7 +4845,7 @@ generated using the PacBio Iso-Seq protocol.")
|
|||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0am4z94fs3w2n5xpfls9zda61vq7qqz4q2i7b9hlsxz5q4j3kfm4"))))
|
||||
"0nc8g9c5rkdxcir46s0in9ci1sxwzbjibxrvkksf22ybnplvagk2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -7351,13 +7340,13 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
|
|||
(define-public r-s4vectors
|
||||
(package
|
||||
(name "r-s4vectors")
|
||||
(version "0.22.0")
|
||||
(version "0.22.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "S4Vectors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wkqmpy0d0fab9bjfc7i5wh2zng75pg9rn9c1z1lkki7fpwaw2jb"))))
|
||||
"0cpxqb18wd3pjd7bi8lry13sm5ffqahcvvxpk5pwm5xcj30cdlm9"))))
|
||||
(properties
|
||||
`((upstream-name . "S4Vectors")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7378,13 +7367,13 @@ S4Vectors package itself.")
|
|||
(define-public r-iranges
|
||||
(package
|
||||
(name "r-iranges")
|
||||
(version "2.18.1")
|
||||
(version "2.18.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "IRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d64sh43pfc9vj2l7y7x6sb44l67wlnn3dzygp7ws0smn06mardq"))))
|
||||
"05rw2b2bwns443n7d6lf97zdv1jbqdii2nprhs6x852w73m2a2g3"))))
|
||||
(properties
|
||||
`((upstream-name . "IRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7458,13 +7447,13 @@ names in their natural, rather than lexicographic, order.")
|
|||
(define-public r-edger
|
||||
(package
|
||||
(name "r-edger")
|
||||
(version "3.26.6")
|
||||
(version "3.26.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "edgeR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm"))))
|
||||
"1wwimzviy2vklp80faz7sbbp74qcw2csbmlfgvzj7b785vwarpwg"))))
|
||||
(properties `((upstream-name . "edgeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -7580,13 +7569,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
|
|||
(define-public r-genomicranges
|
||||
(package
|
||||
(name "r-genomicranges")
|
||||
(version "1.36.0")
|
||||
(version "1.36.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1285fr8qjd7d0ixpv7d5imi0n6wzc4k6yia1rkmig71qd2gg556k"))))
|
||||
"1yid84gn0052v52h84685lvk854grl1wl65psmlmxx9yyykgc0jn"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7631,13 +7620,13 @@ on Bioconductor or which replace R functions.")
|
|||
(define-public r-annotationdbi
|
||||
(package
|
||||
(name "r-annotationdbi")
|
||||
(version "1.46.0")
|
||||
(version "1.46.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "AnnotationDbi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lfq5668a6sq4kqhxx78hl3jcaqdsaaliiybl9xyya2scdk8c29c"))))
|
||||
"13nanz4nzy0mcda8ljz2g8d81hpqfz6jky7ydz5hpk0g2264b9ga"))))
|
||||
(properties
|
||||
`((upstream-name . "AnnotationDbi")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7658,13 +7647,13 @@ annotation data packages using SQLite data storage.")
|
|||
(define-public r-biomart
|
||||
(package
|
||||
(name "r-biomart")
|
||||
(version "2.40.3")
|
||||
(version "2.40.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "biomaRt" version))
|
||||
(sha256
|
||||
(base32
|
||||
"022m1r44s00c5k9bmv0lr22lcn662nhc91aazvv0yyysxjamyf60"))))
|
||||
"1kjvxnkpsx3j2hji3cg3ka2gv8a9mg117lzzxyqjb7qa4zw7dipx"))))
|
||||
(properties
|
||||
`((upstream-name . "biomaRt")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7742,13 +7731,13 @@ biological sequences or sets of sequences.")
|
|||
(define-public r-rsamtools
|
||||
(package
|
||||
(name "r-rsamtools")
|
||||
(version "2.0.0")
|
||||
(version "2.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rsamtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nv5idyjk75mvl4np5sig0xa6qygm1ivj33k041ffyj19q8jf7ij"))))
|
||||
"188k5g40lbli7dxr96hldyvg9r9hmlbh2fp0qs5nnd12b8zbf338"))))
|
||||
(properties
|
||||
`((upstream-name . "Rsamtools")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7883,13 +7872,13 @@ alignments.")
|
|||
(define-public r-rtracklayer
|
||||
(package
|
||||
(name "r-rtracklayer")
|
||||
(version "1.44.2")
|
||||
(version "1.44.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "rtracklayer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03b4rfsbzjjf5kxcsjv7kq8hrsgcvz9rfzcn2v7fx3nr818pbb8s"))))
|
||||
"0dnifr58j2si2qbnvap2wslz3xgjv3h4l7a6v7nmmc57hq6kdbym"))))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -8294,14 +8283,14 @@ secondary structure and comparative analysis in R.")
|
|||
(define-public r-rhtslib
|
||||
(package
|
||||
(name "r-rhtslib")
|
||||
(version "1.16.1")
|
||||
(version "1.16.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rhtslib" version))
|
||||
(sha256
|
||||
(base32
|
||||
"178zbrm221rwhbjk7j2v9g5ra44k0xg7c5abhd810m3g7snma8k8"))))
|
||||
"07qaqj2hypmrg40m3pci082bzar6wi10dh77r4a8x74dfppcwdzf"))))
|
||||
(properties `((upstream-name . "Rhtslib")))
|
||||
(build-system r-build-system)
|
||||
;; Without this a temporary directory ends up in the Rhtslib.so binary,
|
||||
|
@ -8418,6 +8407,13 @@ library implementing most of the pipeline's features.")
|
|||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'find-RCAS
|
||||
;; The configure script can't find non-1.3.x versions of RCAS because
|
||||
;; its R expression ‘1.10.1 >= 1.3.4’ evaluates to false.
|
||||
(lambda _
|
||||
(substitute* "configure"
|
||||
(("1\\.3\\.4") "0.0.0"))
|
||||
#t))
|
||||
(add-after 'install 'wrap-executable
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
@ -9176,14 +9172,14 @@ proteomics packages.")
|
|||
(define-public r-mzr
|
||||
(package
|
||||
(name "r-mzr")
|
||||
(version "2.18.0")
|
||||
(version "2.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "mzR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0g5r6yk4gyz0xdwlmrcij4zv7apdgsgygr043095l33hard6nsl5"))
|
||||
"1pr1pcrg3r3pccm5ag6l8ic6rpqbk9jnlb9mm7g4ak5jwrajbzjq"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -9204,7 +9200,8 @@ proteomics packages.")
|
|||
-lboost_iostreams -lboost_thread -lboost_filesystem -lboost_chrono\n")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(;; XXX Boost 1.69 will not work here.
|
||||
`(;; Our default boost package won't work here, unfortunately, even with
|
||||
;; mzR version 2.18.1.
|
||||
("boost" ,boost-for-mysql) ; use this instead of the bundled boost sources
|
||||
("zlib" ,zlib)))
|
||||
(propagated-inputs
|
||||
|
@ -9457,13 +9454,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
|
|||
(define-public r-seurat
|
||||
(package
|
||||
(name "r-seurat")
|
||||
(version "3.0.2")
|
||||
(version "3.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "Seurat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"016fgcmjz3sjfxdvam5hd7mdxpmpnc7f6p5zqlh97m21dgn5vpqn"))))
|
||||
"084lr2fjdksshsmv1ww82bgn3a9mml7kswsidjrs89snabgvn360"))))
|
||||
(properties `((upstream-name . "Seurat")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -9476,10 +9473,12 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
|
|||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-ggrepel" ,r-ggrepel)
|
||||
("r-ggridges" ,r-ggridges)
|
||||
("r-httr" ,r-httr)
|
||||
("r-ica" ,r-ica)
|
||||
("r-igraph" ,r-igraph)
|
||||
("r-irlba" ,r-irlba)
|
||||
("r-kernsmooth" ,r-kernsmooth)
|
||||
("r-leiden" ,r-leiden)
|
||||
("r-lmtest" ,r-lmtest)
|
||||
("r-mass" ,r-mass)
|
||||
("r-matrix" ,r-matrix)
|
||||
|
@ -9490,6 +9489,7 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
|
|||
("r-rann" ,r-rann)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcppannoy" ,r-rcppannoy)
|
||||
("r-rcppeigen" ,r-rcppeigen)
|
||||
("r-rcppprogress" ,r-rcppprogress)
|
||||
("r-reticulate" ,r-reticulate)
|
||||
|
@ -9500,7 +9500,8 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
|
|||
("r-scales" ,r-scales)
|
||||
("r-sctransform" ,r-sctransform)
|
||||
("r-sdmtools" ,r-sdmtools)
|
||||
("r-tsne" ,r-tsne)))
|
||||
("r-tsne" ,r-tsne)
|
||||
("r-uwot" ,r-uwot)))
|
||||
(home-page "http://www.satijalab.org/seurat")
|
||||
(synopsis "Seurat is an R toolkit for single cell genomics")
|
||||
(description
|
||||
|
@ -9636,14 +9637,14 @@ Shiny-based display methods for Bioconductor objects.")
|
|||
(define-public r-annotationhub
|
||||
(package
|
||||
(name "r-annotationhub")
|
||||
(version "2.16.0")
|
||||
(version "2.16.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "AnnotationHub" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rpzl4x5mrwxrrf1jzm4zni6li6x34fjfyybsdvplb0ixa48zhn4"))))
|
||||
"0c773cmhng907839f0bq161jky7362lxxny36ac55qxiz1giqi8j"))))
|
||||
(properties `((upstream-name . "AnnotationHub")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10031,14 +10032,14 @@ interval to data view, mismatch pileup, and several splicing summaries.")
|
|||
(define-public r-gprofiler
|
||||
(package
|
||||
(name "r-gprofiler")
|
||||
(version "0.6.7")
|
||||
(version "0.6.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gProfileR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12nwidbnqmnfy5dnqga26byslvdnkrpz2fi19qfcby6xx0wbndk7"))))
|
||||
"05d6y6b7vkkzp2qhs1cwlvp02djij1b28dbwxnrms08f8qi35iaj"))))
|
||||
(properties `((upstream-name . "gProfileR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10187,22 +10188,24 @@ by Ernst and Kellis.")
|
|||
(define-public r-ldblock
|
||||
(package
|
||||
(name "r-ldblock")
|
||||
(version "1.14.0")
|
||||
(version "1.14.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ldblock" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lraxhq9ny3468534klrl64nx0dpaf9cbd5bir6m5qma8j7kfnyd"))))
|
||||
"0xx04cghx6ads1ackwnw3z0gf72qv461nznzmcnkgmp7w5n9m2af"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-erma" ,r-erma)
|
||||
("r-ensdb-hsapiens-v75" ,r-ensdb-hsapiens-v75)
|
||||
("r-ensembldb" ,r-ensembldb)
|
||||
("r-genomeinfodb" ,r-genomeinfodb)
|
||||
("r-genomicfiles" ,r-genomicfiles)
|
||||
("r-go-db" ,r-go-db)
|
||||
("r-homo-sapiens" ,r-homo-sapiens)
|
||||
("r-httr" ,r-httr)
|
||||
("r-matrix" ,r-matrix)
|
||||
("r-rsamtools" ,r-rsamtools)
|
||||
("r-snpstats" ,r-snpstats)
|
||||
|
@ -10273,14 +10276,14 @@ family of feature/genome hypotheses.")
|
|||
(define-public r-gviz
|
||||
(package
|
||||
(name "r-gviz")
|
||||
(version "1.28.0")
|
||||
(version "1.28.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Gviz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02alz27w8fnnm2ga71g3jg2b94f95ccv6r1fyszj4yb1k2g7rkxk"))))
|
||||
"0347r1ly0vzpilflzbyzsjdf4cday294lw3fxzx61clblrmws1ki"))))
|
||||
(properties `((upstream-name . "Gviz")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10454,14 +10457,14 @@ block processing.")
|
|||
(define-public r-rhdf5lib
|
||||
(package
|
||||
(name "r-rhdf5lib")
|
||||
(version "1.6.0")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rhdf5lib" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lpmyxlwwcy92hyxqag321ssc5z6yw3a0ws9r058jwgzyjg7i2gm"))
|
||||
"0niz9dh66fcwbvqpkpsdlz9d06kwi3kfh45dhk3qz9g9qqyiakr1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -10650,14 +10653,14 @@ variable and significantly correlated genes.")
|
|||
(define-public r-delayedmatrixstats
|
||||
(package
|
||||
(name "r-delayedmatrixstats")
|
||||
(version "1.6.0")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DelayedMatrixStats" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0632ypndblrgzfk8k98rr8c6m2r0zwzf02pzvlrhcp9bj1pvqbrz"))))
|
||||
"1riyzfsq4bd513hidkw3cfkx3jywk3x87j89q70v459xsdfdc95b"))))
|
||||
(properties
|
||||
`((upstream-name . "DelayedMatrixStats")))
|
||||
(build-system r-build-system)
|
||||
|
@ -11707,9 +11710,7 @@ bytes of memory space, where n is the length of the string.")
|
|||
|
||||
;; Ensure that Eigen headers can be found
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (getenv "CPLUS_INCLUDE_PATH")
|
||||
":"
|
||||
(assoc-ref inputs "eigen")
|
||||
(string-append (assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
#t)))))
|
||||
(inputs
|
||||
|
@ -11888,14 +11889,11 @@ The following file formats are supported:
|
|||
(("lib/libdivsufsort.a") "/lib/libdivsufsort.so"))
|
||||
|
||||
;; Ensure that all headers can be found
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (getenv "CPLUS_INCLUDE_PATH")
|
||||
(setenv "CPATH"
|
||||
(string-append (getenv "CPATH")
|
||||
":"
|
||||
(assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
(setenv "CPATH"
|
||||
(string-append (assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
#t))
|
||||
;; CMAKE_INSTALL_PREFIX does not exist when the tests are
|
||||
;; run. It only exists after the install phase.
|
||||
|
@ -13428,8 +13426,7 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
|
|||
"0y5zyjksj1rdglj601xd2bbni5abhdh622y3ck76chyzxz9z4rx8"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-six" ,python-six)))
|
||||
`(("python-six" ,python-six)))
|
||||
(home-page "http://mattshirley.com")
|
||||
(synopsis "Random access to fasta subsequences")
|
||||
(description
|
||||
|
@ -14089,7 +14086,8 @@ choosing which reads pass the filter.")
|
|||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "CPATH"
|
||||
(string-append (assoc-ref inputs "eigen")
|
||||
"/include/eigen3"))
|
||||
"/include/eigen3:"
|
||||
(or (getenv "CPATH") "")))
|
||||
#t))
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
|
@ -14668,16 +14666,14 @@ proximity within a reference genome.")
|
|||
"08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-pandas" ,python-pandas)
|
||||
`(("python-pandas" ,python-pandas)
|
||||
("python-future" ,python-future)
|
||||
("python-scipy" ,python-scipy)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-regex" ,python-regex)
|
||||
("python-pysam" ,python-pysam)))
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-cython" ,python-cython)))
|
||||
`(("python-cython" ,python-cython)))
|
||||
(home-page "https://github.com/CGATOxford/UMI-tools")
|
||||
(synopsis "Tools for analyzing unique modular identifiers")
|
||||
(description "This package provides tools for dealing with @dfn{Unique
|
||||
|
@ -14868,6 +14864,24 @@ mutations from scRNA-Seq data.")
|
|||
some of the details of opening and jumping in tabix-indexed files.")
|
||||
(license license:expat)))
|
||||
|
||||
(define tabixpp-freebayes
|
||||
;; This version works with FreeBayes while the released
|
||||
;; version doesn't. The released creates a variable with the name \"vcf\"
|
||||
;; somewhere, which is also the name of a namespace in vcflib.
|
||||
(let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7"))
|
||||
(package
|
||||
(inherit tabixpp)
|
||||
(name "tabixpp-freebayes")
|
||||
(version (git-version "0.0.0" "1" commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ekg/tabixpp/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "017qsmsc2kyiyzqr9nl8cc6pfldxf16dbn8flx5i59mbqr9ydi7g")))))))
|
||||
|
||||
(define-public smithwaterman
|
||||
;; TODO: Upgrading smithwaterman breaks FreeBayes.
|
||||
(let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
|
||||
|
@ -14995,3 +15009,254 @@ provides a FASTA reader and indexer that can be embedded into applications
|
|||
which would benefit from directly reading subsequences from FASTA files. The
|
||||
library automatically handles index file generation and use.")
|
||||
(license (list license:expat license:gpl2)))))
|
||||
|
||||
(define-public vcflib
|
||||
(let ((commit "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "vcflib")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/vcflib/vcflib/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gijvcz1lcdn5kvgzb671l6iby0379qk00nqmcrszgk67hfwx6kq"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("python" ,python-2)
|
||||
;; Submodules.
|
||||
;; This package builds against the .o files so we need to extract the source.
|
||||
("tabixpp-src" ,(package-source tabixpp-freebayes))
|
||||
("smithwaterman-src" ,(package-source smithwaterman))
|
||||
("multichoose-src" ,(package-source multichoose))
|
||||
("fsom-src" ,(package-source fsom))
|
||||
("filevercmp-src" ,(package-source filevercmp))
|
||||
("fastahack-src" ,(package-source fastahack))
|
||||
("intervaltree-src"
|
||||
,(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ekg/intervaltree/")
|
||||
(commit "dbb4c513d1ad3baac516fc1484c995daf9b42838")))
|
||||
(file-name "intervaltree-src-checkout")
|
||||
(sha256
|
||||
(base32 "1fy5qbj4bg8d2bjysvaa9wfnqn2rj2sk5yra2h4l5pzvy53f23fj"))))))
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'check)
|
||||
(add-after 'unpack 'unpack-submodule-sources
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((unpack (lambda (source target)
|
||||
(with-directory-excursion target
|
||||
(if (file-is-directory? (assoc-ref inputs source))
|
||||
(copy-recursively (assoc-ref inputs source) ".")
|
||||
(invoke "tar" "xvf"
|
||||
(assoc-ref inputs source)
|
||||
"--strip-components=1"))))))
|
||||
(and
|
||||
(unpack "intervaltree-src" "intervaltree")
|
||||
(unpack "fastahack-src" "fastahack")
|
||||
(unpack "filevercmp-src" "filevercmp")
|
||||
(unpack "fsom-src" "fsom")
|
||||
(unpack "multichoose-src" "multichoose")
|
||||
(unpack "smithwaterman-src" "smithwaterman")
|
||||
(unpack "tabixpp-src" "tabixpp")))))
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs make-flags #:allow-other-keys)
|
||||
(with-directory-excursion "tabixpp"
|
||||
(invoke "make"))
|
||||
(invoke "make" "CC=gcc"
|
||||
(string-append "CFLAGS=\"" "-Itabixpp " "\"")
|
||||
"all")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||
(lib (string-append (assoc-ref outputs "out") "/lib")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file bin))
|
||||
(find-files "bin" ".*"))
|
||||
;; The header files in src/ do not interface libvcflib,
|
||||
;; therefore they are left out.
|
||||
(install-file "libvcflib.a" lib))
|
||||
#t)))))
|
||||
(home-page "https://github.com/vcflib/vcflib/")
|
||||
(synopsis "Library for parsing and manipulating VCF files")
|
||||
(description "Vcflib provides methods to manipulate and interpret
|
||||
sequence variation as it can be described by VCF. It is both an API for parsing
|
||||
and operating on records of genomic variation as it can be described by the VCF
|
||||
format, and a collection of command-line utilities for executing complex
|
||||
manipulations on VCF files.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public freebayes
|
||||
(let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")
|
||||
(revision "1")
|
||||
(version "1.0.2"))
|
||||
(package
|
||||
(name "freebayes")
|
||||
(version (git-version version revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ekg/freebayes.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("bamtools" ,bamtools)
|
||||
("htslib" ,htslib)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("bc" ,bc) ; Needed for running tests.
|
||||
("samtools" ,samtools) ; Needed for running tests.
|
||||
("parallel" ,parallel) ; Needed for running tests.
|
||||
("perl" ,perl) ; Needed for running tests.
|
||||
("procps" ,procps) ; Needed for running tests.
|
||||
("python" ,python-2) ; Needed for running tests.
|
||||
("vcflib-src" ,(package-source vcflib))
|
||||
;; These are submodules for the vcflib version used in freebayes.
|
||||
;; This package builds against the .o files so we need to extract the source.
|
||||
("tabixpp-src" ,(package-source tabixpp-freebayes))
|
||||
("smithwaterman-src" ,(package-source smithwaterman))
|
||||
("multichoose-src" ,(package-source multichoose))
|
||||
("fsom-src" ,(package-source fsom))
|
||||
("filevercmp-src" ,(package-source filevercmp))
|
||||
("fastahack-src" ,(package-source fastahack))
|
||||
("intervaltree-src"
|
||||
,(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ekg/intervaltree/")
|
||||
(commit "dbb4c513d1ad3baac516fc1484c995daf9b42838")))
|
||||
(file-name "intervaltree-src-checkout")
|
||||
(sha256
|
||||
(base32 "1fy5qbj4bg8d2bjysvaa9wfnqn2rj2sk5yra2h4l5pzvy53f23fj"))))
|
||||
;; These submodules are needed to run the tests.
|
||||
("bash-tap-src" ,(package-source bash-tap))
|
||||
("test-simple-bash-src"
|
||||
,(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ingydotnet/test-simple-bash/")
|
||||
(commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc")))
|
||||
(file-name "test-simple-bash-src-checkout")
|
||||
(sha256
|
||||
(base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga"))))))
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list "CC=gcc"
|
||||
(string-append "BAMTOOLS_ROOT="
|
||||
(assoc-ref %build-inputs "bamtools")))
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'fix-tests
|
||||
(lambda _
|
||||
(substitute* "test/t/01_call_variants.t"
|
||||
(("grep -P \"\\(\\\\t500\\$\\|\\\\t11000\\$\\|\\\\t1000\\$\\)\"")
|
||||
"grep -E ' (500|11000|1000)$'"))
|
||||
#t))
|
||||
(add-after 'unpack 'unpack-submodule-sources
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((unpack (lambda (source target)
|
||||
(with-directory-excursion target
|
||||
(if (file-is-directory? (assoc-ref inputs source))
|
||||
(copy-recursively (assoc-ref inputs source) ".")
|
||||
(invoke "tar" "xvf"
|
||||
(assoc-ref inputs source)
|
||||
"--strip-components=1"))))))
|
||||
(and
|
||||
(unpack "vcflib-src" "vcflib")
|
||||
(unpack "fastahack-src" "vcflib/fastahack")
|
||||
(unpack "filevercmp-src" "vcflib/filevercmp")
|
||||
(unpack "fsom-src" "vcflib/fsom")
|
||||
(unpack "intervaltree-src" "vcflib/intervaltree")
|
||||
(unpack "multichoose-src" "vcflib/multichoose")
|
||||
(unpack "smithwaterman-src" "vcflib/smithwaterman")
|
||||
(unpack "tabixpp-src" "vcflib/tabixpp")
|
||||
(unpack "test-simple-bash-src" "test/test-simple-bash")
|
||||
(unpack "bash-tap-src" "test/bash-tap")))))
|
||||
(add-after 'unpack-submodule-sources 'fix-makefiles
|
||||
(lambda _
|
||||
;; We don't have the .git folder to get the version tag from.
|
||||
(substitute* "vcflib/Makefile"
|
||||
(("^GIT_VERSION.*")
|
||||
(string-append "GIT_VERSION = v" ,version)))
|
||||
(substitute* "src/Makefile"
|
||||
(("-I\\$\\(BAMTOOLS_ROOT\\)/src")
|
||||
"-I$(BAMTOOLS_ROOT)/include/bamtools"))
|
||||
#t))
|
||||
(add-before 'build 'build-tabixpp-and-vcflib
|
||||
(lambda* (#:key inputs make-flags #:allow-other-keys)
|
||||
(with-directory-excursion "vcflib"
|
||||
(with-directory-excursion "tabixpp"
|
||||
(apply invoke "make"
|
||||
(string-append "HTS_LIB="
|
||||
(assoc-ref inputs "htslib")
|
||||
"/lib/libhts.a")
|
||||
make-flags))
|
||||
(apply invoke "make"
|
||||
(string-append "CFLAGS=-Itabixpp")
|
||||
"all"
|
||||
make-flags))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
|
||||
(install-file "bin/freebayes" bin)
|
||||
(install-file "bin/bamleftalign" bin))
|
||||
#t)))))
|
||||
(home-page "https://github.com/ekg/freebayes")
|
||||
(synopsis "Haplotype-based variant detector")
|
||||
(description "FreeBayes is a Bayesian genetic variant detector designed to
|
||||
find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms),
|
||||
indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and
|
||||
complex events (composite insertion and substitution events) smaller than the
|
||||
length of a short-read sequencing alignment.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public samblaster
|
||||
(package
|
||||
(name "samblaster")
|
||||
(version "0.1.24")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/GregoryFaust/samblaster.git")
|
||||
(commit (string-append "v." version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0iv2ddfw8363vb2x8gr3p8g88whb6mb9m0pf71i2cqsbv6jghap7"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are none
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; There is no configure phase.
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(install-file "samblaster"
|
||||
(string-append (assoc-ref outputs "out") "/bin"))
|
||||
#t)))))
|
||||
(home-page "https://github.com/GregoryFaust/samblaster")
|
||||
(synopsis "Mark duplicates in paired-end SAM files")
|
||||
(description "Samblaster is a fast and flexible program for marking
|
||||
duplicates in read-id grouped paired-end SAM files. It can also optionally
|
||||
output discordant read pairs and/or split read mappings to separate SAM files,
|
||||
and/or unmapped/clipped reads to a separate FASTQ file. When marking
|
||||
duplicates, samblaster will require approximately 20MB of memory per 1M read
|
||||
pairs.")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,7 +31,7 @@
|
|||
(define-public bison
|
||||
(package
|
||||
(name "bison")
|
||||
(version "3.0.5")
|
||||
(version "3.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -38,8 +39,17 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f7kjygrckkx8vas2nm673592jif0a9mw5g8207f6hj6h4pfyp07"))))
|
||||
"03c2pmq3bs0drdislnz6gm1rwz3n4pb2rz9navyxydppxg2rl597"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; Building in parallel on many-core systems may cause an error such as
|
||||
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
|
||||
;; directory". See <https://bugs.gnu.org/36238>.
|
||||
#:parallel-build? #f
|
||||
;; Similarly, when building tests in parallel, Make may produce this error:
|
||||
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
|
||||
;; or directory". Full log in <https://bugs.gnu.org/36238>.
|
||||
#:parallel-tests? #f))
|
||||
(native-inputs `(("perl" ,perl)
|
||||
;; m4 is not present in PATH when cross-building.
|
||||
("m4" ,m4)))
|
||||
|
@ -53,3 +63,16 @@ deterministic or generalized LR parser from an annotated, context-free
|
|||
grammar. It is versatile enough to have many applications, from parsers for
|
||||
simple tools through complex programming languages.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public bison-3.0
|
||||
(package
|
||||
(inherit bison)
|
||||
(version "3.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/bison/bison-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f7kjygrckkx8vas2nm673592jif0a9mw5g8207f6hj6h4pfyp07"))))))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
|
||||
|
@ -131,7 +131,7 @@ DHT, µTP, PEX and Magnet Links.")
|
|||
(define-public libtorrent
|
||||
(package
|
||||
(name "libtorrent")
|
||||
(version "0.13.6")
|
||||
(version "0.13.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -139,7 +139,7 @@ DHT, µTP, PEX and Magnet Links.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"012s1nwcvz5m5r4d2z9klgy2n34kpgn9kgwgzxm97zgdjs6a0f18"))))
|
||||
"10z9i1rc41cmmi7nx8k7k1agsx6afv09g9cl7g9zr35fyhl5l4gd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
|
@ -156,7 +156,7 @@ speed and efficiency.")
|
|||
(define-public rtorrent
|
||||
(package
|
||||
(name "rtorrent")
|
||||
(version "0.9.6")
|
||||
(version "0.9.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -164,7 +164,7 @@ speed and efficiency.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03jvzw9pi2mhcm913h8qg0qw9gwjqc6lhwynb1yz1y163x7w4s8y"))))
|
||||
"1bs2fnf4q7mlhkhzp3i1v052v9xn8qa7g845pk9ia8hlpw207pwy"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libtorrent" ,libtorrent)
|
||||
("ncurses" ,ncurses)
|
||||
|
@ -183,35 +183,38 @@ XML-RPC over SCGI.")
|
|||
(license l:gpl2+)))
|
||||
|
||||
(define-public tremc
|
||||
(package
|
||||
(name "tremc")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tremc/tremc.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1yhwvlcyv1s830p5a7q5x3mkb3mbvr5cn5nh7y62l5b6iyyynlvm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; The software is just a Python script that must be copied into place.
|
||||
(delete 'configure)
|
||||
(delete 'build))))
|
||||
(inputs
|
||||
`(("python" ,python)))
|
||||
(synopsis "Console client for the Transmission BitTorrent daemon")
|
||||
(description "Tremc is a console client, with a curses interface, for the
|
||||
(let ((commit "4d50dab7376601daca13f7be6eabc0eaa057c1b0")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "tremc")
|
||||
(version (git-version "0.9.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tremc/tremc.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qpi65n8rv7l9mg8qyqx70z83inkl8v5r5nks65c99lhscdki0w7"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; The software is just a Python script that must be copied into place.
|
||||
(delete 'configure)
|
||||
(delete 'build))))
|
||||
(inputs
|
||||
`(("python" ,python)))
|
||||
(synopsis "Console client for the Transmission BitTorrent daemon")
|
||||
(description "Tremc is a console client, with a curses interface, for the
|
||||
Transmission BitTorrent daemon.")
|
||||
(home-page "https://github.com/tremc/tremc")
|
||||
(license l:gpl3+)))
|
||||
(home-page "https://github.com/tremc/tremc")
|
||||
(license l:gpl3+))))
|
||||
|
||||
(define-public transmission-remote-cli
|
||||
(package
|
||||
|
@ -259,16 +262,15 @@ maintained upstream.")
|
|||
(define-public aria2
|
||||
(package
|
||||
(name "aria2")
|
||||
(version "1.34.0")
|
||||
(version "1.35.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/tatsuhiro-t/aria2/"
|
||||
"releases/download/release-" version "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(patches (search-patches "aria2-CVE-2019-3500.patch"))
|
||||
(uri (string-append "https://github.com/aria2/aria2/releases/"
|
||||
"download/release-" version
|
||||
"/aria2-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18vpgr430vxlwbcc3598rr1srfmwypls6wp1m4wf21hncc1ahi1s"))))
|
||||
"1zbxc517d97lb96f15xcy4l7b66grxrp3h2ids2jiwkaip87yaqy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--enable-libaria2"
|
||||
|
@ -395,8 +397,7 @@ and will take advantage of multiple processor cores where possible.")
|
|||
(assoc-ref %build-inputs "boost")
|
||||
"/lib")
|
||||
"--enable-python-binding"
|
||||
"--enable-tests"
|
||||
"CXXFLAGS=-std=c++11") ; Use std::chrono instead of boost
|
||||
"--enable-tests")
|
||||
#:make-flags (list
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
(define-public boost
|
||||
(package
|
||||
(name "boost")
|
||||
(version "1.69.0")
|
||||
(version "1.70.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -56,8 +56,7 @@
|
|||
version-with-underscores ".tar.bz2"))))
|
||||
(sha256
|
||||
(base32
|
||||
"01j4n142dz20lcgqji8d8hspp04p1nv7m8i6dz8w5lchfdhx8clg"))
|
||||
(patches (search-patches "boost-fix-icu-build.patch"))))
|
||||
"0y47nc7w0arwgj4x1phadxbvl7wyfcgknbz5kv8lzpl98wsyh2j3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("icu4c" ,icu4c)
|
||||
("zlib" ,zlib)))
|
||||
|
@ -69,7 +68,11 @@
|
|||
`(#:tests? #f
|
||||
#:make-flags
|
||||
(list "threading=multi" "link=shared"
|
||||
"cxxflags=-std=c++14"
|
||||
|
||||
;; XXX: Disable installation of Boosts modular CMake config scripts
|
||||
;; which conflicts in 1.70.0 with the ones provided by CMake.
|
||||
;; See <https://bugs.gnu.org/36721>.
|
||||
"--no-cmake-config"
|
||||
|
||||
;; Set the RUNPATH to $libdir so that the libs find each other.
|
||||
(string-append "linkflags=-Wl,-rpath="
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
(list "PYTHON=true")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-stuff
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(substitute* "grub-core/Makefile.in"
|
||||
(("/bin/sh") (which "sh")))
|
||||
|
||||
|
@ -114,7 +114,9 @@
|
|||
"/sbin/mdadm\"")))
|
||||
|
||||
;; Make the font visible.
|
||||
(copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz")
|
||||
(copy-file (assoc-ref (or native-inputs inputs)
|
||||
"unifont")
|
||||
"unifont.bdf.gz")
|
||||
(system* "gunzip" "unifont.bdf.gz")
|
||||
|
||||
;; Give the absolute file name of 'ckbcomp'.
|
||||
|
@ -355,7 +357,7 @@ menu to select one of the installed operating systems.")
|
|||
(define-public dtc
|
||||
(package
|
||||
(name "dtc")
|
||||
(version "1.5.0")
|
||||
(version "1.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -363,7 +365,7 @@ menu to select one of the installed operating systems.")
|
|||
"dtc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wh10p42hf5403ipvs0dsxddb6kzfyk2sq4fgid9zqzpr51y8wn6"))))
|
||||
"07q3mdsvl4smbiakriq3hnsyyd0q344lsm306q0kgz4hjq1p82v6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
|
@ -377,6 +379,11 @@ menu to select one of the installed operating systems.")
|
|||
(arguments
|
||||
`(#:make-flags
|
||||
(list "CC=gcc"
|
||||
|
||||
;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1.
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
(string-append "SETUP_PREFIX=" (assoc-ref %outputs "out"))
|
||||
"INSTALL=install")
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,21 +34,30 @@
|
|||
#:select (derivation derivation-input derivation->output-path))
|
||||
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (bootstrap-origin
|
||||
package-with-bootstrap-guile
|
||||
glibc-dynamic-linker
|
||||
|
||||
bootstrap-executable
|
||||
bootstrap-guile-origin
|
||||
|
||||
%bootstrap-guile
|
||||
%bootstrap-coreutils&co
|
||||
%bootstrap-linux-libre-headers
|
||||
%bootstrap-binutils
|
||||
%bootstrap-gcc
|
||||
%bootstrap-glibc
|
||||
%bootstrap-inputs))
|
||||
%bootstrap-inputs
|
||||
%bootstrap-mescc-tools
|
||||
%bootstrap-mes
|
||||
|
||||
%bootstrap-inputs-for-tests))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -56,6 +67,82 @@
|
|||
;;; Code:
|
||||
|
||||
|
||||
|
||||
;;;
|
||||
;;; The bootstrap executables: 'bash', 'mkdir', 'tar', 'xz'. They allow us to
|
||||
;;; extract the very first tarball.
|
||||
;;;
|
||||
|
||||
(define %bootstrap-executables
|
||||
;; List of bootstrap executables and their recursive hashes (as per 'guix
|
||||
;; hash -r'), taking their executable bit into account.
|
||||
`(("aarch64-linux"
|
||||
("bash"
|
||||
,(base32 "13aqhqb8nydlwq1ah9974q0iadx1pb95v13wzzyf7vgv6nasrwzr"))
|
||||
("mkdir"
|
||||
,(base32 "1pxhdp7ldwavmm71xbh9wc197cb2nr66acjn26yjx3732cixh9ws"))
|
||||
("tar"
|
||||
,(base32 "1j51gv08sfg277yxj73xd564wjq3f8xwd6s9rbcg8v9gms47m4cx"))
|
||||
("xz"
|
||||
,(base32 "1d779rwsrasphg5g3r37qppcqy3p7ay1jb1y83w7x4i3qsc7zjy2")))
|
||||
("armhf-linux"
|
||||
("bash"
|
||||
,(base32 "0s6f1s26g4dsrrkl39zblvwpxmbzi6n9mgqf6vxsqz42gik6bgyn"))
|
||||
("mkdir"
|
||||
,(base32 "1r5rcp35niyxfkrdf00y2ba8ifrq9bi76cr63lwjf2l655j1i5p7"))
|
||||
("tar"
|
||||
,(base32 "0dksx5im3fv8ximz7368bsax9f26nn47ds74298flm5lnvpv9xly"))
|
||||
("xz"
|
||||
,(base32 "1cqqavghjfr0iwxqf61lrssv27wfigysgq2rs4rm1gkmn04yn1k3")))
|
||||
("i686-linux"
|
||||
("bash"
|
||||
,(base32 "0rjaxyzjdllfkf1abczvgaf3cdcc7mmahyvdbkjmjzhgz92pv23g"))
|
||||
("mkdir"
|
||||
,(base32 "133ybmfpkmsnysrzbngwvbysqnsmfi8is8zifs7i7n6n600h4s1w"))
|
||||
("tar"
|
||||
,(base32 "07830bx29ad5i0l1ykj0g0b1jayjdblf01sr3ww9wbnwdbzinqms"))
|
||||
("xz"
|
||||
,(base32 "0i9kxdi17bm5gxfi2xzm0y73p3ii0cqxli1sbljm6rh2fjgyn90k")))
|
||||
("mips64el-linux"
|
||||
("bash"
|
||||
,(base32 "1aw046dhda240k9pb9iaj5aqkm23gkvxa9j82n4k7fk87nbrixw6"))
|
||||
("mkdir"
|
||||
,(base32 "0c9j6qgyw84zxbry3ypifzll13gy8ax71w40kdk1h11jbgla3f5k"))
|
||||
("tar"
|
||||
,(base32 "06gmqdjq3rl8lr47b9fyx4ifnm5x56ymc8lyryp1ax1j2s4y5jb4"))
|
||||
("xz"
|
||||
,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))))
|
||||
|
||||
(define (bootstrap-executable-url program system)
|
||||
"Return the URL where PROGRAM can be found for SYSTEM."
|
||||
(string-append
|
||||
"https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
|
||||
system "/" program
|
||||
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
|
||||
|
||||
(define bootstrap-executable
|
||||
(mlambda (program system)
|
||||
"Return an origin for PROGRAM, a statically-linked bootstrap executable
|
||||
built for SYSTEM."
|
||||
(let ((system (if (string=? system "x86_64-linux")
|
||||
"i686-linux"
|
||||
system)))
|
||||
(match (assoc-ref (assoc-ref %bootstrap-executables system)
|
||||
program)
|
||||
(#f
|
||||
(raise (condition
|
||||
(&message
|
||||
(message
|
||||
(format #f (G_ "could not find bootstrap binary '~a' \
|
||||
for system '~a'")
|
||||
program system))))))
|
||||
((sha256)
|
||||
(origin
|
||||
(method url-fetch/executable)
|
||||
(uri (bootstrap-executable-url program system))
|
||||
(file-name program)
|
||||
(sha256 sha256)))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Helper procedures.
|
||||
|
@ -97,10 +184,10 @@
|
|||
(define* (package-from-tarball name source program-to-test description
|
||||
#:key snippet)
|
||||
"Return a package that correspond to the extraction of SOURCE.
|
||||
PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to check
|
||||
whether everything is alright. If SNIPPET is provided, it is evaluated after
|
||||
extracting SOURCE. SNIPPET should raise an exception to signal an error; its
|
||||
return value is ignored."
|
||||
PROGRAM-TO-TEST is #f or a string: the program to run after extraction of
|
||||
SOURCE to check whether everything is alright. If SNIPPET is provided, it is
|
||||
evaluated after extracting SOURCE. SNIPPET should return true if successful,
|
||||
or false to signal an error."
|
||||
(package
|
||||
(name name)
|
||||
(version "0")
|
||||
|
@ -109,25 +196,28 @@ return value is ignored."
|
|||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))
|
||||
,@(if snippet (list snippet) '())
|
||||
(invoke (string-append "bin/" ,program-to-test)
|
||||
"--version"))))))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))
|
||||
,@(if snippet (list snippet) '())
|
||||
(or (not ,program-to-test)
|
||||
(invoke (string-append "bin/" ,program-to-test)
|
||||
"--version"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin (source (%current-system))))))
|
||||
(source #f)
|
||||
(synopsis description)
|
||||
|
@ -187,6 +277,7 @@ return value is ignored."
|
|||
((string=? system "avr") "no-ld.so")
|
||||
((string=? system "propeller-elf") "no-ld.so")
|
||||
((string=? system "i686-mingw") "no-ld.so")
|
||||
((string=? system "x86_64-mingw") "no-ld.so")
|
||||
((string=? system "vc4-elf") "no-ld.so")
|
||||
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
|
@ -199,7 +290,9 @@ return value is ignored."
|
|||
|
||||
(define %bootstrap-base-urls
|
||||
;; This is where the initial binaries come from.
|
||||
'("https://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
'("https://ftp.gnu.org/gnu/guix/bootstrap"
|
||||
"https://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"http://ftp.gnu.org/gnu/guix/bootstrap"
|
||||
"http://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"ftp://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"http://www.fdn.fr/~lcourtes/software/guix/packages"
|
||||
|
@ -251,11 +344,9 @@ return value is ignored."
|
|||
#:key outputs system search-paths
|
||||
#:allow-other-keys)
|
||||
(define (->store file)
|
||||
(add-to-store store file #t "sha256"
|
||||
(or (search-bootstrap-binary file
|
||||
system)
|
||||
(error "bootstrap binary not found"
|
||||
file system))))
|
||||
(run-with-store store
|
||||
(origin->derivation (bootstrap-executable file system)
|
||||
system)))
|
||||
|
||||
(let* ((tar (->store "tar"))
|
||||
(xz (->store "xz"))
|
||||
|
@ -305,15 +396,17 @@ $out/bin/guile -c ~s $out ~a
|
|||
|
||||
# Sanity check.
|
||||
$out/bin/guile --version~%"
|
||||
mkdir xz tar
|
||||
(derivation->output-path mkdir)
|
||||
(derivation->output-path xz)
|
||||
(derivation->output-path tar)
|
||||
(format #f "~s" make-guile-wrapper)
|
||||
bash)
|
||||
(list mkdir xz tar bash))))
|
||||
(derivation->output-path bash)))))
|
||||
(derivation store name
|
||||
bash `(,builder)
|
||||
(derivation->output-path bash) `(,builder)
|
||||
#:system system
|
||||
#:inputs (list (derivation-input guile))
|
||||
#:sources (list bash builder)
|
||||
#:inputs (map derivation-input
|
||||
(list bash mkdir tar xz guile))
|
||||
#:sources (list builder)
|
||||
#:env-vars `(("GUILE_TARBALL"
|
||||
. ,(derivation->output-path guile))))))
|
||||
|
||||
|
@ -394,6 +487,22 @@ $out/bin/guile --version~%"
|
|||
(("^exec grep") (string-append (getcwd) "/bin/grep"))))
|
||||
(chmod "bin" #o555))))
|
||||
|
||||
(define-public %bootstrap-linux-libre-headers
|
||||
(package-from-tarball
|
||||
"linux-libre-headers-bootstrap"
|
||||
(lambda (system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
|
||||
#f ; no program to test
|
||||
"Bootstrap linux-libre-headers"))
|
||||
|
||||
(define %bootstrap-binutils
|
||||
(package-from-tarball "binutils-bootstrap"
|
||||
(lambda (system)
|
||||
|
@ -439,31 +548,33 @@ $out/bin/guile --version~%"
|
|||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir
|
||||
"/binaries.tar"))
|
||||
(chmod "lib" #o755)
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
|
||||
;; Patch libc.so so it refers to the right path.
|
||||
(substitute* "lib/libc.so"
|
||||
(("/[^ ]+/lib/(libc|ld)" _ prefix)
|
||||
(string-append out "/lib/" prefix)))
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir
|
||||
"/binaries.tar"))
|
||||
(chmod "lib" #o755)
|
||||
|
||||
#t)))))
|
||||
;; Patch libc.so so it refers to the right path.
|
||||
(substitute* "lib/libc.so"
|
||||
(("/[^ ]+/lib/(libc|ld)" _ prefix)
|
||||
(string-append out "/lib/" prefix)))
|
||||
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -510,73 +621,75 @@ $out/bin/guile --version~%"
|
|||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(rename-file "gcc" ".gcc-wrapped")
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(rename-file "gcc" ".gcc-wrapped")
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
-Wl,-rpath -Wl,~a/lib \
|
||||
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
bash
|
||||
out libc libc libc
|
||||
,(glibc-dynamic-linker))))
|
||||
bash
|
||||
out libc libc libc
|
||||
,(glibc-dynamic-linker))))
|
||||
|
||||
(chmod "gcc" #o555)
|
||||
#t)))))
|
||||
(chmod "gcc" #o555)
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("bash" ,(search-bootstrap-binary "bash" (%current-system)))
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("bash" ,(bootstrap-executable "bash" (%current-system)))
|
||||
("libc" ,%bootstrap-glibc)
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/gcc-4.8.4.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/gcc-5.4.0.tar.xz")
|
||||
(_
|
||||
"/20131110/gcc-4.8.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/gcc-4.8.4.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/gcc-5.4.0.tar.xz")
|
||||
(_
|
||||
"/20131110/gcc-4.8.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CPATH")
|
||||
|
@ -589,15 +702,129 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
|||
(home-page #f)
|
||||
(license gpl3+)))
|
||||
|
||||
(define %bootstrap-inputs
|
||||
(define %bootstrap-mescc-tools
|
||||
;; The initial MesCC tools. Uses binaries from a tarball typically built by
|
||||
;; %MESCC-TOOLS-BOOTSTRAP-TARBALL.
|
||||
(package
|
||||
(name "bootstrap-mescc-tools")
|
||||
(version "0.5.2")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball"
|
||||
,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))
|
||||
(synopsis "Bootstrap binaries of MesCC Tools")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(license gpl3+)))
|
||||
|
||||
(define %bootstrap-mes
|
||||
;; The initial Mes. Uses binaries from a tarball typically built by
|
||||
;; %MES-BOOTSTRAP-TARBALL.
|
||||
(package
|
||||
(name "bootstrap-mes")
|
||||
(version "0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball"
|
||||
,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mes-minimal-stripped-0.19-i686-linux.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(synopsis "Bootstrap binaries of Mes")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
(license gpl3+)))
|
||||
|
||||
(define (%bootstrap-inputs)
|
||||
;; The initial, pre-built inputs. From now on, we can start building our
|
||||
;; own packages.
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils)
|
||||
`(,@(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)
|
||||
("bootstrap-mescc-tools" ,%bootstrap-mescc-tools)
|
||||
("mes" ,%bootstrap-mes)))
|
||||
(_
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils))))
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
|
||||
;; In gnu-build-system.scm, we rely on the availability of Bash.
|
||||
("bash" ,%bootstrap-coreutils&co)))
|
||||
|
||||
(define %bootstrap-inputs-for-tests
|
||||
;; These are bootstrap inputs that are cheap to produce (no compilation
|
||||
;; needed) and that are meant to be used for testing. (These are those we
|
||||
;; used before the Mes-based reduced bootstrap.)
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils)
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
("bash" ,%bootstrap-coreutils&co)))
|
||||
|
||||
;;; bootstrap.scm ends here
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -162,7 +162,7 @@ files and generates build instructions for the Ninja build system.")
|
|||
(define-public meson
|
||||
(package
|
||||
(name "meson")
|
||||
(version "0.50.0")
|
||||
(version "0.50.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
|
@ -170,7 +170,7 @@ files and generates build instructions for the Ninja build system.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07q2wz23wjfk8z66mli1cc9as0ycjp5f39fd4awny82qv8nw86ra"))))
|
||||
"1k2fw5qk4mqjcb4j5dhp8xfn0caqphb11yh8zkw7v9w01kb5d3zn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,15 +30,14 @@
|
|||
(define-public ccache
|
||||
(package
|
||||
(name "ccache")
|
||||
(version "3.5")
|
||||
(version "3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04n0xram2416pv98qrd7pi5lfsk0bjqyz7zgvvia41j5mrr4pm5x"))))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl) ; for test/run
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
|
|
|
@ -884,7 +884,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
|
|||
(define-public libmirage
|
||||
(package
|
||||
(name "libmirage")
|
||||
(version "3.2.2")
|
||||
(version "3.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -892,7 +892,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gwrfia0fyhi0b3p2pfyyvrcfcb0qysfzgpdqsqjqbx4xaqx5wpi"))))
|
||||
"08mfvqyk3833ksfd47i4j3ppmrw5ry219km6h7lywdh9hm9x14yf"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -913,7 +913,7 @@ the data stored in various image formats.")
|
|||
(define-public cdemu-daemon
|
||||
(package
|
||||
(name "cdemu-daemon")
|
||||
(version "3.2.2")
|
||||
(version "3.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -921,7 +921,7 @@ the data stored in various image formats.")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0himyrhhfjsr4ff5aci7240bpm9x34h20pid412ci8fm16nk929b"))))
|
||||
"022xzgwmncswb9md71w3ly3mjkdfc93lbij2llp2jamq8grxjjxr"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -942,7 +942,7 @@ drive and disc (including CD-ROMs and DVD-ROMs).")
|
|||
(define-public cdemu-client
|
||||
(package
|
||||
(name "cdemu-client")
|
||||
(version "3.2.1")
|
||||
(version "3.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -950,7 +950,7 @@ drive and disc (including CD-ROMs and DVD-ROMs).")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d8m24qvv62xcwafw5zs4yf39vs64kxl4idqcngd8yyjhrb2ykg5"))))
|
||||
"1bvc2m63fx03rbp3ihgl2n7k24lwg5ydwkmr84gsjfcxp46q10zq"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
;;;
|
||||
;;; 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 cedille)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages agda)
|
||||
#:use-module (gnu packages emacs-xyz)
|
||||
#:use-module (gnu packages haskell)
|
||||
#:use-module (gnu packages haskell-xyz)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages))
|
||||
|
||||
(define-public cedille
|
||||
(package
|
||||
(name "cedille")
|
||||
(version "1.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/cedille/cedille")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07kv9wncyipfjf5w4ax8h2p35g70zb1qw6zc4afd7c225xia55wp"))))
|
||||
(inputs
|
||||
`(("agda" ,agda)
|
||||
("agda-ial" ,agda-ial)
|
||||
("ghc" ,ghc-8.4)
|
||||
("ghc-alex" ,ghc-alex)
|
||||
("ghc-happy" ,ghc-happy)))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-cedille-path-el
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "cedille-mode.el"
|
||||
(("/usr/share/emacs/site-lisp/cedille-mode")
|
||||
(string-append
|
||||
out "/share/emacs/site-lisp/guix.d/cedille-"
|
||||
,version)))
|
||||
#t)))
|
||||
(add-after 'unpack 'copy-cedille-mode
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lisp
|
||||
(string-append
|
||||
out "/share/emacs/site-lisp/guix.d/cedille-"
|
||||
,version "/")))
|
||||
(mkdir-p (string-append lisp "cedille-mode"))
|
||||
(copy-recursively
|
||||
"cedille-mode"
|
||||
(string-append lisp "cedille-mode"))
|
||||
(mkdir-p (string-append lisp "se-mode"))
|
||||
(copy-recursively
|
||||
"se-mode"
|
||||
(string-append lisp "se-mode"))
|
||||
#t)))
|
||||
;; FIXME: Byte compilation fails
|
||||
(delete 'build)
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(with-directory-excursion "cedille-tests"
|
||||
(invoke "sh" "run-tests.sh"))))
|
||||
(add-after 'unpack 'patch-libraries
|
||||
(lambda _ (patch-shebang "create-libraries.sh") #t))
|
||||
(add-after 'unpack 'copy-ial
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(copy-recursively
|
||||
(string-append (assoc-ref inputs "agda-ial")
|
||||
"/include/agda/ial")
|
||||
"ial")
|
||||
;; Ambiguous module if main is included from ial
|
||||
(delete-file "ial/main.agda")
|
||||
#t))
|
||||
(add-after 'check 'build-cedille
|
||||
;; Agda has a hard time with parallel compilation
|
||||
(lambda _
|
||||
(invoke "touch" "src/Templates.hs")
|
||||
(make-file-writable "src/Templates.hs")
|
||||
(invoke "touch" "src/templates.agda")
|
||||
(make-file-writable "src/templates.agda")
|
||||
(invoke "make" "--jobs=1")))
|
||||
(add-after 'install 'install-cedille
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(copy-recursively
|
||||
"lib" (string-append out "/lib/cedille"))
|
||||
(install-file "cedille" (string-append out "/bin"))
|
||||
(install-file "core/cedille-core"
|
||||
(string-append out "/bin"))
|
||||
#t))))))
|
||||
(home-page "https://cedille.github.io/")
|
||||
(synopsis
|
||||
"Language based on Calculus of Dependent Lambda Eliminations")
|
||||
(description
|
||||
"Cedille is an interactive theorem-prover and dependently typed
|
||||
programming language, based on extrinsic (aka Curry-style) type theory. This
|
||||
makes it rather different from type theories like Coq and Agda, which are
|
||||
intrinsic (aka Church-style). In Cedille, terms are nothing more than
|
||||
annotated versions of terms of pure untyped lambda calculus. In contrast, in
|
||||
Coq or Agda, the typing annotations are intrinsic parts of terms. The typing
|
||||
annotations can only be erased as an optimization under certain conditions,
|
||||
not by virtue of the definition of the type theory.")
|
||||
(license license:expat)))
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue