From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id gMe7HySf3GCP/wAAgWs5BA (envelope-from ) for ; Wed, 30 Jun 2021 18:43:16 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id uNVgGySf3GCCSQAAbx9fmQ (envelope-from ) for ; Wed, 30 Jun 2021 16:43:16 +0000 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 88D3519BDB for ; Wed, 30 Jun 2021 18:43:15 +0200 (CEST) Received: from localhost ([::1]:46176 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lydIw-0007yg-H4 for larch@yhetil.org; Wed, 30 Jun 2021 12:43:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53600) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lydIl-0007yD-0T for guix-patches@gnu.org; Wed, 30 Jun 2021 12:43:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47059) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lydIk-0006SS-MO for guix-patches@gnu.org; Wed, 30 Jun 2021 12:43:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lydIk-0007NK-JY for guix-patches@gnu.org; Wed, 30 Jun 2021 12:43:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49149] [PATCH 0/7] Add deb format for guix pack. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 30 Jun 2021 16:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49149 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 49149@debbugs.gnu.org Received: via spool by 49149-submit@debbugs.gnu.org id=B49149.162507136128323 (code B ref 49149); Wed, 30 Jun 2021 16:43:02 +0000 Received: (at 49149) by debbugs.gnu.org; 30 Jun 2021 16:42:41 +0000 Received: from localhost ([127.0.0.1]:58605 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lydIO-0007Ml-Ip for submit@debbugs.gnu.org; Wed, 30 Jun 2021 12:42:40 -0400 Received: from mail-qk1-f180.google.com ([209.85.222.180]:45054) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lydIN-0007MX-Bd for 49149@debbugs.gnu.org; Wed, 30 Jun 2021 12:42:39 -0400 Received: by mail-qk1-f180.google.com with SMTP id bj15so3053460qkb.11 for <49149@debbugs.gnu.org>; Wed, 30 Jun 2021 09:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=flWeIxG99NP++P0uOKEZdSH95CJgkK+ulEgO0iaJmzw=; b=YDmtEtFMR92AvRiWBafWVOCz5QhEe9c7pf34CbVyrPRX426EOg7CzKn5W8Pog/OQgC zNibiy5fjD0c80Y5YnHLZXNfIS7FktVagNPv6WIARnt39buKmd102XGFLF1d+IYEb2m9 NoRzu+vaNADxRNA3Ckzs87cC6lL1vABLpWZDT+jEzjpCycgq0KNKVAac2fXlGnCulDaZ oNVrzqe6xIKPAIzUI+k61cdCGQ3laX0S5a15wo8VJo2d4vBE7XYRWtVvfvQRRdh0E0CO 8nZTTPZBWbNh6/3eF0k7/u569x8W1ZjeuTRmWweivKr9faUePgWEOrZKk2s0mErM3nFn EmOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=flWeIxG99NP++P0uOKEZdSH95CJgkK+ulEgO0iaJmzw=; b=mRBO7s61F563dzuiPKjlb44NofT7IKFfcKzXylqFuXqUzcmV8SJWQ+pWSCSBJAaYS3 r+WaR28d5t/0EC8GYvkZtNvfD2NoQOZgIs9LSKPEvaPhhqffvxl8WjAr6VWuFcUjm5Zx 01SHkEvd3leONWrCLMMWCqrjDRzROO7FB+CAQR2+3nVcpC45HV/KjzBoR+8pnV3qqbQA TIGF3uJRlMtWkJLm1w4sHySgG4FoD7GMUiupyPznlBsr7oCSe7u7oOcXNtNlQmWhkanC MdaneyDig2haY4da2HWcyCPh39jJfTgEUl86+O0SoTt28CX2CXybiFxOUdyBRgzBOeHR lBMg== X-Gm-Message-State: AOAM533L+MIvhUmRGf9u/6vYTy/usoDRDDv3w1PXrV3hMZIKJuT0h0+y iVOlAaf8UC2zKcPu/wH2U3WfLnqFGUbfbg== X-Google-Smtp-Source: ABdhPJw1iNo6c7onI0bqu+tWnJCPvNLVD+xQM+ufuAzl8N8Dkcy9fNvugJh2weO4lm+MU7pwgNi0Cw== X-Received: by 2002:a37:8581:: with SMTP id h123mr37583496qkd.316.1625071353621; Wed, 30 Jun 2021 09:42:33 -0700 (PDT) Received: from hurd (dsl-150-149.b2b2c.ca. [66.158.150.149]) by smtp.gmail.com with ESMTPSA id w185sm13953676qkd.30.2021.06.30.09.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Jun 2021 09:42:33 -0700 (PDT) From: Maxim Cournoyer References: <20210621061039.31557-1-maxim.cournoyer@gmail.com> <87eecsuv85.fsf@gnu.org> <87k0mcv9wh.fsf_-_@gmail.com> <87bl7npvbg.fsf@gnu.org> Date: Wed, 30 Jun 2021 12:42:32 -0400 In-Reply-To: <87bl7npvbg.fsf@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Wed, 30 Jun 2021 11:15:31 +0200") Message-ID: <87wnqb483r.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1625071395; 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: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=flWeIxG99NP++P0uOKEZdSH95CJgkK+ulEgO0iaJmzw=; b=ecVq1kP1vdVO8Dpiz07+BMqXiDdAlN5ztyxTV5voHDp1JeIKGYXmwgZohm6EDUJ1w/7U38 WxXvmBxgRRHWe+RQhrnBGlYC/H10kajZmPamCx5mf4Qp28oNvlVlj2GZw4AF73gflnJnYR BP9Sptv28n9aSlaQqyglMfS5b43VL/cKeQ2U9FSygAMBUt+kp+RIOJsLAm3NI4NwixkVK3 cfIGXJywEQB3vWsDHakKLoM4CAzEs4zfAL/ru9e1dl/jfRavwTW65XoLQRM61WQE3VkYR2 x+yNJJTM2TN3Cpp/y87jwSjs5eVTjUav5J5caMBzOzFxi1VAvSI0R/xVUEG03A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1625071395; a=rsa-sha256; cv=none; b=byLrGfu/cxdcNHnUKVmbUkdcUiH0lXK7tujVg2N0D1Cin27kd7FIalsXYI4AY7jlkyxHyK nwV4AcfvKJH0BOyf3KhZeijbIDkTLYZq136sbCs3E0/HBYKaBHYReWTx/+Ebr9LqAEovOv QXZww3pYmOPg8pYhzEdcIk5XI153crF9m63q6VWc9jZBltx4zZXXDtjA+4FoNca4l/CN0e KyR9Of4JD+nHJZqXDauCD+QBPzhcdi2Pbu6pk1h8I1ercISPHWSPpLOaBGafTvtkPkUM5C U4flVlLqaJnPcMHZVDEnK9PL2m6N5bk2iMR14LK+plbk3QST/xVg1hzz5QnHqA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=YDmtEtFM; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 0.18 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=YDmtEtFM; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 88D3519BDB X-Spam-Score: 0.18 X-Migadu-Scanner: scn1.migadu.com X-TUID: zwKr2efKhuvG Hello! Ludovic Court=C3=A8s writes: > Howdy! > > Maxim Cournoyer skribis: > >> Ludovic Court=C3=A8s writes: > > [...] > >>> Apparently, dpkg will happily overwrite them when you install (and >>> that=E2=80=99s fine, if they have the same name, they=E2=80=99re identi= cal), but what >>> happens when you remove one of them? Does it, for instance, remove >>> /gnu/store/=E2=80=A6-glibc just because it =E2=80=9Cbelongs=E2=80=9D to= that package, without >>> noticing that it also belongs to other installed packages? >> >> Actually, dpkg will error with a conflict message if two distinct >> packages try to install the same file. Only a package with the same >> name can overwrite itself. > > Ah OK. > > Also, what happens if you do: > > sudo apt install guix > guix install stuff =E2=80=A6 > sudo apt install ./guix-pack-generated.deb > > ? > > Will that overwrite things in /gnu/store? > > Admittedly it makes little sense to do something like this, but that=E2= =80=99s > something one could do. It probably would conflict with what is already in the store (installed by guix) and abort installation, guarding against this. >>> If dpkg cannot deal with that, it=E2=80=99s equivalent to a tarball pac= k for all >>> practical purposes, except you=E2=80=99d run =E2=80=9Csudo apt=E2=80=9D= instead of =E2=80=9Csudo tar=E2=80=9D. >> >> Given you can't install two conflicting packages, the issue of removing >> the files of another package cannot arise. In practice that means that >> the current implementation of 'guix pack -f deb' would only allow >> installing *one* such .deb package on a system at a time (most >> applications will carry the glibc and thus conflict for example). > > I see. So the main value over =E2=80=9Csudo tar xf=E2=80=9D is that dpkg= knows which > files were installed, right? That's one good advantage (the ease of cleanly uninstalling the .deb), but for me the main one is the ability to plug it in already established distribution channels (such as a 3rd party apt repository) and have it available (and updatable) easily for their users. A real world use case I've been playing with is to have the jami-qt package that is painstakingly built for each flavor of the leading Deb-based distributions and available for example in various repositories [0] built once via 'guix pack -f deb' and made available in the same way. That'd remove the need to wrestle with OS-specifics, and make the build (and hopefully the bugs) reproducible while preserving the established and reliable distribution channel. I hope this is way of doing things is obsoleted one day when Guix can be hooked in the GNOME software "store" the same as snaps or flatpaks can, so that users don't need to know how the command line to benefit from the advantages provided by Guix. [0] https://dl.jami.net/nightly/debian_10/pool/main/j/jami/ >> For a multi deb-pack scenario, we could have each .deb install their own >> files under for example /opt/guix/deb-packs/$name/gnu/store... via the >> relocatable option. > > Hmm yeah, though it doesn=E2=80=99t sound pretty. In general, I find that 'guix pack's take a step away from elegance in exchange for convenience, so that doesn't sound too terrible in that context (it'd actually be easier to manage than a multi-tarball guix packs deployment, for example, especially when comes the time to reclaim some disk space). My 2 cents :-). Maxim