unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* wip-signed-archives progress report
@ 2014-03-26 23:02 Ludovic Courtès
  2014-03-27 16:16 ` Nikita Karetnikov
  2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
  0 siblings, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2014-03-26 23:02 UTC (permalink / raw)
  To: guix-devel

hydra.gnu.org now signs binaries.  More precisely, it signs the
meta-data of binaries, aka. “narinfos”:

--8<---------------cut here---------------start------------->8---
$ wget -q -O - http://hydra.gnu.org/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk.narinfo
StorePath: /gnu/store/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3
URL: nar/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3
Compression: bzip2
NarHash: sha256:02xnn63ib2zs0k2dvkk9f6k7d4g1s6pm1ryjlzg3h98b88bch7n9
NarSize: 100956560
References: 1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3 250yb9lr5018sc1092xb0fikarqsh55r-findutils-4.4.2 2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d 34lb360x0m8ilmqlzmvk1s2rgm416l5s-gdk-pixbuf-2.28.2 394ijzg3g53i77q9400j22w1wamcjkxs-xz-5.0.4 3b0179h37dd19xc1k73cy8s75ja4pmba-grep-2.18 3j9cmj0l4g37gi804y8yvnig0yqgm2xg-gzip-1.6 499l505sasqwxcimsvf7h6if2bnyq785-cairo-1.12.16 6ax9s08vya8dsfda8yr0swk5g3f0b189-atk-2.10.0 6z7k9ms4sf367c3phl7djhb740ly3dqi-gcc-4.8.2 7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7 8f15savrvf13z1z9hi5cb5l6akdx4gzr-zlib-1.2.7 91l8glwrsv0cdc53viq4i0x0x7qjrbgj-make-4.0 a9pdkvz3xiyp01xl8gcl1y6mjij0h86k-pkg-config-0.27.1 cvc6x0brfnrxsrk2f48c6dhh4brf05d9-coreutils-8.22 d12n5r59rhvc2b86agsp2gzsad41gr3p-pango-1.34.1 fkmxw4d9xrabvpg3mv2l529cw7gw27n5-libtasn1-3.4 hf5kklv837xbfcv6gc7gpsj36l69j3sj-glibc-2.19 hg75n2sbpmwnxw4v4bvn1i304r5s3dfh-libtiff-4.0.3 imc4v341rb93k8rialj5baxzdh63w2xr-nettle-2.7.1 j96wdn8q41jd62n6p6viv2wl9l2100b3-gtk+-2.24.21 jm0qk1n234f7l8s8zp8fpa13m8w91ikv-diffutils-3.3 lxszay94rraffzfjmzlvpa5z02h9xlfz-gnutls-3.2.12 m56m1y8inkplafq2859vaflwrwa0c3jf-which-2.20 malv41q53gmwvrzm6mfpv7g4s95rzxik-libsm-1.2.1 n1chwrwzq94120d3zfcyd9yr11r0jbsb-sed-4.2.2 naxqxdf7f6lfpy4h481h8j8hs2r44v09-libpng-1.5.17 nsv3rg9i3rn29j1nk4lr26pxazpmd75g-tar-1.27.1 nw5y8klybqh3wn0xc66b1dfjafs5hybv-freetype-2.4.11 plw2fk911b33n75ylmrqkfwkhwg75ydv-binutils-2.24 pvvizw77i06pjq7kv1iz57kl68xd7bnr-libxpm-3.5.10 q6v9b91x3hcikmnf6s3vhjzpjdrkdp6y-texinfo-5.2 qca6ipcph0rx8fsmcbib1qphqgv2rhl0-libxft-2.3.1 qfvvhq9m6jfsn7k9a4rzik3p6hmdq397-libx11-1.5.0 r26x0ibxcg8h71j01dcyc27lpa7kc87f-patch-2.7.1 rrbw3d1dl4njp2nnb84x8mlnmhdcvfxp-libxml2-2.9.0 sw5gnvc1q14pyiw5d7xc47xcy942gsf5-gawk-4.1.0 v5wr09jhn17ami1k844r6y6n3sy6y0kr-fontconfig-2.10.93 vkgwsi1vi2k91y22clf42z2qxydyxfbb-bzip2-1.0.6 vw8ipma5jgy2a5nczwh9bxsc99w67yy5-glib-2.39.1 wfppwmx7lsqm0hpachkzs90m0c1zqxiv-ld-wrapper-0 wfrjbxjapgqb9pqnwck35r8kb9gj435i-harfbuzz-0.9.22 xa3hd1y4yx0z18ya3zk2p6zlc0f2hr3g-libice-1.0.8 xhd2xdv16b64ajkdd7pbkklrq5fmn28i-bash-4.3 yagg8zjdz367qiwspm8ssgny47inrn8f-alsa-lib-1.0.27.1 yxaqk5vj602m6waasvrg30hm09ln501w-giflib-4.2.3 zjwc4x53rpim4j3hmspzpv0k3n4kgv0n-dbus-1.6.4 zysrgzapv5vzjqrbcz2y3ksi9w651876-ncurses-5.9
Deriver: 2nbrvsf3g3xl3bwh3cfvb2rvwsc8n0kn-emacs-24.3.drv
System: x86_64-linux
Signature: 1;hydra.gnu.org;KHNpZ25hdHVyZSAKIChkYXRhIAogIChmbGFncyBwa2NzMSkKICAoaGFzaCBzaGEyNTYgI0EzM0UxOEI2QUU3QTZFNjEwN0I0MDQ2NjMxQkNGOTFBM0EwNTQwMTlEQTA1NkI0NjA5MDg0QThDNTlBRjA1RjMjKQogICkKIChzaWctdmFsIAogIChyc2EgCiAgIChzICM2NzgzMjA2MzBBRTA3QkM2M0ZBRTQ5MkY2QkI0OEJGMTBBMDAwNThGRTY1OTE2NDgzQjZFNERBRDk2NTlBQzY0OTRFMjVCQzlEMUIwMTMzN0QxMEFDRTRFNDYyODI3OEI0ODVFMDM2NkU4Mzc3MzE3QUM4M0ZGQkQ5NkU2MDJCRUZBOENBQTk4QzlBRDJCRTJDRjJCRjQ4QzYzQUVFNTFBNDNGMkJBM0ZGNjI0NTc0NTU0NjJGNjY1Mjg2OTBBRkU3ODJCMEJBNjdDMjgxMkU5MjZGNzNCOEZEMzQyQTZDMzgyNEZCNkFBQTBCQTk2RjhCM0FENjgzREQzOUU3ODNDQzI0MzQ2NjBGNjRFQTU5OUU4QkEwNkREMTczM0RFQjc0QjM2OEUzMTIwMkI0NjZBOUEzOTc1ODM4Q0MzNjFDODlBMkQ0MzEzMzlDMjkxRkM3Q0JBQzUzMDM4Qjg0MTE1MjZCMjU1NjE4MTBCQTEzRkJGMERERUFDM0E3MDJFOURCNTFENDQyNTQ1QjIzOTAxMzA4QjdBRjk2QUY3MTdBRTNGODBBNTk1MzNFMUJENUU2QTZBNzQ0NDJDRkIwNzFENTM2RDYyODhDMkRCRURBNTlCOTEwMjVFRTRFMENERDU1NTEwOUIxM0YwQzhBRUY4MkNCOTZBRDlEMkYzRjhFRjU4QzYxQUEwNzg0OUVEMkFEMDE2QkZCMjU0RDdDQTlEMTY2NkJFMDE3M0E0QzI4NkEyOTdEM0ZFQ0MyNjdGMTUxQTdFMEREN0FDRjc3MDg1MjRFODk3NzgxMjU5Qzc5MUYyQjExNURBNUNEMjU3RjE2QzJCREQwRDIyOUY2RDA4QkY0RjNCQjUzQjM2QjU5MjAzQzIxODkyQ0FCOUI2MUZGRkVEREE1QjY3MEI0MDY5OTYxNzQ5Rjg2QUVGQzMzMjQ5RUQzNDQ3MjVGRDkyRkI0NzI1MzgxQkRFM0VENjIwQ0IwNDRGQjMyMjVGMkU3Q0I4ODdGNjVFRTgyMkNGNTg4ODMwMkRCMUY2RkNERTVCQkYxMzAxNTczRTU0MTZCM0E3Q0FDODYyMkE2OUUwNTk5QjAyRDhBQUQwNDc1NENBMjcxOTdCMjkzNjIzMTVCNTQ2RTg4NzhFRDc2REZBOTAyN0RGQjc0MkEzMDVBRkUwQjNDRTBGRjNCNEE3MUI1NTU5ODIwMjM2OUFFMDY2MEZDNTU0QjYzQ0ZFQjRFRUU4MkU4RjZCMTFERDU5NUY3Rjg0NDI1RUExRkYyNjU5Q0EyMkE3QUMzNDBCQTZGNjNDNzU2QzdCRUU4NTlCQzlDQTQ0RDk3OTc1QzYwMkMwRjk4MTRDMUQ2QzczMDg3ODZEIykKICAgKQogICkKIChwdWJsaWMta2V5IAogIChyc2EgCiAgIChuICMwMERCMTYzNEUzRDlERkFDOTdBRTQ3MzREQUU5NjhDQ0IxNUVFNDgxNUM4MkJEQzI1NDg4M0RCQjQ5RkUxRUYzMjI2OEU4MkQ0QkJFMEUzNTI5OEM0ODFDOURBMTU1MTY0MkZBRkYwNUFFQzFBNjA3MTJGMUJCNEJFN0QyNUQ3RUZGN0E0Rjg5NzA0QTVBOUFDMjMyODcwQ0I5RjI0NzZDM0I1MzhBMEU5OTBBODgyNURFQjczMDgxRDMxNzAwMUZCOEExODg2MDBGMkZFRjVGNUY1NzBFODU3RjNFRTQzNTUwNzdBM0MzOTE4RUQ3MjcyM0E1NkJBNTVDNDY2RDQwMDY1ODk3NEQ3REFEMUY2QjdCNjNDMTkyQjlDMjcwNEQ5OEJCRkYxQzNCRDVCOEVGMTFBOEFEQzgzQUNCOEZEOEU5RjFFNzkyRkRBRDI2MjQxNUQxM0YyREVFNTVGMzMwOTA4Q0ZEQTlDM0M4QzMyQjY0RjdERDA4ODQ1N0QzNEY0NDVFMkUyQzgzQzZENjgwNTQ5REM5QjZFNjU3M0I4OTQ5NjU2NzIwNEVEMjg1RTY3QTI3OUYyRjY2NzA4MEJBOTQxRDgwRDAxNUNFODdCMEZCNkE5MUE5OUNFQ0M3RDkxRDJEMjEwQjAwRTRCNkU2MTFEQTUxREIwMDhGMURGRTNGQ0FDNkIyNzM5M0ZBNzgxRDQ1RjlBMTVGQzdCODc4NUEzRTg2QkE2NTkyQjI5MTZDQTIyQ0YxRTQwRkM4NUY4NUNBQ0E1OTA0NjExNTRGNThGMzU4MEIxNjM5ODkwOEVGMzIwNzZGNDExMjk5QzI4NzI3Qzk0RDg4QjZBNjE4Rjg0REQ3M0FFQkVEODI3MEJDQjY2OTA5MjhDQjFCRjI1MEMzNUUxRjZCRjNCMUIzMEQwNUJBMjQ2RUNFOEY2OUQ5MDY1REUyNkY0QjNFMEQ4MTRENzBBOUMyN0NCNUI3QjA1MEM5MDkwNTkwRDNBOUVGODMzNzRGMjY0M0U1NDQ2RkJEMzlEREIxMjREQkY2REZEQUE2RDE4RTI1NjBBRDBDQkZBMTFDOTU5QzlCNzMxNkJGMTk5NjNBMTkxOTY3MDU0RTlGRDk3REMxNEQ3MTA4MkIzMEIxQzkwQTQ2RTg5OTY2ODI0NzRDM0JDQjUxQkEwODgyOTU4ODk3QjZERDM1RTQxQjUxNzREMEE2QkNERTk3Qjg5MDQzRTk1QkQxQjcwREU2MURBNjY2ODkzQjQxNzE5NkExODAwMDU0NjZCQzNBNzQyRkRGMDRFODlCMDQ0NjBFM0U2QkM3MkU3RjFCNUZFQTVCMzA5MkZFRTU1MUEzQzQ0N0MxMkUxMDRFNjUjKQogICAoZSAjMDEwMDAxIykKICAgKQogICkKICkK
--8<---------------cut here---------------end--------------->8---

The Signature line above is a base64-encoded canonical sexp signature
(as for ‘guix archive’.)

With Hydra now ready, I’ve done some testing with Nikita’s cool work on
adding support for authentication/authorization of signed binaries.

Here’s a sample session, using the internal interface to ‘guix
substitute-binary’, with wip-signed-archives:

--8<---------------cut here---------------start------------->8---
$ echo "have /gnu/store/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3" | sudo ./pre-inst-env guix substitute-binary --query


$ sudo ./pre-inst-env guix substitute-binary --substitute /gnu/store/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3 foo

guix substitute-binary: error: unauthorized public key

$ cat hydra-key.pub | sudo guix archive --authorize

$ echo "have /gnu/store/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3" | sudo ./pre-inst-env guix substitute-binary --query

/gnu/store/1j3w0vvh1ya3l382ls5h1s75fvvdxbzk-emacs-24.3
--8<---------------cut here---------------end--------------->8---

What we see here is that ‘has-substitutes?’ requests simply return #f if
a substitute is available but is invalid (lacks a signature, or has a
wrong signature, or is signed by an unauthorized key.)  ‘--substitute’
requests error out when that happens.

Nikita: comments welcome on the two commits I just pushed in
wip-signed-archives.

I’ll try to add tests for that, but overall, it seems to be getting into
shape!

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: wip-signed-archives progress report
  2014-03-26 23:02 wip-signed-archives progress report Ludovic Courtès
@ 2014-03-27 16:16 ` Nikita Karetnikov
  2014-03-27 23:34   ` Ludovic Courtès
  2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
  1 sibling, 1 reply; 10+ messages in thread
From: Nikita Karetnikov @ 2014-03-27 16:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 259 bytes --]

> Nikita: comments welcome on the two commits I just pushed in
> wip-signed-archives.

Thanks for working on it.  One question: in the past, you told me to
avoid ‘false-if-exception’.  If it’s an issue here, can we replace it
with something else?

[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: wip-signed-archives progress report
  2014-03-27 16:16 ` Nikita Karetnikov
