[Solved] gslapt deleted 109 packages for no reason.

You think you have found a bug? Let us know about it.
User avatar
gapan
Salix Wizard
Posts: 5387
Joined: 6. Jun 2009, 17:40

Re: gslapt delted 109 packages for no reason.

Post by gapan » 9. May 2016, 04:38

Papasot wrote:Apparently, but the fact is I still need the static library (libglut.a), which is not provided by the package management (only dynamic library is installed by gslapt).
I still don't understand what you're trying to do exactly. At your first post you mentioned that you needed a newer version. In the last one, you talk about using a static library of 2.8.0.
Papasot wrote:Since the system basically makes built-in package freeglut imperative
No, slapt-get insists that you have a freeglut package installed. Not the specific default package. You can replace the default package anytime. If the new package is named exactly as the old one, slapt-get won't care at all. If there is some difference in the name (version, release...), you can just add freeglut to the EXCLUDE list in /etc/slapt-get/slapt-getrc.
Papasot wrote:(1) install a second version of freeglut from source (which will include the static library I need)
If you also need the dynamic library of a newer version, you can do that. Install the newer library somewhere else (/opt/freeglut will do for example) and then use LD_LIBRARY_PATH whenever you want to use it.
Papasot wrote:(2) download freeglut 2.8.0 from sourceforge, compile it without installing, and copy produced static library to /usr/lib64.
I don't see how this would have any ill effects for your system. Other than the static library not removed when you remove the freeglut package.
Papasot wrote:I can't be sure downloaded source is exactly the same as the one used to make the Slackware package, even though they both have the same version number (we all know about "revisions", plus the fact distro developers often alter the code so that it's not ncessarily the same as the one software devs provide).
The best solution would be to have access to the sources used to produce the Slackware package, so that I could compile that source, get the missing static library, and copy it to /usr/lib64. That way, I could be sure said static library is 1:1 equivalent to the dynamic library gslapt installed. So, I wonder, is there any way to get my hands on package sources?
I guess you haven't found the source directory in the repositories yet.
http://slackware.uk/salix/i486/slackwar ... /freeglut/

If you only need the static library of version 2.8.0, you can just remove the "--disable-static" line from the SlackBuild and rebuild the package. slapt-get will not care that it's actually a different package than the default one if it has the same name. It will still get replaced if an upgrade appears in the repos at some point, in which case, you could just rebuild the newer version again.

If you need the static library of a newer version, your (2) option is OK. If you also want to have a package of it, nothing stops you from creating a freeglut3 or freeglut-static package that will only include the static library and nothing else. If you want to share it on multiple PCs, you could also put it in a private repository and add that repository to all your slapt-getrc files.
Papasot wrote:As mimosa said, 14.2 is probably not very far away, but even if the static library I am looking for will be there, another one might be missing, so a way to compile static libraries for installed packages is still needed.
14.2 will include freeglut-2.8.1 and no static library is included in the package.
Image
Image

User avatar
Papasot
Donor
Posts: 105
Joined: 3. May 2015, 18:37
Location: Patras, Greece

Re: gslapt deleted 109 packages for no reason.

Post by Papasot » 9. May 2016, 07:14

Initially, I just wanted the static library of whatever version of freeglut is installed by default. Replacing it with the latest version came in mind as "static library is missing, since I have to build it anyway let's see what's new in the latest version".

gapan's last post basically answers all my questions. It clarifies the doubts I had, and also points me to the proper slack sources, in case I need to rebuild a package in the future. Therefore, problem solved. Thank you gapan!

Lesson learned
: Always check what is going to be uninstalled when you uninstall a package, even if said package is a secondary one.
Ironically, I always do that, with the exception of freeglut. Being in a hurry, I thought "come on, it's just an API nobody really uses nowadays, other than simple OpenGL example programs. Uninstalling it can't affect other packages" - I was wrong, and I stand corrected now :D.

Think of it, though... the fact someone decided to add a small demo utility in the libtiff package, and the fact (s)he opted to use freeglut as a tool to make the window automatically makes freeglut a precious package that needs to be installed no matter what. So, suppose I make a crappy library that just creates an OpenGL context: if someone makes a small utility based on it and attaches it to a fairly basic package, a whole distro is now dependent on my crappy library. Doesn't really make much sense to me. I don't think freeglut is a crappy library, I just think it's not that crucial. But anyway, it is what it is.
A pleasant detail in this forum: several people pick a picture of their pet as their avatar. Who am I to do otherwise? ;-)

Post Reply