
Your distro is a Scheme library Hacking your way through the GNU Guix API Ludovic Courtes` FOSDEM 2016 The Emacs of distros When large numbers of nontechnical workers are using a programmable editor, they will be tempted constantly to begin programming in the course of their day-to-day lives. This should contribute greatly to computer literacy [...] – Stallman, 1981 user freedom = access + empowerment $ guix package -i emacs guile ? #1. Packages & package lookup. #2. The store. build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon RPCs build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon RPCs #3. From packages to derivations. coreutils-8.24 libcap-2.24 acl-2.2.52 gmp-6.1.0 attr-2.4.47 m4-1.4.17 perl-5.22.1 gettext-0.19.7 expat-2.1.0 9 nodes guix graph --type=package coreutils coreutils-8.24 libcap-2.24 acl-2.2.52 gmp-6.1.0 Whereattr-2.4.47 are GCC, libc, etc.?m4-1.4.17 perl-5.22.1 gettext-0.19.7 expat-2.1.0 9 nodes guix graph --type=package coreutils coreutils-8.24 acl-2.2.52 libcap-2.24 attr-2.4.47 gettext-0.19.7 gmp-6.1.0 expat-2.1.0 perl-5.22.1 m4-1.4.17 tar-1.28 patch-2.7.5 sed-4.2.2 bzip2-1.0.6 diffutils-3.3 findutils-4.6.0 gzip-1.6 xz-5.2.2 gcc-4.9.3 coreutils-8.24 file-5.25 glibc-2.22 grep-2.22 glibc-utf8-locales-2.22 make-4.1 bash-4.3.42 ld-wrapper-0 binutils-2.25.1 gawk-4.1.3 28 nodes guix graph --type=bag-emerged coreutils coreutils-8.24 acl-2.2.52 libcap-2.24 attr-2.4.47 What about the compiler’s compiler, etc.? gettext-0.19.7 gmp-6.1.0 expat-2.1.0 perl-5.22.1 m4-1.4.17 tar-1.28 patch-2.7.5 sed-4.2.2 bzip2-1.0.6 diffutils-3.3 findutils-4.6.0 gzip-1.6 xz-5.2.2 gcc-4.9.3 coreutils-8.24 file-5.25 glibc-2.22 grep-2.22 glibc-utf8-locales-2.22 make-4.1 bash-4.3.42 ld-wrapper-0 binutils-2.25.1 gawk-4.1.3 28 nodes guix graph --type=bag-emerged coreutils coreutils-8.24 acl-2.2.52 libcap-2.24 attr-2.4.47 gmp-6.1.0 gettext-0.19.7 m4-1.4.17 expat-2.1.0 perl-5.22.1 glibc-utf8-locales-2.22 ld-wrapper-0 patch-2.7.5 gawk-4.1.3 ed-1.12 gzip-1.6 file-5.25 findutils-4.6.0 libsigsegv-2.10 bzip2-1.0.6 sed-4.2.2 diffutils-3.3 xz-5.2.2 tar-1.28 lzip-1.16 grep-2.22 coreutils-8.24 libcap-2.24 acl-2.2.52 attr-2.4.47 make-4.1 gmp-6.1.0 gettext-0.19.7 pkg-config-0.29 perl-boot0-5.22.1 perl-5.22.1 m4-1.4.17 expat-2.1.0 guile-2.0.11 glibc-utf8-locales-2.22 readline-6.3 gmp-6.1.0 libgc-7.4.2 gzip-1.6 gzip-1.6 libunistring-0.9.6 libltdl-2.4.6 pkg-config-0.29 libffi-3.2.1 libatomic-ops-7.4.2 ncurses-6.0 m4-1.4.17 bash-4.3.42 readline-6.3 ncurses-6.0 gcc-4.9.3 gcc-4.9.3 ld-wrapper-boot3-0 binutils-2.25.1 zlib-1.2.8 libstdc++-4.9.3 guile-bootstrap-2.0 gcc-cross-boot0-wrapped-4.9.3 glibc-2.22 bash-static-4.3.42 gcc-cross-boot0-wrapped-4.9.3 glibc-intermediate-2.22 gettext-boot0-0.19.7 linux-libre-headers-3.14.37 texinfo-6.0 gcc-cross-boot0-4.9.3 bison-3.0.4 perl-boot0-5.22.1 m4-1.4.17 binutils-cross-boot0-2.25.1 file-boot0-5.25 findutils-boot0-4.6.0 diffutils-boot0-3.3 make-boot0-4.1 gcc-bootstrap-0 binutils-bootstrap-0 bootstrap-binaries-0 glibc-bootstrap-0 82 nodes guix graph --type=bag coreutils (too big) 383 nodes guix graph --type=derivation coreutils origin package bag build system derivation #4. “Staging”: hosting build-side code. build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon RPCs #5. Operating system! [email protected] http://gnu.org/software/guix/ Copyright c 2010, 2012–2016 Ludovic Courtes` [email protected]. GNU GuixSD logo, CC-BY-SA 4.0, http://gnu.org/s/guix/graphics Copyright of other images included in this document is held by their respective owners. This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. At your option, you may instead 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 available at http://www.gnu.org/licenses/gfdl.html. The source of this document is available from http://git.sv.gnu.org/cgit/guix/maintenance.git..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages23 Page
-
File Size-