@ 2014-03-27 23:34   ` Ludovic Courtès
  0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2014-03-27 23:34 UTC (permalink / raw)
  To: Nikita Karetnikov; +Cc: guix-devel

Nikita Karetnikov <nikita@karetnikov.org> skribis:

>> Nikita: comments welcome on the two commits I just pushed in
>> wip-signed-archives.
>
> Thanks for working on it.  One question: in the past, you told me to
> avoid ‘false-if-exception’.  If it’s an issue here, can we replace it
> with something else?

What did I say?  :-)  (We have a saying in French: “do what I say, not
what I do”.  ;-))

I used it in two places:

                   (false-if-exception
                    (and=> signature narinfo-signature->canonical-sexp))

and:

  (define (valid-narinfo? narinfo)
    "Return #t if NARINFO's signature is not valid."
    (false-if-exception (begin (assert-valid-narinfo narinfo) #t)))

‘false-if-exception’ should indeed be used with care, because it hides
every error (including unbound var errors and such!), so it could be
hiding errors that really ought to be reported.

In the above cases I considered it OK, because the set of exceptions
that can possibly be raised is limited, and because the outcome of
‘false-if-exception’ is conservative (that is, at worst all narinfos
will be treated as if they were unsigned or invalid.)

Does it makes sense?

Ludo’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Support for signed substitutes pushed
  2014-03-26 23:02 wip-signed-archives progress report Ludovic Courtès
  2014-03-27 16:16 ` Nikita Karetnikov
