From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id KJkOK9mTsV8kdAAA0tVLHw (envelope-from ) for ; Sun, 15 Nov 2020 20:47:21 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id MJr1JtmTsV95MAAAB5/wlQ (envelope-from ) for ; Sun, 15 Nov 2020 20:47:21 +0000 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 232EC9401D0 for ; Sun, 15 Nov 2020 20:47:21 +0000 (UTC) Received: from localhost ([::1]:49212 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1keOvg-0004WO-4I for larch@yhetil.org; Sun, 15 Nov 2020 15:47:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:37616) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1keOvW-0004UC-5b for guix-devel@gnu.org; Sun, 15 Nov 2020 15:47:10 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:39274) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1keOvT-0007WM-Ve; Sun, 15 Nov 2020 15:47:09 -0500 Received: from localhost (80-110-126-103.cgn.dynamic.surfer.at [80.110.126.103]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 32A403362B07; Sun, 15 Nov 2020 21:47:04 +0100 (CET) Date: Sun, 15 Nov 2020 21:46:58 +0100 From: Danny Milosavljevic To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Subject: Re: A plan for parameterized packages Message-ID: <20201115214658.41223d15@scratchpost.org> In-Reply-To: <87eeku8trb.fsf@gnu.org> References: <87eeku8trb.fsf@gnu.org> X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/ZO7xq0lBQ_vxkO5dCxer0Zo"; protocol="application/pgp-signature"; micalg=pgp-sha512 Received-SPF: none client-ip=85.13.145.193; envelope-from=dannym@scratchpost.org; helo=dd26836.kasserver.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/15 15:47:04 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -1.11 X-TUID: +ufRJFXls6f8 --Sig_/ZO7xq0lBQ_vxkO5dCxer0Zo Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, nice feature! On Sun, 15 Nov 2020 17:33:28 +0100 Ludovic Court=C3=A8s wrote: > An important question: do we have examples of packages for which we=E2=80= =99d > like to have parameters? For the embedded/flash rom side: * Enable/disable building the documentation. I really don't need a 40 MiB manual stored onto a 16 MiB firmware flash chip. If that's better done as = an extra output, fair enough. * Enable/disable obscure dependencies: Library packages that pull in 400 Mi= B Qt into the closure for a thing no one (TM) uses should probably provide a swi= tch to disable that GUI. Sometimes a package provides multiple GUIs for different toolkits, in which case one should be able to choose one toolkit and not build for the others. * No, even in 2020, I won't start using AmigaFS, NFSv3 and whatever old protocol/format is still around and superseded by other protocols. The gexp-functionality of being able to select individual files of a package is already very useful for use cases an embedded developer would have (and that's there for a long time already). So that's nice! For the kind of feature flags I have in mind, it usually means I don't want to have the feature *anywhere*--for example, if I don't want to have Qt or Kerberos or whatever, that's because I want to save the space and thus it should be able to be *globally* specified--at least per profile. It doesn't help one bit for space savings if package A doesn't pull in Kerberos or latex or or Haskell bindings for a Raspberry Pi serial port library (guess why that's oddly specific ;) ), but package B does. However, sometimes using static libraries is better and there's no reason to build the shared libraries. But that's very much local to whatever I'm trying to do (at least local to a profile if not package). I would advise against doing a grep -r -- --enable and introducing all those as parameters. Rather I would check the closure of stuff and if the closure goes from 1200 MiB to 50 MiB, chances are a parameter would be nice there :) I guess the kind of flags I envision would be set at profile level. =46rom experience with Gentoo before I can tell you that the combinatory explosion is a real problem and most of the "more advanced" (toggled more switches :) ) combinations did not work the majority of the time. --Sig_/ZO7xq0lBQ_vxkO5dCxer0Zo Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl+xk8IACgkQ5xo1VCww uqXcoQf9FpwhZ3xhIsuqARt74l5ie9xXo4WVizcAlXU5sRVHkq3bppTwCvfvTKWi TXLX89fq9LvmIyLxm3pR0tx/wpJxK0IZW1t9AuOBgMoLXDgi+NHBjJpvO2sDOkt1 uIDi2NaAsSULM6svOZkD0njBd/SsqY/o0Bf8JEij2XRpQr0Cbk76pi5f8fkeDwIr a3+24dV4+YTSawZon+wVROwcvjeQXNVYqTUzx+TBlbozMZAAzABnFRnMyQ9h+V9o yT5DHkpDeCN7vxElzSKUAJ9aX6LBg4rlHkWHlJDRbwruUceryl8yFt1mM2LdOMTO hZmTIoW1tjdibyejFCkPnOh5AjCwGQ== =7YCv -----END PGP SIGNATURE----- --Sig_/ZO7xq0lBQ_vxkO5dCxer0Zo--