Version: 2.15 (using KDE 4.5.1) OS: Linux I just wanted to compress a folder, which contains a lot of symlinks from one subfolder to other subfolders, as tar.gz with ark. But instead of compressing the 3 MiB directory preserving the symlinks it created a 5 MiB tar.gz which containes all former symlinks as files. There doesn't seem to be a way to turn that off. Really, I cannot upload those swollen archives anywhere, so I am forced to use the commandline tool tar/gzip. I remember it was possible once, ark behaved like tar -cvzf, preserving the symlinks. Alas I don't know since when the change happend, maybe the size growth never was so obvious the last times I created archives. Please add an option to toggle between preserving symlinks and resolving symlinks. IMHO symlinks always should be preserved when the symlinks point to files in the folder that is to be compressed. When I drag a folder onto ark which contains symlinks maybe ark could ask if I want to preserve them or resolve them? There should also be an according dolphin servicemenu. Reproducible: Always Steps to Reproduce: Create a folder A which contains subfolder B. Put an additional file C into A and symlink C into B. Drag folder A into a new archive in ark. File C gets duplicated in the archive insteadt of staying a space saving symlink. OS: Linux (i686) release 2.6.35-7.slh.1-aptosid-686 Compiler: cc
Same problem here with ark in Kubuntu. It was fine before the KDE 4.5 version, ark treated the symlinks as symlinks thus producing a lot smaller archives. I could accept that way when I pack as zip because a zip archive is more likely to go to a Windows computer. But tar.gz is a native linux format and linux is able to use symlinks so ark should respect that.
Are you sure this used to work fine? This is bug 180538, and the only thing that may have anything to do with this one too is bug 191821.
SVN commit 1186375 by rkcosta: Manually call lstat() and pass the stat struct to libarchive. archive_read_disk_entry_from_file() calls lstat() itself if it has been compiled with HAVE_LSTAT and it is set not to follow symlinks. These conditions do not always hold, so it is better to call lstat() ourselves to make sure symlinks are not followed. BUG: 253059 M +9 -1 libarchivehandler.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1186375
SVN commit 1186377 by rkcosta: Manually call lstat() and pass the stat struct to libarchive. This is not a direct backport from r1186375 because the code is a bit different on the 4.5 (we need to call readlink() and archive_set_symlink() ourselves). CCBUG: 253059 FIXED-IN: 4.5.3 M +22 -1 libarchivehandler.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1186377