@ 2014-03-30 21:54 ` Ludovic Courtès
  2014-03-31 18:24   ` Alex Sassmannshausen
                     ` (2 more replies)
  1 sibling, 3 replies; 10+ messages in thread
From: Ludovic Courtès @ 2014-03-30 21:54 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 6214 bytes --]

I just pushed support for signed substitutes (which is
wip-signed-archives plus many tests, documentation, and some
improvements) in ‘master’.

From now on, ‘guix substitute-binary’ automatically authenticates
substitutes, and ignores those not signed by an authorized public key.
By default, no key is authorized.

On my machine, ‘guix build emacs n’ with 40 substitutes needed takes
~4.8 seconds instead of ~3.5 seconds before (wall clock.)  There’s
probably room for improvement, but there’s also the fact that it has to
check all these signatures.

Please run ‘make check’, try it, and report any problems.  Note that
commit bf59c06 adds the public key used to sign substitutes from
hydra.gnu.org.  This commit is GPG-signed by me, like this message.
It’s a 4096-bit RSA key (RSA, not Curve25519, so that users of
libgcrypt < 1.6 can use it too):

 (public-key 
  (rsa 
   (n #00DB1634E3D9DFAC97AE4734DAE968CCB15EE4815C82BDC254883DBB49FE1EF32268E82D4BBE0E35298C481C9DA1551642FAFF05AEC1A60712F1BB4BE7D25D7EFF7A4F89704A5A9AC232870CB9F2476C3B538A0E990A8825DEB73081D317001FB8A188600F2FEF5F5F570E857F3EE4355077A3C3918ED72723A56BA55C466D400658974D7DAD1F6B7B63C192B9C2704D98BBFF1C3BD5B8EF11A8ADC83ACB8FD8E9F1E792FDAD262415D13F2DEE55F330908CFDA9C3C8C32B64F7DD088457D34F445E2E2C83C6D680549DC9B6E6573B89496567204ED285E67A279F2F667080BA941D80D015CE87B0FB6A91A99CECC7D91D2D210B00E4B6E611DA51DB008F1DFE3FCAC6B27393FA781D45F9A15FC7B8785A3E86BA6592B2916CA22CF1E40FC85F85CACA590461154F58F3580B16398908EF32076F411299C28727C94D88B6A618F84DD73AEBED8270BCB6690928CB1BF250C35E1F6BF3B1B30D05BA246ECE8F69D9065DE26F4B3E0D814D70A9C27CB5B7B050C9090590D3A9EF83374F2643E5446FBD39DDB124DBF6DFDAA6D18E2560AD0CBFA11C959C9B7316BF19963A191967054E9FD97DC14D71082B30B1C90A46E8996682474C3BCB51BA0882958897B6DD35E41B5174D0A6BCDE97B89043E95BD1B70DE61DA666893B417196A180005466BC3A742FDF04E89B04460E3E6BC72E7F1B5FEA5B3092FEE551A3C447C12E104E65#)
   (e #010001#)
   )
  )

I would very much welcome review and feedback.  The documentation
(appended below) and tests provide a good starting point.

Thanks again to Nikita for all the good work!

Ludo’.


3.3 Substitutes
===============

Guix supports transparent source/binary deployment, which means that it
can either build things locally, or download pre-built items from a
server.  We call these pre-built items "substitutes"—they are
substitutes for local build results.  In many cases, downloading a
substitute is much faster than building things locally.

   Substitutes can be anything resulting from a derivation build (*note
Derivations::).  Of course, in the common case, they are pre-built
package binaries, but source tarballs, for instance, which also result
From derivation builds, can be available as substitutes.

   The ‘hydra.gnu.org’ server is a front-end to a build farm that builds
packages from the GNU distribution continuously for some architectures,
and makes them available as substitutes.

   To allow Guix to download substitutes from ‘hydra.gnu.org’, you must
add its public key to the access control list (ACL) of archive imports,
using the ‘guix archive’ command (*note Invoking guix archive::).  Doing
so implies that you trust ‘hydra.gnu.org’ to not be compromised and to
serve genuine substitutes.

   This public key is installed along with Guix, in
‘PREFIX/share/guix/hydra.gnu.org.pub’, where PREFIX is the installation
prefix of Guix.  If you installed Guix from source, make sure you
checked the GPG signature of ‘guix-0.6.tar.gz’, which contains this
public key file.  Then, you can run something like this:

     # guix archive --authorize < hydra.gnu.org.pub

   Once this is in place, the output of a command like ‘guix build’
should change from something like:

     $ guix build emacs --dry-run
     The following derivations would be built:
        /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv
        /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv
        /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv
        /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv
     …

to something like:

     $ guix build emacs --dry-run
     The following files would be downloaded:
        /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3
        /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d
        /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16
        /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7
     …

This indicates that substitutes from ‘hydra.gnu.org’ are usable and will
be downloaded, when possible, for future builds.

   Guix ignores substitutes that are not signed, or that are not signed
by one of the keys listed in the ACL. It also detects and raise an error
when attempting to use a substitute that has been tampered with.

   The substitute mechanism can be disabled globally by running
‘guix-daemon’ with ‘--no-substitutes’ (*note Invoking guix-daemon::).
It can also be disabled temporarily by passing the ‘--no-substitutes’
option to ‘guix package’, ‘guix build’, and other command-line tools.

   Today, each individual’s control over their own computing is at the
mercy of institutions, corporations, and groups with enough power and
determination to subvert the computing infrastructure and exploit its
weaknesses.  While using ‘hydra.gnu.org’ substitutes can be convenient,
we encourage users to also build on their own, or even run their own
build farm, such that ‘hydra.gnu.org’ is less of an interesting target.

   Guix has the foundations to maximize build reproducibility (*note
Features::).  In most cases, independent builds of a given package or
derivation should yield bit-identical results.  Thus, through a diverse
set of independent package builds, we can strengthen the integrity of
our systems.

   In the future, we want Guix to have support to publish and retrieve
binaries to/from other users, in a peer-to-peer fashion.  If you would
like to discuss this project, join us on <guix-devel@gnu.org>.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
@ 2014-03-31 18:24   ` Alex Sassmannshausen
  2014-03-31 20:00     ` Ludovic Courtès
  2014-04-01 22:01   ` Ludovic Courtès
  2014-04-03 17:21   ` Andreas Enge
  2 siblings, 1 reply; 10+ messages in thread
From: Alex Sassmannshausen @ 2014-03-31 18:24 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 732 bytes --]

Hello,

I ran into some problems setting up substitution: when running
# guix archive --authorize < hydra.gnu.org.pub
guix persistently returned 
guix archive: error: No such file or directory

I was finally able to resolve this problem by 
# mkdir /usr/local/etc/guix

In config.scm %config-directory is either $NIX_CONF_DIR or
/usr/local/etc/guix. This is used as the directory for the acl file.

I imagine that directory is set during ./configure. Maybe this directory
should be created if necessary?

Other than that, everything now seems to be working as suggested by the
instructions so congrats to you and Nikita for your hard work!

Please find a tiny patch attached fixing a typo in the documentation.

Best wishes,

Alex


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Typo fix --]
[-- Type: text/x-diff, Size: 954 bytes --]

From 99fb1eed13590ac070a86b22444d7b040c2e7276 Mon Sep 17 00:00:00 2001
From: Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
Date: Mon, 31 Mar 2014 20:08:26 +0200
Subject: [PATCH] doc: fix typo.

* doc/guix.texi (Substitutes): add a missing 's'.
---
 doc/guix.texi |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 5bd7dbd..3d76f48 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -979,7 +979,7 @@ This indicates that substitutes from @code{hydra.gnu.org} are usable and
 will be downloaded, when possible, for future builds.
 
 Guix ignores substitutes that are not signed, or that are not signed by
-one of the keys listed in the ACL.  It also detects and raise an error
+one of the keys listed in the ACL.  It also detects and raises an error
 when attempting to use a substitute that has been tampered with.
 
 The substitute mechanism can be disabled globally by running
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-03-31 18:24   ` Alex Sassmannshausen
@ 2014-03-31 20:00     ` Ludovic Courtès
  0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2014-03-31 20:00 UTC (permalink / raw)
  To: Alex Sassmannshausen; +Cc: guix-devel

Alex Sassmannshausen <alex.sassmannshausen@gmail.com> skribis:

> I ran into some problems setting up substitution: when running
> # guix archive --authorize < hydra.gnu.org.pub
> guix persistently returned 
> guix archive: error: No such file or directory
>
> I was finally able to resolve this problem by 
> # mkdir /usr/local/etc/guix
>
> In config.scm %config-directory is either $NIX_CONF_DIR or
> /usr/local/etc/guix. This is used as the directory for the acl file.
>
> I imagine that directory is set during ./configure. Maybe this directory
> should be created if necessary?

Indeed.  Commit de28fef should fix this.

> Other than that, everything now seems to be working as suggested by the
> instructions so congrats to you and Nikita for your hard work!

Thanks for testing!  :-)

> Please find a tiny patch attached fixing a typo in the documentation.

Applied.

Ludo’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
  2014-03-31 18:24   ` Alex Sassmannshausen
