GNU bug report logs

#60847 [PATCH] Enable cross-compilation for the pyproject-build-system.

PackageSource(s)Maintainer(s)
guix-patches PTS Buildd Popcon
Full log

Message #44 received at 60847@debbugs.gnu.org (full text, mbox, reply):

Received: (at 60847) by debbugs.gnu.org; 7 Mar 2023 19:03:38 +0000
From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 07 14:03:37 2023
Received: from localhost ([127.0.0.1]:47197 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
	id 1pZcb3-0006qC-Dz
	for submit@debbugs.gnu.org; Tue, 07 Mar 2023 14:03:37 -0500
Received: from mail-qt1-f171.google.com ([209.85.160.171]:46048)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maxim.cournoyer@gmail.com>) id 1pZcb1-0006py-Ei
 for 60847@debbugs.gnu.org; Tue, 07 Mar 2023 14:03:36 -0500
Received: by mail-qt1-f171.google.com with SMTP id d7so15503317qtr.12
 for <60847@debbugs.gnu.org>; Tue, 07 Mar 2023 11:03:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678215809;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=cv3d/GqIChUcOIu2qqPUXGFWI+Nc4DtkSVHaxKPMlDw=;
 b=dF9pQ97WgcqmcejUsDLeFAgQVlrO0HR6qYBA0lfL+qqn2Q3REwZ1UbzE8pOhGEmvwQ
 StYnqQFdg6JIVQF3oR4DYxjpopR+FX0O3yFJGzVXY7U2nFwvcCJkdHBMZuei41AFH2A6
 5rQZ5Cn1XpDHQsl65z64N16WsOiRIlTthfR2am81KyE8XLXHjyxPw/6U9A9PD1mpRCk+
 M4R1TyNg48TZz1IXXy0bZ8h6InRHas6VsidZEIOuPzwSDx80zUwppori+kfu1H/zXHZv
 Cvas5x951hWOVitJbMHKbxBe4Y9SAGXoQ9JERozovMtMnsxlgyHiD9eHSCOHNkxvIB8h
 QT4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678215809;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=cv3d/GqIChUcOIu2qqPUXGFWI+Nc4DtkSVHaxKPMlDw=;
 b=rDABXeIQtOmrbZXOyxPFQ/WX8TqpwdpZH7pxqJvlrRpOXpF2p9HyGkmsHuMz40phlu
 AW51me9/DYSYJHcGjqFvF0XBKlF94SLid8pZN0iawXNZm4L8Wq2DoFKIXps0AtZX9rpk
 r5JzB9KFMV5fka42nEBwIxlb7wjf71xiZojrZmq2yvrbxlBhRtrQTinNNdEuA/sbB9Ew
 OTrwNXUcwM1svNksY3dZ9ufBvC7u33Z2ZURr0mwaS7rNtTVYOXx4bVIQvcmLRw545pS7
 mBdQtCzqYGpupfroXxQWdQIKtkcs4twse5aqTarwTDuVRLmb5d+2A1GUbPY87y7rIBYM
 Kb4g==
X-Gm-Message-State: AO0yUKWYdxE8hkYuGLAsmhIXEHe/uHG/+lFMVgYvu/pERDgUKmxrZMBM
 Cd42wsSEqvUDwE0dm3JW3WmfwNkp7ZAnkA==
X-Google-Smtp-Source: AK7set9FqnCIp6/4L4LTm9UZwHAUnKV9YJwfO35t6Wp4zWJW/hpeLCd49eoif/Stp8OQqk0uR8gDKA==
X-Received: by 2002:a05:622a:348:b0:3bf:dc2e:ce3f with SMTP id
 r8-20020a05622a034800b003bfdc2ece3fmr21415720qtw.16.1678215809161; 
 Tue, 07 Mar 2023 11:03:29 -0800 (PST)
Received: from hurd ([2607:fad8:4:3::1000]) by smtp.gmail.com with ESMTPSA id
 k7-20020ac80207000000b003bf9f9f1844sm10094447qtg.71.2023.03.07.11.03.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 07 Mar 2023 11:03:28 -0800 (PST)
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Christopher Baines <mail@cbaines.net>
Subject: Re: bug#60847: [PATCH] Enable cross-compilation for the
 pyproject-build-system.
