Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 789729 - Problem merging symbolic links over directories
Summary: Problem merging symbolic links over directories
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on: 326685
Blocks:
  Show dependency tree
 
Reported: 2021-05-12 19:42 UTC by Nikita Zlobin
Modified: 2021-05-12 22:26 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikita Zlobin 2021-05-12 19:42:45 UTC
media-libs/lv2 creates symbolic links from include dir to libdir (in lv2 used for bundles, which mostly consists of headers and ttl files). But with config option --copy-headers it will copy targets instead of linking them.

Unmerge followed by emerge have no problems, but emerging may cause unexpected result:
- If prior install had symlinks and new has dirs, new install has symlinks as before.
- But if it was dirs first and symlinks next - same dirs are here but empty, while symlink has its name with appended numeric extension as for backup. In this case unmerging will leave entire tree unremoved (for lv2 - /usr/include/lv2 with all dirs and symlink backups), requiring manual removal to get it back properly working.

Reproducible: Always

Steps to Reproduce:
1. Emerge current lv2 ebuild from gentoo: /usr/include/lv2 should have symlinks.
2. Modify ebuild, adding --copy-headers to config options. Reemerge. There are still symbolic links.
3. Unmerge & emerge. There are just directories now, /usr/include/lv2/atom is not empty.
4. Remove --copy-headers from ebuild.
Actual Results:  
Subdirectories in /usr/include/lv2 have same names, but empty. Symbolic links are here, but have .NNNN numeric ext appended to their filenames.

Expected Results:  
1. Either symbolic links should replace directories (like remove old before merge).
2. Or it's directories, whose names should have appended dot-numbers.

I don't know if there are other packages where same replacement could occur. But still would be safer to count symlinks type itself as filetype rather than underlying filetype. I can't pre-assume this bug as minor, because there is no clear indication when such issue happens. I got sign of trouble when tried to reemerge all lilv & suil dependencies from gentoo releases after using own live ebuild, with lv2 ebuild having --copy-headers in src_configure(): sratom failed compilation due to missing lv2/atom/atom.h (see #789429, now closed).