LinuxQuestions.org
Help answer threads with 0 replies.
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


View Poll Results: Which python3 should ship in Slackware 15.0?
Python 3.9 33 33.33%
Python 3.10 66 66.67%
Voters: 99. You may not vote on this poll

Reply
  Search this Thread
Old 10-19-2021, 12:05 PM   #76
slac-in-the-box
Member
 
Registered: Mar 2010
Location: oregon
Distribution: slackware64-15.0 / slarm64-current
Posts: 780
Blog Entries: 1

Rep: Reputation: 432Reputation: 432Reputation: 432Reputation: 432Reputation: 432

Quote:
Originally Posted by lovemeslk View Post
But this will not give you the ever changing dependencies and updates.
This is why building as a user. Is a big deal with the python people.
Common lisp has one too: quicklisp... and it too only creates modifications in the ~/quicklisp folder.

Regardless of the language, though, I have to type something at the cli to activate its tool... and as long as the output is directed to an "alternate root", a slackpkg can be made from the alternate root, and then installed, even if to the users ~/.local/bin: direct output to /altroot/home/saiduser/.local/bin, change to the /altroot directory, and run makepkg. Using upgradepkg will then upgrade that language's development libraries accordingly.

This process can be scripted for a slackware purist. If it was not scripted, I concede that going through that process would certainly be inconvenient everytime 'pip install --upgrade' was run, which could be daily when working with lots of libraries...

A compromise: use lxc, maintaining the host system with pkgtools / slackpkg, and creating container for python developmenmt, and running pip within that container.
 
1 members found this post helpful.
Old 10-19-2021, 12:53 PM   #77
Zexuo
Member
 
Registered: Mar 2015
Location: Florida
Distribution: Slackware
Posts: 64

Rep: Reputation: Disabled
With the poll having closed, I will offer my opinion of 3.10 as the wise choice: already entered; OS packages already built for the new version; longest support timeline.

As a longtime Python developer, much of that time on a Mac, I learned long ago to keep my desired version of Python under /usr/local. Mac OS X (as they used to call it) tended to have an outdated version of Python in the system directory. Slackware current may have the opposite problem. My solution works either way. I recommend configuring with `--enable-shared --enable-optimizations` for most users.
 
Old 10-19-2021, 12:54 PM   #78
Battered Fish
LQ Newbie
 
Registered: Oct 2020
Location: Toronto, Ontario, Canada
Distribution: Slackware-current
Posts: 13

Rep: Reputation: Disabled
Quote:
Originally Posted by brobr View Post
No different camps needed. It is quite easy to have 3.10 and Slackbuilds. The major issue is that by pip-installing one hands over control to the installer of what's going onto the box; it drags in dependencies (therefore the above advised add-on to use: `--no-deps`), overwriting current ones in favor of the required (acc. to the program) version. Many people (incl me) like to make SlackBuilds for modules (incl. for these dependencies).

Once made, upgrading the python module is a piece of cake; after downloading the source file from pypi.org, only change the version nr in the SlackBuild (plus md5sum when needing an info file for sbopkg; in this respect it is helpful to use a readable web address for the source instead of a direct copied link (as suggested here)).

By creating a SlackBuild, one creates a package of a python module that can then be installed on a large number of other boxes with the same setup. (Pip only deals with the box the install goes on).

One does not need to try a pip-install to find dependencies, most of them are described in 'requires.txt' found in the 'egg.info' or the 'setup.cfg' in the shipped source (tar.gz) file of the module on pypi.org.

Many python SlackBuilds on Sbo are quickly updated when needed. This all depends on the maintainers. It would be helpful if the build-scripts get standard separated in python2 and python3 only scripts. That would make it more easy to keep track of dependencies (via the info files) and enables moving on.

Because of python3.10 developers that still want their program working will sort out bugs caused by the change. (Coding-wise, the move from python2 to python3 was more painful than that from 3.9 to 3.10. And we/most of us survived that one ;-)
Although you can make a SlackBuild for everything, it sometimes doesn't make sense. Python packages are already managed with their own system. You can install specific versions, uninstall them. If it makes people feel better to wrap a slackbuild around it, fine, but its a huge waste of time to duplicate a native package management system. For those Python applications that have lots of specific dependencies, I would suggest just embedding the dependencies inside the top level application slackbuild with "pip install <package>=version". That way if the package is important to you, you can be sure the dependencies are satisfied *for that particular package*. Its impossible to generally satisfy the dependencies for all specific applications. The only way to do that is to use containers, as someone has already mentioned.
 