References: <20230123133217.318-1-maxim.cournoyer@gmail.com>
 <20230123133217.318-2-maxim.cournoyer@gmail.com>
 <87zg8p7qvw.fsf_-_@gnu.org> <87jzzsy7qt.fsf@gmail.com>
 <87jzzsr3tx.fsf@cbaines.net>
Date: Tue, 07 Mar 2023 14:03:27 -0500
In-Reply-To: <87jzzsr3tx.fsf@cbaines.net> (Christopher Baines's message of
 "Tue, 07 Mar 2023 15:05:47 +0000")
Message-ID: <87a60owfi8.fsf@gmail.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 60847
Cc: 60847@debbugs.gnu.org
X-BeenThere: debbugs-submit@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@debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit@debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request@debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request@debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces@debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Hi Christopher,

Christopher Baines <mail@cbaines.net> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> Hi Ludo!
>>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Hello,
>>>
>>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>>
>>>> +++ b/guix/packages.scm
>>>> @@ -1864,28 +1864,30 @@ (define* (bag->derivation bag #:optional context)
>>>
>>> […]
>>>
>>>> +  (let ((builder-name (procedure-name (bag-build bag))))
>>>> +    (if (or (bag-target bag)
>>>> +            (eq? 'pyproject-build builder-name))
>>>> +        (bag->cross-derivation bag)
>>>
>>> This one part is a showstopper to me, for two reasons:
>>>
>>>   1. We cannot rely on ‘procedure-name’ (it’s a debugging aid and it’s
>>>      not guaranteed to return something useful).
>>>
>>>   2. Special-casing build systems here is not okay: the bag and build
>>>      system abstractions exist to maintain separation of concerns.
>>>
>>> I understand there’s an actual bug to fix and the desire to fix a more
>>> common issue, but I think this one approach is not the way forward.
>>>
>>> I hope that makes sense!
>>
>> I agree this is not "pretty", but it would be a "temporary" kludge until
>> all the build systems can be migrated (and the package adjusted for) the
>> "new" way, which is: native-inputs and inputs always co-exist, whether
>> the build is a native one or a cross one.
>>
>> In light of this, it seems OK to test the water with a not so
>> significant build system (only a handful of package relies on
>> pyproject-build-system thus far).  When all the build systems will have
>> been migrated to the new way (a too big undertaking to be done in one
>> shot), this kludge can be removed.
>>
>> Otherwise, could you offer a concrete suggestion as the way forward?  I
>> appreciate the "that's not the way", but stopping short of suggesting a
>> better alternative leaves me wanting more :-).
>
> I think it would be clearer to see other potential ways forward if the
> end goal was more clearly articulated.
>
> Guessing at that here from the changes proposed to guix/packages.scm,
> once all build systems are adjusted, cross derivations will be produced
> for all bags, regardless of whether there's a target.
>
> That doesn't make much sense to me. One explaination is that the current
> naming is confusing when thinking about this goal, so maybe
> bag->cross-derivation happens to do what you want it to do in all
> circumstances, even when target is #f?

Thanks for tipping in.  The end goal is to avoid loosing the information
of which inputs are native (build inputs) vs regular in the bag, and yes
bag->cross-derivation allows that.  It appears to me the distinction in
the bag representations (native vs cross) was originally perceived
useful as some kind of optimization (there's less variables to worry
about, and we can squash the inputs/search-paths together, since they're
all native anyway), but this information (currently discarded) ends up
being very useful even on the build side (to wrap only the target
inputs, say, and not all the native/build inputs).

So yes, the change long term would be to integrate the
bag->cross-derivation logic into bag->derivation, at which point it
would be unified for any type of build (the bag representation would be
shared between native and cross builds).

When authoring packages, we'd no longer see the odd idiom '(or
native-inputs inputs)' which results from this implementation detail;
instead we'd always have access to both 'native-inputs' and 'inputs'.

I hope that helps understanding the rationale.

-- 
Thanks,
Maxim




Send a report that this bug log contains spam.


debbugs.gnu.org maintainers <help-debbugs@gnu.org>. Last modified: Sun Dec 22 20:40:47 2024; Machine Name: wallace-server

GNU bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.