* Building from git @ 2023-09-02 9:03 Nicolas Débonnaire 2023-09-05 14:18 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 2023-09-07 12:06 ` Simon Tournier 0 siblings, 2 replies; 11+ messages in thread From: Nicolas Débonnaire @ 2023-09-02 9:03 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 742 bytes --] Hello, I would like to add a package to guix and send a patch but I'm facing problems following the chapter "22.1 Building from git" What I've done so far: git clone https://git.savannah.gnu.org/git/guix.git git fetch origin keyring:keyring guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" guix shell -D guix --pure ./bootstrap ./configure --localstatedir=/var --syscondir=/etc make After the make I have the following error. Error: fontconfig:Didn't find expected font family. Perhaps URW Type 1 fonts need installing? Then if I run make authenticate as stated in the documentation it fails with the error: guix: command not found. Have a nice day [-- Attachment #2: Type: text/html, Size: 1235 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-02 9:03 Building from git Nicolas Débonnaire @ 2023-09-05 14:18 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 2023-09-07 12:06 ` Simon Tournier 1 sibling, 0 replies; 11+ messages in thread From: Wojtek Kosior via Development of GNU Guix and the GNU System distribution. @ 2023-09-05 14:18 UTC (permalink / raw) To: Nicolas Débonnaire; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2067 bytes --] > guix shell -D guix --pure > > [...] > > Then if I run make authenticate as stated in the documentation it > fails with the error: guix: command not found. It appears you were still within the guix shell spawned with the first command when you tried to run `make authenticate`. Guix was not available inside that shell. You should `exit` from the running bash session and then run `make authenticate`. Afterwards you can enter the development shell once again with `guix shell -D guix --pure`. Or, you can instead try adding guix to the shell you're spawning, with guix shell -D guix guix --pure I think this will work but haven't checked myself > Have a nice day You too :) Happy Hacking! Wojtek -- (sig_start) website: https://koszko.org/koszko.html fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A follow me on Fediverse: https://friendica.me/profile/koszko/profile ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ== ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8= -- (sig_end) On Sat, 2 Sep 2023 11:03:14 +0200 Nicolas Débonnaire <n.debonnaire@gmail.com> wrote: > Hello, > I would like to add a package to guix and send a patch but I'm facing > problems following the chapter "22.1 Building from git" > > What I've done so far: > > git clone https://git.savannah.gnu.org/git/guix.git > > > git fetch origin keyring:keyring > > guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ > > "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" > > > guix shell -D guix --pure > > > ./bootstrap > > > ./configure --localstatedir=/var --syscondir=/etc > > > make > > > After the make I have the following error. > > > Error: fontconfig:Didn't find expected font family. Perhaps URW Type 1 > fonts need installing? > > > Then if I run make authenticate as stated in the documentation it > fails with the error: guix: command not found. > > > Have a nice day [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-02 9:03 Building from git Nicolas Débonnaire 2023-09-05 14:18 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. @ 2023-09-07 12:06 ` Simon Tournier 2023-09-07 16:37 ` Bruno Victal 2023-09-07 17:45 ` wolf 1 sibling, 2 replies; 11+ messages in thread From: Simon Tournier @ 2023-09-07 12:06 UTC (permalink / raw) To: Nicolas Débonnaire, guix-devel Hi, On Sat, 02 Sep 2023 at 11:03, Nicolas Débonnaire <n.debonnaire@gmail.com> wrote: > guix shell -D guix --pure > ./bootstrap > ./configure --localstatedir=/var --syscondir=/etc > make [...] > Error: fontconfig:Didn't find expected font family. Perhaps URW Type 1 > fonts need installing? Hum, weird. That’s because the documentation seems failing, I guess. Could you share which Git commit you are building? And using which Guix revision, before guix shell, what is the output of “guix describe“? > Then if I run make authenticate as stated in the documentation it > fails with the error: guix: command not found. Yeah, I think that’s expected because ’make’ failed. Quoting: If anything fails, take a look at installation instructions (*note Installation::) or send a message to the mailing list <guix-devel@gnu.org>. From there on, you can authenticate all the commits included in your checkout by running: make authenticate However, hum maybe there is bug with that command on pure environment. The manual is maybe inaccurate. The Makefile does not run ‘guix git authenticate’ using ./pre-inst-env. And that’s probably to ensure the source of trust. If one corrupt the commit that is built, then ’make authenticate’ would authenticate the corruption because it would run the corrupted newly built guix command. Currently, ’make authenticate’ run one guix command that had already been authenticated. Well, that’s my understanding. Cheers, simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-07 12:06 ` Simon Tournier @ 2023-09-07 16:37 ` Bruno Victal 2023-09-07 17:45 ` wolf 1 sibling, 0 replies; 11+ messages in thread From: Bruno Victal @ 2023-09-07 16:37 UTC (permalink / raw) To: Simon Tournier, Nicolas Débonnaire; +Cc: guix-devel Hi, On 2023-09-07 13:06, Simon Tournier wrote: > Hi, > > On Sat, 02 Sep 2023 at 11:03, Nicolas Débonnaire <n.debonnaire@gmail.com> wrote: > >> guix shell -D guix --pure >> ./bootstrap >> ./configure --localstatedir=/var --syscondir=/etc >> make > > [...] > >> Error: fontconfig:Didn't find expected font family. Perhaps URW Type 1 >> fonts need installing? > > Hum, weird. That’s because the documentation seems failing, I guess. > > Could you share which Git commit you are building? And using which Guix > revision, before guix shell, what is the output of “guix describe“? I've recently documented this fontconfig issue with URW fonts, see <https://issues.guix.gnu.org/65741>. -- Furthermore, I consider that nonfree software must be eradicated. Cheers, Bruno. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-07 12:06 ` Simon Tournier 2023-09-07 16:37 ` Bruno Victal @ 2023-09-07 17:45 ` wolf 2023-09-07 18:59 ` Simon Tournier 2023-09-08 9:10 ` Josselin Poiret 1 sibling, 2 replies; 11+ messages in thread From: wolf @ 2023-09-07 17:45 UTC (permalink / raw) To: Simon Tournier; +Cc: Nicolas Débonnaire, guix-devel [-- Attachment #1: Type: text/plain, Size: 2101 bytes --] On 2023-09-07 14:06:05 +0200, Simon Tournier wrote: > Hi, > > On Sat, 02 Sep 2023 at 11:03, Nicolas Débonnaire <n.debonnaire@gmail.com> wrote: > > > guix shell -D guix --pure > > ./bootstrap > > ./configure --localstatedir=/var --syscondir=/etc > > make > > [...] > > > Error: fontconfig:Didn't find expected font family. Perhaps URW Type 1 > > fonts need installing? > > Hum, weird. That’s because the documentation seems failing, I guess. > > Could you share which Git commit you are building? And using which Guix > revision, before guix shell, what is the output of “guix describe“? > > > > > > Then if I run make authenticate as stated in the documentation it > > fails with the error: guix: command not found. > > Yeah, I think that’s expected because ’make’ failed. Quoting: > > If anything fails, take a look at installation instructions (*note > Installation::) or send a message to the mailing list > <guix-devel@gnu.org>. > > From there on, you can authenticate all the commits included in your > checkout by running: > > make authenticate > > However, hum maybe there is bug with that command on pure environment. > The manual is maybe inaccurate. > > The Makefile does not run ‘guix git authenticate’ using ./pre-inst-env. > And that’s probably to ensure the source of trust. If one corrupt the > commit that is built, then ’make authenticate’ would authenticate the > corruption because it would run the corrupted newly built guix command. > Currently, ’make authenticate’ run one guix command that had already > been authenticated. Well, that’s my understanding. Hmm, but the recipe for the authenticate rule comes from the (possibly) compromised source, no? So the attacker can just modify the recipe instead of the command going the authentication. Am I missing something? > > > Cheers, > simon > -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-07 17:45 ` wolf @ 2023-09-07 18:59 ` Simon Tournier 2023-10-23 17:16 ` Nicolas Débonnaire 2023-09-08 9:10 ` Josselin Poiret 1 sibling, 1 reply; 11+ messages in thread From: Simon Tournier @ 2023-09-07 18:59 UTC (permalink / raw) To: wolf; +Cc: Nicolas Débonnaire, guix-devel Hi, On Thu, 07 Sep 2023 at 19:45, wolf <wolf@wolfsden.cz> wrote: >> The Makefile does not run ‘guix git authenticate’ using ./pre-inst-env. >> And that’s probably to ensure the source of trust. If one corrupt the >> commit that is built, then ’make authenticate’ would authenticate the >> corruption because it would run the corrupted newly built guix command. >> Currently, ’make authenticate’ run one guix command that had already >> been authenticated. Well, that’s my understanding. > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > compromised source, no? So the attacker can just modify the recipe instead of > the command going the authentication. Am I missing something? Yes, the corruption of Makefile.am can be the corruption I was talking about. Well, for more explanations one can maybe read: [bug#57909] bug#57910: [PATCH] Add link to 'pre-inst-env' from 'installing from git' docs Ludovic Courtès <ludo@gnu.org> Sat, 24 Sep 2022 17:58:29 +0200 id:87k05s7oii.fsf_-_@gnu.org https://issues.guix.gnu.org//57910 https://issues.guix.gnu.org/msgid/87k05s7oii.fsf_-_@gnu.org https://yhetil.org/guix/87k05s7oii.fsf_-_@gnu.org [bug#57909] bug#57910: [PATCH] Add link to 'pre-inst-env' from 'installing from git' docs Maxime Devos <maximedevos@telenet.be> Sat, 24 Sep 2022 18:23:10 +0200 id:ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be https://issues.guix.gnu.org//57910 https://issues.guix.gnu.org/msgid/ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be https://yhetil.org/guix/ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be Cheers, simon ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-07 18:59 ` Simon Tournier @ 2023-10-23 17:16 ` Nicolas Débonnaire 0 siblings, 0 replies; 11+ messages in thread From: Nicolas Débonnaire @ 2023-10-23 17:16 UTC (permalink / raw) To: Simon Tournier; +Cc: wolf, guix-devel [-- Attachment #1: Type: text/plain, Size: 2065 bytes --] Hi, Looks like it's working. I was able to complete the "building from git" section of the documentation after an update of guix. Thanks everyone. Le sam. 9 sept. 2023 à 11:01, Simon Tournier <zimon.toutoune@gmail.com> a écrit : > Hi, > > On Thu, 07 Sep 2023 at 19:45, wolf <wolf@wolfsden.cz> wrote: > > >> The Makefile does not run ‘guix git authenticate’ using ./pre-inst-env. > >> And that’s probably to ensure the source of trust. If one corrupt the > >> commit that is built, then ’make authenticate’ would authenticate the > >> corruption because it would run the corrupted newly built guix command. > >> Currently, ’make authenticate’ run one guix command that had already > >> been authenticated. Well, that’s my understanding. > > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > compromised source, no? So the attacker can just modify the recipe > instead of > > the command going the authentication. Am I missing something? > > Yes, the corruption of Makefile.am can be the corruption I was talking > about. > > Well, for more explanations one can maybe read: > > [bug#57909] bug#57910: [PATCH] Add link to 'pre-inst-env' from > 'installing from git' docs > Ludovic Courtès <ludo@gnu.org> > Sat, 24 Sep 2022 17:58:29 +0200 > id:87k05s7oii.fsf_-_@gnu.org > https://issues.guix.gnu.org//57910 > https://issues.guix.gnu.org/msgid/87k05s7oii.fsf_-_@gnu.org > https://yhetil.org/guix/87k05s7oii.fsf_-_@gnu.org > > [bug#57909] bug#57910: [PATCH] Add link to 'pre-inst-env' from > 'installing from git' docs > Maxime Devos <maximedevos@telenet.be> > Sat, 24 Sep 2022 18:23:10 +0200 > id:ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be > https://issues.guix.gnu.org//57910 > > https://issues.guix.gnu.org/msgid/ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be > > https://yhetil.org/guix/ec49e6c2-a542-7d95-0d73-10b2816c59d2@telenet.be > > Cheers, > simon > [-- Attachment #2: Type: text/html, Size: 3582 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-07 17:45 ` wolf 2023-09-07 18:59 ` Simon Tournier @ 2023-09-08 9:10 ` Josselin Poiret 2023-09-08 9:47 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 1 sibling, 1 reply; 11+ messages in thread From: Josselin Poiret @ 2023-09-08 9:10 UTC (permalink / raw) To: wolf, Simon Tournier; +Cc: Nicolas Débonnaire, guix-devel [-- Attachment #1: Type: text/plain, Size: 508 bytes --] Hi, wolf <wolf@wolfsden.cz> writes: > Hmm, but the recipe for the authenticate rule comes from the (possibly) > compromised source, no? So the attacker can just modify the recipe instead of > the command going the authentication. Am I missing something? You can use a previously trusted guix to do the authentication. `make authenticate` is here for committers to check that their commits are all properly signed before pushing (it's used as a pre-push hook). Best, -- Josselin Poiret [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 682 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-08 9:10 ` Josselin Poiret @ 2023-09-08 9:47 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 2023-09-08 11:11 ` wolf 0 siblings, 1 reply; 11+ messages in thread From: Wojtek Kosior via Development of GNU Guix and the GNU System distribution. @ 2023-09-08 9:47 UTC (permalink / raw) To: Josselin Poiret; +Cc: wolf, Simon Tournier, Nicolas Débonnaire, guix-devel [-- Attachment #1: Type: text/plain, Size: 2850 bytes --] Hello Josselin > wolf <wolf@wolfsden.cz> writes: > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > compromised source, no? So the attacker can just modify the recipe instead of > > the command going the authentication. Am I missing something? > > You can use a previously trusted guix to do the authentication. `make > authenticate` is here for committers to check that their commits are all > properly signed before pushing (it's used as a pre-push hook). From my understanding of the documentation, `make authenticate` is not just for committers but for all people who do a `git pull` in Guix tree and want to verify that the newly pulled commits do come from the committers. It it is not the case, then the documentation should probably be modified to make it clear. The recipe is not from an untrusted source mecause the Makefile is not tracked by git. Rather, it gets generated when first building Guix. And — as the documentation instructs — the initial checkout gets authenticated with `guix git authenticate` rather than with `make authenticate` so it can't get compromised that easily. Had someone managed to serve us a commit that adds another Makefile with a backdoor, git would report a conflict upon pulling. I believe this is what the implementors had in mind. Please clarify if this is wrong. I do see 1 loophole here, though. One could serve a compromised makefile under the name "GNUmakefile" and `make authenticate` would happily choose it over the non-compromised "Makefile". I was planning to start a new thread about it for some time... but this one seems like a just as appropriate place to mention the issue. It shouldn't be hard to fix. It boils down to having ./configure create a GNUmakefile as well. Perhaps as a symlink to the original Makefile? Best, Wojtek -- (sig_start) website: https://koszko.org/koszko.html fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A follow me on Fediverse: https://friendica.me/profile/koszko/profile ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ== ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8= -- (sig_end) On Fri, 08 Sep 2023 11:10:37 +0200 Josselin Poiret <dev@jpoiret.xyz> wrote: > Hi, > > wolf <wolf@wolfsden.cz> writes: > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > compromised source, no? So the attacker can just modify the recipe instead of > > the command going the authentication. Am I missing something? > > You can use a previously trusted guix to do the authentication. `make > authenticate` is here for committers to check that their commits are all > properly signed before pushing (it's used as a pre-push hook). > > Best, [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-08 9:47 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. @ 2023-09-08 11:11 ` wolf 2023-09-09 8:32 ` Josselin Poiret 0 siblings, 1 reply; 11+ messages in thread From: wolf @ 2023-09-08 11:11 UTC (permalink / raw) To: Wojtek Kosior Cc: Josselin Poiret, Simon Tournier, Nicolas Débonnaire, guix-devel [-- Attachment #1: Type: text/plain, Size: 5437 bytes --] On 2023-09-08 11:47:56 +0200, Wojtek Kosior wrote: > Hello Josselin > > > wolf <wolf@wolfsden.cz> writes: > > > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > > compromised source, no? So the attacker can just modify the recipe instead of > > > the command going the authentication. Am I missing something? > > > > You can use a previously trusted guix to do the authentication. `make > > authenticate` is here for committers to check that their commits are all > > properly signed before pushing (it's used as a pre-push hook). > > From my understanding of the documentation, `make authenticate` is not > just for committers but for all people who do a `git pull` in Guix tree > and want to verify that the newly pulled commits do come from the > committers. It it is not the case, then the documentation should > probably be modified to make it clear. > > The recipe is not from an untrusted source mecause the Makefile is not > tracked by git. Rather, it gets generated when first building Guix. And > — as the documentation instructs — the initial checkout gets > authenticated with `guix git authenticate` rather than with `make > authenticate` so it can't get compromised that easily. > > Had someone managed to serve us a commit that adds another Makefile > with a backdoor, git would report a conflict upon pulling. I believe > this is what the implementors had in mind. Please clarify if this is > wrong. Yes, I believe this reasoning is wrong. Even ignoring the fact that people might run git clean or use worktrees, you can just attack the Makefile.am. I created a new commit in my checkout: commit b3b378ad8f725f16be0602113e7f2d2afd89a920 (HEAD -> master) Author: x <y@z> Date: Fri Sep 8 11:04:44 2023 +0000 this commit is so not signed and valid diff --git a/Makefile.am b/Makefile.am index 922913355c..e5f7c37491 100644 --- a/Makefile.am +++ b/Makefile.am @@ -883,10 +883,7 @@ channel_intro_signer = BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA GUIX_GIT_KEYRING = origin/keyring authenticate: $(AM_V_at)echo "Authenticating Git checkout..." ; \ - guix git authenticate \ - --keyring=$(GUIX_GIT_KEYRING) \ - --cache-key=channels/guix --stats \ - "$(channel_intro_commit)" "$(channel_intro_signer)" + echo "Don't worry, your checkout is just fine... :)" # Assuming Guix is already installed and the daemon is up and running, this # rule builds from $(srcdir), creating and building derivations. guix git authenticate fails, as expected: Authenticating commits 9edb3f6 to b3b378a (1 new commits)... [##############################################################################]guix git: error: commit b3b378ad8f725f16be0602113e7f2d2afd89a920 lacks a signature The missing new line after ] is somewhat meh, but it correctly fails. However make authenticate does pass: $ guix shell -D guix guix --pure -- make authenticate cd . && /bin/sh /home/wolf/src/guix/build-aux/missing automake-1.16 --gnu Makefile Makefile.am:896: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS cd . && /bin/sh ./config.status Makefile depfiles config.status: creating Makefile config.status: executing depfiles commands Authenticating Git checkout... Don't worry, your checkout is just fine... :) I mean, if make authenticate is just for the convenience of the committers, then this is completely fine. But the documentation does not currently read that way. > > I do see 1 loophole here, though. One could serve a compromised > makefile under the name "GNUmakefile" and `make authenticate` would > happily choose it over the non-compromised "Makefile". I was planning > to start a new thread about it for some time... but this one seems like > a just as appropriate place to mention the issue. > > It shouldn't be hard to fix. It boils down to having ./configure create > a GNUmakefile as well. Perhaps as a symlink to the original Makefile? > > Best, > Wojtek > > -- (sig_start) > website: https://koszko.org/koszko.html > fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A > follow me on Fediverse: https://friendica.me/profile/koszko/profile > > ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ== > ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8= > -- (sig_end) > > > On Fri, 08 Sep 2023 11:10:37 +0200 Josselin Poiret <dev@jpoiret.xyz> wrote: > > > Hi, > > > > wolf <wolf@wolfsden.cz> writes: > > > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > > compromised source, no? So the attacker can just modify the recipe instead of > > > the command going the authentication. Am I missing something? > > > > You can use a previously trusted guix to do the authentication. `make > > authenticate` is here for committers to check that their commits are all > > properly signed before pushing (it's used as a pre-push hook). > > > > Best, W. -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Building from git 2023-09-08 11:11 ` wolf @ 2023-09-09 8:32 ` Josselin Poiret 0 siblings, 0 replies; 11+ messages in thread From: Josselin Poiret @ 2023-09-09 8:32 UTC (permalink / raw) To: wolf, Wojtek Kosior; +Cc: Simon Tournier, Nicolas Débonnaire, guix-devel [-- Attachment #1: Type: text/plain, Size: 1901 bytes --] Hi both of you (I'm replying to both at the same time), wolf <wolf@wolfsden.cz> writes: On 2023-09-08 11:47:56 +0200, Wojtek Kosior wrote: > Hello Josselin > > > wolf <wolf@wolfsden.cz> writes: > > > > > Hmm, but the recipe for the authenticate rule comes from the (possibly) > > > compromised source, no? So the attacker can just modify the recipe instead of > > > the command going the authentication. Am I missing something? > > > > You can use a previously trusted guix to do the authentication. `make > > authenticate` is here for committers to check that their commits are all > > properly signed before pushing (it's used as a pre-push hook). > > From my understanding of the documentation, `make authenticate` is not > just for committers but for all people who do a `git pull` in Guix tree > and want to verify that the newly pulled commits do come from the > committers. It it is not the case, then the documentation should > probably be modified to make it clear. > > The recipe is not from an untrusted source mecause the Makefile is not > tracked by git. Rather, it gets generated when first building Guix. And > — as the documentation instructs — the initial checkout gets > authenticated with `guix git authenticate` rather than with `make > authenticate` so it can't get compromised that easily. If you've already authenticated the initial check-out, what is the point of `make authenticate` then? Maybe the manual isn't that clear, but as wolf points out `make authenticate` itself cannot be a guarantee as it requires trust in the Makefiles, creating a chicken-and-egg problem . > I mean, if make authenticate is just for the convenience of the committers, then > this is completely fine. But the documentation does not currently read that > way. Yes, I believe this should then be clarified. Best, -- Josselin Poiret [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 682 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-10-23 17:17 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-09-02 9:03 Building from git Nicolas Débonnaire 2023-09-05 14:18 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 2023-09-07 12:06 ` Simon Tournier 2023-09-07 16:37 ` Bruno Victal 2023-09-07 17:45 ` wolf 2023-09-07 18:59 ` Simon Tournier 2023-10-23 17:16 ` Nicolas Débonnaire 2023-09-08 9:10 ` Josselin Poiret 2023-09-08 9:47 ` Wojtek Kosior via Development of GNU Guix and the GNU System distribution. 2023-09-08 11:11 ` wolf 2023-09-09 8:32 ` Josselin Poiret
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).