diff options
Diffstat (limited to '2018-03-25-guix-libreplanet/guix-libreplanet.org')
-rw-r--r-- | 2018-03-25-guix-libreplanet/guix-libreplanet.org | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/2018-03-25-guix-libreplanet/guix-libreplanet.org b/2018-03-25-guix-libreplanet/guix-libreplanet.org new file mode 100644 index 0000000..511c6a0 --- /dev/null +++ b/2018-03-25-guix-libreplanet/guix-libreplanet.org @@ -0,0 +1,200 @@ +#+TITLE: Practical, verifiable software freedom with GuixSD +#+AUTHOR: David Thompson +#+EMAIL: dthompson2@worcester.edu +#+DATE: Sunday, March 25th, 2018 +#+DESCRIPTION: +#+KEYWORDS: +#+LANGUAGE: en +#+OPTIONS: H:1 num:t toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t +#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc +#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js +#+EXPORT_SELECT_TAGS: export +#+EXPORT_EXCLUDE_TAGS: noexport +#+LINK_UP: +#+LINK_HOME: +#+startup: beamer +#+LaTeX_CLASS: beamer +#+LaTeX_CLASS_OPTIONS: [bigger] +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra) +#+LATEX_HEADER: \beamertemplatenavigationsymbolsempty +#+BEAMER_THEME: metropolis + +* about me + + GNU Guix contributor since 2013 + + GNU Guile user and contributor since 2012 + + Day job: DevOps (AWS, Ruby) + +* the four freedoms + + 0: The freedom to run the program as you wish, for any purpose + +* the four freedoms + 1: The freedom to study how the program works, and change it so it + does your computing as you wish + +* the four freedoms + 2: The freedom to redistribute copies so you can help your neighbor + +* the four freedoms + 3: The freedom to distribute copies of your modified versions to + others + +* the four freedoms + + a wonderful set of rights, but often *difficult to exercise in + practice* + +* common issues + + figuring out how to view the exact source for a running program is + tricky + + - ?? + +* common issues + + building from source is difficult or sometimes impossible + + - non-standard build system + - build scripts make assumptions that aren't true for your system + +* common issues + + sharing source or binaries has many pitfalls + + - dependency hell + - incompatible libraries between systems + - high barrier to entry for common package managers + +* freedom: embedded + + GuixSD removes many of the common barriers that prevent users from + exercising their four freedoms + +* what is guixsd? + + <logo> + + fully-free GNU/Linux distribution with an advanced package + manager and system upgrade mechanism + +* what is guix? + + GuixSD's package manager + + “functional” package manager + + atomic updates and rollbacks + +* unprivileged package management + + Users can build and install software *without root privileges* + +* unprivileged package management + + Each user may have one or more “profiles”, a union of many packages. + + Use cases: + + - Alyssa and Ben use different versions of Emacs + - Alyssa hacks on 2 Ruby projects that require different versions + +* experiment without fear + + =guix package --roll-back= + + =guix system reconfigure= + +* inspecting source code + + =guix build --source= + +* inspecting dependency graph + + =guix graph= + + <small dependency graph image> + +* sharing system configurations + + <minimal code example here> + +* sharing packages + + =guix build -L ~/daves-packages foo= + + <minimal package example> + +* sharing development environments + + =guix environment= + + <minimal environment file example> + +* sharing binaries + + Use =guix publish= to spawn a web server that allows other Guix + users to download the software you've already built + + #+BEGIN_SRC sh + guix build \ + --substitute-urls=http://guix.dthompson.us: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? + + =guix build --rounds=N= + +* verifying binaries + + =guix challenge= + +* customize packages + + =guix edit= + + =guix build= + +* interoperate with other systems + + =guix pack= + +* extending + + GuixSD is essentially a big Scheme library + +* literally: embedded + + GuixSD now runs on the Beaglebone Black single-board computer! + +* the freedom to contribute + + 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 + + oh, and no copyright assignment (in case you were wondering) + +* thanks! + + \begin{center} + docs, past talks, source code, mailing list/IRC info, etc.: + \huge{\textbf{https://gnu.org/s/guix}} + \end{center} + +* credits + + Copyright 2018 David Thompson + + Licensed under Creative Commons Attribution Share-Alike 4.0 |