From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: =?utf-8?Q?=E2=80=98guix_publish=E2=80=99?= now compresses archives Date: Tue, 19 Jul 2016 15:15:38 +0200 Message-ID: <877fchkbut.fsf@gnu.org> References: <878twytwlp.fsf@gnu.org> <20160719062915.3cdpmb6xhcg3l6mw@venom> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPUsF-00033i-QP for guix-devel@gnu.org; Tue, 19 Jul 2016 09:15:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bPUsA-0000am-Ew for guix-devel@gnu.org; Tue, 19 Jul 2016 09:15:46 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44999) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPUsA-0000ac-4i for guix-devel@gnu.org; Tue, 19 Jul 2016 09:15:42 -0400 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:52630 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bPUs8-0002kD-HY for guix-devel@gnu.org; Tue, 19 Jul 2016 09:15:40 -0400 In-Reply-To: <20160719062915.3cdpmb6xhcg3l6mw@venom> (=?utf-8?B?IlRvbcOh?= =?utf-8?B?xaEgxIxlY2giJ3M=?= message of "Tue, 19 Jul 2016 08:29:15 +0200") 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+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel Hello Tom=C3=A1=C5=A1, Tom=C3=A1=C5=A1 =C4=8Cech skribis: > As I am happy to see enthusiasm about Guix, I don't think that current > archive format is usable for distribution of binary packages of > whatever origin. Problem is that we have package definition as part of > package manager GIT snapshot or local files but this information is > not distributed along with the package archive. I=E2=80=99m not sure what you mean. The =E2=80=9Csubstitute=E2=80=9D mecha= nism is meant as a cache. Guix locally compiles the package recipe to a low-level representation of the build process (a derivation), and then, it can *optionally* ask substitute servers whether they have the result corresponding to that derivation. A derivation is self-contained and unambiguous. I can do: --8<---------------cut here---------------start------------->8--- $ guix build -d sed /gnu/store/whkb4d5sq2326m54zpdz6hhmi37jy6j4-sed-4.2.2.drv $ cat $(guix build -d sed) | cut -d ']' -f 1 Derive([("out","/gnu/store/4ls9kdy1w6ichvmbrl5wn98lxmznbkd6-sed-4.2.2","","= ") $ wget -O /tmp/sed-binary.nar.bz2 https://mirror.hydra.gnu.org/nar/4ls9kdy1= w6ichvmbrl5wn98lxmznbkd6-sed-4.2.2 --2016-07-19 15:09:02-- https://mirror.hydra.gnu.org/nar/4ls9kdy1w6ichvmbr= l5wn98lxmznbkd6-sed-4.2.2 Ni solvigas mirror.hydra.gnu.org (mirror.hydra.gnu.org)... 131.159.14.26, 2= 001:4ca0:2001:10:225:90ff:fedb:c720 Konektado al mirror.hydra.gnu.org (mirror.hydra.gnu.org)|131.159.14.26|:443= ... konektita. HTTP peto sendita, ni atendas respondon... 200 OK Grando: nespecifita [application/x-nix-archive] Ni konservas al: '/tmp/sed-binary.nar.bz2' /tmp/sed-binary.nar [ <=3D> ] 145.07K --.-KB/s in 0.= 07s=20=20=20 2016-07-19 15:09:02 (2.04 MB/s) - '/tmp/sed-binary.nar.bz2' konservita [148= 549] --8<---------------cut here---------------end--------------->8--- =E2=80=A6 and now I have the binary corresponds to that sed-4.2.2.drv, or so claims mirror.hydra.gnu.org. (This URL scheme is what =E2=80=98guix publis= h=E2=80=99 implements.) Thus, mirror.hydra.gnu.org does not need to know about the (package =E2=80= =A6) form, the Git revision of Guix, whether the recipe was local or not, etc. Of course I have to trust mirror.hydra.gnu.org to genuinely serve binaries resulting corresponding to the derivations. To express this trust, I register its archive signing key, as explained at . Does that clarify things, or am I misunderstanding? Thanks, Ludo=E2=80=99.