LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 11-27-2021, 05:06 PM   #31
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019

Quote:
Originally Posted by igadoter View Post
@GazL I can't prove it at the moment but I think you wrong. This is just very expensive approach to rebuild everything due to small changes. It just doesn't make sense.
Yes, it's annoying, but if a change in the library results in a ABI change then running an old executable against the newer library is going to be very dodgy. This is the reason we have SONAMEs in the first place, and why they are bumped.

That said, libraries that use "Symbol versioning" don't have this problem, but then they don't tend to bump SONAMEs either. However, backward compatibility through "Symbol versioning" isn't free, it takes extra effort from the developers and not all projects can be bothered to do it.
 
Old 11-27-2021, 06:49 PM   #32
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,058

Rep: Reputation: Disabled
I attach the output of "pkg upgrade" typed today. This is not a distribution upgrade, just a periodic upgrade of the packages included in GhostBSD, based on FreeBSD Stable. Food for thought?
Attached Files
File Type: txt GhostBSDupgradelog.txt (57.5 KB, 31 views)
 
Old 11-27-2021, 07:08 PM   #33
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717

Original Poster
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
Quote:
Originally Posted by Didier Spaier View Post
I attach the output of "pkg upgrade" typed today. This is not a distribution upgrade, just a periodic upgrade of the packages included in GhostBSD, based on FreeBSD Stable. Food for thought?
From GhostBSD web page
Code:
GhostBSD 21.09.29 ISO Now Available 09/30/2021 - 22:09
GhostBSD 21.11.24 ISO is now available 11/26/2021 - 13:56
this remind me Alien Bob slaklive based on current (or 15.0 RC?)
 
Old 11-27-2021, 10:59 PM   #34
medictruck
Member
 
Registered: Nov 2017
Location: Kathmandu, Nepal
Distribution: Slackware
Posts: 49

Rep: Reputation: 53
Quote:
Originally Posted by giomat View Post
You can already enjoy an "almost" rolling release, I think slackware is more similar to debian stable/sid cycle, where things settle down a bit in -current before the release, and then it starts rolling again. And lot of people will tell you that debian sid is rolling, even if it isn't really.
If you take a look at the changelog, since last week it's almost always bufixes and slackbuild tweaks to make it as stable as possible. Even python 3.10 was reverted for stability reasons, unlike in fedora 35 where you see people complaining daily about the poor experience with 3rd party builds.

I also think you and others should understand that the creator of slackware went through some hard times this release cycle, that alone is something that in my experience changes a lot about your sense of time and duties, not in a bad way it's just a shift of priorities.
Add to this that big decisions on the future of the distribution were made, the addition of PAM and Plasma5 being the most prominent, plasma was seriously risking missing the new release, if not from the work of Alienbob and the rest of the community. Plasma missing would have been really really bad for the appealing of the distro, in the year 2021.
The ideal stable cycle should be between 2 and 3 years before a new release, this one has taken twice as much but that's totally okay in my opinion for the given reasons.

And if you look at the other players, debian, arch, fedora, they have hundreds of people behind testing stuff almost fulltime, and while some of them might experience a moment of down in life, there's plenty of people to cover the work share. And still you see abandoned packages, old sources, stuff neglected, even big dependency hell fiascos like the recent linus tech tips debacle.
Here you have one man in minnesota, a dozen of main developers scattered around the globe and a little forum community, keeping up with upstream more than arch, pondering new additions without embracing it blindly like fedora, and finally putting out a stable release hard as a rock.

Be patient a little more, it's a work of art among other things
.


I echo the sentiment whole-heartedly. To add to this, there are equally rewarding things in life where personal efforts are more compounding on each other. A good system with good personal pursuits compound each other effects & enrich lives even more. Doing things is the real step up from tinkering with tools although tinkering is part of doing things as well. The more stable your tools are, the more enriched your pursuits will be.

From the design perspective, Don Norman once said in one of his books that good designs are hidden in plain sight so much so that one takes it for granted for doing things. Bad design makes you aware of its presence.

