GNU Guix Is 4 Years Old!

GNU Guix Is 4 Years Old!

GNU Guix is 4 years old! Ludovic Courtes` GNU Hackers Meeting, Rennes, August 2016 The rise and fall of distros. “Debian and other distributions are going to be that thing you run docker on, little more.” — Jos Poortvliet, ownCloud developer http://lwn.net/Articles/670566/ It’s also that thing you run inside Docker! main griefs: I distros are inflexible I distros “lag behind” I developers have to “chase distros” http://xkcd.com/1654/ ! “app bundles” Giving up? Giving up? ! “app bundles” https://imagelayers.io/ Maybe what we need is an app store that feels like apt, yum & co.? ... still too low-level ... still too low-level Maybe what we need is an app store that feels like apt, yum & co.? “There is in fact another system with very similar goals, which is now called Flatpak [...]” “This is, to put it diplomatically, a heaping pile of steaming bullshit [...] served by the Canonical press department.” — Adam Williamson (Red Hat, Fedora) https://www.happyassassin.net/ “This is, to put it diplomatically, a heaping pile of steaming bullshit [...] served by the Canonical press department.” “There is in fact another system with very similar goals, which is now called Flatpak [...]” — Adam Williamson (Red Hat, Fedora) https://www.happyassassin.net/ http://flatpak.org/ “app bundles” are headed wrong I difficulty to compose software packages I no “big picture” integration work I where’s the Corresponding Source? I “app” model/free software commons mismatch Guix 1. transactional package manager 2. software environment manager 3. APIs & tools to customize environments 4. packaging tools $ guix package -i gcc-toolchain coreutils sed grep ... $ eval `guix package --search-paths` ... $ guix package --manifest=my-software.scm ... A simple matter of installing the deps, right? Want to get started hacking on GIMP? Want to get started hacking on GIMP? A simple matter of installing the deps, right? gimp-2.8.14 python2-pygtk-2.24.0 libexif-0.6.21 librsvg-2.40.13 gegl-0.2.0 gtk+-2.24.28 libgsf-1.14.34 babl-0.1.10 pango-1.38.1 gdk-pixbuf-2.32.3 atk-2.18.0 harfbuzz-1.0.5 python2-pygobject-2.28.6 gobject-introspection-1.46.0 python2-pycairo-1.10.0 cups-2.1.0 cups-filters-1.4.0 cairo-1.14.2 python-waf-1.8.8 icu4c-55.1 poppler-0.37.0 font-dejavu-2.34 libcroco-0.6.8 cairo-1.14.2 tar-1.28 avahi-0.6.31 ijs-9.14.0 glib-2.46.1 libspectre-0.2.7 intltool-0.51.0 libdaemon-0.14 libtool-2.4.6 tzdata-2015g pixman-0.32.8 openjpeg-1.5.2 ghostscript-9.14.0 cups-minimal-2.1.0 dbus-1.10.0 perl-xml-parser-2.44 file-5.25 automake-1.15 libpng-1.5.26 qpdf-5.1.3 lcms-2.6 libpaper-1.1.24 graphite2-1.3.3 python-wrapper-3.4.3 gnutls-3.4.7 autoconf-wrapper-2.69 autoconf-wrapper-2.69 coreutils-8.24 python2-fonttools-2.5 pcre-8.38 libtiff-4.0.6 python-3.4.3 python-2.7.10 libjpeg-8d which-2.21 guile-2.0.11 nettle-3.1.1 libidn-1.32 autoconf-2.69 libcap-2.24 python2-setuptools-18.3.1 bzip2-1.0.6 libffi-3.2.1 acl-2.2.52 gdbm-1.11 tk-8.6.4 sqlite-3.10.0 libjpeg-9a bash-4.3.42 gmp-6.1.0 libgc-7.4.2 libltdl-2.4.6 libunistring-0.9.6 attr-2.4.47 tcl-8.6.4 bison-3.0.4 readline-6.3 libxft-2.3.2 libatomic-ops-7.4.2 libxinerama-1.1.3 libxrandr-1.4.2 libxcursor-1.1.14 libxi-1.7.4 libxcomposite-0.4.4 libxdamage-1.1.4 flex-2.6.0 fontconfig-2.11.94 ncurses-6.0 gettext-0.19.7 libxrender-0.9.8 libxext-1.3.3 libxfixes-5.0.1 compositeproto-0.4.2 freetype-2.6 indent-2.2.10 bison-2.7.1 gs-fonts-8.11 expat-2.1.0 libx11-1.6.2 fixesproto-5.0 m4-1.4.17 xextproto-7.3.0 libxcb-1.11 kbproto-1.0.6 inputproto-2.3.1 libxslt-1.1.28 xcb-proto-1.11 libxau-1.0.8 xtrans-1.3.5 libxdmcp-1.1.1 randrproto-1.4.0 libxml2-2.9.3 python-minimal-wrapper-3.4.3 renderproto-0.11.1 libpthread-stubs-0.3 libgcrypt-1.6.4 xproto-7.0.26 python-minimal-3.4.3 libgpg-error-1.21 xineramaproto-1.2.1 util-macros-1.19.0 damageproto-1.2.1 zlib-1.2.8 openssl-1.0.2e pkg-config-0.29 libtasn1-4.7 perl-5.22.1 $ guix environment --container gimp ... $ guix environment --container gimp \ --ad-hoc git autoconf automake gdb ... Creating package variants at the command line $ guix package -i git \ --with-input=openssl=libressl ... $ guix package -i emacs \ --with-source=./emacs-25.1rc0.tar.gz ... $ guix package -i emacs \ --with-source=./emacs-25.1rc0.tar.gz ... $ guix package -i git \ --with-input=openssl=libressl ... Your personal packages or variants in GUIX PACKAGE PATH! Security updates “grafted” onto available binaries gimp-2.8.14 python2-pygtk-2.24.0 libexif-0.6.21 librsvg-2.40.13 gegl-0.2.0 gtk+-2.24.28 libgsf-1.14.34 babl-0.1.10 pango-1.38.1 gdk-pixbuf-2.32.3 atk-2.18.0 harfbuzz-1.0.5 python2-pygobject-2.28.6 gobject-introspection-1.46.0 python2-pycairo-1.10.0 cups-2.1.0 cups-filters-1.4.0 cairo-1.14.2 python-waf-1.8.8 icu4c-55.1 poppler-0.37.0 font-dejavu-2.34 libcroco-0.6.8 cairo-1.14.2 tar-1.28 avahi-0.6.31 ijs-9.14.0 glib-2.46.1 libspectre-0.2.7 intltool-0.51.0 libdaemon-0.14 libtool-2.4.6 tzdata-2015g pixman-0.32.8 openjpeg-1.5.2 ghostscript-9.14.0 cups-minimal-2.1.0 dbus-1.10.0 perl-xml-parser-2.44 file-5.25 automake-1.15 libpng-1.5.26 qpdf-5.1.3 lcms-2.6 libpaper-1.1.24 graphite2-1.3.3 python-wrapper-3.4.3 gnutls-3.4.7 autoconf-wrapper-2.69 autoconf-wrapper-2.69 coreutils-8.24 python2-fonttools-2.5 pcre-8.38 libtiff-4.0.6 python-3.4.3 python-2.7.10 libjpeg-8d which-2.21 guile-2.0.11 nettle-3.1.1 libidn-1.32 autoconf-2.69 libcap-2.24 python2-setuptools-18.3.1 bzip2-1.0.6 libffi-3.2.1 acl-2.2.52 gdbm-1.11 tk-8.6.4 sqlite-3.10.0 libjpeg-9a bash-4.3.42 gmp-6.1.0 libgc-7.4.2 libltdl-2.4.6 libunistring-0.9.6 attr-2.4.47 tcl-8.6.4 bison-3.0.4 readline-6.3 libxft-2.3.2 libatomic-ops-7.4.2 libxinerama-1.1.3 libxrandr-1.4.2 libxcursor-1.1.14 libxi-1.7.4 libxcomposite-0.4.4 libxdamage-1.1.4 flex-2.6.0 fontconfig-2.11.94 ncurses-6.0 gettext-0.19.7 libxrender-0.9.8 libxext-1.3.3 libxfixes-5.0.1 compositeproto-0.4.2 freetype-2.6 indent-2.2.10 bison-2.7.1 gs-fonts-8.11 expat-2.1.0 libx11-1.6.2 fixesproto-5.0 m4-1.4.17 xextproto-7.3.0 libxcb-1.11 kbproto-1.0.6 inputproto-2.3.1 libxslt-1.1.28 xcb-proto-1.11 libxau-1.0.8 xtrans-1.3.5 libxdmcp-1.1.1 randrproto-1.4.0 libxml2-2.9.3 python-minimal-wrapper-3.4.3 renderproto-0.11.1 libpthread-stubs-0.3 libgcrypt-1.6.4 xproto-7.0.26 python-minimal-3.4.3 libgpg-error-1.21 xineramaproto-1.2.1 util-macros-1.19.0 damageproto-1.2.1 zlib-1.2.8 openssl-1.0.2e pkg-config-0.29 libtasn1-4.7 perl-5.22.1 GuixSD: declarative OS config Linux-libre Linux-libre initial RAM disk Linux-libre initial RAM disk Guile Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services... Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services... Guile Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services... Guile applications Status. 4 years! I Aug. 2012 — GNU Hackers Meeting, Dusseldorf¨ I Nov. 2012 — dubbed GNU I Jan. 2013 — 0.1 I ... I July 2014 — 0.7, installable operating system I ... I Nov. 2015 — 0.9.0, new service framework, etc. I Jan. 2016 — successful fundraiser for new build farm I Mar. 2016 — 0.10.0, grafts, GNOME I Aug. 2016 — 0.11.0, system tests, more services growth! I 3,800+ packages I 4 architectures I binaries at https://hydra.gnu.org I ≈500 new packages per release Scaling up. importers & updaters I guix import I 8.5 importers: GNU, Nix, PyPI, CPAN, CRAN, Hackage, ELPA, Gem, npm (GSoC 2016) I guix refresh I 11 updaters: GNU, GNOME, KDE, Xorg, ELPA, CRAN, Bioconductor, Hackage, PyPI, Gem, GitHub I guix lint -c cve (vulnerabilities) I 30 committers, but 5–10 frequent reviewers I 50+ emails per day, hard to track patches I Patchwork? QEMU’s patches? suggestions? contributions I documented processes, code of conduct I consensus-based decision making I tools: guix lint (12 checkers!), guix build --rounds=2, etc.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    61 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us