[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] union: Rewrite to be faster; handle symlink/directory confli
From: |
Ludovic Courtès |
Subject: |
Re: [PATCH] union: Rewrite to be faster; handle symlink/directory conflicts |
Date: |
Thu, 03 Apr 2014 22:15:59 +0200 |
User-agent: |
Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux) |
Mark H Weaver <address@hidden> skribis:
> From 3f503705098745ddd54251a46b5634e78b209e5f Mon Sep 17 00:00:00 2001
> From: Mark H Weaver <address@hidden>
> 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=?' remains unchanged. Remove
> '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-leaves'.
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 ‘manifest’
file:
--8<---------------cut here---------------start------------->8---
$ guix package -i idutils -p foo
The following package will be installed:
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/manifest" ...]
ERROR: In procedure open-file:
ERROR: In procedure open-file: Permission denied:
"/gnu/store/3za8jyx93m12lzn0278d6m8bprni2nrn-profile/manifest"
builder for `/gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv' failed
with exit code 1
@ build-failed /gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv - 1
builder for `/gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv' failed
with exit code 1
guix package: error: build failed: build of
`/gnu/store/9iyyi8mzggmycs27wsmsgx7fn3sfq40l-profile.drv' failed
--8<---------------cut here---------------end--------------->8---
(We can’t catch it in the test suite because tests work on a local store
that is writable.)
Could you look into it?
Ludo’.