SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
When creating a slackware package, `makepkg` provides an option (the default) to delete symlinks and add them later via the 'install/doinst.sh' script included in the package.
```
makepkg --help
Usage: makepkg package_name.tgz
(or: package_name.tbz, package_name.tlz, package_name.txz)
[...]
options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended)
-p, --prepend (prepend rather than append symlinks to an existing
If I remember rightly, it has something to do with tar not always doing the correct thing when restoring a symlink over a directory, or vice versa, or some such, so the work was shunted into the doinst.sh.
There's that much ugliness and technical-debt in the package system that I just cover my eyes and pretend I can't see it.
Just use -l y and try not to think about it too hard. It works for me.
That's my recollection as well, had to dig through some changelogs
From slack 8.1:
Code:
Thu Feb 21 22:36:20 PST 2002
pkgtools-8.0.4-i386-1.tgz: Fixed a bug where only the first slack-desc
would be found when installing multiple packages without .txt files.
Added --linkadd and --chown options to makepkg.
Reported/suggested by David Nordenberg.
Patches to use tar-1.13 if it's around, and to complain if it isn't.
a/tar-1.13.25-i386-1.tgz: Upgraded to GNU tar-1.13.25. We still keep a
tar-1.13 binary around for the Slackware package utilities to use, because
the new tar wipes out symbolic links to directories when untarring. (Try
making /opt a link to /usr/opt and untarring a KDE package and you'll see
the effect). Nevertheless, tar-1.13.25 appears better overall.
Note that tar-1.13 has been retired in -current
Code:
Tue Jul 26 19:27:53 UTC 2022
a/tar-1.34-x86_64-2.txz: Rebuilt.
Sergey Poznyakoff added options to GNU tar back in 2013 to make it possible
to use it in the pkgtools, and with help from gnashley and ruario we
switched to using the latest version of tar in makepkg over 4 years ago.
Still, we kept the old tar-1.13 around. It's finally time to let go of this
old artifact. Farewell tar-1.13, thanks for everything. :-)
`makepkg` provides an option (the default) to delete symlinks and add them later via the 'install/doinst.sh' script included in the package.
I asked Patrick about why upgradepkg calls installpkg twice, and I think part of this answer explains why the symlinks are handled by a script rather than contained within the tar archive:
Code:
[..]
imagine symlinks turning into directories and vice-versa
A good example is when the /usr/lib/zoneinfo dir moved to
/usr/share/zoneinfo. There was a link from /usr/share/zoneinfo to
/usr/lib/zoneinfo, and in an upgrade the locations of the dir and
link swapped. Pass one (ip), package is extracted through the old
link to the old dir. Pass two (rp), rm -rf is applied to the old
link. At this point there's no zoneinfo database. Pass three (ip), fixes that problem.
Thanks @zeebra, but there is a correction. The article needs an update. '--libdir=/usr/lib64' should be added to the ./configure commands.
I see, that's probably a good idea yes. It's quite an old article, but I believe it's a good one for Slackers to be familiar with. I can fix that actually, don't think anyone will mind. There, done..
I see, that's probably a good idea yes. It's quite an old article, but I believe it's a good one for Slackers to be familiar with. I can fix that actually, don't think anyone will mind. There, done..
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.