Last edited by medictruck; 11-27-2021 at 11:02 PM. Reason: Grammar & clarity.
 
3 members found this post helpful.
Old 11-28-2021, 12:29 AM   #35
Gordie
Member
 
Registered: Aug 2007
Location: Nolalu, Ontario, Canada
Distribution: Slackware64-Current
Posts: 871

Rep: Reputation: 364Reputation: 364Reputation: 364Reputation: 364
Quote:
Originally Posted by igadoter View Post
From GhostBSD web page
Code:
GhostBSD 21.09.29 ISO Now Available 09/30/2021 - 22:09
GhostBSD 21.11.24 ISO is now available 11/26/2021 - 13:56
this remind me Alien Bob slaklive based on current (or 15.0 RC?)
Most amusing. For at least the last few releases of GhostBSD it has resisted all my efforts to get it to boot up on my Elitepad. Alien Bob's slacklive boots well and runs flawlessly for me on the same computer. Go figure!
 
1 members found this post helpful.
Old 11-28-2021, 03:46 AM   #36
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,058

Rep: Reputation: Disabled
Quote:
Originally Posted by Gordie View Post
Most amusing. For at least the last few releases of GhostBSD it has resisted all my efforts to get it to boot up on my Elitepad. Alien Bob's slacklive boots well and runs flawlessly for me on the same computer. Go figure!
This could be because some of its hardware is not supported by your version of FreeBSD. It is well known that FreeBSD is not in par with Linux in this regard. FreeBSD recommends to check your hardware compatibility and they do provide a comprehensive hardware compatibility list associated to each release, like this one.

Anyway I do not request that Slackware use a release model similar to that of FreeBSD, as I fully realize that handle it by a single individual is just not possible, as skilled and productive as they be. I would say the same for the Debian model. I am just fond of systems engineering and found the pkg system of FreeBSD awesome. Again, I won't request that Slackware adopt it for the same reasons as the release model. Still I would prefer to continue using Slackware as a basis for Slint because it fits the needs of most of our users.

Last edited by Didier Spaier; 11-28-2021 at 03:47 AM.
 
Old 11-28-2021, 04:24 AM   #37
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
Speaking of rolling releases. Anyone know how CENTOS STREAM is working out for RedHat? Are people actually using it, or was Redhat's ham-fisted curtailing of CENTOS8's EOL date a fatal blow for the brand.

edit:
Ok, I just googled, and it seems that CENTOS STREAM has a version number (8) and an EOL (2024), so that doesn't sound like a true 'rolling' distro anyway.
Rolling-release was about the only thing I thought it had going for it, and by the looks of it that was just a mischaracterisation of the model by the tech journos.

Last edited by GazL; 11-28-2021 at 05:11 AM.
 
Old 11-28-2021, 04:40 AM   #38
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717

Original Poster
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
Quote:
Originally Posted by GazL View Post
Speaking of rolling releases. Anyone know how CENTOS STREAM is working out for RedHat? Are people actually using it, or was Redhat's ham-fisted curtailing of CENTOS8's EOL date a fatal blow for the brand.
CentOS Stream needs to find new user base. Or perish.
 
Old 11-28-2021, 04:58 AM   #39
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,785

Rep: Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463Reputation: 1463
Quote:
Originally Posted by igadoter View Post
After six months Texworks stopped to work due to new library version. Instead of rebuild I created link *.8.so -> *.9.1.so.
Instead of linking to a different version, you can copy back the old library version. Only the shared library so file, not headers. It can coexist with the new one because the file names are different. This is how PV includes some old versions in aaa_libraries and Eric in poppler-compat and boost-compat.

When I do that, I move the old versions in /usr/local/lib64 which is otherwise empty, so I can remove them easily when not needed any longer. In /usr/lib64 they would probably be forgotten forever.
 
3 members found this post helpful.
Old 11-28-2021, 05:47 AM   #40
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717