@ 2014-04-01 22:01   ` Ludovic Courtès
  2014-04-03 17:21   ` Andreas Enge
  2 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2014-04-01 22:01 UTC (permalink / raw)
  To: guix-devel

ludo@gnu.org (Ludovic Courtès) skribis:

> On my machine, ‘guix build emacs n’ with 40 substitutes needed takes
> ~4.8 seconds instead of ~3.5 seconds before (wall clock.)

This is down to ~3.8 seconds with today’s commits.

Ludo’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
  2014-03-31 18:24   ` Alex Sassmannshausen
  2014-04-01 22:01   ` Ludovic Courtès
@ 2014-04-03 17:21   ` Andreas Enge
  2014-04-03 19:48     ` Ludovic Courtès
  2 siblings, 1 reply; 10+ messages in thread
From: Andreas Enge @ 2014-04-03 17:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Excellent work, thank you!

On Sun, Mar 30, 2014 at 11:54:10PM +0200, Ludovic Courtès wrote:
> Please run ‘make check’, try it, and report any problems.  Note that
> commit bf59c06 adds the public key used to sign substitutes from
> hydra.gnu.org.  This commit is GPG-signed by me, like this message.
> It’s a 4096-bit RSA key (RSA, not Curve25519, so that users of
> libgcrypt < 1.6 can use it too):

