Bug 352927 - Copying symbolic links with Dolphin adds absolute path to link
Summary: Copying symbolic links with Dolphin adds absolute path to link
Status: RESOLVED FIXED
Alias: None
Product: frameworks-kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR major
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-20 00:06 UTC by Uri Herrera
Modified: 2016-07-14 14:38 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.16
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Uri Herrera 2015-09-20 00:06:22 UTC
Dolphin doesn't seem to respect the relative paths on symbolic links. Whenever I create a symbolic link with the command ln -s (I don't use the context menu) and then copy this link to the desired folder the link while working contains the absolute path of the target file.

Where the link should be:
target: ../../../file

It actually is:

target: /home/$user/folder/file

Reproducible: Always

Steps to Reproduce:
1. Create a file
2. Create a link with ln -s
3. Copy with Ctrl+C and paste with Ctrl+V

Actual Results:  
Link copied contains absolute path of the target file.

Expected Results:  
Link should have the relative path of the target file.

This happens with PCManFM Qt too but not the GTK version. This behavior didn't happen in previous versions of Dolphin (like 4.14.x) either.
Comment 1 Frank Reininghaus 2015-09-20 07:56:40 UTC
Thanks for the bug report. I can confirm this behavior. I cannot comment on whether this change is intended or not.

I assume that this could be due to a change in the KIO library, which Dolphin and other KDE applications use for copying files.
Comment 2 David Faure 2015-10-04 08:53:36 UTC
Indeed this didn't happen in the kdelibs4 version of Dolphin.
Comment 3 David Faure 2015-10-04 09:13:28 UTC
Nice, QFileInfo::symlinkTarget() always returns an absolute path, and there's no function in Qt for reading the relative symlink target. I'll use readlink....
Comment 4 David Faure 2015-10-04 09:24:10 UTC
https://git.reviewboard.kde.org/r/125515/
Comment 5 David Faure 2015-10-24 18:02:26 UTC
Git commit f2c96d1550f22600f1b6dee74851c25a3f733ef4 by David Faure.
Committed on 24/10/2015 at 18:01.
Pushed by dfaure into branch 'master'.

Preserve relative link targets when copying symlinks.
REVIEW: 125515
FIXED-IN: 5.16
Change-Id: I7d3c988da32cae9d14750c8adb9ca5af6d140572

M  +59   -0    autotests/jobtest.cpp
M  +2    -0    autotests/jobtest.h
M  +12   -1    src/ioslaves/file/file.cpp

http://commits.kde.org/kio/f2c96d1550f22600f1b6dee74851c25a3f733ef4
Comment 6 varlesh 2016-07-10 14:28:10 UTC
Why on Dolphin bugged symlinks???
I create symlink New - Symbolic Link
Link: Folder2
Path: ../../Folder
Open preferncies  Folder2 and see link:
 /home/user/folder/.../.../folder
What is this?
Why not save real name ../../folder?
Comment 7 David Faure 2016-07-14 14:38:30 UTC
varlesh: please open new bug reports for unrelated problems. This bug report was about *copying* symlinks, your report is about *creating* symlinks. I can confirm the bug and I'm looking into it, but please don't hijack existing bug reports for new issues. Can you open a new bug report?