diff options
author | David Thompson <davet@gnu.org> | 2018-03-21 21:46:51 -0400 |
---|---|---|
committer | David Thompson <davet@gnu.org> | 2018-03-21 21:46:51 -0400 |
commit | 99fb80a367b8afd71995330b28bfaa0a2ccb1b83 (patch) | |
tree | e278376843c22103565970ef7cf302ffa794138c /2018-03-25-guix-libreplanet | |
parent | 2681aa7d9b9f67d84b49b99931a93511ed25a893 (diff) |
Update libreplanet talk.
Diffstat (limited to '2018-03-25-guix-libreplanet')
-rw-r--r-- | 2018-03-25-guix-libreplanet/guix-libreplanet.org | 121 | ||||
-rw-r--r-- | 2018-03-25-guix-libreplanet/guix-libreplanet.pdf | bin | 132573 -> 169367 bytes |
2 files changed, 101 insertions, 20 deletions
diff --git a/2018-03-25-guix-libreplanet/guix-libreplanet.org b/2018-03-25-guix-libreplanet/guix-libreplanet.org index 511c6a0..d6958bc 100644 --- a/2018-03-25-guix-libreplanet/guix-libreplanet.org +++ b/2018-03-25-guix-libreplanet/guix-libreplanet.org @@ -69,6 +69,12 @@ - incompatible libraries between systems - high barrier to entry for common package managers +* common issues + + trying out new stuff can lead to sadness + + - ever upgrade your distro, reboot, and get an unusable system? + * freedom: embedded GuixSD removes many of the common barriers that prevent users from @@ -93,6 +99,10 @@ Users can build and install software *without root privileges* + tired: =sudo apt install emacs= + + wired: =guix package -i emacs= + * unprivileged package management Each user may have one or more “profiles”, a union of many packages. @@ -104,13 +114,25 @@ * experiment without fear + =guix package --upgrade emacs= + + oh no, the new version of Emacs is broken! + =guix package --roll-back= +* experiment without fear + =guix system reconfigure= + oh no, the latest GuixSD updates broke my system! + + <image of grub menu with older generations?> + * inspecting source code - =guix build --source= + quickly grab the source code for a package + + =guix build --source gimp= * inspecting dependency graph @@ -130,46 +152,106 @@ * sharing development environments - =guix environment= + #+BEGIN_SRC scheme + (use-modules (guix profiles) + (gnu packages base) + (gnu packages guile)) + + (packages->manifest + (list gnu-make + guile-2.2 + guile-syntax-highlight + haunt)) + #+END_SRC + + use it: - <minimal environment file example> + =guix environment --manifest=guix.scm= * sharing binaries - Use =guix publish= to spawn a web server that allows other Guix - users to download the software you've already built + start a server to share your builds: + + #+BEGIN_SRC sh + guix publish + #+END_SRC + + have a friend download them: #+BEGIN_SRC sh guix build \ - --substitute-urls=http://guix.dthompson.us:8080 \ + --substitute-urls=http://guix.example.com:8080 \ hello #+END_SRC * reproducible builds - did anyone attend "You think you're not a target? A tale of three - developers..." by Chris Lamb yesterday? + reproducible builds produce *bit-identical binaries* when performed + multiple times under the same conditions. - =guix build --rounds=N= + requires fixing issues in upstream build systems that are + nondeterministic. + +* reproducible builds -* verifying binaries + this is a *cross-distro effort*, but Guix facilitates + reproducibility more than others + + see Chris Lamb's talk /You think you're not a target? A tale of + three developers.../ from yesterday for more perspective + +* reproducible builds + + is this build reproducible on my machine? + + =guix build --rounds=3 hello= + +* challenge authority + + is this build reproducible on many machines? + + is this build compromised? =guix challenge= * customize packages - =guix edit= + show me how Ruby is built: - =guix build= + #+BEGIN_SRC sh + export EDITOR=emacs + guix edit ruby + #+END_SRC + +* customize packages + + let's make some changes! + + #+BEGIN_SRC sh + git clone https://git.savannah.gnu.org/git/guix.git + cd guix + guix environment guix + ./configure + make + guix build ruby + #+END_SRC * interoperate with other systems - =guix pack= + need a Docker image? -* extending + =guix pack --format=docker guile emacs geiser= + + \tiny(see /Solving the deployment crisis with GNU Guix/ from + LibrePlanet 2016 for reasons why Docker may not be so great) + +* extending guix GuixSD is essentially a big Scheme library + easy to write new tools that use the exact same APIs that the core + Guix tools use + * literally: embedded GuixSD now runs on the Beaglebone Black single-board computer! @@ -178,13 +260,12 @@ GNU Guix is a welcoming community: - we have a *code of conduct* and *enforce* it - - we have started seeking new contributors via *Outreachy* - - we participate in *Google Summer of Code* every year + - we have a *code of conduct* and *enforce* it + - we have started seeking new contributors via *Outreachy* + - we participate in *Google Summer of Code* every year + - oh, and no copyright assignment (in case you were wondering) - oh, and no copyright assignment (in case you were wondering) + join us! * thanks! diff --git a/2018-03-25-guix-libreplanet/guix-libreplanet.pdf b/2018-03-25-guix-libreplanet/guix-libreplanet.pdf Binary files differindex 6bd9226..09b3615 100644 --- a/2018-03-25-guix-libreplanet/guix-libreplanet.pdf +++ b/2018-03-25-guix-libreplanet/guix-libreplanet.pdf |