From: ciol on
What is the aim of that switch?
What is the difference, once the package installed, with or without it?

Thanks.

--
On dira ce qu'on voudra, j'�tais pas un petit loubard comme les autres.
(Rocky)
From: Beej Jorgensen on
ciol <ciol13(a)gmail.com> wrote:
>What is the aim of that switch?
>What is the difference, once the package installed, with or without it?

When making a package, Slackware removes the symbolic links and puts
commands to recreate them in the doinst.sh script (if so-requested).

But I don't know why, actually. Maybe some tars don't handle them
correctly? Did busybox always handle it?

-Beej

From: Robby Workman on
On 2008-01-20, ciol <ciol13(a)gmail.com> wrote:
> What is the aim of that switch?
> What is the difference, once the package installed, with or without it?


Well, the first part has already been answered, but just for good measure:
the "-l" switch removes symbolic links from the package tree and writes
them to $package_tree/install/doinst.sh
When installpkg(8) is invoked on the resulting package, the package
contents (including ./install/) are dropped into place on the system,
and then the ./install/doinst.sh is executed with /bin/sh.

With respect to why it's done and what the practical difference is,
well, that's a little more involved. One reason is "accounting" -
while it's certainly possible (assuming symlinks are not removed) to
pull a list of symlinks from the package, it would be much slower than
what's currently in place. That would require putting information about
which package "files" are *actually* symlinks in /var/log/packages, and
that would break compatibility.

A bigger concern, though, is this: what happens if your package contains
a symlink at some location, and there's already a directory in existence
with that same name? What happens to the symlink when tar extracts it?
:)

This last point really isn't an issue, as pkgtool and friends don't use
newer tar versions, but... iirc, the newer tar versions consider
relative path symlinks as a "security risk" (I don't recall all of the
details on this, and it's entirely possible that I'm remembering it at
least partially wrong, but I don't think so) and thus would be somewhat
problematic for some packages.

Hope that helps,
-RW
From: +Alan Hicks+ on
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2008-01-29, Robby Workman <newsgroups(a)rlworkman.net> wrote:
> A bigger concern, though, is this: what happens if your package contains
> a symlink at some location, and there's already a directory in existence
> with that same name? What happens to the symlink when tar extracts it?

Or simply, what happens when you use -root /some/other/root?

- --
It is better to hear the rebuke of the wise,
Than for a man to hear the song of fools.
Ecclesiastes 7:5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFHn2EbrZS6hX/gvjoRAsU5AJ9M/M7hF/6S5UTBF4VGNDg3n4zaXwCgjYSW
0uznjleVlUFFot7m+imR1C4=
=/Rh9
-----END PGP SIGNATURE-----
From: Robby Workman on
On 2008-01-29, +Alan Hicks+ <alan(a)lizella.netWORK> wrote:
>
> On 2008-01-29, Robby Workman <newsgroups(a)rlworkman.net> wrote:
>> A bigger concern, though, is this: what happens if your package contains
>> a symlink at some location, and there's already a directory in existence
>> with that same name? What happens to the symlink when tar extracts it?
>
> Or simply, what happens when you use -root /some/other/root?


Yeah, that was a rhetorical question... :)
Yours is probably a better one, for what it's worth. I'd have to go
digging (again) into the installpkg(8) code to see exactly what would
happen, but from memory, it's not what is desired. :)

-RW