From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id RHDUKjWLgGOWngAAbAwnHQ (envelope-from ) for ; Fri, 25 Nov 2022 10:30:29 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 2NfpKTWLgGOspgAA9RJhRA (envelope-from ) for ; Fri, 25 Nov 2022 10:30:29 +0100 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 6B4763D64A for ; Fri, 25 Nov 2022 10:30:29 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oyV21-00028S-47; Fri, 25 Nov 2022 04:30:01 -0500 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 1oyV1x-00026p-Qu for guix-devel@gnu.org; Fri, 25 Nov 2022 04:29:58 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oyV1t-0001VP-3R for guix-devel@gnu.org; Fri, 25 Nov 2022 04:29:57 -0500 Received: by mail-wr1-x42c.google.com with SMTP id d1so5849796wrs.12 for ; Fri, 25 Nov 2022 01:29:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=2h1lTWAl72JibHY7nsEt6gGO6bg6e7SSphB1iZLXZSg=; b=OZkOsvvIUsI5iwEka4nRW0n7tTZnVKrCX80OGx7Gb2wsme/WxZAXbtgE/3njxiUU4/ XXdbeej0ZTzxkvYTs6DcTl4Fm/XX+qIT+BOc91XaJUcy3RKHejBpoxN7+YvTaDWrA7jW 503vcIiv81SHu+PQcW1r3+xrq6jz+UI4eXqsT0QuU8yEc67vs7UzhHEKHs9O0TNBiWRi +CFs/CsNmzi8jOXAZ7O8bTfTubl276MeJPK/92bqSOCzh0+qHiHT3X11TTEEtD0Rtj1M sGf+VjBbnvDlUAKa4pZ1Wj1bIn48RWoBK5qGTqfpu1EnJ7fIyTJQFVESE3FtPVniOy2u UgHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:to:from:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=2h1lTWAl72JibHY7nsEt6gGO6bg6e7SSphB1iZLXZSg=; b=xs81crnwQWOQ3Y/wVrBqJbqKEEWaaRTAhsCVcgIT/TedLsPl2JDdXQaRIXdhLpLfQw d0xD0Cded/KcMIJ1urrijPEPEx7PhK4Y1ZUUNAZXl5eXJaMt29qZvQ1al/4TSrfEOg/G E7vNEESDpfN36AbRMCr5UiGzWheYdhI2zpklfXcUf6kTVRsAcT6aRtsfipT9dpdLVKzU 57lVz7ryh4oypUg40b4JksjLUq9Q+yRMJL3IQJrUiY8+A9AMgBdFGURCWyViVQZL5bkO hNIFtmxPr/a7LqoCnrA728nCzy+b34HJBGR4BfTc8N7v16a8x9fUs5T6YjWH6wFJT71Z 0BsA== X-Gm-Message-State: ANoB5plKJAJAOeHVwx+V0SOFfcB04B+xFU7Q1aMMv19C3Gd8JSeRVHTy 4/chz//H82s5uIKT8rV+HNivuzuqYfM= X-Google-Smtp-Source: AA0mqf5oVx+Rddp0bceHRY88w/881w6Cg/YF5/KPchso/JfU4zYbG7T8l+oAq4tzat1UHwgDf4tJXg== X-Received: by 2002:a5d:4247:0:b0:241:a82b:5dee with SMTP id s7-20020a5d4247000000b00241a82b5deemr11626187wrr.425.1669368591790; Fri, 25 Nov 2022 01:29:51 -0800 (PST) Received: from lili ([2a01:e0a:59b:9120:65d2:2476:f637:db1e]) by smtp.gmail.com with ESMTPSA id v14-20020adfebce000000b00241d21d4652sm3256597wrn.21.2022.11.25.01.29.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Nov 2022 01:29:51 -0800 (PST) From: zimoun To: "(" , guix-devel@gnu.org Subject: Re: [RFC] package-with-features In-Reply-To: References: Date: Fri, 25 Nov 2022 10:07:05 +0100 Message-ID: <86bkovcshy.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=zimon.toutoune@gmail.com; helo=mail-wr1-x42c.google.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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1669368629; 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: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=2h1lTWAl72JibHY7nsEt6gGO6bg6e7SSphB1iZLXZSg=; b=uH0//uaIvVhNKViYT+WUMab+DuXFMK/LpW+seIhZN/qX/HWGnXPslHQslCnxaMMHtJnh9g VKTT+UnwfMe3d+Gdtig9NlEprp/KrJHlGU49LghUM6VuvIBUr0yMB14TgexZuoRRfY8ptv ADw9s8IvkSwjyOkqnpufjXxtNIi8kIA4JAoTguCkScp3IOdABnDXvsTEoV3+aSW8Pxv3Hf uPgpa2yu/8W9wg3yf52aL32EmIIIBlIdtQ2WND+SdYQIOO16D/U6JItvrM1C5Szc/+JJN6 sfioYuu8PL3hjnn/Vhmv2lpWhFCmK9LzyBEeadzRvG/UND/Tyc1QJpxJ3624Eg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1669368629; a=rsa-sha256; cv=none; b=kRwauCk2wLGroyqlV7vHY1aM3rqfHibGIcHb3pvWWb6l0o3cHO7oX+sgSbLgNCUrvs9vgT WKVebQeNQjMP1ZpiJOk3hdp1CqC7/hjJ2SKfycQvkyEuf6tAHsspe5QNNfUkndE1auKqVc JQrj49gPOWdXibTSXO7rgFcnF3HNk+6E3ewJNH1karfS79Blc7xU4F5POG/9yN9dibp3+C 9V6V9CcDte2cA0o4j2eUaKaSADCLvei50LJEDKQaHBQy8+JHEVzKwwifgd2rhJriZSbjBp RdWFt6ptVQyMZylD4NHRlTNni3kMp+OHP4smIluUh6EAfYzR2BCRpGv9hK5AjA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=OZkOsvvI; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Spam-Score: -3.98 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=OZkOsvvI; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Queue-Id: 6B4763D64A X-Spam-Score: -3.98 X-Migadu-Scanner: scn1.migadu.com X-TUID: RcMo7XDhbvkZ Hi, On Thu, 24 Nov 2022 at 20:26, "(" wrote: > This comment by oriansj on IRC: > > I am thinking in terms of gentoo builds and making > it easy to avoid some packages from being downloaded or built > like pulseaudio (I like alsa better) and trim down the dependencies > to only those that are absolutely directly required. > > made me wonder how we could incorporate such a feature into > Guix. Maybe, you could be interested by past discussions: Parameterized packages (May 2019) id:87woitz1xx.fsf@gnu.org https://yhetil.org/guix/87woitz1xx.fsf@gnu.org/ A plan for parameterized packages (Nov 2020) id:87eeku8trb.fsf@gnu.org https://yhetil.org/guix/87eeku8trb.fsf@gnu.org > # Unanswered Questions > > - Should CI try to build at least some non-default feature permutations? > (Probably not.) >From my understanding, one of the issue of the unmanageable number of combinations. Well, I am doubtful we (the project) would be able to guarantee that this feature combination builds or even works. Maybe Mathieu or Chris can comment about the CI, but to my knowledge, the build farms are already quite busy. Without speaking it would require to store such resulting substitutes; which means less space for others and so a poorer experience with =E2=80=9Cguix time-machine=E2=80=9C = for older Guix revisions. > - Might there be a better syntax for features in package specs? Maybe, the =E2=80=99outputs=E2=80=99 mechanism could be used. The TODO lis= t file in the Guix repository contains: --8<---------------cut here---------------start------------->8--- ** extend =E2=80=98propagated-build-inputs=E2=80=99 with support for multip= le outputs #+BEGIN_SRC scheme (outputs '("out" "include")) (propagated-build-inputs `(((("i1" ,p1 "o1") ("i2" ,p2)) =3D> "include") ("i3" ,p3))) #+END_SRC --8<---------------cut here---------------end--------------->8--- where the idea seems to have conditional inputs depending on the outputs. Somehow, this mechanism would ease to build feature variants. Cheers, simon