Welcome to CRUX bug tracking.

FS#15 - pkgutils: symlink handling

Attached to Project: CRUX
Opened by Mark Rosenstand (mark) - Saturday, 18 March 2006, 08:31 GMT
Last edited by Anonymous Submitter - Saturday, 03 June 2006, 17:21 GMT
Task Type Bug Report
Category tools → pkgutils
Status Assigned
Assigned To No-one
Operating System CRUX
Severity Low
Priority Normal
Reported Version Development
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


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.
   Pkgfile (0.1 KiB)
This task depends upon

Comment by Mark Rosenstand (mark) - Sunday, 19 March 2006, 11:18 GMT
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).
Comment by Johannes Winkelmann (jw) - Friday, 07 April 2006, 08:30 GMT
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.
Comment by Mark Rosenstand (mark) - Thursday, 13 April 2006, 15:00 GMT
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.
Comment by Mark Rosenstand (mark) - Saturday, 29 April 2006, 18:25 GMT
I have opened a seperate bug (#63) about the directory permission issue.
Comment by Jose V Beneyto (sepen) - Saturday, 04 October 2008, 03:15 GMT
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 $?
$ sudo pkgrm foo
$ echo $?

I think that ATM is fixed.
Comment by Juergen Daubert (jue) - Friday, 05 April 2013, 16:34 GMT
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
pkgadd: listed file(s) already installed (use -f to ignore and overwrite)