From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jookia <166291@gmail.com> Subject: The tricky case of "--localstatedir=/var" Date: Wed, 17 Feb 2016 00:57:29 +1100 Message-ID: <20160216135729.GB13560@novena-choice-citizen.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52199) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <166291@gmail.com>) id 1aVg9v-0007r1-1A for guix-devel@gnu.org; Tue, 16 Feb 2016 08:59:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <166291@gmail.com>) id 1aVg9u-0006R2-0c for guix-devel@gnu.org; Tue, 16 Feb 2016 08:59:18 -0500 Received: from mail-qg0-x22f.google.com ([2607:f8b0:400d:c04::22f]:33456) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <166291@gmail.com>) id 1aVg9t-0006Qv-Sb for guix-devel@gnu.org; Tue, 16 Feb 2016 08:59:17 -0500 Received: by mail-qg0-x22f.google.com with SMTP id b35so133003967qge.0 for ; Tue, 16 Feb 2016 05:59:17 -0800 (PST) Received: from localhost ([147.75.194.73]) by smtp.gmail.com with ESMTPSA id g108sm13167278qge.23.2016.02.16.05.59.15 for (version=TLSv1/SSLv3 cipher=OTHER); Tue, 16 Feb 2016 05:59:17 -0800 (PST) Content-Disposition: inline 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org Hey there, Over the past month a few people (myself included) have been hit by the 'gotcha' of not running ./configure with "--localstatedir=/var". It doesn't say this in the documentation but I question whether not having it as /var is a sane default. I'm sure this is somehow tied to the conventions of /usr/local. Here's how this issue could be fixed, in order of usefulness: * Change localstatedir to /var by default. This makes a lot of sense considering that's where it's expected to be. Even patches within Guix assume it's in /var , so installing and building Guix without localstatedir in /var would not only be a weird idea, it will actually *break* things. See avahi, xorg-server, findutils. * Put the localstatedir in /gnu. This is actually what Nix does, so I'm a little surprised as to why Guix has deviated from this practice. This will require updating all the patches to use /gnu/var as the localstatedir. What you get from this is the idea that the state is linked with the store (which it is!) and more importantly, comes in to the territory of GNU. * Instruct people to always pass "--localstatedir=/var" to configure. Sure, this could be done. But people are going to forget to do this and we'll have to explain on IRC to read the manual, then have them need to redo their entire Guix setup once they find something broken. Manually moving the state directory around is fragile enough since it involves moving symlinks around for profiles and isn't easily explained to people. More importantly, people are going to come away from their Guix experience with the feeling that something easily avoided has cost them a lot of their time, and they'd be right. The advantage this approach has is that localstatedir is configurable. Unfortunately, packages will still be broken. Perhaps it's time to substitute patch files too and introduce localstatedir as a build variable. * Do nothing. Software will still be confusing and debatedly broken. No doubt people will be having this discussion again. Cheers, Jookia.