GNU bug report logs - #52284
Partially unifying packages and inferior packages

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix; Reported by: Maxime Devos <maximedevos@HIDDEN>; dated Sat, 4 Dec 2021 21:08:02 UTC; Maintainer for guix is bug-guix@HIDDEN.

Message received at 52284 <at> debbugs.gnu.org:


Received: (at 52284) by debbugs.gnu.org; 6 Dec 2021 13:14:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 06 08:14:43 2021
Received: from localhost ([127.0.0.1]:60799 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1muDpL-00081L-A7
	for submit <at> debbugs.gnu.org; Mon, 06 Dec 2021 08:14:43 -0500
Received: from eggs.gnu.org ([209.51.188.92]:57418)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1muDpJ-000817-Jz
 for 52284 <at> debbugs.gnu.org; Mon, 06 Dec 2021 08:14:41 -0500
Received: from [2001:470:142:3::e] (port=50586 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1muDpD-0005sv-Q1; Mon, 06 Dec 2021 08:14:35 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=gm8+WXm9ZQJm7VmBhOHyy+i+1owef9IUrKRfiaCHvgE=; b=TjnN2s25WdiKSpD0CPCx
 X2UySrtK5+YqT+wSGRm015IQq/QdamMiDH03Zu50qv0nqamMENu1uyG7rkMInPLC6QriaycMEBc9c
 xxUH7ofzE17cnoL/9Hpwkr676xwyj871FUeU8yJnXFsyAR7veYLWZ8k4HJOKRnxa+wz/bBXxS5RGI
 9OqGTgE3PGjclZNX2Rd0leMQ155bYmBlJEwzUHT2OactD4jx9G+Q0DoxtPRcTMRO2E94mMeKZm9wi
 qSMfx88HydQpUeAf3QfxOyD0Lb7JvcHIauKZOdgIvX9bZhiiyq2tf3AIhKOhEl/c2gXSg7DY+Wlc8
 64BkYyLHUKhTrw==;
Received: from [193.50.110.120] (port=41688 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1muDpD-0007aj-MF; Mon, 06 Dec 2021 08:14:35 -0500
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Maxime Devos <maximedevos@HIDDEN>
Subject: Re: bug#52284: Partially unifying packages and inferior packages
References: <b1d6da8fe3d3afd8f04968a146cc47732eb0fa85.camel@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: 16 Frimaire an 230 de la =?utf-8?Q?R=C3=A9volution?=
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Mon, 06 Dec 2021 14:14:33 +0100
In-Reply-To: <b1d6da8fe3d3afd8f04968a146cc47732eb0fa85.camel@HIDDEN>
 (Maxime Devos's message of "Sat, 04 Dec 2021 21:01:42 +0000")
Message-ID: <87bl1tnadi.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 52284
Cc: guix-devel@HIDDEN, 52284 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi,

Maxime Devos <maximedevos@HIDDEN> skribis:

> (define (inferior-package->package inf)
>   ;; TODO: somehow make sure no inheritance happens on this package
>   (package
>     (name (inferior-package-name inf))
>     (version (inferior-package-version inf))
>     (replacement (and=3D> (inferior-package-replacement inf) inferior-pac=
kage->package))
>     (source #f) ; TODO
>     (build-system inferior-package-build-system)
>     (arguments `(#:inferior-package ,inf))
>     (synopsis (inferior-package-synopsis inf))
> =C2=A0   (description (inferior-package-description inf))
>     (home-page (inferior-package-home-page inf))
>     (location (inferior-package-location inf))
>     (inputs (map=C2=A0inferior-inputs->inputs (inferior-package-inputs in=
f)))
>     (native-inputs (map inferior-inputs->inputs (inferior-package-native-=
inputs inf)))
>     (propagated-inputs (map inferior-inputs->inputs (inferior-package-pro=
pagated-inputs inf)))
>     (transitive-propagated-inputs (map inferior-inputs->inputs (inferior-=
package-transitive-propagated-inputs inf)))=20=20=20=20
>     (native-search-paths (propagated-package-native-search-paths inf))
>     (search-paths (propagated-package-search-paths inf))
>     (license #f)) ; TODO

That=E2=80=99s a clever hack!

Longer-term, I think it would be nice(r) to use a type hierarchy somehow
so <inferior-package> instances can truly be used anywhere a <package>
is expected.

Thanks,
Ludo=E2=80=99.




Information forwarded to bug-guix@HIDDEN:
bug#52284; Package guix. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 4 Dec 2021 21:07:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 04 16:07:18 2021
Received: from localhost ([127.0.0.1]:55292 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mtcFa-0006HS-JC
	for submit <at> debbugs.gnu.org; Sat, 04 Dec 2021 16:07:18 -0500
Received: from lists.gnu.org ([209.51.188.17]:49946)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maximedevos@HIDDEN>) id 1mtcFY-0006HJ-CE
 for submit <at> debbugs.gnu.org; Sat, 04 Dec 2021 16:07:16 -0500
Received: from eggs.gnu.org ([209.51.188.92]:38878)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <maximedevos@HIDDEN>)
 id 1mtcFY-00067Q-7o
 for bug-guix@HIDDEN; Sat, 04 Dec 2021 16:07:16 -0500
Received: from newton.telenet-ops.be ([195.130.132.45]:58988)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <maximedevos@HIDDEN>)
 id 1mtcFV-0007U0-Op
 for bug-guix@HIDDEN; Sat, 04 Dec 2021 16:07:15 -0500
Received: from albert.telenet-ops.be (albert.telenet-ops.be
 [IPv6:2a02:1800:110:4::f00:1a])
 by newton.telenet-ops.be (Postfix) with ESMTPS id 4J62Dp1D2YzMqYmY
 for <bug-guix@HIDDEN>; Sat,  4 Dec 2021 22:01:46 +0100 (CET)
Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be
 ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a])
 by albert.telenet-ops.be with bizsmtp
 id SM1i2600F4UW6Th06M1ikN; Sat, 04 Dec 2021 22:01:42 +0100
Message-ID: <b1d6da8fe3d3afd8f04968a146cc47732eb0fa85.camel@HIDDEN>
Subject: Partially unifying packages and inferior packages
From: Maxime Devos <maximedevos@HIDDEN>
To: bug-guix@HIDDEN
Date: Sat, 04 Dec 2021 21:01:42 +0000
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.38.3-1 
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21;
 t=1638651702; bh=Rfdw0ZwltWpuljhWZB82Ug3FgqgBaqQq7mEhiEInSek=;
 h=Subject:From:To:Date;
 b=djNa66kVHHC356LqQnaxbj8SIHFD8C4WH31SIb1Pgq1nspKLvc/8GrC45XH366CYC
 14a6CdhmH3BeLTI1hkKuUyBygl9oiNmuZmMStJcZi+tjZCgTWybSqkkzivhHmVOGnT
 R9WUtPWE7mjxPpBOgV/S2sz8CphKdHbWoQlS8i8vCqS1SFcGiBVOcVZVQeJERBnZGo
 cAsB7kOMyQ35T5cS2pn95opErbWbV2QmS8IachTMdFiR14QTsXJdByxxFOn0bhWfd2
 wzXMrn9TSFA7+wptVL99Feb73aRj1oB2YiLaqVAEbULmPncJS5EG2s29mHwvgHvPGp
 IUzjcyrvSqw+w==
Received-SPF: pass client-ip=195.130.132.45;
 envelope-from=maximedevos@HIDDEN; helo=newton.telenet-ops.be
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

X-Debbugs-CC: guix-devel@HIDDEN

Hi guix,

There have been some bug reports with as root cause that inferior packages aren't
packages. I think that root cause is a bug. To resolve this, there was some talk on
using GOOP classes, or define-gexp-compiler-style polymorphism for package-native-inputs
etc., but these come with a complexity and time cost.

At the end of this e-mail, there is some untested code for turning an inferior
package into an equivalent package. If it's properly integrated into (guix inferior),
we could mostly do away with the inferior-package?/package? distinction,
by letting lookup-inferior-package and the like return ‘proper’ packages, albeit
with a weird build system and ignoring inheritance.

To be clear, I won't be working on this, but the idea seemed to nice to not send it.

Greetings,
Maxime

(define inferior-package-build-system
  (build-system
    (name 'inferior)
    (description "Build things via an inferior")
    (lower lower)))

(define* (lower name #:key inferior-package system target #:allow-other-keys)
  (bag ;; TODO(?): package transformations using bags won't work!
    (name name) ; ignored
    (system system) ; ignored
    (target target) ; ignored
    (arguments '()) ; ignored
    (build (lambda _
             (inferior-package->derivation inferior-package system #:target target)))))

(define (inferior-inputs->inputs inferior-inputs)
  (map (match-lamda
         ((label inf . rest)
          `(,label ,(inferior-package->package inf) ,@rest)))
       inferior-inputs))

(define (inferior-package->package inf)
  ;; TODO: somehow make sure no inheritance happens on this package
  (package
    (name (inferior-package-name inf))
    (version (inferior-package-version inf))
    (replacement (and=> (inferior-package-replacement inf) inferior-package->package))
    (source #f) ; TODO
    (build-system inferior-package-build-system)
    (arguments `(#:inferior-package ,inf))
    (synopsis (inferior-package-synopsis inf))
    (description (inferior-package-description inf))
    (home-page (inferior-package-home-page inf))
    (location (inferior-package-location inf))
    (inputs (map inferior-inputs->inputs (inferior-package-inputs inf)))
    (native-inputs (map inferior-inputs->inputs (inferior-package-native-inputs inf)))
    (propagated-inputs (map inferior-inputs->inputs (inferior-package-propagated-inputs inf)))
    (transitive-propagated-inputs (map inferior-inputs->inputs (inferior-package-transitive-propagated-inputs inf)))    
    (native-search-paths (propagated-package-native-search-paths inf))
    (search-paths (propagated-package-search-paths inf))
    (license #f)) ; TODO





Acknowledgement sent to Maxime Devos <maximedevos@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-devel@HIDDEN, bug-guix@HIDDEN. Full text available.
Report forwarded to guix-devel@HIDDEN, bug-guix@HIDDEN:
bug#52284; Package guix. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 6 Dec 2021 13:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.