From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#24703: Store references in 8-byte chunks in compiled code Date: Thu, 20 Oct 2016 14:25:01 +0200 Message-ID: <87twc7cin6.fsf@gnu.org> References: <87mvi5lzqu.fsf@netris.org> <87inssncln.fsf@netris.org> <8737jwnb1c.fsf@netris.org> <87r37gstf6.fsf_-_@netris.org> <87d1j0sl1l.fsf@netris.org> <87a8e4glot.fsf@gnu.org> <8f2024ad-13c1-d4b1-1541-c2a5bddcb403@etorok.net> <87h98bdvng.fsf@gnu.org> 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]:45456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bxCQ7-0005zC-V2 for bug-guix@gnu.org; Thu, 20 Oct 2016 08:26:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bxCQ6-0007uh-Nc for bug-guix@gnu.org; Thu, 20 Oct 2016 08:26:03 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:34229) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1bxCQ6-0007uc-Kc for bug-guix@gnu.org; Thu, 20 Oct 2016 08:26:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: ("=?UTF-8?Q?T=C3=B6r=C3=B6k?= Edwin"'s message of "Thu, 20 Oct 2016 00:25:39 +0300") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: =?UTF-8?Q?T=C3=B6r=C3=B6k?= Edwin Cc: 24703@debbugs.gnu.org T=C3=B6r=C3=B6k Edwin skribis: > On 2016-10-17 12:42, Mark H Weaver wrote: >>=20 >> Here's how to recover, for now: >>=20 >> guix build --no-grafts -e '(@@ (gnu packages fontutils) fontconfig/fix= ed)' > > Thanks! > > On 2016-10-17 15:09, Ludovic Court=C3=A8s wrote: >> T=C3=B6r=C3=B6k Edwin skribis: >>=20 >>> On 2016-10-16 22:04, Ludovic Court=C3=A8s wrote: >>>> Mark H Weaver skribis: >>>> >>>>> When grafting, how will we achieve confidence that we've found the >>>>> correct occurrence of the last character? I think we will have to gi= ve >>>>> up our recently added feature of being able to change the version num= ber >>>>> of grafts. >>>> >>>> Wait, don=E2=80=99t jump to the conclusions. :-) >>> >>> I've just encountered the same problem with fontconfig (after installin= g GuixSD, running guix pull and guix system reconfigure, --no-grafts was re= quired). >>> Would it be possible for the grafts to keep a symlink (somehow register= ed to be part of the grafted fontconfig so that guix gc doesn't remove it) = instead of patching the binaries? >>> /gnu/store/-fontconfig-2.11.94 -> /gnu/store/-f= ontconfig-2.11.94 >>=20 >> We could use a self symlink > > I'm new here [*] and I'd like to understand what solutions would be possi= ble, could you please explain how the self symlink would work? The grafted variant of each store item would have a symlink pointing to its ungrafted variant. The problem with this approach is that it would induce some storage overhead (although deduplication probably mitigates that), and it would make it harder to check whether a given item is using only grafted things because =E2=80=98guix gc -R something=E2=80=99 would always show bot= h the grafted and the ungrafted variant of each dependency. > I was thinking about bind mounts (the list of needed bind mounts would be= maintained as a derivation, and initialized from initrd maybe?): > /gnu/store/-fontconfig-2.11.94 on /gnu/store/-fontcon= fig-2.11.94 That would only work on GuixSD, not on foreign distros, and it=E2=80=99s a =E2=80=9Cstateful=E2=80=9D approach, which defeats the whole reproducible a= pproach. > IMHO binary rewriting should be a last resort, it is too low-level and de= pends on the compiler/version to get it right. I agree. However, for fast security updates, it seems to be the best option: https://savannah.gnu.org/forum/forum.php?forum_id=3D8470 Thanks for your feedback, Ludo=E2=80=99.