From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Neidhardt Subject: Re: Videos Date: Tue, 19 Jun 2018 11:16:01 +0200 Message-ID: <87po0ngmr2.fsf@gmail.com> References: <87in76qzzk.fsf@elephly.net> <87sh5jvn29.fsf@elephly.net> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34327) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVCkD-0005qN-9l for guix-devel@gnu.org; Tue, 19 Jun 2018 05:16:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVCkA-0000Hq-2x for guix-devel@gnu.org; Tue, 19 Jun 2018 05:16:09 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:35077) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fVCk9-0000Fp-Nw for guix-devel@gnu.org; Tue, 19 Jun 2018 05:16:05 -0400 Received: by mail-wr0-x241.google.com with SMTP id l10-v6so19750849wrn.2 for ; Tue, 19 Jun 2018 02:16:05 -0700 (PDT) In-reply-to: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: =?utf-8?Q?G=C3=A1bor?= Boskovits Cc: Guix-devel --=-=-= Content-Type: text/plain As for the "no-turning-back" features of Guix (in my opinion): - Rollbacks: system and user profiles are much harder to break. - System integrity: because the system configuration is declarative, this gives the user / sys-admin an actual guarantee of what's going on. On other Unices, it's much harder to tell when a random configuration file has been touched somewhere. - Keep your system config under version control: udev rules, Xorg, pam, etc. Thanks to Guile, the config can be made conditional to the hardware or even the hostname! With other Unices this is much harder, although I don't know much about configuration management tools like Ansible. - Replacement for other (not so good) package managers: TeXlive(!!!), Emacs package.el, etc. It makes user-profile declaration much easier. Guix is possibly the only sane way to manage TeXlive. - Package declaration using Guile: it makes it much easier to work out package (re)definitions _en masse_. It advantageously replaces concepts such as Portage's USE flags (Guix is more flexible and can make use of conditionals, filters, etc.), split packages (Guix "output" makes it much easier and clearer to separate the doc, the libraries, the extra tools, etc.). - Non-propagated inputs: the first month using Guix I didn't get the point of having two "inputs" and "propagated-inputs". But now I see how nice it is of Guix to not clutter my user profile with dependencies I don't need for my own use. See "inxi" for a good example: if I only need a tool to report about my system and hardware, I don't necessarily want 2-3 dozens of additional commandline tools (I know nothing of) added to my PATH. - guix environment: Like non-propagated inputs, it's a neat way to keep the user profile clean. - Partial upgrade are 100% supported. This is possible the main cause of breakages on Arch / Gentoo. Because only one (or a few) version at a time is supported, the whole system has to be updated together. Which means more bandwith usage on every upgrade. - Continuous integration and lack of package maintainers: Thanks to reproducible builds and partial upgrades, once a package works in Guix it works "forever", it won't break at the next upgrade of some dependency. This means that the workload of packaging can be transfered to build farms. Contrast that to the Arch community which needs a couple dozen maintainers to stay tuned on thousand of packages. With Guix, the contributors time can be put into better use. In Guix it's straightforward to build from source or to install a pre-built package directly, in fact, the distinction is not some important to the end-user. Guix can fall back on the building from source if no substitute is available. - "guix refresh": Update package definitions automatically. Tools like that highlight the advantages of having a real programming language at hand for package definitions. What is a hard problem on most distributions is pretty easy to implement on Guix. - GUIX_PACKAGE_PATH: It's stupid but it's one of my favourite features! On Arch Linux or Gentoo, one would have to set up a local repository. Because they don't support partial upgrades, it means that the user has to do some maintainance once in a while (i.e. make sure dependency upgrades don't break the user's packages.) Package inheritance makes it very easy to customize packages with a patch, for instance. - Emacs guix.el: Guix is the only distribution I know which comes with a powerful user interface! - Guix provides a good, concrete example of why containers are not the right approach to packaging :) - guix system vm / disk-image: It's trivial to build a "Live USB" with my exact configuration (both system and user). The list drags on, but that'll be it for today! :D -- Pierre Neidhardt Democracy is the recurrent suspicion that more than half of the people are right more than half of the time. -- E. B. White --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAlsoydEACgkQm9z0l6S7 zH8c2gf+LPXMY96ZG7yOufTm1D0+3V0UH7aNsEl6hyXFTJu4w3j0SwK/bxGdFXmz H7jG/P+IyKN/asbYJKYR+04JneySsxTHe0xL/ef7tpxJKmD3pztWRWHpMdAB0voz dKnErnC4RNkOOhj1urRv+BXmifOrvQH9nCBSC/ql58hcmAdMs/VPqtPqwa0mKEzN 8PGLfSM4XdJRylcg+As1KTxmpLoEcjTTxn8jAPzaUUFQ8vI5RmyJs87nL4rJNQlP BtNjIJxNpF1dclgNj60umH9QO9XumHCq5OwG1/z57C7ZXw/GJ0IPBvLhZEU9sJ3X plgtmBMvJe0+UbcDj0twDIK3eLeUcg== =xnZK -----END PGP SIGNATURE----- --=-=-=--