From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH] union: Rewrite to be faster; handle symlink/directory conflicts Date: Thu, 03 Apr 2014 22:15:59 +0200 Message-ID: <87ha6anp8g.fsf@gnu.org> References: <871txfk26u.fsf@yeeloong.lan> 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]:53769) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVo3V-0001hp-0N for guix-devel@gnu.org; Thu, 03 Apr 2014 16:16:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WVo3O-0004iH-DM for guix-devel@gnu.org; Thu, 03 Apr 2014 16:16:08 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:58382) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVo3O-0004iD-6o for guix-devel@gnu.org; Thu, 03 Apr 2014 16:16:02 -0400 In-Reply-To: <871txfk26u.fsf@yeeloong.lan> (Mark H. Weaver's message of "Wed, 02 Apr 2014 14:37:29 -0400") 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Mark H Weaver Cc: guix-devel@gnu.org Mark H Weaver skribis: > From 3f503705098745ddd54251a46b5634e78b209e5f Mon Sep 17 00:00:00 2001 > From: Mark H Weaver > Date: Fri, 28 Mar 2014 03:54:01 -0400 > Subject: [PATCH] union: Rewrite to be faster; handle symlink/directory > conflicts. > > * guix/build/union.scm: Rewrite; only 'file=3D?' remains unchanged. Remo= ve > 'tree-union' and 'delete-duplicate-leaves' exports. Merge inputs in a > breadth-first fashion. Follow symlinks for purposes of making decisions > about the merge. > > * tests/union.scm: Remove tests of 'tree-union' and 'delete-duplicate-lea= ves'. I stumbled upon this bug: building a profile with a single package fails, because the new union.scm makes the profile directory a symlink to that package, which then prevents the creation of the =E2=80=98manifest= =E2=80=99 file: --8<---------------cut here---------------start------------->8--- $ guix package -i idutils -p foo The following package will be installed:=20=20=20=20=20=20=20=20 idutils-4.6 out /gnu/store/p86dq5svczkmk2ym8rd8xvvv9089hq51-idutils= -4.6 The following derivation will be built: /gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv [...] 883: 1 [call-with-output-file "/gnu/store/3za8jyx93m12lzn0278d6m8bprni2nrn= -profile/manifest" ...] In unknown file: ?: 0 [open-file "/gnu/store/3za8jyx93m12lzn0278d6m8bprni2nrn-profile/man= ifest" ...] ERROR: In procedure open-file: ERROR: In procedure open-file: Permission denied: "/gnu/store/3za8jyx93m12l= zn0278d6m8bprni2nrn-profile/manifest" builder for `/gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv' faile= d with exit code 1 @ build-failed /gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv - 1 = builder for `/gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv' faile= d with exit code 1 guix package: error: build failed: build of `/gnu/store/9iyyi8mzggmycs27wsm= sgx7fn3sfq40l-profile.drv' failed --8<---------------cut here---------------end--------------->8--- (We can=E2=80=99t catch it in the test suite because tests work on a local = store that is writable.) Could you look into it? Ludo=E2=80=99.