Are we limited to exactly one signature, or could hydra.gnu.org sign with
two keys, a legacy and a modern one?

Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-04-03 17:21   ` Andreas Enge
@ 2014-04-03 19:48     ` Ludovic Courtès
  2014-04-03 20:45       ` Andreas Enge
  0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2014-04-03 19:48 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> skribis:

> Excellent work, thank you!

You’re welcome.  :-)  Does it work for you?

> On Sun, Mar 30, 2014 at 11:54:10PM +0200, Ludovic Courtès wrote:
>> Please run ‘make check’, try it, and report any problems.  Note that
>> commit bf59c06 adds the public key used to sign substitutes from
>> hydra.gnu.org.  This commit is GPG-signed by me, like this message.
>> It’s a 4096-bit RSA key (RSA, not Curve25519, so that users of
>> libgcrypt < 1.6 can use it too):
>
> Are we limited to exactly one signature, or could hydra.gnu.org sign with
> two keys, a legacy and a modern one?

It can only sign with one key.

Eventually we can start requiring libgcrypt 1.6, but I felt it’s too
early for that.

Ludo’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Support for signed substitutes pushed
  2014-04-03 19:48     ` Ludovic Courtès
@ 2014-04-03 20:45       ` Andreas Enge
  0 siblings, 0 replies; 10+ messages in thread
From: Andreas Enge @ 2014-04-03 20:45 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Thu, Apr 03, 2014 at 09:48:55PM +0200, Ludovic Courtès wrote:
> Andreas Enge <andreas@enge.fr> skribis:
> > Excellent work, thank you!
> You’re welcome.  :-)  Does it work for you?

Definitely, otherwise I would have complained ;-)

Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-04-03 20:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-26 23:02 wip-signed-archives progress report Ludovic Courtès
2014-03-27 16:16 ` Nikita Karetnikov
2014-03-27 23:34   ` Ludovic Courtès
2014-03-30 21:54 ` Support for signed substitutes pushed Ludovic Courtès
2014-03-31 18:24   ` Alex Sassmannshausen
2014-03-31 20:00     ` Ludovic Courtès
2014-04-01 22:01   ` Ludovic Courtès
2014-04-03 17:21   ` Andreas Enge
2014-04-03 19:48     ` Ludovic Courtès
2014-04-03 20:45       ` Andreas Enge

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).