2 members found this post helpful.
Old 10-19-2021, 01:09 PM   #79
Zexuo
Member
 
Registered: Mar 2015
Location: Florida
Distribution: Slackware
Posts: 64

Rep: Reputation: Disabled
Quote:
Originally Posted by Battered Fish View Post
Although you can make a SlackBuild for everything, it sometimes doesn't make sense. Python packages are already managed with their own system. You can install specific versions, uninstall them. If it makes people feel better to wrap a slackbuild around it, fine, but its a huge waste of time to duplicate a native package management system. For those Python applications that have lots of specific dependencies, I would suggest just embedding the dependencies inside the top level application slackbuild with "pip install <package>=version". That way if the package is important to you, you can be sure the dependencies are satisfied *for that particular package*. Its impossible to generally satisfy the dependencies for all specific applications. The only way to do that is to use containers, as someone has already mentioned.
I agree with this sentiment. I suspect Slackware ships OS packages for Python packages only to provide dependencies to other Slackware packages. Otherwise, OS packages for Python, Ruby, etc packages make sense only in environments without build tools commonly installed, and most packages won't even make use of them (written in pure Python, etc). Termux comes to mind for Python packages like numpy. It would surprise me to find an appreciable number of Slackware users without the required build tools installed.
 
Old 10-19-2021, 01:47 PM   #80
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by Battered Fish View Post
They are wasting their time and ours. Instead of this distraction they could concentrate on getting a Slackware release every year instead of 5 years and counting. Too bad if you don't want to use pip or cpan or cpanm or pear or ... What do you do if you need to install a python package that is not in slackware or slackbuilds?
You really think Pat building those few dozen python packages was the delay for 15.0? You need a reality check.

Do you know how long it takes me to version bump a SlackBuild? 5 seconds (if that) to run my version bump script and pass the new version to it. It will then automatically update the download links, calculate and update the md5sum, and update the versions in the .info and .SlackBuild. Then I do a quick run of the SlackBuild and if everything works, I push the changes to my online repo and make a PR against SBo's repo. If it's a slow building program, it might take me 5 minutes, most of that waiting for downloads or compiling. Actual time to be doing anything active with it is less than a minute.

Quote:
Originally Posted by Battered Fish View Post
Although you can make a SlackBuild for everything, it sometimes doesn't make sense.
It doesn't make sense to you, but I don't want untracked files in my filesystem and I don't want python modules only available to my user. The *only* solution for that is to install python (and perl) software as Slackware packages. If you don't want to do that, it's fine. Everyone is the admin of their own box.

Quote:
Originally Posted by Battered Fish View Post
Python packages are already managed with their own system. You can install specific versions, uninstall them. If it makes people feel better to wrap a slackbuild around it, fine, but its a huge waste of time to duplicate a native package management system.
It's not native to Slackware, and that is many people's issue with it. It completely leaves pkgtool in the dark and possibilities for overwriting or removing files that might be duplicated in packages is a very real possibility.

Quote:
Originally Posted by Battered Fish View Post
For those Python applications that have lots of specific dependencies, I would suggest just embedding the dependencies inside the top level application slackbuild with "pip install <package>=version".
This method doesn't work with SBo's current policies of requiring all dependencies not included in Slackware to be available on SBo and requiring SlackBuilds to be able to be used offline (you can't make any internet connections with the SlackBuild itself). There are a lot of people who maintain their own SlackBuilds that don't conform to SBo standards, but you'd either need SBo to change policies or find somewhere else to host the builds (maybe make a competing site that doesn't restrict internet connections within the SlackBuild).

Long story short, your suggestion goes against the packaging standards that Slackware and SBo rely on. There are certainly people that don't follow those standards, and that's ok (they're the admin of their own box), but you're unlikely to get any traction in making this a standard in Slackware or SBo.
 
11 members found this post helpful.
Old 10-19-2021, 01:54 PM   #81
Jeebizz
Senior Member
 
Registered: May 2004
Distribution: Slackware15.0 64-Bit Desktop, Debian 11 non-free Toshiba Satellite Notebook
Posts: 4,186

Rep: Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379
What is the threshold for this poll? It doesn't seem to end, so I am guessing it is based on number of votes? I will not be voting because I honestly don't know, or care whatever is included is included. I just wonder when Pat will decide to make his decision.
 
Old 10-19-2021, 02:08 PM   #82
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by Jeebizz View Post
What is the threshold for this poll? It doesn't seem to end, so I am guessing it is based on number of votes? I will not be voting because I honestly don't know, or care whatever is included is included. I just wonder when Pat will decide to make his decision.
The poll is already closed. Nobody else can vote on it.
 
Old 10-19-2021, 02:11 PM   #83
Jeebizz
Senior Member
 
Registered: May 2004
Distribution: Slackware15.0 64-Bit Desktop, Debian 11 non-free Toshiba Satellite Notebook
Posts: 4,186

Rep: Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379Reputation: 1379
Quote:
Originally Posted by bassmadrigal View Post
The poll is already closed. Nobody else can vote on it.
Oh ok, I did not see / notice (dopey me ). Cool so it is settled then, 3.10 it is.
 
Old 10-19-2021, 02:15 PM   #84
Pithium
Member
 
Registered: Jul 2014
Location: Far side of the Oregon Trail
Distribution: Slackware64 15.0
Posts: 502

Rep: Reputation: 586Reputation: 586Reputation: 586Reputation: 586Reputation: 586Reputation: 586
Quote:
Originally Posted by Jeebizz View Post
Oh ok, I did not see / notice (dopey me ). Cool so it is settled then, 3.10 it is.
The Changelog is the deciding factor here. Until I see a dedicated changelog file for 15.0 I assume nothing.
 
Old 10-19-2021, 03:00 PM   #85
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,449

Rep: Reputation: 997Reputation: 997Reputation: 997Reputation: 997Reputation: 997Reputation: 997Reputation: 997Reputation: 997
Quote:
Originally Posted by bassmadrigal View Post
You really think Pat building those few dozen python packages was the delay for 15.0? You need a reality check.

Do you know how long it takes me to version bump a SlackBuild? 5 seconds (if that) to run my version bump script and pass the new version to it. It will then automatically update the download links, calculate and update the md5sum, and update the versions in the .info and .SlackBuild. Then I do a quick run of the SlackBuild and if everything works, I push the changes to my online repo and make a PR against SBo's repo. If it's a slow building program, it might take me 5 minutes, most of that waiting for downloads or compiling. Actual time to be doing anything active with it is less than a minute.
this should be on sbo
 
1 members found this post helpful.
Old 10-19-2021, 03:59 PM   #86
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by solarfields View Post
this should be on sbo
I guess I can go and actually take the time to figure out updating md5sums for multiple downloads and add it to SBo once submissions open if people want it. I was lazy when I decided to code this and just went for the easy route, as I only have one or two SlackBuilds that have multiple downloads, and they don't update very often.
 
2 members found this post helpful.
Old 10-20-2021, 05:47 PM   #87
brobr
Member
 
Registered: Oct 2003
Location: uk
Distribution: Slackware
Posts: 974

Rep: Reputation: 239Reputation: 239Reputation: 239
@Battered Fish

What has been discussed, and repeated, is this aspect of why people do not (like to) use the python pip-system:
Quote:
By creating a SlackBuild, one creates a package of a python module that can then be installed on a large number of other boxes with the same setup. (Pip only deals with the box the install goes on).

It would be helpful if you could suggest how the pip-system could collaborate with the Slackware package tools.

Last edited by brobr; 10-20-2021 at 06:07 PM. Reason: trying to get the wording better
 
Old 10-20-2021, 07:56 PM   #88
adcdam
Member
 
Registered: Aug 2020
Location: Berisso, Argentina
Distribution: Slackware
Posts: 255

Rep: Reputation: 205Reputation: 205Reputation: 205
Perhaps (although is not Kiss) having a slotted package like in Gentoo could not be a very bad idea for packages that are a moving target like python.
Slackware is not Gentoo but perhaps something like a band aid could me usable. i know if a package is compiled for a specific version of python would be a problem but al least in this way some scripts could work.
My first question in this forum was if Slackware had a program similar to Gentoo s eselect, i was asking of wine and a user called Orbea show me a script he made that make symlinks.
https://notabug.org/orbea/SlackBuild...er/system/wine

i know this is very different but perhaps a more elegant solution could be possible.
perhaps im drinking too much.
 
Old 10-22-2021, 09:58 AM   #89
Battered Fish
LQ Newbie
 
Registered: Oct 2020
Location: Toronto, Ontario, Canada
Distribution: Slackware-current
Posts: 13

Rep: Reputation: Disabled
Quote:
Originally Posted by brobr View Post
@Battered Fish

What has been discussed, and repeated, is this aspect of why people do not (like to) use the python pip-system:



It would be helpful if you could suggest how the pip-system could collaborate with the Slackware package tools.
Since there are some particular python package dependencies that are needed for the Slackware distribution as a whole, they could all be wrapped up in a single "python-extras" slackbuild script, and call out to "pip install --no-deps SomePackage1-1.0.4.tar.gz; pip install --no-deps SomePacakge2-1.2.tar.gz; ...". Python already has a native package management system and distributions like Arch and Gentoo suggest you use it to manage python packages. Why you'd want to piecemeal replace package by package with slackbuilds scripts is beyond me.
 
Old 10-22-2021, 12:47 PM   #90
Battered Fish
LQ Newbie
 
Registered: Oct 2020
Location: Toronto, Ontario, Canada
Distribution: Slackware-current
Posts: 13

Rep: Reputation: Disabled
Quote:
Originally Posted by bassmadrigal View Post
You really think Pat building those few dozen python packages was the delay for 15.0? You need a reality check.
Its not the problem, but I surmise its a symptom of a problem. Since noone has stated the reason for the delay it might as well be a few dozen python packages.


Quote:
Originally Posted by bassmadrigal View Post
Do you know how long it takes me to version bump a SlackBuild? 5 seconds (if that) to run my version bump script and pass the new version to it. It will then automatically update the download links, calculate and update the md5sum, and update the versions in the .info and .SlackBuild. Then I do a quick run of the SlackBuild and if everything works, I push the changes to my online repo and make a PR against SBo's repo. If it's a slow building program, it might take me 5 minutes, most of that waiting for downloads or compiling. Actual time to be doing anything active with it is less than a minute.
For major packages there can be many python dependencies. To install all those manually, and perhaps create new slackbuilds for many, isn't trivial. In fact, its tremendously tedious. As was said previously, the only way around that it so use containers or virtual environments for each major package in which using pip to resolve the dependency versions is the way to go. If someone wants to wrap the whole virtual install in a slackbuild, great.


Quote:
Originally Posted by bassmadrigal View Post
It doesn't make sense to you, but I don't want untracked files in my filesystem and I don't want python modules only available to my user. The *only* solution for that is to install python (and perl) software as Slackware packages. If you don't want to do that, it's fine. Everyone is the admin of their own box.
Its not a sensible general solution for the co-existence of significant python applications.

Quote:
Originally Posted by bassmadrigal View Post
It's not native to Slackware, and that is many people's issue with it. It completely leaves pkgtool in the dark and possibilities for overwriting or removing files that might be duplicated in packages is a very real possibility.
Yes, absolutely true. All the interpreters have their own package/module management systems which people should be using to maintain packages in those languages. Wrapping slackbuilds scripts around major packages for virtual install with all their dependencies pulled in by the script would work and make life simple.

Quote:
Originally Posted by bassmadrigal View Post
This method doesn't work with SBo's current policies of requiring all dependencies not included in Slackware to be available on SBo and requiring SlackBuilds to be able to be used offline (you can't make any internet connections with the SlackBuild itself). There are a lot of people who maintain their own SlackBuilds that don't conform to SBo standards, but you'd either need SBo to change policies or find somewhere else to host the builds (maybe make a competing site that doesn't restrict internet connections within the SlackBuild).
SBo's policies don't make sense in the context of interpreter package management.

Quote:
Originally Posted by bassmadrigal View Post
Long story short, your suggestion goes against the packaging standards that Slackware and SBo rely on. There are certainly people that don't follow those standards, and that's ok (they're the admin of their own box), but you're unlikely to get any traction in making this a standard in Slackware or SBo.
Yes, no doubt it does. Change is hard, and there is always hope (except for Slackware 15.0 being released, hope on that ran out awhile back ;-).
 
  


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: Ubuntu 16.04 LTS to Ship Without Python 2, Windows Printers Detection Affected LXer Syndicated Linux News 0 03-07-2016 01:21 AM
LXer: Canonical should sell hardware to ship Ubuntu for Android LXer Syndicated Linux News 0 09-01-2012 10:51 PM
LXer: Python Python Python (aka Python 3) LXer Syndicated Linux News 0 08-05-2009 08:30 PM
LXer: News Bits: Red Hat Plans to Ship Next Version of Linux, Gefen ... LXer Syndicated Linux News 0 12-29-2006 09:54 PM

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

All times are GMT -5. The time now is 03:25 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