Merge branch 'master' into core-updates
This commit is contained in:
commit
4d8f4a3f00
@ -410,6 +410,7 @@ SH_TESTS = \
|
||||
tests/guix-gc.sh \
|
||||
tests/guix-hash.sh \
|
||||
tests/guix-pack.sh \
|
||||
tests/guix-pack-localstatedir.sh \
|
||||
tests/guix-pack-relocatable.sh \
|
||||
tests/guix-package.sh \
|
||||
tests/guix-package-net.sh \
|
||||
@ -600,13 +601,11 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-daemon \
|
||||
ac_cv_guix_test_root="$(GUIX_TEST_ROOT)"
|
||||
|
||||
# The self-contained tarball. Add 'glibc-utf8-locales' along with glibc just
|
||||
# so 'etc/profile' defines 'GUIX_LOCPATH' pointing to a valid set of locales.
|
||||
# The self-contained tarball.
|
||||
guix-binary.%.tar.xz:
|
||||
$(AM_V_GEN)GUIX_PACKAGE_PATH= \
|
||||
tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \
|
||||
-s "$*" --localstatedir guix glibc-utf8-locales \
|
||||
-e '(@@ (gnu packages commencement) glibc-final)'` ; \
|
||||
-s "$*" --localstatedir --profile-name=current-guix guix` ; \
|
||||
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
|
||||
|
||||
|
||||
|
46
NEWS
46
NEWS
@ -15,11 +15,57 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
||||
|
||||
** Package management
|
||||
|
||||
*** ‘guix pull -l’ lists new and upgraded packages
|
||||
*** ‘guix pull’ now supports channels via ~/.config/guix/channels.scm
|
||||
*** New ‘--profile’ or ‘-p’ option for ‘guix pull’
|
||||
*** New ‘guix describe’ command
|
||||
*** ‘guix package’ no longer shows build logs by default
|
||||
*** ‘guix’ commands now produce colored output by default
|
||||
*** Manifests can now refer to arbitrary Guix commits using “inferiors”
|
||||
*** New ‘guix processes’ command
|
||||
*** ‘guix pack’ now honors ‘--localstatedir’ for all its backends
|
||||
*** ‘guix import pypi’ has a new ‘--recursive’ option
|
||||
*** ‘guix import hackage’ has a new ‘--recursive’ option
|
||||
*** ‘guix import stackage’ has a new ‘--recursive’ option
|
||||
The short option for ‘--lts-version’ is now ‘-l’ (used to be ‘-r’).
|
||||
*** ‘guix refresh’ now stores upstream keys in ~/.config/guix/upstream
|
||||
*** Guix now depends on Guile-Gcrypt
|
||||
|
||||
** Distribution
|
||||
|
||||
*** The GNU Shepherd was upgraded to 0.5.0
|
||||
*** ‘guix system reconfigure’ now loads Shepherd service replacements
|
||||
*** ‘herd schedule mcron’ now displays mcron’s job schedule
|
||||
*** ‘herd statistics nscd’ now displays nscd statistics
|
||||
*** ‘herd invalidate nscd TABLE’ instructs nscd to invalidate TABLE
|
||||
*** New services
|
||||
|
||||
gitolite, iptables, pcscd, prometheus-node-exporter, varnish
|
||||
|
||||
** Programming interfaces
|
||||
|
||||
*** New (guix channels) module
|
||||
*** New (guix inferior) module
|
||||
*** New (guix status) module
|
||||
*** ‘packages->manifest’ now accepts inferior packages
|
||||
*** New build systems: ‘clojure’, ‘guile’
|
||||
*** Shepherd services can now declare custom actions
|
||||
*** More of the (gnu system …) APIs are now non-monadic
|
||||
*** New ‘add-file-tree-to-store’ procedure in (guix store)
|
||||
|
||||
** Noteworthy bug fixes
|
||||
|
||||
** Native language support
|
||||
|
||||
*** The manual is now partially translated into German, in addition to French
|
||||
|
||||
To read the German manual, just type “info guix.de” or read it on-line at
|
||||
<https://gnu.org/s/guix/manual/de/html_node>. Consider translating the manual
|
||||
to your native language by joining the Translation Project:
|
||||
<https://translationproject.org/domain/guix-manual.html>.
|
||||
|
||||
*** Updated translations:
|
||||
*** New translations:
|
||||
|
||||
* Changes in 0.15.0 (since 0.14.0)
|
||||
|
||||
|
2
README
2
README
@ -24,7 +24,7 @@ GNU Guix currently depends on the following packages:
|
||||
- [[https://notabug.org/cwebber/guile-gcrypt][Guile-Gcrypt]] 0.1.0 or later
|
||||
- [[https://www.gnu.org/software/make/][GNU Make]]
|
||||
- [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled
|
||||
- [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]], version 0.1.0 or later
|
||||
- [[https://notabug.org/guile-sqlite3/guile-sqlite3][Guile-SQLite3]], version 0.1.0 or later
|
||||
- [[https://gitlab.com/guile-git/guile-git][Guile-Git]]
|
||||
- [[http://www.zlib.net/][zlib]]
|
||||
- optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command
|
||||
|
@ -499,18 +499,20 @@ archive content is independent of its creation time, thus making it
|
||||
reproducible.
|
||||
|
||||
@item
|
||||
Make @code{root}'s profile available under @file{~root/.guix-profile}:
|
||||
Make the profile available under @file{~root/.config/guix/current}, which is
|
||||
where @command{guix pull} will install updates (@pxref{Invoking guix pull}):
|
||||
|
||||
@example
|
||||
# ln -sf /var/guix/profiles/per-user/root/guix-profile \
|
||||
~root/.guix-profile
|
||||
# mkdir -p ~root/.config/guix
|
||||
# ln -sf /var/guix/profiles/per-user/root/current-guix \
|
||||
~root/.config/guix/current
|
||||
@end example
|
||||
|
||||
Source @file{etc/profile} to augment @code{PATH} and other relevant
|
||||
environment variables:
|
||||
|
||||
@example
|
||||
# GUIX_PROFILE="`echo ~root`/.guix-profile" ; \
|
||||
# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \
|
||||
source $GUIX_PROFILE/etc/profile
|
||||
@end example
|
||||
|
||||
@ -532,8 +534,8 @@ with these commands:
|
||||
@c http://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html
|
||||
|
||||
@example
|
||||
# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \
|
||||
/etc/systemd/system/
|
||||
# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
|
||||
/etc/systemd/system/
|
||||
# systemctl start guix-daemon && systemctl enable guix-daemon
|
||||
@end example
|
||||
|
||||
@ -541,14 +543,16 @@ If your host distro uses the Upstart init system:
|
||||
|
||||
@example
|
||||
# initctl reload-configuration
|
||||
# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/
|
||||
# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
|
||||
/etc/init/
|
||||
# start guix-daemon
|
||||
@end example
|
||||
|
||||
Otherwise, you can still start the daemon manually with:
|
||||
|
||||
@example
|
||||
# ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild
|
||||
# ~root/.config/guix/current/bin/guix-daemon \
|
||||
--build-users-group=guixbuild
|
||||
@end example
|
||||
|
||||
@item
|
||||
@ -558,7 +562,7 @@ for instance with:
|
||||
@example
|
||||
# mkdir -p /usr/local/bin
|
||||
# cd /usr/local/bin
|
||||
# ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix
|
||||
# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
|
||||
@end example
|
||||
|
||||
It is also a good idea to make the Info version of this manual available
|
||||
@ -567,7 +571,7 @@ there:
|
||||
@example
|
||||
# mkdir -p /usr/local/share/info
|
||||
# cd /usr/local/share/info
|
||||
# for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ;
|
||||
# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;
|
||||
do ln -s $i ; done
|
||||
@end example
|
||||
|
||||
@ -582,7 +586,8 @@ To use substitutes from @code{hydra.gnu.org} or one of its mirrors
|
||||
(@pxref{Substitutes}), authorize them:
|
||||
|
||||
@example
|
||||
# guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub
|
||||
# guix archive --authorize < \
|
||||
~root/.config/guix/current/share/guix/hydra.gnu.org.pub
|
||||
@end example
|
||||
|
||||
@item
|
||||
@ -616,7 +621,8 @@ make guix-binary.@var{system}.tar.xz
|
||||
... which, in turn, runs:
|
||||
|
||||
@example
|
||||
guix pack -s @var{system} --localstatedir guix
|
||||
guix pack -s @var{system} --localstatedir \
|
||||
--profile-name=current-guix guix
|
||||
@end example
|
||||
|
||||
@xref{Invoking guix pack}, for more info on this handy tool.
|
||||
@ -641,7 +647,7 @@ later, including 2.2.x;
|
||||
(@pxref{Guile Preparations, how to install the GnuTLS bindings for
|
||||
Guile,, gnutls-guile, GnuTLS-Guile});
|
||||
@item
|
||||
@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3}, version 0.1.0
|
||||
@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
|
||||
or later;
|
||||
@item
|
||||
@c FIXME: Specify a version number once a release has been made.
|
||||
@ -3273,7 +3279,12 @@ produce human-readable output;
|
||||
@item channels
|
||||
produce a list of channel specifications that can be passed to @command{guix
|
||||
pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking
|
||||
guix pull}).
|
||||
guix pull});
|
||||
@item json
|
||||
@cindex JSON
|
||||
produce a list of channel specifications in JSON format;
|
||||
@item recutils
|
||||
produce a list of channel specifications in Recutils format.
|
||||
@end table
|
||||
|
||||
@item --profile=@var{profile}
|
||||
@ -3483,8 +3494,11 @@ For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin}
|
||||
symlink pointing to the @file{bin} sub-directory of the profile.
|
||||
|
||||
@item --localstatedir
|
||||
Include the ``local state directory'', @file{/var/guix}, in the
|
||||
resulting pack.
|
||||
@itemx --profile-name=@var{name}
|
||||
Include the ``local state directory'', @file{/var/guix}, in the resulting
|
||||
pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}}
|
||||
profile---by default @var{name} is @code{guix-profile}, which corresponds to
|
||||
@file{~root/.guix-profile}.
|
||||
|
||||
@file{/var/guix} contains the store database (@pxref{The Store}) as well
|
||||
as garbage-collector roots (@pxref{Invoking guix gc}). Providing it in
|
||||
|
@ -7,4 +7,4 @@ start on runlevel [2345]
|
||||
|
||||
stop on runlevel [016]
|
||||
|
||||
exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild
|
||||
exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
|
||||
|
@ -6,8 +6,8 @@
|
||||
Description=Build daemon for GNU Guix
|
||||
|
||||
[Service]
|
||||
ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild
|
||||
Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale
|
||||
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
|
||||
Environment=GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale
|
||||
RemainAfterExit=yes
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
|
@ -269,12 +269,13 @@ sys_create_store()
|
||||
fi
|
||||
|
||||
_msg "${INF}Linking the root user's profile"
|
||||
ln -sf /var/guix/profiles/per-user/root/guix-profile \
|
||||
"${ROOT_HOME}/.guix-profile"
|
||||
mkdir -p "${ROOT_HOME}/.config/guix"
|
||||
ln -sf /var/guix/profiles/per-user/root/current-guix \
|
||||
"${ROOT_HOME}/.config/guix/current"
|
||||
|
||||
GUIX_PROFILE="${ROOT_HOME}/.guix-profile"
|
||||
GUIX_PROFILE="${ROOT_HOME}/.config/guix/current"
|
||||
source "${GUIX_PROFILE}/etc/profile"
|
||||
_msg "${PAS}activated root profile at /root/.guix-profile"
|
||||
_msg "${PAS}activated root profile at ${ROOT_HOME}/.config/guix/current"
|
||||
}
|
||||
|
||||
sys_create_build_user()
|
||||
@ -317,18 +318,18 @@ sys_enable_guix_daemon()
|
||||
|
||||
info_path="/usr/local/share/info"
|
||||
local_bin="/usr/local/bin"
|
||||
var_guix="/var/guix/profiles/per-user/root/guix-profile"
|
||||
var_guix="/var/guix/profiles/per-user/root/current-guix"
|
||||
|
||||
case "$INIT_SYS" in
|
||||
upstart)
|
||||
{ initctl reload-configuration;
|
||||
cp "${ROOT_HOME}/.guix-profile/lib/upstart/system/guix-daemon.conf" \
|
||||
cp "${ROOT_HOME}/.config/guix/current/lib/upstart/system/guix-daemon.conf" \
|
||||
/etc/init/ &&
|
||||
start guix-daemon; } &&
|
||||
_msg "${PAS}enabled Guix daemon via upstart"
|
||||
;;
|
||||
systemd)
|
||||
{ cp "${ROOT_HOME}/.guix-profile/lib/systemd/system/guix-daemon.service" \
|
||||
{ cp "${ROOT_HOME}/.config/guix/current/lib/systemd/system/guix-daemon.service" \
|
||||
/etc/systemd/system/;
|
||||
chmod 664 /etc/systemd/system/guix-daemon.service;
|
||||
systemctl daemon-reload &&
|
||||
@ -338,7 +339,7 @@ sys_enable_guix_daemon()
|
||||
;;
|
||||
NA|*)
|
||||
_msg "${ERR}unsupported init system; run the daemon manually:"
|
||||
echo " ${ROOT_HOME}/.guix-profile/bin/guix-daemon --build-users-group=guixbuild"
|
||||
echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -358,9 +359,9 @@ sys_authorize_build_farms()
|
||||
while true; do
|
||||
read -p "Permit downloading pre-built package binaries from the project's build farms? (yes/no) " yn
|
||||
case $yn in
|
||||
[Yy]*) guix archive --authorize < "${ROOT_HOME}/.guix-profile/share/guix/hydra.gnu.org.pub" &&
|
||||
[Yy]*) guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/hydra.gnu.org.pub" &&
|
||||
_msg "${PAS}Authorized public key for hydra.gnu.org";
|
||||
guix archive --authorize < "${ROOT_HOME}/.guix-profile/share/guix/berlin.guixsd.org.pub" &&
|
||||
guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/berlin.guixsd.org.pub" &&
|
||||
_msg "${PAS}Authorized public key for berlin.guixsd.org";
|
||||
break;;
|
||||
[Nn]*) _msg "${INF}Skipped authorizing build farm public keys"
|
||||
|
@ -9,4 +9,4 @@ stop on runlevel [016]
|
||||
|
||||
task
|
||||
|
||||
exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181
|
||||
exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
|
||||
|
@ -6,8 +6,8 @@
|
||||
Description=Publish the GNU Guix store
|
||||
|
||||
[Service]
|
||||
ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181
|
||||
Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale
|
||||
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
|
||||
Environment=GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale
|
||||
RemainAfterExit=yes
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
|
@ -32,6 +32,7 @@
|
||||
u-boot-nintendo-nes-classic-edition-bootloader
|
||||
u-boot-novena-bootloader
|
||||
u-boot-pine64-plus-bootloader
|
||||
u-boot-pinebook-bootloader
|
||||
u-boot-puma-rk3399-bootloader
|
||||
u-boot-wandboard-bootloader))
|
||||
|
||||
@ -168,6 +169,11 @@
|
||||
(inherit u-boot-allwinner64-bootloader)
|
||||
(package u-boot-pine64-plus)))
|
||||
|
||||
(define u-boot-pinebook-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner64-bootloader)
|
||||
(package u-boot-pinebook)))
|
||||
|
||||
(define u-boot-puma-rk3399-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
|
@ -1191,6 +1191,12 @@ dist_patch_DATA = \
|
||||
%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/u-boot-pinebook-a64-update-dts.patch \
|
||||
%D%/packages/patches/u-boot-pinebook-mmc-calibration.patch \
|
||||
%D%/packages/patches/u-boot-pinebook-r_i2c-controller.patch \
|
||||
%D%/packages/patches/u-boot-pinebook-dts.patch \
|
||||
%D%/packages/patches/u-boot-pinebook-syscon-node.patch \
|
||||
%D%/packages/patches/u-boot-pinebook-video-bridge.patch \
|
||||
%D%/packages/patches/unrtf-CVE-2016-10091.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8140.patch \
|
||||
|
@ -243,7 +243,7 @@ precision.")
|
||||
(define-public giac-xcas
|
||||
(package
|
||||
(name "giac-xcas")
|
||||
(version "1.4.9-59")
|
||||
(version "1.5.0-19")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; "~parisse/giac" is not used because the maintainer regularly
|
||||
@ -255,16 +255,48 @@ precision.")
|
||||
"source/giac_" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
|
||||
"0ds1zh712sr20qh0fih8jnm4nlv90andllp8n263qs7rlhblz551"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "doc")) ;77MiB of documentation
|
||||
(arguments
|
||||
`(#:phases
|
||||
`(#:modules ((ice-9 ftw)
|
||||
(guix build utils)
|
||||
(guix build gnu-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-bin-cp
|
||||
;; Some Makefiles contain hard-coded "/bin/cp".
|
||||
(lambda _
|
||||
;; Some Makefiles contain hard-coded "/bin/cp".
|
||||
(substitute* (find-files "doc" "^Makefile")
|
||||
(("/bin/cp") (which "cp")))
|
||||
#t))
|
||||
(add-after 'unpack 'disable-failing-test
|
||||
;; FIXME: Test failing. Not sure why.
|
||||
(lambda _
|
||||
(substitute* "check/Makefile.in"
|
||||
(("chk_fhan11") ""))
|
||||
#t))
|
||||
(add-after 'install 'install-doc
|
||||
;; Setting --docdir to "doc" output isn't sufficient as
|
||||
;; documentation and examples are scattered throughout the source.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc"))
|
||||
(docdir (string-append doc
|
||||
"/share/doc/"
|
||||
(string-append ,name "-" ,version))))
|
||||
;; For some reason, the install process moves
|
||||
;; "share/giac/examples" instead of "share/giac/doc" to
|
||||
;; "$(docdir)". Clean up the mess and start over.
|
||||
(delete-file-recursively (string-append doc "/share"))
|
||||
(mkdir-p docdir)
|
||||
(with-directory-excursion out
|
||||
(for-each (lambda (f)
|
||||
(unless (member f '("." ".."))
|
||||
(copy-recursively (string-append "share/giac/" f)
|
||||
(string-append docdir "/" f))))
|
||||
(scandir "share/giac"))
|
||||
(delete-file-recursively "share/giac")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("fltk" ,fltk)
|
||||
|
@ -2180,7 +2180,7 @@ background file post-processing.")
|
||||
(define-public supercollider
|
||||
(package
|
||||
(name "supercollider")
|
||||
(version "3.9.2")
|
||||
(version "3.9.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -2189,7 +2189,7 @@ background file post-processing.")
|
||||
"/SuperCollider-" version "-Source-linux.tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d3cb6dw8jz7ijriqn3rlwin24gffczp69hl17pzxj1d5w57yj44"))))
|
||||
"1d8ixfl100jvlialxdizp8wqsl1mp5pi2bam25vp97bhjd59cfdr"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
|
||||
|
@ -8,6 +8,7 @@
|
||||
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -42,6 +43,7 @@
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnupg)
|
||||
@ -54,6 +56,7 @@
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
@ -371,17 +374,17 @@ and will take advantage of multiple processor cores where possible.")
|
||||
(define-public libtorrent-rasterbar
|
||||
(package
|
||||
(name "libtorrent-rasterbar")
|
||||
(version "1.1.8")
|
||||
(version "1.1.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://github.com/arvidn/libtorrent/releases/download/libtorrent-"
|
||||
"https://github.com/arvidn/libtorrent/releases/download/libtorrent_"
|
||||
(string-join (string-split version #\.) "_")
|
||||
"/libtorrent-rasterbar-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pcdy26l5ivcs78y2bqh2qca83ikzjfchw5815xh69qf8g88zgvb"))))
|
||||
"0isqidr11fnhybr0wvk0qxd97jaikmh8fx9h89b84yd2gyxdw8vw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@ -393,7 +396,18 @@ and will take advantage of multiple processor cores where possible.")
|
||||
"CXXFLAGS=-std=c++11") ; Use std::chrono instead of boost
|
||||
#:make-flags (list
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))))
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'compile-python-c++11
|
||||
(lambda _
|
||||
;; Make sure the Python bindings are compiled in C++ mode to
|
||||
;; avoid undefined references as mentioned in
|
||||
;; <https://github.com/qbittorrent/qBittorrent/issues/638>.
|
||||
;; XXX: This can be removed for 1.2+.
|
||||
(substitute* "bindings/python/setup.py"
|
||||
(("\\+ target_specific\\(\\)\\,")
|
||||
"+ target_specific() + ['-std=c++11'],"))
|
||||
#t)))))
|
||||
(inputs `(("boost" ,boost)
|
||||
("openssl" ,openssl)))
|
||||
(native-inputs `(("python" ,python-2)
|
||||
@ -448,3 +462,40 @@ It aims to be a good alternative to all other BitTorrent clients out there.
|
||||
qBittorrent is fast, stable and provides unicode support as well as many
|
||||
features.")
|
||||
(license l:gpl2+)))
|
||||
|
||||
(define-public deluge
|
||||
(package
|
||||
(name "deluge")
|
||||
(version "1.3.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://download.deluge-torrent.org/source/deluge-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b7rri4x0wrcj7rjghrnw1kfrsd5i7i6aq85dsg5dg1w1qa0ar59"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("libtorrent" ,libtorrent-rasterbar)
|
||||
("python2-chardet" ,python2-chardet)
|
||||
("python2-pygtk" ,python2-pygtk)
|
||||
("python2-pyopenssl" ,python2-pyopenssl)
|
||||
("python2-pyxdg" ,python2-pyxdg)
|
||||
("python2-service-identity" ,python2-service-identity)
|
||||
("python2-twisted" ,python2-twisted)))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)))
|
||||
(arguments
|
||||
`(#:python ,python-2))
|
||||
(home-page "https://www.deluge-torrent.org/")
|
||||
(synopsis "Fully-featured cross-platform BitTorrent client")
|
||||
(description
|
||||
"Deluge contains the common features to BitTorrent clients such as
|
||||
Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange
|
||||
(PEX), UPnP, NAT-PMP, Proxy support, Web seeds, global and per-torrent
|
||||
speed limits. Deluge heavily utilises the libtorrent library. It is
|
||||
designed to run as both a normal standalone desktop application and as a
|
||||
client-server.")
|
||||
(license l:gpl3+)))
|
||||
|
@ -580,6 +580,22 @@ board-independent tools.")))
|
||||
(define-public u-boot-pine64-plus
|
||||
(make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu"))
|
||||
|
||||
(define-public u-boot-pinebook
|
||||
(let ((base (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu")))
|
||||
(package
|
||||
(inherit base)
|
||||
(source (origin
|
||||
(inherit (package-source u-boot))
|
||||
(patches (search-patches
|
||||
;; Add patches to enable Pinebook support from sunxi
|
||||
;; maintainer tree: git://git.denx.de/u-boot-sunxi.git
|
||||
"u-boot-pinebook-a64-update-dts.patch"
|
||||
"u-boot-pinebook-syscon-node.patch"
|
||||
"u-boot-pinebook-mmc-calibration.patch"
|
||||
"u-boot-pinebook-video-bridge.patch"
|
||||
"u-boot-pinebook-r_i2c-controller.patch"
|
||||
"u-boot-pinebook-dts.patch")))))))
|
||||
|
||||
(define-public u-boot-bananapi-m2-ultra
|
||||
(make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf"))
|
||||
|
||||
|
@ -811,6 +811,29 @@ different tools. It highlights errors and warnings inline in the buffer, and
|
||||
provides an optional IDE-like error list.")
|
||||
(license license:gpl3+))) ;+GFDLv1.3+ for the manual
|
||||
|
||||
(define-public emacs-a
|
||||
(package
|
||||
(name "emacs-a")
|
||||
(version "0.1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/plexus/a.el.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/plexus/a.el/")
|
||||
(synopsis
|
||||
"Emacs library for dealing with association lists and hash tables")
|
||||
(description "@code{emacs-a} provides Emacs Lisp functions for dealing
|
||||
with associative structures in a uniform and functional way. These functions
|
||||
can take association lists, hash tables, and in some cases vectors (where the
|
||||
index is considered the key).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Web browsing.
|
||||
@ -7744,6 +7767,22 @@ activity in channels in the status bar so it stays out of your way unless you
|
||||
want to use it.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-tracking
|
||||
(package
|
||||
(inherit emacs-circe)
|
||||
(name "emacs-tracking")
|
||||
(arguments
|
||||
;; "tracking.el" is a library extracted from Circe package. It requires
|
||||
;; "shorten.el".
|
||||
`(#:include '("^shorten.el$" "^tracking.el$")
|
||||
#:tests? #f)) ;tests require buttercup
|
||||
(home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
|
||||
(synopsis "Buffer tracking library")
|
||||
(description "@code{tracking.el} provides a way for different modes to
|
||||
notify the user that a buffer needs attention. The user then can cycle
|
||||
through them using @key{C-c C-SPC}.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-slack
|
||||
(let ((commit "d90395482d26175ce38fd935e978c428be8af9a0")
|
||||
(revision "4"))
|
||||
@ -11737,8 +11776,8 @@ file.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-picpocket
|
||||
(let ((version "20180610.1059") ; taken from melpa
|
||||
(commit "ce4b6ed088384f2414af82e8e4eae5b92c2874bf"))
|
||||
(let ((version "40")
|
||||
(commit "6fd88b8711c4370662c0f9c462170187d092a046"))
|
||||
(package
|
||||
(name "emacs-picpocket")
|
||||
(version version)
|
||||
@ -11750,7 +11789,7 @@ file.")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "15vpbcv83mc4j1pvrk7xic0klh2bl9gzg2xxs7c2lmnix52hy8mv"))))
|
||||
(base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments ; needed for running tests
|
||||
`(#:tests? #t
|
||||
@ -12570,3 +12609,55 @@ customized. In addition to C code development @command{gtk-look} is good for
|
||||
classes like @command{<gtk-window>}.
|
||||
@end itemize\n")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ov
|
||||
(package
|
||||
(name "emacs-ov")
|
||||
(version "1.0.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ShingoFukuyama/ov.el.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/ShingoFukuyama/ov.el")
|
||||
(synopsis "Overlay library for Emacs Lisp")
|
||||
(description "@code{ov.el} provides a simple way to manipulate overlays in
|
||||
Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-matrix-client
|
||||
(let ((commit "3eab4c28280feff18ee1ddd7db66ada4f135cbf8"))
|
||||
(package
|
||||
(name "emacs-matrix-client")
|
||||
(version (git-version "0.0.0" "1" commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jgkamat/matrix-client-el.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1k6721jz0m22vpb78881k087mpx8hf3s2219ic75v5mhgx355f7m"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("a" ,emacs-a)
|
||||
("dash" ,emacs-dash)
|
||||
("esxml" ,emacs-esxml)
|
||||
("f" ,emacs-f)
|
||||
("ht" ,emacs-ht)
|
||||
("ov" ,emacs-ov)
|
||||
("request" ,emacs-request)
|
||||
("s" ,emacs-s)
|
||||
("tracking" ,emacs-tracking)))
|
||||
(home-page "https://github.com/jgkamat/matrix-client-el")
|
||||
(synopsis "Matrix client for Emacs")
|
||||
(description "@code{matrix-client} is a simple chat UI to Matrix.org
|
||||
rooms. It also provides an API which allows Emacs to seamlessly create
|
||||
RPC channels with users and other software.")
|
||||
(license license:gpl3+))))
|
||||
|
@ -533,8 +533,13 @@ statistical profiler, a code coverage tool, and many other extensions.")
|
||||
(install-file kernel libdir)
|
||||
(install-file heap libdir)
|
||||
|
||||
(let ((dirs '("lib" "library" "examples" "contrib"
|
||||
"tools" "objc-bridge")))
|
||||
(let ((dirs '("lib" "library" "examples" "tools" "objc-bridge"
|
||||
,@(match (%current-system)
|
||||
("x86_64-linux"
|
||||
'("x86-headers64"))
|
||||
("i686-linux"
|
||||
'("x86-headers"))
|
||||
(_ '())))))
|
||||
(for-each copy-recursively
|
||||
dirs
|
||||
(map (cut string-append libdir <>) dirs)))
|
||||
@ -545,13 +550,12 @@ statistical profiler, a code coverage tool, and many other extensions.")
|
||||
(display
|
||||
(string-append
|
||||
"#!" bash "/bin/sh\n"
|
||||
"CCL_DEFAULT_DIRECTORY=" libdir "\n"
|
||||
"export CCL_DEFAULT_DIRECTORY\n"
|
||||
"exec " libdir kernel "\n"))))
|
||||
"export CCL_DEFAULT_DIRECTORY=" libdir "\n"
|
||||
"exec -a \"$0\" " libdir kernel " \"$@\"\n"))))
|
||||
(chmod wrapper #o755))
|
||||
#t)))))
|
||||
(supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
|
||||
(home-page "http://ccl.clozure.com/")
|
||||
(home-page "https://ccl.clozure.com/")
|
||||
(synopsis "Common Lisp implementation")
|
||||
(description "Clozure CL (often called CCL for short) is a Common Lisp
|
||||
implementation featuring fast compilation speed, native threads, a precise,
|
||||
|
@ -1655,7 +1655,7 @@ September 2004}")
|
||||
(define-public petsc
|
||||
(package
|
||||
(name "petsc")
|
||||
(version "3.9.3")
|
||||
(version "3.10.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -1663,7 +1663,7 @@ September 2004}")
|
||||
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
|
||||
"petsc-lite-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1fwkbwv4g7zf2lc8fw865xd0bl9anb6jaczfis5dff7h449gwa48"))))
|
||||
(base32 "0bl64pydak3rblnjffi482r8bin4xim9sb37ksl2jkcxf0i0irsi"))))
|
||||
(outputs '("out" ;libraries and headers
|
||||
"examples")) ;~30MiB of examples
|
||||
(build-system gnu-build-system)
|
||||
@ -1812,14 +1812,14 @@ scientific applications modeled by partial differential equations.")
|
||||
(define-public python-petsc4py
|
||||
(package
|
||||
(name "python-petsc4py")
|
||||
(version "3.9.1")
|
||||
(version "3.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "petsc4py" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f8zd1ac9irsgkyqmzq30d9kl10fy1nh6zk312dhs43g449fkkhc"))))
|
||||
"0ch3g6dsvxl7qi984fcssv7cxfbif4bw04gkvxl2l1b8wrmvrm25"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -1871,7 +1871,7 @@ savings are consistently > 5x.")
|
||||
(define-public slepc
|
||||
(package
|
||||
(name "slepc")
|
||||
(version "3.9.2")
|
||||
(version "3.10.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -1879,7 +1879,7 @@ savings are consistently > 5x.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gmhdqac8zm3jx43h935z7bflazjnpvqxjv4jh5za2y1z2rqax94"))))
|
||||
"188j1a133q91h8pivpnzwcf78kz8dvz2nzf6ndnjygdbqb48fizn"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2)))
|
||||
@ -1978,14 +1978,14 @@ arising after the discretization of partial differential equations.")
|
||||
(define-public python-slepc4py
|
||||
(package
|
||||
(name "python-slepc4py")
|
||||
(version "3.9.0")
|
||||
(version "3.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "slepc4py" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02xr0vndgibgkz3rgprqk05n3mk5mpgqw550sr4681vcsgz4zvb7"))))
|
||||
"0x049dyc8frgh79fvvavf4vlbqp4mgm61nsaivzdav4316vvlv1j"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -588,7 +588,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
|
||||
`(#:test-target "test_nogui"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'wrap-program
|
||||
(add-after 'install 'wrap-gi-typelib-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(for-each
|
||||
@ -616,7 +616,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
|
||||
(symlink adwaita "Adwaita")
|
||||
(copy-recursively hicolor "hicolor")))
|
||||
#t))
|
||||
(add-after 'install-icons 'wrap-program
|
||||
(add-after 'install-icons 'wrap-gsettings-schema-dir
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
"/bin/gajim")
|
||||
|
1485
gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch
Normal file
1485
gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch
Normal file
File diff suppressed because it is too large
Load Diff
388
gnu/packages/patches/u-boot-pinebook-dts.patch
Normal file
388
gnu/packages/patches/u-boot-pinebook-dts.patch
Normal file
@ -0,0 +1,388 @@
|
||||
From b972831c3cd24f3c9bb0995ed61db8f8239f3391 Mon Sep 17 00:00:00 2001
|
||||
From: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Date: Mon, 5 Nov 2018 20:24:31 -0800
|
||||
Subject: [PATCH 10/13] sunxi: DT: add support for Pinebook
|
||||
|
||||
Pinebook is a laptop produced by Pine64, with USB-connected keyboard,
|
||||
USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP
|
||||
bridge from Analogix.
|
||||
|
||||
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Cc: Vagrant Cascadian <vagrant@debian.org>
|
||||
Reviewed-by: Jagan Teki <jagan@openedev.com>
|
||||
---
|
||||
arch/arm/dts/Makefile | 1 +
|
||||
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 ++
|
||||
arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++++++++++++
|
||||
configs/pinebook_defconfig | 22 ++
|
||||
4 files changed, 332 insertions(+)
|
||||
create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
|
||||
create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
|
||||
create mode 100644 configs/pinebook_defconfig
|
||||
|
||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
||||
index 3093c1185e..eae6b9ee5d 100644
|
||||
--- a/arch/arm/dts/Makefile
|
||||
+++ b/arch/arm/dts/Makefile
|
||||
@@ -406,6 +406,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
|
||||
sun50i-a64-orangepi-win.dtb \
|
||||
sun50i-a64-pine64-plus.dtb \
|
||||
sun50i-a64-pine64.dtb \
|
||||
+ sun50i-a64-pinebook.dtb \
|
||||
sun50i-a64-sopine-baseboard.dtb
|
||||
dtb-$(CONFIG_MACH_SUN9I) += \
|
||||
sun9i-a80-optimus.dtb \
|
||||
diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
|
||||
new file mode 100644
|
||||
index 0000000000..a99b7171d0
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
|
||||
@@ -0,0 +1,15 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/* The ANX6345 eDP-bridge is on r_i2c */
|
||||
+&r_i2c {
|
||||
+ anx6345: edp-bridge@38 {
|
||||
+ compatible = "analogix,anx6345";
|
||||
+ reg = <0x38>;
|
||||
+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts
|
||||
new file mode 100644
|
||||
index 0000000000..ec537c5297
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/sun50i-a64-pinebook.dts
|
||||
@@ -0,0 +1,294 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
|
||||
+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64.dtsi"
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+#include <dt-bindings/pwm/pwm.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "Pinebook";
|
||||
+ compatible = "pine64,pinebook", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ ethernet0 = &rtl8723cs;
|
||||
+ };
|
||||
+
|
||||
+ vdd_bl: regulator@0 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "bl-3v3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ backlight: backlight {
|
||||
+ compatible = "pwm-backlight";
|
||||
+ pwms = <&pwm 0 50000 0>;
|
||||
+ brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
|
||||
+ default-brightness-level = <2>;
|
||||
+ enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
|
||||
+ power-supply = <&vdd_bl>;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+
|
||||
+ framebuffer-lcd {
|
||||
+ panel-supply = <®_dc1sw>;
|
||||
+ dvdd25-supply = <®_dldo2>;
|
||||
+ dvdd12-supply = <®_fldo1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gpio_keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+
|
||||
+ lid_switch {
|
||||
+ label = "Lid Switch";
|
||||
+ gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
|
||||
+ linux,input-type = <EV_SW>;
|
||||
+ linux,code = <SW_LID>;
|
||||
+ linux,can-disable;
|
||||
+ wakeup-source;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ reg_vcc3v3: vcc3v3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc3v3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi_pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ phys = <&usbphy 0>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&mmc0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc0_pins>;
|
||||
+ vmmc-supply = <®_dcdc1>;
|
||||
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
+ disable-wp;
|
||||
+ bus-width = <4>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&mmc1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins>;
|
||||
+ vmmc-supply = <®_dldo4>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ rtl8723cs: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
|
||||
+ vmmc-supply = <®_dcdc1>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ bus-width = <8>;
|
||||
+ non-removable;
|
||||
+ cap-mmc-hw-reset;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ phys = <&usbphy 0>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&r_rsb {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ axp803: pmic@3a3 {
|
||||
+ compatible = "x-powers,axp803";
|
||||
+ reg = <0x3a3>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* The ANX6345 eDP-bridge is on r_i2c */
|
||||
+&r_i2c {
|
||||
+ clock-frequency = <100000>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&r_i2c_pl89_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+#include "axp803.dtsi"
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <2800000>;
|
||||
+ regulator-name = "vcc-csi";
|
||||
+};
|
||||
+
|
||||
+®_aldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-pl";
|
||||
+};
|
||||
+
|
||||
+®_aldo3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <2700000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-pll-avcc";
|
||||
+};
|
||||
+
|
||||
+®_dc1sw {
|
||||
+ regulator-name = "vcc-lcd";
|
||||
+};
|
||||
+
|
||||
+®_dcdc1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-3v3";
|
||||
+};
|
||||
+
|
||||
+®_dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+};
|
||||
+
|
||||
+/* DCDC3 is polyphased with DCDC2 */
|
||||
+
|
||||
+®_dcdc5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
+ regulator-name = "vcc-dram";
|
||||
+};
|
||||
+
|
||||
+®_dcdc6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-sys";
|
||||
+};
|
||||
+
|
||||
+®_dldo1 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-hdmi";
|
||||
+};
|
||||
+
|
||||
+®_dldo2 {
|
||||
+ regulator-min-microvolt = <2500000>;
|
||||
+ regulator-max-microvolt = <2500000>;
|
||||
+ regulator-name = "vcc-edp";
|
||||
+};
|
||||
+
|
||||
+®_dldo3 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "avdd-csi";
|
||||
+};
|
||||
+
|
||||
+®_dldo4 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-wifi";
|
||||
+};
|
||||
+
|
||||
+®_eldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "cpvdd";
|
||||
+};
|
||||
+
|
||||
+®_eldo3 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vdd-1v8-csi";
|
||||
+};
|
||||
+
|
||||
+®_fldo1 {
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
+ regulator-name = "vcc-1v2-hsic";
|
||||
+};
|
||||
+
|
||||
+®_fldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-cpus";
|
||||
+};
|
||||
+
|
||||
+®_ldo_io0 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-usb";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_rtc_ldo {
|
||||
+ regulator-name = "vcc-rtc";
|
||||
+};
|
||||
+
|
||||
+&simplefb_hdmi {
|
||||
+ vcc-hdmi-supply = <®_dldo1>;
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pb_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "host";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_vbus-supply = <®_ldo_io0>;
|
||||
+ usb1_vbus-supply = <®_ldo_io0>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig
|
||||
new file mode 100644
|
||||
index 0000000000..5294dbd2eb
|
||||
--- /dev/null
|
||||
+++ b/configs/pinebook_defconfig
|
||||
@@ -0,0 +1,22 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_ARCH_SUNXI=y
|
||||
+CONFIG_SPL=y
|
||||
+CONFIG_MACH_SUN50I=y
|
||||
+CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
|
||||
+CONFIG_DRAM_CLK=552
|
||||
+CONFIG_DRAM_ZQ=3881949
|
||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
+CONFIG_R_I2C_ENABLE=y
|
||||
+# CONFIG_CMD_FLASH is not set
|
||||
+# CONFIG_SPL_DOS_PARTITION is not set
|
||||
+# CONFIG_SPL_EFI_PARTITION is not set
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook"
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DM_PWM=y
|
||||
+CONFIG_PWM_SUNXI=y
|
||||
+CONFIG_USB_EHCI_HCD=y
|
||||
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
|
||||
+# CONFIG_USB_GADGET is not set
|
||||
+CONFIG_VIDEO_BRIDGE=y
|
||||
+CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
|
||||
--
|
||||
2.11.0
|
||||
|
98
gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch
Normal file
98
gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch
Normal file
@ -0,0 +1,98 @@
|
||||
From 20940ef2a397446a209350900d3bd618c3fd5b94 Mon Sep 17 00:00:00 2001
|
||||
From: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Date: Mon, 5 Nov 2018 20:24:28 -0800
|
||||
Subject: [PATCH 07/13] mmc: sunxi: add support for automatic delay calibration
|
||||
|
||||
A64 and H6 support automatic delay calibration and Linux driver uses it
|
||||
instead of hardcoded delays. Add support for it to u-boot driver.
|
||||
|
||||
Fixes eMMC instability on Pinebook
|
||||
|
||||
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
|
||||
Cc: Vagrant Cascadian <vagrant@debian.org>
|
||||
Reviewed-by: Jagan Teki <jagan@openedev.com>
|
||||
---
|
||||
arch/arm/include/asm/arch-sunxi/mmc.h | 6 +++++-
|
||||
drivers/mmc/sunxi_mmc.c | 21 ++++++++++++++++++++-
|
||||
2 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h
|
||||
index d98c53faaa..f2deafddd2 100644
|
||||
--- a/arch/arm/include/asm/arch-sunxi/mmc.h
|
||||
+++ b/arch/arm/include/asm/arch-sunxi/mmc.h
|
||||
@@ -46,7 +46,9 @@ struct sunxi_mmc {
|
||||
u32 cbda; /* 0x94 */
|
||||
u32 res2[26];
|
||||
#if defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
|
||||
- u32 res3[64];
|
||||
+ u32 res3[17];
|
||||
+ u32 samp_dl;
|
||||
+ u32 res4[46];
|
||||
#endif
|
||||
u32 fifo; /* 0x100 / 0x200 FIFO access address */
|
||||
};
|
||||
@@ -130,5 +132,7 @@ struct sunxi_mmc {
|
||||
#define SUNXI_MMC_COMMON_CLK_GATE (1 << 16)
|
||||
#define SUNXI_MMC_COMMON_RESET (1 << 18)
|
||||
|
||||
+#define SUNXI_MMC_CAL_DL_SW_EN (0x1 << 7)
|
||||
+
|
||||
struct mmc *sunxi_mmc_init(int sdc_no);
|
||||
#endif /* _SUNXI_MMC_H */
|
||||
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
|
||||
index 39f15eb423..147eb9b4d5 100644
|
||||
--- a/drivers/mmc/sunxi_mmc.c
|
||||
+++ b/drivers/mmc/sunxi_mmc.c
|
||||
@@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
|
||||
{
|
||||
unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly;
|
||||
bool new_mode = false;
|
||||
+ bool calibrate = false;
|
||||
u32 val = 0;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2))
|
||||
new_mode = true;
|
||||
|
||||
+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
|
||||
+ calibrate = true;
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* The MMC clock has an extra /2 post-divider when operating in the new
|
||||
* mode.
|
||||
@@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
|
||||
val = CCM_MMC_CTRL_MODE_SEL_NEW;
|
||||
setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW);
|
||||
#endif
|
||||
- } else {
|
||||
+ } else if (!calibrate) {
|
||||
+ /*
|
||||
+ * Use hardcoded delay values if controller doesn't support
|
||||
+ * calibration
|
||||
+ */
|
||||
val = CCM_MMC_CTRL_OCLK_DLY(oclk_dly) |
|
||||
CCM_MMC_CTRL_SCLK_DLY(sclk_dly);
|
||||
}
|
||||
@@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *priv, struct mmc *mmc)
|
||||
rval &= ~SUNXI_MMC_CLK_DIVIDER_MASK;
|
||||
writel(rval, &priv->reg->clkcr);
|
||||
|
||||
+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
|
||||
+ /* A64 supports calibration of delays on MMC controller and we
|
||||
+ * have to set delay of zero before starting calibration.
|
||||
+ * Allwinner BSP driver sets a delay only in the case of
|
||||
+ * using HS400 which is not supported by mainline U-Boot or
|
||||
+ * Linux at the moment
|
||||
+ */
|
||||
+ writel(SUNXI_MMC_CAL_DL_SW_EN, &priv->reg->samp_dl);
|
||||
+#endif
|
||||
+
|
||||
/* Re-enable Clock */
|
||||
rval |= SUNXI_MMC_CLK_ENABLE;
|
||||
writel(rval, &priv->reg->clkcr);
|
||||
--
|
||||
2.11.0
|
||||
|
70
gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch
Normal file
70
gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch
Normal file
@ -0,0 +1,70 @@
|
||||
From 31a4ac4d79d75baeede3edfa95515fd4169ef502 Mon Sep 17 00:00:00 2001
|
||||
From: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Date: Mon, 5 Nov 2018 20:24:30 -0800
|
||||
Subject: [PATCH 09/13] sun50i: A64: add support for R_I2C controller
|
||||
|
||||
Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has
|
||||
two groups of pinmuxes on PL bank, so it's called R_I2C.
|
||||
|
||||
Add support for this I2C controller and the pinmux which doesn't conflict
|
||||
with RSB.
|
||||
|
||||
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Cc: Vagrant Cascadian <vagrant@debian.org>
|
||||
Acked-by: Jagan Teki <jagan@openedev.com>
|
||||
---
|
||||
arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
|
||||
arch/arm/mach-sunxi/Kconfig | 1 +
|
||||
board/sunxi/board.c | 6 ++++++
|
||||
3 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
|
||||
index 6a5eafc3d3..2daf23f6f5 100644
|
||||
--- a/arch/arm/include/asm/arch-sunxi/gpio.h
|
||||
+++ b/arch/arm/include/asm/arch-sunxi/gpio.h
|
||||
@@ -211,6 +211,7 @@ enum sunxi_gpio_number {
|
||||
#define SUN8I_H3_GPL_R_TWI 2
|
||||
#define SUN8I_A23_GPL_R_TWI 3
|
||||
#define SUN8I_GPL_R_UART 2
|
||||
+#define SUN50I_GPL_R_TWI 2
|
||||
|
||||
#define SUN9I_GPN_R_RSB 3
|
||||
|
||||
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
|
||||
index 6277abc3cc..560dc9b25d 100644
|
||||
--- a/arch/arm/mach-sunxi/Kconfig
|
||||
+++ b/arch/arm/mach-sunxi/Kconfig
|
||||
@@ -278,6 +278,7 @@ config MACH_SUN50I
|
||||
select ARM64
|
||||
select DM_I2C
|
||||
select PHY_SUN4I_USB
|
||||
+ select SUN6I_PRCM
|
||||
select SUNXI_DE2
|
||||
select SUNXI_GEN_SUN6I
|
||||
select SUPPORT_SPL
|
||||
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
|
||||
index b196d48674..64ccbc7245 100644
|
||||
--- a/board/sunxi/board.c
|
||||
+++ b/board/sunxi/board.c
|
||||
@@ -168,10 +168,16 @@ void i2c_init_board(void)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_R_I2C_ENABLE
|
||||
+#ifdef CONFIG_MACH_SUN50I
|
||||
+ clock_twi_onoff(5, 1);
|
||||
+ sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI);
|
||||
+ sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI);
|
||||
+#else
|
||||
clock_twi_onoff(5, 1);
|
||||
sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
|
||||
sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT)
|
||||
--
|
||||
2.11.0
|
||||
|
38
gnu/packages/patches/u-boot-pinebook-syscon-node.patch
Normal file
38
gnu/packages/patches/u-boot-pinebook-syscon-node.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From ababb5920e8992c9bb7956df3cc85dc68d27dfe8 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Przywara <andre.przywara@arm.com>
|
||||
Date: Mon, 29 Oct 2018 00:56:48 +0000
|
||||
Subject: [PATCH 04/13] sunxi: A64: Re-add syscon to DT node
|
||||
|
||||
The sun50i-a64.dtsi changes introduced in Linux v4.19-rc1 changed the
|
||||
compatible name for the syscon controller, dropping the generic "syscon"
|
||||
fallback. Using this new DT node will make the Ethernet driver in every
|
||||
older kernel (or non-Linux kernels) fail to initialise the MAC device.
|
||||
|
||||
To allow booting distribution kernels (from installer images via UEFI,
|
||||
for instance), re-add the syscon compatible string as a fallback. This
|
||||
works with both older and newer kernels.
|
||||
|
||||
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Reviewed-by: Jagan Teki <jagan@openedev.com>
|
||||
---
|
||||
arch/arm/dts/sun50i-a64.dtsi | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi
|
||||
index f3a66f8882..ff41abc96a 100644
|
||||
--- a/arch/arm/dts/sun50i-a64.dtsi
|
||||
+++ b/arch/arm/dts/sun50i-a64.dtsi
|
||||
@@ -259,7 +259,8 @@
|
||||
};
|
||||
|
||||
syscon: syscon@1c00000 {
|
||||
- compatible = "allwinner,sun50i-a64-system-control";
|
||||
+ compatible = "allwinner,sun50i-a64-system-control",
|
||||
+ "syscon";
|
||||
reg = <0x01c00000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
--
|
||||
2.11.0
|
||||
|
50
gnu/packages/patches/u-boot-pinebook-video-bridge.patch
Normal file
50
gnu/packages/patches/u-boot-pinebook-video-bridge.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 8336a43792a103c13d939b3925cb75322911f7fb Mon Sep 17 00:00:00 2001
|
||||
From: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Date: Mon, 5 Nov 2018 20:24:29 -0800
|
||||
Subject: [PATCH 08/13] dm: video: bridge: don't fail to activate bridge if
|
||||
reset or sleep GPIO is missing
|
||||
|
||||
Both GPIOs are optional, so we shouldn't fail if any is missing.
|
||||
Without this fix reset is not deasserted if sleep GPIO is missing.
|
||||
|
||||
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
|
||||
Cc: Vagrant Cascadian <vagrant@debian.org>
|
||||
---
|
||||
drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++-----
|
||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/bridge/video-bridge-uclass.c
|
||||
index cd4959cc71..5fecb4cfd5 100644
|
||||
--- a/drivers/video/bridge/video-bridge-uclass.c
|
||||
+++ b/drivers/video/bridge/video-bridge-uclass.c
|
||||
@@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *dev)
|
||||
int video_bridge_set_active(struct udevice *dev, bool active)
|
||||
{
|
||||
struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev);
|
||||
- int ret;
|
||||
+ int ret = 0;
|
||||
|
||||
debug("%s: %d\n", __func__, active);
|
||||
- ret = dm_gpio_set_value(&uc_priv->sleep, !active);
|
||||
- if (ret)
|
||||
- return ret;
|
||||
- if (active) {
|
||||
+ if (uc_priv->sleep.dev) {
|
||||
+ ret = dm_gpio_set_value(&uc_priv->sleep, !active);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ if (!active)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (uc_priv->reset.dev) {
|
||||
ret = dm_gpio_set_value(&uc_priv->reset, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
--
|
||||
2.11.0
|
||||
|
@ -69,14 +69,14 @@
|
||||
(define-public libraw
|
||||
(package
|
||||
(name "libraw")
|
||||
(version "0.19.0")
|
||||
(version "0.19.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.libraw.org/data/LibRaw-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nfj7s7qmgfy1cl8s3ck7dxjvprfq5glfi6iidmvmy8r7gl52gz8"))))
|
||||
"1xjyw4n9gfr2r637pjbpbi3h98h9mdjn61b0hsxwqynq2vdij452"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -18,6 +18,7 @@
|
||||
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
|
||||
;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -970,3 +971,33 @@ been constructed to maintain extensive documentation on how to use
|
||||
(description "This is a set of Python bindings for the scrypt key
|
||||
derivation function.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python-service-identity
|
||||
(package
|
||||
(name "python-service-identity")
|
||||
(version "17.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "service_identity" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1aq24cn3nnsjr9g797dayhx4g653h6bd41ksqhidzq0rvarzn0a0"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-attrs" ,python-attrs)
|
||||
("python-pyasn1" ,python-pyasn1)
|
||||
("python-pyasn1-modules" ,python-pyasn1-modules)
|
||||
("python-pyopenssl" ,python-pyopenssl)))
|
||||
(home-page "https://service-identity.readthedocs.io/")
|
||||
(synopsis "Service identity verification for PyOpenSSL")
|
||||
(description
|
||||
"@code{service_identity} aspires to give you all the tools you need
|
||||
for verifying whether a certificate is valid for the intended purposes.
|
||||
In the simplest case, this means host name verification. However,
|
||||
service_identity implements RFC 6125 fully and plans to add other
|
||||
relevant RFCs too.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-service-identity
|
||||
(package-with-python2 python-service-identity))
|
||||
|
@ -14610,14 +14610,14 @@ run on top of the dynamic task schedulers. ")
|
||||
(define-public python-ilinkedlist
|
||||
(package
|
||||
(name "python-ilinkedlist")
|
||||
(version "0.3.1")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "ilinkedlist" version))
|
||||
(sha256
|
||||
(base32
|
||||
"04wpv7km8jggrngc4bjg3nm615czd3bjdvpsy2icg6c1c8162zyg"))))
|
||||
"0nrw4sr3afldrp7073hvc0rgdz282s0l819jdmj1i6nn05v33h0l"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs `(("python-pytest" ,python-pytest)))
|
||||
(inputs `(("python" ,python)))
|
||||
|
@ -5962,7 +5962,7 @@ basic eye-candy effects.")
|
||||
(define-public xpra
|
||||
(package
|
||||
(name "xpra")
|
||||
(version "2.4.1")
|
||||
(version "2.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -5970,7 +5970,7 @@ basic eye-candy effects.")
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bhk6vydsrhlngvrv5w55arqf69cr3yw84xscnnl7km2g1iswkrs"))))
|
||||
"01x4ri0arfq9cn01bh80h232lsj95jp6j1zw0z0q7a6mwrw4gr6i"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("ffmpeg" ,ffmpeg)
|
||||
("flac" ,flac)
|
||||
|
@ -53,6 +53,7 @@
|
||||
nintendo-nes-classic-edition-installation-os
|
||||
novena-installation-os
|
||||
pine64-plus-installation-os
|
||||
pinebook-installation-os
|
||||
rk3399-puma-installation-os
|
||||
wandboard-installation-os
|
||||
os-with-u-boot))
|
||||
@ -473,6 +474,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET."
|
||||
"/dev/mmcblk0" ; SD card storage
|
||||
"ttyS0"))
|
||||
|
||||
(define pinebook-installation-os
|
||||
(embedded-installation-os u-boot-pinebook-bootloader
|
||||
"/dev/mmcblk0" ; SD card storage
|
||||
"ttyS0"))
|
||||
|
||||
(define rk3399-puma-installation-os
|
||||
(embedded-installation-os u-boot-puma-rk3399-bootloader
|
||||
"/dev/mmcblk0" ; SD card storage
|
||||
|
@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -18,11 +19,13 @@
|
||||
|
||||
(define-module (guix scripts describe)
|
||||
#:use-module ((guix ui) #:hide (display-profile-content))
|
||||
#:use-module (guix channels)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix describe)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module ((guix scripts pull) #:select (display-profile-content))
|
||||
#:use-module (git)
|
||||
#:use-module (json)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (ice-9 match)
|
||||
@ -38,7 +41,7 @@
|
||||
;; Specifications of the command-line options.
|
||||
(list (option '(#\f "format") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(unless (member arg '("human" "channels"))
|
||||
(unless (member arg '("human" "channels" "json" "recutils"))
|
||||
(leave (G_ "~a: unsupported output format~%") arg))
|
||||
(alist-cons 'format (string->symbol arg) result)))
|
||||
(option '(#\p "profile") #t #f
|
||||
@ -84,6 +87,22 @@ Display information about the channels currently in use.\n"))
|
||||
(format #t (G_ "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%")
|
||||
string))))))
|
||||
|
||||
(define (channel->sexp channel)
|
||||
`(channel
|
||||
(name ,(channel-name channel))
|
||||
(url ,(channel-url channel))
|
||||
(commit ,(channel-commit channel))))
|
||||
|
||||
(define (channel->json channel)
|
||||
(scm->json-string `((name . ,(channel-name channel))
|
||||
(url . ,(channel-url channel))
|
||||
(commit . ,(channel-commit channel)))))
|
||||
|
||||
(define (channel->recutils channel port)
|
||||
(format port "name: ~a~%" (channel-name channel))
|
||||
(format port "url: ~a~%" (channel-url channel))
|
||||
(format port "commit: ~a~%" (channel-commit channel)))
|
||||
|
||||
(define* (display-checkout-info fmt #:optional directory)
|
||||
"Display information about the current checkout according to FMT, a symbol
|
||||
denoting the requested format. Exit if the current directory does not lie
|
||||
@ -104,10 +123,19 @@ within a Git checkout."
|
||||
(format #t (G_ " branch: ~a~%") (reference-shorthand head))
|
||||
(format #t (G_ " commit: ~a~%") commit))
|
||||
('channels
|
||||
(pretty-print `(list (channel
|
||||
(name 'guix)
|
||||
(url ,(dirname directory))
|
||||
(commit ,commit))))))
|
||||
(pretty-print `(list ,(channel->sexp (channel (name 'guix)
|
||||
(url (dirname directory))
|
||||
(commit commit))))))
|
||||
('json
|
||||
(display (channel->json (channel (name 'guix)
|
||||
(url (dirname directory))
|
||||
(commit commit))))
|
||||
(newline))
|
||||
('recutils
|
||||
(channel->recutils (channel (name 'guix)
|
||||
(url (dirname directory))
|
||||
(commit commit))
|
||||
(current-output-port))))
|
||||
(display-package-search-path fmt)))
|
||||
|
||||
(define (display-profile-info profile fmt)
|
||||
@ -116,34 +144,46 @@ in the format specified by FMT."
|
||||
(define number
|
||||
(generation-number profile))
|
||||
|
||||
(define channels
|
||||
(map (lambda (entry)
|
||||
(match (assq 'source (manifest-entry-properties entry))
|
||||
(('source ('repository ('version 0)
|
||||
('url url)
|
||||
('branch branch)
|
||||
('commit commit)
|
||||
_ ...))
|
||||
(channel (name (string->symbol (manifest-entry-name entry)))
|
||||
(url url)
|
||||
(commit commit)))
|
||||
|
||||
;; Pre-0.15.0 Guix does not provide that information,
|
||||
;; so there's not much we can do in that case.
|
||||
(_ (channel (name 'guix)
|
||||
(url "?")
|
||||
(commit "?")))))
|
||||
|
||||
;; Show most recently installed packages last.
|
||||
(reverse
|
||||
(manifest-entries
|
||||
(profile-manifest
|
||||
(if (zero? number)
|
||||
profile
|
||||
(generation-file-name profile number)))))))
|
||||
|
||||
(match fmt
|
||||
('human
|
||||
(display-profile-content profile number))
|
||||
('channels
|
||||
(pretty-print
|
||||
`(list ,@(map (lambda (entry)
|
||||
(match (assq 'source (manifest-entry-properties entry))
|
||||
(('source ('repository ('version 0)
|
||||
('url url)
|
||||
('branch branch)
|
||||
('commit commit)
|
||||
_ ...))
|
||||
`(channel (name ',(string->symbol
|
||||
(manifest-entry-name entry)))
|
||||
(url ,url)
|
||||
(commit ,commit)))
|
||||
|
||||
;; Pre-0.15.0 Guix does not provide that information,
|
||||
;; so there's not much we can do in that case.
|
||||
(_ '???)))
|
||||
|
||||
;; Show most recently installed packages last.
|
||||
(reverse
|
||||
(manifest-entries
|
||||
(profile-manifest
|
||||
(if (zero? number)
|
||||
profile
|
||||
(generation-file-name profile number))))))))))
|
||||
(pretty-print `(list ,@(map channel->sexp channels))))
|
||||
('json
|
||||
(format #t "[~a]~%" (string-join (map channel->json channels) ",")))
|
||||
('recutils
|
||||
(format #t "~{~a~%~}"
|
||||
(map (lambda (channel)
|
||||
(with-output-to-string
|
||||
(lambda ()
|
||||
(channel->recutils channel (current-output-port)))))
|
||||
channels))))
|
||||
(display-package-search-path fmt))
|
||||
|
||||
|
||||
|
@ -149,6 +149,7 @@ dependencies are registered."
|
||||
|
||||
(define* (self-contained-tarball name profile
|
||||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
deduplicate?
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
@ -221,6 +222,7 @@ added to the pack."
|
||||
;; <http://lists.gnu.org/archive/html/bug-tar/2017-11/msg00009.html>.
|
||||
(populate-single-profile-directory %root
|
||||
#:profile #$profile
|
||||
#:profile-name #$profile-name
|
||||
#:closure "profile"
|
||||
#:database #+database)
|
||||
|
||||
@ -279,6 +281,7 @@ added to the pack."
|
||||
|
||||
(define* (squashfs-image name profile
|
||||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
@ -377,6 +380,7 @@ added to the pack."
|
||||
|
||||
(define* (docker-image name profile
|
||||
#:key target
|
||||
(profile-name "guix-profile")
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
@ -587,6 +591,7 @@ please email '~a'~%")
|
||||
(define %default-options
|
||||
;; Alist of default option values.
|
||||
`((format . tarball)
|
||||
(profile-name . "guix-profile")
|
||||
(system . ,(%current-system))
|
||||
(substitutes? . #t)
|
||||
(build-hook? . #t)
|
||||
@ -658,6 +663,13 @@ please email '~a'~%")
|
||||
(option '("localstatedir") #f #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'localstatedir? #t result)))
|
||||
(option '("profile-name") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(match arg
|
||||
((or "guix-profile" "current-guix")
|
||||
(alist-cons 'profile-name arg result))
|
||||
(_
|
||||
(leave (G_ "~a: unsupported profile name~%") arg)))))
|
||||
(option '("bootstrap") #f #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'bootstrap? #t result)))
|
||||
@ -690,6 +702,9 @@ Create a bundle of PACKAGE.\n"))
|
||||
-m, --manifest=FILE create a pack with the manifest from FILE"))
|
||||
(display (G_ "
|
||||
--localstatedir include /var/guix in the resulting pack"))
|
||||
(display (G_ "
|
||||
--profile-name=NAME
|
||||
populate /var/guix/profiles/.../NAME"))
|
||||
(display (G_ "
|
||||
--bootstrap use the bootstrap binaries to build the pack"))
|
||||
(newline)
|
||||
@ -779,7 +794,8 @@ Create a bundle of PACKAGE.\n"))
|
||||
(#f
|
||||
(leave (G_ "~a: unknown pack format~%")
|
||||
pack-format))))
|
||||
(localstatedir? (assoc-ref opts 'localstatedir?)))
|
||||
(localstatedir? (assoc-ref opts 'localstatedir?))
|
||||
(profile-name (assoc-ref opts 'profile-name)))
|
||||
(run-with-store store
|
||||
(mlet* %store-monad ((profile (profile-derivation
|
||||
manifest
|
||||
@ -798,6 +814,8 @@ Create a bundle of PACKAGE.\n"))
|
||||
symlinks
|
||||
#:localstatedir?
|
||||
localstatedir?
|
||||
#:profile-name
|
||||
profile-name
|
||||
#:archiver
|
||||
archiver)))
|
||||
(mbegin %store-monad
|
||||
|
@ -393,6 +393,9 @@ addition to build events."
|
||||
expected hash: ~a
|
||||
actual hash: ~a~%"))
|
||||
expected actual))
|
||||
(('build-remote drv host _ ...)
|
||||
(format port (info (G_ "offloading build of ~a to '~a'")) drv host)
|
||||
(newline port))
|
||||
(('build-log pid line)
|
||||
(if (multiplexed-output-supported?)
|
||||
(if (not pid)
|
||||
|
@ -53,7 +53,7 @@
|
||||
|
||||
(define sqlite-exec
|
||||
;; XXX: This is was missing from guile-sqlite3 until
|
||||
;; <https://notabug.org/civodul/guile-sqlite3/commit/b87302f9bcd18a286fed57b2ea521845eb1131d7>.
|
||||
;; <https://notabug.org/guile-sqlite3/guile-sqlite3/commit/b87302f9bcd18a286fed57b2ea521845eb1131d7>.
|
||||
(let ((exec (pointer->procedure
|
||||
int
|
||||
(dynamic-func "sqlite3_exec" (@@ (sqlite3) libsqlite3))
|
||||
|
@ -162,7 +162,7 @@ dnl Check whether a recent-enough Guile-Sqlite3 is available.
|
||||
AC_DEFUN([GUIX_CHECK_GUILE_SQLITE3], [
|
||||
dnl Check whether 'sqlite-bind-arguments' is available. It was introduced
|
||||
dnl in February 2018:
|
||||
dnl <https://notabug.org/civodul/guile-sqlite3/commit/1cd1dec96a9999db48c0ff45bab907efc637247f>.
|
||||
dnl <https://notabug.org/guile-sqlite3/guile-sqlite3/commit/1cd1dec96a9999db48c0ff45bab907efc637247f>.
|
||||
AC_CACHE_CHECK([whether Guile-Sqlite3 is available and recent enough],
|
||||
[guix_cv_have_recent_guile_sqlite3],
|
||||
[GUILE_CHECK([retval],
|
||||
|
69
tests/guix-pack-localstatedir.sh
Normal file
69
tests/guix-pack-localstatedir.sh
Normal file
@ -0,0 +1,69 @@
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
# GNU Guix is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# GNU Guix is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# Test the 'guix pack --localstatedir' command-line utility.
|
||||
#
|
||||
|
||||
guix pack --version
|
||||
|
||||
# 'guix pack --localstatedir' produces derivations that depend on
|
||||
# guile-sqlite3 and guile-gcrypt. To make that relatively inexpensive, run
|
||||
# the test in the user's global store if possible, on the grounds that
|
||||
# binaries may already be there or can be built or downloaded inexpensively.
|
||||
|
||||
NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`"
|
||||
localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`"
|
||||
GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket"
|
||||
export NIX_STORE_DIR GUIX_DAEMON_SOCKET
|
||||
|
||||
if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))'
|
||||
then
|
||||
exit 77
|
||||
fi
|
||||
|
||||
# Build a tarball with '--localstatedir'
|
||||
the_pack="`guix pack -C none --localstatedir --profile-name=current-guix \
|
||||
guile-bootstrap`"
|
||||
test_directory="`mktemp -d`"
|
||||
trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
|
||||
|
||||
cd "$test_directory"
|
||||
tar -xf "$the_pack"
|
||||
|
||||
profile="`find -name current-guix`"
|
||||
test "`readlink $profile`" = "current-guix-1-link"
|
||||
test -s "`dirname $profile`/../../../db/db.sqlite"
|
||||
test -x ".`guix build guile-bootstrap`/bin/guile"
|
||||
cd -
|
||||
|
||||
# Make sure the store database is not completely bogus.
|
||||
guile -c "(use-modules (sqlite3) (guix config) (ice-9 match))
|
||||
|
||||
(define db
|
||||
(sqlite-open (string-append \"$test_directory\"
|
||||
%localstatedir
|
||||
\"/guix/db/db.sqlite\")
|
||||
SQLITE_OPEN_READONLY))
|
||||
|
||||
(define stmt
|
||||
(sqlite-prepare db \"SELECT * FROM ValidPaths;\"))
|
||||
|
||||
(match (sqlite-fold cons '() stmt)
|
||||
((#(ids paths hashes times derivers sizes) ...)
|
||||
(exit (member \"`guix build guile-bootstrap`\" paths))))"
|
Loading…
Reference in New Issue
Block a user