Summary: | Portage doesn't handle fifos correct | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Jonas Jonsson <jonas> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | InVCS |
Priority: | High | ||
Version: | 2.1 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 130612, 136244, 137445 | ||
Attachments: |
An ebuild to show the problem
emerge --info |
Description
Jonas Jonsson
2006-06-09 08:11:17 UTC
Created attachment 88770 [details]
An ebuild to show the problem
Created attachment 88771 [details]
emerge --info
If the destination file doesn't exist, the fifo is correctly installed. The merge logic doesn't even attempt to install the fifo if the destination file already exists. Then, during the unmerge phase, the previously existing distination file is removed because it's timestamp has not changed since it was installed. Actually, the fifo mtime is not stored in CONTENTS, so we can't be sure if they belong to another package unless we search through all CONTENTS for all installed packages. In svn r3482 I've changed it so that they will never be unmerged (we already do the same for device files). In the future we should implement global reference counting so that we can simply unmerge files that are no longer owned by any installed packages. This has been released in 2.1.1_pre1. |