From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.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 kCKFBEPXxmIvagAAbAwnHQ (envelope-from ) for ; Thu, 07 Jul 2022 14:53:23 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id IAWMA0PXxmJQMwAAG6o9tA (envelope-from ) for ; Thu, 07 Jul 2022 14:53:23 +0200 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 C88802EA34 for ; Thu, 7 Jul 2022 14:53:22 +0200 (CEST) Received: from localhost ([::1]:41836 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9R0T-0001cH-G8 for larch@yhetil.org; Thu, 07 Jul 2022 08:53:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9Qdx-0003CI-Qw for guix-devel@gnu.org; Thu, 07 Jul 2022 08:30:07 -0400 Received: from mail-m974.mail.163.com ([123.126.97.4]:4683) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9Qdr-00079Z-4d for guix-devel@gnu.org; Thu, 07 Jul 2022 08:30:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=oKqa9 ZaO2tcIxkoPsBHvIkQeNsP9s2G+tJ8Pi9fGNyw=; b=kCWgmaQZV1HZfpQdExod2 9S3XBWnRB6wrZqPqEGf4Iy6unFv4W7l9xTMrkp1GfsLSrsfAlOZoVBfiOaOXGcTp ifLZe/LlQy4K3MnUGu29YkJfeWenOqjys7olPYC1wdGjP8qBvyiE0XfISpQXIE0o lg3EquwiJUpAJ/aQ8eWwHQ= Received: from asus-laptop (unknown [27.38.202.232]) by smtp4 (Coremail) with SMTP id HNxpCgAHl8e90cZiakA3NQ--.9387S2; Thu, 07 Jul 2022 20:29:50 +0800 (CST) References: <87let6roxo.fsf@jpoiret.xyz> User-agent: mu4e 1.6.11; emacs 28.1 From: Zhu Zihao To: Josselin Poiret Cc: guix-devel@gnu.org Subject: Re: Building, packaging and updating Guix with confidence Date: Thu, 07 Jul 2022 20:06:39 +0800 In-reply-to: <87let6roxo.fsf@jpoiret.xyz> Message-ID: <867d4pjedm.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: HNxpCgAHl8e90cZiakA3NQ--.9387S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxWF4fKF15Gw4DArykAFWrXwb_yoW5XrW5pr Wagw13K34kGayfAF1xAr4xGF1ak3yxAay3Gr18Jw18Awn09rn2gryav3yYgF97Grsag3WY q3yvgryUAa98ZaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0z_yCG8UUUUU= X-Originating-IP: [27.38.202.232] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbiKR43r1Xl4OlOkQAAsJ Received-SPF: pass client-ip=123.126.97.4; envelope-from=all_but_last@163.com; helo=mail-m974.mail.163.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1657198402; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=oKqa9ZaO2tcIxkoPsBHvIkQeNsP9s2G+tJ8Pi9fGNyw=; b=sTGmTOdPOtxrgAmLaJrTpD+bCCF65PPcLARUGkgI7AwaWZt+v+25quFzIvz+nRxAw0qXBP K4CUSKLhD9o1WcQfSgWXSX3AaQjyJA90235swKrzEpw4AqqRf31F9+e9n+UrVUnHVr4qOQ HLO3y9jeeypAuCF6JKW1wZiWJkY/1fguRoNuYAr1PEHjYtno6NEO6vk1s0uxuVXW5Qv0q5 TRj/UGgvGTcdEFsCECN6bquhTeyraKgli8xLed/69p+Pn0lgbqhHEWIs9Urf4SrLxfafny 2Pr1CiYslcqOceg6YeMe0r/I5mwLgXHaL0RHc/UIfr0ZArO1woNA5fhGBJ9Yvg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1657198402; a=rsa-sha256; cv=none; b=XoV3CXhmUAt4R8xtnqbW9zLbrtBNa9QmAGcaVP+ky59SMmDSnzf62+pBNGHEWWcT2pe1r2 L9iRN/eZgkEjo8drcsSkqY/nhRuf76HXinwj+pWH12G37uovKXHUKyg/aHmTQ+W9NEVFQW 1tiBjk9KCC/04wxZnF7vOAVr+ocHWCrL/UI5GTOKkUSoAXLWo2rCzvZ294u8mQxdDD0bZW SmdEgJI/+d9Bi6gpFH5UA38VRlAQpCTwig6EXvI6RxIA18K7LqMjaXDC8XmkSPYCZ5WZah byuOq7vsWxytQA4G13kElMna6QUqilw3Oe4hJ9CxOWWglIa3s0hxSlh5npEkrg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=163.com header.s=s110527 header.b=kCWgmaQZ; dmarc=pass (policy=none) header.from=163.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: -5.85 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=163.com header.s=s110527 header.b=kCWgmaQZ; dmarc=pass (policy=none) header.from=163.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: C88802EA34 X-Spam-Score: -5.85 X-Migadu-Scanner: scn0.migadu.com X-TUID: NAwucw1oJVtk --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Josselin Poiret writes: > In the second case, I am in the process of adding a very simple Guile C > extension to Guix that only requires to wrap a simple libc function. > The C code itself took approx. 5% of my time on it, while adding the > magical invocations for the Autotools took 35%, and now testing the > changes is taking 60%, If your foreign function use case is very trivial? Why not give Guile dynamic FFI a try? > because I need to test that `guix pull` works, > that the local development setup works, and that the guix package works, > all with a local change that cannot be authenticated and that also > cannot be referred to with a git-reference [more on that later] since > it's entirely local. This is causing me many headaches, and I don't > think that even after manually testing this with handwritten hacks so > that these changes actually do appear everywhere, I will be confident > enough for them to be merged. It's possible to use guix channel to test a local guix repo. A short example here. ``` cat > local-channel.scm << "EOF" (list (channel (inherit %default-guix-channel) (url "/home/foo/bar/path/to/local/guix/repo") (branch "test-branch"))) EOF=20=20=20=20=20=20=20 guix time-machine -C local-channels.scm --disable-authentication -- build h= ello ``` > c) The `guix pull` way. This is a bit of an hybrid. Internally, it > amounts to eval'ing build-aux/build-self.scm inside of the currently > running guix, which returns a procedure which, given a source code > checkout of Guix, returns a derivation that builds the new Guix. This > itself relies on (guix self) where most of the building code is. The > scheme modules are compiled in an ad-hoc manner (not following > Makefile.am), and files are included without consulting the Makefile. > This is why `guix pull` users are not affected by [1]. But then, there > still is an issue with the guix daemon (and in the future the C > extensions), which is C code. Since we're not pretending to know how to > universally configure C packages, we rely on the guix-daemon package > defined in gnu/packages/package-management.scm of the future Guix, which > inherits from the guix package itself, and then builds itself roughly > following b), meaning the daemon is still out-of-date. This is somewhat "the bootstrap problem". It's very ideal if we can describe the build graph in Guix with derivations. But we still need a daemon first to process derivations. So we need to build daemon without Guix. This issue may be solved by rewriting daemon in Guile. If daemon is written in Guile. We can run it without compilation. =2D-=20 Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQRefA5qkqvnKdl/GTlmOX+E92aT+QUCYsbRdRUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQZjl/hPdmk/nDMwD/R7/P6zF04g6X3X2Yx31vYbSzTAZJ oY8KzyKtYoVB/tkA/jms9QwDYx96XqAYfZA7BT1wFjxeU8OY8i82XimuwdEN =JuZM -----END PGP SIGNATURE----- --=-=-=--