- Status Assigned
- Percent Complete
- Task Type Bug Report
- Category tools → pkgutils
- Assigned To No-one
- Operating System CRUX
- Severity Low
- Priority Very Low
- Reported Version Development
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#15 - pkgutils: symlink handling
When uninstalling a package that had files in /usr/var, something strange happened on removal:
# pkgrm foo
pkgrm: could not remove /usr/var/: Not a directory
This was unexpected because /usr/var is owned by \'filesystem\'. Use attached Pkgfile to reproduce.
BTW: A pkgutils category under tools would be nice.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Ugh, this one\'s ugly: I installed a package with a /var/tmp directory in it. Its mode was drwxr-xr-x whereas filesystem\'s is drwxrwxrwt. Installing the package results in the mode being switched to drwxr-xr-x without pkgadd complaining (which in turn resulted in X not being able to store its xkb data, so my keyboard freaked out).
Those are two issues which are both not trivial to solve, however we\'ll look into it.
Regarding symlinks: \'pkginfo -o\' and \'pkgadd -u\' are both unaware of them too, which can lead to confusing errors.
I think the right approach would be to detect the mismatch as a conflict, since it\'s most likely unintended. For the very few cases where the behaviour could possibly be intended (I know of none), it\'s a good idea to require user interaction (-f) anyway, as it will affect his system permanently, so he should be aware.
I have opened a seperate bug (#63) about the directory permission issue.
with (pkgutils) 5.32.0, I've this results:
$ $sudo pkgadd foo#1.0-1.pkg.tar.gz
$ pkginfo -o var/foo
Package File
foo usr/var/foo/
$ sudo pkgadd -u foo#1.0-1.pkg.tar.gz
$ echo $?
0
$ sudo pkgrm foo
$ echo $?
0
I think that ATM is fixed.
The bug wrt symlink handling of pkgadd is still alive, see Johannes' comment #2 above
I run into the issue again:
json-c, version 0.10, installs some headers into /usr/include/json. As of version 0.11 the directory /usr/include/json-c is used instead, but to keep backwards compatibility a symbolic link json-c -> json is added.
An update with pkgadd fails:
pkgadd -u json-c#0.11-1.pkg.tar.gz
usr/include/json
pkgadd: listed file(s) already installed (use -f to ignore and overwrite)