From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id EG6hOvGqMmZEIAAAe85BDQ:P1 (envelope-from ) for ; Wed, 01 May 2024 22:49:54 +0200 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id EG6hOvGqMmZEIAAAe85BDQ (envelope-from ) for ; Wed, 01 May 2024 22:49:54 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none ("invalid DKIM record") header.d=freakingpenguin.com header.s=x header.b=mOLm+Dnz; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1714596593; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=uY00j7VkFfGM//xY/+7wWhTWqY4f5wtOlnbBfV8RPTo=; b=bZnk0cMmIJQbbODcpuBPQb5nrCFIseGAa7gSCelkhHmrSPg27NW46a6k0R/JNwINmkva2l aYDspLP1s8UpHOElV08dQhRmXkh5dE0a1rohNzCuw1l4lCKN5xolLCOYlZ4+xbRu1VAkCi UjP0EcH9l8ZdmGWtEAqjk3eQhDbqemn7Ylnj7vXDrYaiYDvx9rAE3BmqPeFDZjU7L3OwM7 /2wENLiTfnmgAPb7ujuzJpDftgH3fHVnPz4+WEyea6lKY7QVXhWcyTgBIbEdBck+0M5SOh MZ8lY0bW0WLYsmcl4joVZUOR4AHkcm0Yd4wwhjm1AgO4fC8iQFu8D9d93fpHvg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none ("invalid DKIM record") header.d=freakingpenguin.com header.s=x header.b=mOLm+Dnz; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1714596593; a=rsa-sha256; cv=none; b=L2HxnQMBg1np4jJfPaCEbVJARj3DehYbJ9qylSJ/AfsM0tjCPPraRgp+9tYxZwc4j3Ga8J V7/msGAD3Z18abBIOGrPBDIdgc1gr0kvTn2WY19CAiXQDQUjEoJaFKqQ2E5mNCAJMax7va liRr31wXiSBvmebaHJ46K3+BxuDzEVeW+2lpx3zufRjORtNcdWdBxDTQfEz3vp7/63uUwM khyBirL1weMVGPJoCl6sJ/oghA/abA9RcVoZ2Ldt1OSM42iS1KItzZzXX6CB+qMP7h9zt8 M9SP4hmGniwuGXjyYJsubYgEZpWUWBl+iy1+nZwMGSg2GN8KDmbdSbJdBOwY6g== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D987F5284E for ; Wed, 1 May 2024 22:49:53 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2GtO-0005h0-Gp; Wed, 01 May 2024 16:49:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2GtD-0005YP-N5 for guix-devel@gnu.org; Wed, 01 May 2024 16:49:19 -0400 Received: from mail-108-mta39.mxroute.com ([136.175.108.39]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s2GtB-0001X2-FO for guix-devel@gnu.org; Wed, 01 May 2024 16:49:19 -0400 Received: from filter006.mxroute.com ([136.175.111.2] filter006.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta39.mxroute.com (ZoneMTA) with ESMTPSA id 18f35eb1ae40008ca2.001 for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 01 May 2024 20:49:11 +0000 X-Zone-Loop: 5e1ae902b2b2e3ca0a29748bbad0f56757a3239ed4b1 X-Originating-IP: [136.175.111.2] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=freakingpenguin.com; s=x; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-ID:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=uY00j7VkFfGM//xY/+7wWhTWqY4f5wtOlnbBfV8RPTo=; b=mOLm+DnzQiy08q0E3nimqiWpWU EAY0BQpTArG2ASKoX+QWzghGl4kqndWho5iULDq41YAtfej6NDxguueyqIO1S6NIK0G5yu0itQqkB EqB4HDdSa5abI1dRESkAjDAfFmq7VEj3baYRtYD/TMxzCWEdrS3hGpc8FJsYXzacb2/VP8O5Px6l0 SxCWe1RbzNK4QA36XV7LqBX+80aklrMprtaNlP5zqrmWY8OzLnG0vdzIaBLBozcn9+OS3zYc3XLyt PeC+eYc+uUa6G/G3SJdbX/O1duVaIdK8ujE6E/D09BAD12dz/12nqOJafWb3YL6oA1e0TI2zv6FEu eRlC4otg==; From: Richard Sent To: guix-devel@gnu.org Subject: Changing the defaults for --localstatedir and --sysconfdir? Date: Wed, 01 May 2024 16:49:07 -0400 Message-ID: <87sez19s1o.fsf@freakingpenguin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Authenticated-Id: richard@freakingpenguin.com Received-SPF: pass client-ip=136.175.108.39; envelope-from=richard@freakingpenguin.com; helo=mail-108-mta39.mxroute.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list 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+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -5.39 X-Spam-Score: -5.39 X-Migadu-Queue-Id: D987F5284E X-Migadu-Scanner: mx13.migadu.com X-TUID: caJmDTh4uGyp Hi Guix, As everyone who's built Guix from source knows, when running ./configure on a system with an existing Guix installation you must remember to specify --localstatedir=3D/var and --sysconfdir=3D/etc. I think we should consider whether those variables should default to those values. There's been discussion on this in the distant past, see [1]. At risk of oversimplifying, I think previous consensus was in favor of making some sort of change over the existing behavior before discussion fizzled. The reason for the current situation is so if a user builds and installs Guix from source, localstatedir and sysconfdir will be located in $prefix/var and $prefix/etc. See [2] for Ludo's comments on the matter, [3] for the convention of localstatedir and sysconfdir being under $prefix. However, the "guix" package packaged with Guix (that's a sentence...) configures itself with "--localstatedir=3D/var" and "--sysconfdir=3D/etc". See (gnu packages package-management)[guix]. Many (~70) other packages also use the "--localstatedir=3D/var" configure flag. My understanding is this means even if Guix itself was built+installed from source with the intent of custom Guix-specific var and etc locations, various Guix-related files will inevitably wind up in /var anyway. They would either appear from Guix directly or from the packages Guix installs. (I've noticed the Guix package'd guix be built in the process of reconfiguring my system before, although the cause or impact of that isn't clear to me. It may or may not try placing more files in /var and /etc.) As such, if the benefits in [2] aren't achievable (keeping every guix state-based file in $prefix/var), perhaps it's worth biting the bullet. Defaulting to /var and /etc would lower the complexity of building Guix. The number of users manually installing from source is likely lower than the number of users building Guix for testing purposes. And a user that wants localstatedir in $prefix/var or sysconfdir in $prefix/etc can still choose to specify that manually. If that's not desirable, perhaps there is a third option? ./configure is already smart enough to detect if the configured localstatedir does not match the installed Guix's localstatedir. How about a mechanism that follows this process: 1. If ./configure is invoked without localstatedir and/or sysconfdir, check if there is an existing Guix installation. 2. If there is an existing Guix installation, use the existing localstatedir and sysconfdir values. 3. If there is not an existing Guix installation, use $prefix/var and $prefix/etc. My autotools skill level can be described as asymptotically approaching 0, so that suggestion may or may not be achievable. But I (naively) think it would satisfy everyone. Sorry for the wall of text! Congrats on making it to the end. Have a cookie: =F0=9F=8D=AA [1]: https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00718.html [2]: https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00098.html [3]: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html --=20 Take it easy, Richard Sent Making my computer weirder one commit at a time.