Original Poster
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
Quote:
Originally Posted by Petri Kaukasoina View Post
Instead of linking to a different version, you can copy back the old library version. Only the shared library so file, not headers. It can coexist with the new one because the file names are different.
Sure you right. But nonetheless it is good to rethink why this works.

Say if I can build the same Texworks version against two different library versions - seems API didn't change. There is this ABI thing - which is complete mystery for me - and how loader works.

Point is I didn't rebuild Texworks but only created fake links so new version is used yet all needed objects coming from new library are successfully loaded.

I am just trying to understand why this works. There is something behind the scene. System depending on hundreds of libraries can't be rebuild because of update/upgrade couple of libraries. Which from other hand may be necessary. Perhaps today can be. But shared libraries are ancient times. When to rebuild everything was extremely expensive. Imagine shutting down mainframe to rebuild and tests. Just not possible.
 
Old 11-28-2021, 07:25 AM   #41
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
Quote:
Originally Posted by igadoter View Post
Point is I didn't rebuild Texworks but only created fake links so new version is used yet all needed objects coming from new library are successfully loaded.
Successfully loaded, not successfully used.
Ok, demo time....

Lets make a library libGazL.so.1
Code:
diff -Nurp /var/empty/libGazL.h libGazL-1.0/libGazL.h
--- /var/empty/libGazL.h        1970-01-01 01:00:00.000000000 +0100
+++ libGazL-1.0/libGazL.h       2021-11-28 12:55:46.441407075 +0000
@@ -0,0 +1,6 @@
+#ifndef LIBGAZL_H
+#define LIBGAZL_H
+
+void show(int n);
+
+#endif
diff -Nurp /var/empty/show.c libGazL-1.0/show.c
--- /var/empty/show.c   1970-01-01 01:00:00.000000000 +0100
+++ libGazL-1.0/show.c  2021-11-28 12:55:46.441407075 +0000
@@ -0,0 +1,7 @@
+
+#include <stdio.h>
+
+void show(int n)
+{
+    printf("%s %d\n", "Your number was", n);
+}
Code:
$ gcc -o libGazL.so.1.0.0 -fPIC -shared -Wl,-soname,libGazL.so.1 libGazL-1.0/*.c
$ /sbin/ldconfig -n .
$ ln -s libGazL.so.1 libGazL.so
And our program to use it:
Code:
--- /dev/null   2021-11-28 11:37:22.827051416 +0000
+++ demo.c      2021-11-28 12:55:46.441407075 +0000
@@ -0,0 +1,7 @@
+#include "libGazL.h"
+
+int main()
+{
+    show(5);
+    return 0;
+}
Code:
$ gcc -o demo -Wall -Wl,-rpath=. -I libGazL-1.0/ demo.c -L . -lGazL
$ ./demo 
Your number was 5
$
Ok, all working well.

So, lets say we want to allow the message text to be passed to the show function. So, time for libGazL-2.0:
Code:
--- /var/empty/libGazL.h~       1970-01-01 01:00:00.000000000 +0100
+++ libGazL-2.0/libGazL.h~      2021-11-28 13:03:04.085780144 +0000
@@ -0,0 +1,6 @@
+#ifndef LIBGAZL_H
+#define LIBGAZL_H
+
+void show(int n);
+
+#endif
diff -Nurp /var/empty/show.c libGazL-2.0/show.c
--- /var/empty/show.c   1970-01-01 01:00:00.000000000 +0100
+++ libGazL-2.0/show.c  2021-11-28 13:05:13.885076446 +0000
@@ -0,0 +1,7 @@
+
+#include <stdio.h>
+
+void show(int n, char const * const msg)
+{
+    printf("%s %d\n", msg, n);
+}
diff -Nurp /var/empty/show.c~ libGazL-2.0/show.c~
--- /var/empty/show.c~  1970-01-01 01:00:00.000000000 +0100
+++ libGazL-2.0/show.c~ 2021-11-28 13:03:04.085780144 +0000
@@ -0,0 +1,7 @@
+
+#include <stdio.h>
+
+void show(int n)
+{
+    printf("%s %d\n", "Your number was", n);
+}
Code:
$ gcc -o libGazL.so.2.0.0 -fPIC -shared -Wl,-soname,libGazL.so.2 libGazL-2.0/*.c
$ /sbin/ldconfig -n .
ln -Tsf libGazL.so.2 libGazL.so
So, now we have:
Code:
$ ls -l
total 72
drwxr-xr-x 2 gary gary  4096 Nov 28 12:43 libGazL-1.0
drwxr-xr-x 2 gary gary  4096 Nov 28 13:05 libGazL-2.0
-rwxr-xr-x 1 gary gary 20216 Nov 28 13:00 demo
-rw-r--r-- 1 gary gary    64 Nov 28 12:55 demo.c
lrwxrwxrwx 1 gary gary    12 Nov 28 13:08 libGazL.so -> libGazL.so.2
lrwxrwxrwx 1 gary gary    16 Nov 28 12:57 libGazL.so.1 -> libGazL.so.1.0.0
-rwxr-xr-x 1 gary gary 16528 Nov 28 12:57 libGazL.so.1.0.0
lrwxrwxrwx 1 gary gary    16 Nov 28 13:06 libGazL.so.2 -> libGazL.so.2.0.0
-rwxr-xr-x 1 gary gary 16528 Nov 28 13:06 libGazL.so.2.0.0
demo will still work, because libGazL.so.1 still exists, but it won't compile anymore because libGazL.so now points to libGazL.so.2 with the new version of show() that expects a msg parameter.

But looks what happens if we get rid of so.1 and symlink it.
Code:
$ rename libGazL.so.1 libGazl.old libGazL.so.1*
$ ./demo 
./demo: error while loading shared libraries: libGazL.so.1: cannot open shared object file: No such file or directory
$ ln -sf libGazL.so.2 libGazL.so.1
$ ./demo
���� 5
$
The message text is corrupted. Now, not that big a deal in this example, but that message text could have been a pointer to something far more significant whose corruption can have unpredictable and possibly disastrous effects.

This is why symlinking between different sonames is a bad idea.
 
4 members found this post helpful.
Old 11-28-2021, 08:27 AM   #42
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717

Original Poster
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
I don't think it is good example. For me only interested thing is what is passed as second argument. For me there should segfult here. What part of memory is accessed when function is collecting the second argument? I mean the first argument is put in memory, address is passed, but the second is pointer pointing to what? This why I think there should be segfault.

Edit: Did you verify exit code? Your example is worrisome. It says one can possibly run application with broken API. You don't need much more to create virus. One can't build it but run by ldd call. I guess I just won million dollars prize. How to hack Linux.

Edit: there is application with broken API, instead of system error there is side effect. In your example is completely harmless. But one can imagine totally disastrous side effect. So the question is why this work?

Last edited by igadoter; 11-28-2021 at 09:09 AM.
 
Old 11-28-2021, 09:08 AM   #43
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
I give up.
 
2 members found this post helpful.
Old 11-28-2021, 09:13 AM   #44
allend
LQ 5k Club
 
Registered: Oct 2003
Location: Melbourne
Distribution: Slackware64-15.0
Posts: 6,371

Rep: Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750
The adage, "You can lead a horse to water but you cannot make it drink.", springs to mind.
 
2 members found this post helpful.
Old 11-28-2021, 10:16 AM   #45
igadoter
Senior Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: many, primary Slackware
Posts: 2,717

Original Poster
Blog Entries: 1

Rep: Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625Reputation: 625
I would like to test GazL example on OpenBSD. But at moment is not installed. But I will see.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Convert Ubuntu Into Rolling Release Using Rolling Rhino Script LXer Syndicated Linux News 0 07-01-2020 12:13 PM
Easiest to install and use rolling release distribution rng Linux - Distributions 21 09-13-2013 12:58 PM
Rolling release distribution ShadowReaper Linux - Distributions 6 09-13-2010 09:10 AM
best complete rolling release distribution Alelinux Linux - Newbie 10 05-08-2010 09:04 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 11:16 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration