LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
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 09-11-2017, 10:44 PM   #76
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 2,699

Rep: Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129

Quote:
I've done BUILDTIME=, but not RUNTIME=. The whole concept of run-time only dependencies seems bogus. They still need to be built and kept up to date, and the package that depends on them might need to be updated when they change. The current setup does all that and I don't see another good way of making that happen, at the moment.
I thought the very definition of a RUNTIME dependency was that any package with a runtime dependency on another would not have to be rebuilt if the runtime dependency changed but the package itself did not. Not to mention that any target system wouldn't need the runtime dependency itself for the package to function. (Mainly tools used to generate documentation from source would fall into this category.)
 
Old 09-12-2017, 06:57 AM   #77
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,114
Blog Entries: 4

Rep: Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525
Apparently there isn't consensus about what is a buildtime dependency and what is a runtime dependency.

I was interpreting "buildtime dependency" as something needed at buildtime but not at runtime -- tools used to generate documentation from source would be an example of that.

And "runtime dependency" would be something that is not referenced in the build and is needed only at runtime, maybe by shelling out to a command line interface or by the kind of lazy binding you get in interpreted languages.

I am *very* reluctant to say that lazy bound dependencies in interpreted languages like Python don't need rebuilds. APIs change all the time, with or without strongly versioned shared libraries. If we're lucky, a rebuild will re-validate any version constraints in (for example) requirements.txt, and fail the build.
 
Old 09-12-2017, 11:26 AM   #78
slalik
Member
 
Registered: Nov 2014
Location: Moscow, Russia
Distribution: Slackware
Posts: 119

Rep: Reputation: 54
Quote:
Originally Posted by 55020 View Post
It's now potentially quite close to a new release
I'd just like to thank you for creating this program and for keeping it maintained!
 
Old 09-12-2017, 12:47 PM   #79
igadoter
Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: slackware 12.2, scientific linux 6.4, knoppix 7.2, salix 14.1
Posts: 948

Rep: Reputation: Disabled
Question: does slackrepo resolves dependencies? I just compiled youtube-viewer, which is standalone youtube viewer, but there is some number of dependencies, I was using sbopkg, but for sbokpg it is up to me to properly set up build queue.
 
Old 09-12-2017, 01:14 PM   #80
atelszewski
Member
 
Registered: Aug 2007
Distribution: Slackware
Posts: 792

Rep: Reputation: Disabled
Hi,

Quote:
Originally Posted by igadoter View Post
Question: does slackrepo resolves dependencies? I just compiled youtube-viewer, which is standalone youtube viewer, but there is some number of dependencies, I was using sbopkg, but for sbokpg it is up to me to properly set up build queue.
It resolves everything that is in REQUIRES in .info.

--
Best regards,
Andrzej Telszewski
 
Old 09-12-2017, 01:18 PM   #81
igadoter
Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: slackware 12.2, scientific linux 6.4, knoppix 7.2, salix 14.1
Posts: 948

Rep: Reputation: Disabled
Quote:
Originally Posted by atelszewski View Post
Hi,
It resolves everything that is in REQUIRES in .info.
Nice, but it would be good to have something for optional dependencies. Say the viewer I mentioned has opional dependency to be build with gtk, I don't remember is there a field "OPTIONAL" in .nfo? I could verify but SB site is down now.
 
Old 09-12-2017, 01:22 PM   #82
atelszewski
Member
 
Registered: Aug 2007
Distribution: Slackware
Posts: 792

Rep: Reputation: Disabled
Hi,

Quote:
Originally Posted by igadoter View Post
Nice, but it would be good to have something for optional dependencies. Say the viewer I mentioned has opional dependency to be build with gtk, I don't remember is there a field "OPTIONAL" in .nfo? I could verify but SB site is down now.
No, there's no OPTIONAL in .info.
You can teach slackrepo what are your optional dependencies and it will pick them from then on.

--
Best regards,
Andrzej Telszewski
 
Old 09-12-2017, 01:23 PM   #83
igadoter
Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: slackware 12.2, scientific linux 6.4, knoppix 7.2, salix 14.1
Posts: 948

Rep: Reputation: Disabled
Code:
bash-4.3$ wget https://dl.dropboxusercontent.com/u/26560685/slackrepo-0.2.0rc1-noarch-1_dbs.txz
--2017-09-12 20:20:29--  https://dl.dropboxusercontent.com/u/26560685/slackrepo-0.2.0rc1-noarch-1_dbs.txz
Resolving dl.dropboxusercontent.com (dl.dropboxusercontent.com)... 162.125.66.6, 2620:100:6022:6::a27d:4206
Connecting to dl.dropboxusercontent.com (dl.dropboxusercontent.com)|162.125.66.6|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-09-12 20:20:32 ERROR 404: Not Found.
life is difficult sometimes, something is wrong with me?
 
Old 09-12-2017, 02:17 PM   #84
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,301

Original Poster
Rep: Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278
I will throw this out there... slackrepo is a different beast than sbopkg. slackrepo expects (but it isn't required) that the host system be clean, meaning no 3rd-party packages are installed (minus slackrepo, of course). This ensures that all your packages are clean and only link against the dependencies you intend for them to link to... and the big benefit behind that is anyone running Slackware should be able to install those packages and dependencies and have it work fine. Otherwise, if you build a program on your computer, you may not intend for it to pick up some dependency that is already on your computer, so when you try and install it on another computer, it fails to run.

Since slackrepo likes to be on a clean installation, it means you'd probably need a separate machine or VM for it. The great thing about it is it can output all the packages into a repo similar to Alien Bob's, allowing a number of 3rd-party package managers to install from it. The downside is this is quite the project if you're only going to be installing packages on one machine. There's still benefits, but it does take a bit more work to handle.

With that in mind, while I love slackrepo, I do realize it is a bit of a shotgun approach when someone might need a scalpel (depending on your perspective... I think it is a scalpel for my needs since I can be extremely precise). If you feel that way, sbopkg still has some secrets and might still be able to fit your needs. It includes a companion script called sqg that will generate queue files for you based on the program's REQUIRES line in the .info (you just run sqg -p $PRGNAM and it will generate the required queue file). If you need additional optional dependencies, you can use the editor built into sbopkg to edit that REQUIRES line (I did that with ffmpeg). Once a queue file is generated, you can simply run sbopkg -i $PRGNAM (replacing $PRGNAM with the name of the program you're wanting to build). sbopkg will ask if you just want to build the program or the queue file, which you respond q for the queue file. From there, it will chug along and build all the dependencies listed in the order they need to be for the final program to be built and installed.

All that being said, I still love slackrepo and it can still be a powerful tool even if you are only using it to build packages for one computer. If you're interested in checking it out, you can use my mirror of his slackrepo-0.2.0rc1 package or you can get the latest work from his github (which has added a lot of additional features and is nearing a new release).

Last edited by bassmadrigal; 09-12-2017 at 02:44 PM.
 
1 members found this post helpful.
Old 09-12-2017, 02:30 PM   #85
igadoter
Member
 
Registered: Sep 2006
Location: wroclaw, poland
Distribution: slackware 12.2, scientific linux 6.4, knoppix 7.2, salix 14.1
Posts: 948

Rep: Reputation: Disabled
Quote:
Originally Posted by bassmadrigal View Post
[URL="https://github.com/idelmoor/slackrepo/"]
this link is dead, but I downloaded from your own mirror. Thanks. For sure I'll give try.
 
Old 09-12-2017, 02:34 PM   #86
slalik
Member
 
Registered: Nov 2014
Location: Moscow, Russia
Distribution: Slackware
Posts: 119

Rep: Reputation: 54
Quote:
Originally Posted by igadoter View Post
[URL="https://github.com/idelmoor/slackrepo/"]
this link is dead
s/idelmoor/idlemoor/
 
1 members found this post helpful.
Old 09-12-2017, 02:45 PM   #87
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,301

Original Poster
Rep: Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278Reputation: 2278
Quote:
Originally Posted by igadoter View Post
this link is dead, but I downloaded from your own mirror. Thanks. For sure I'll give try.
Quote:
Originally Posted by slalik View Post
s/idelmoor/idlemoor/
Fixed... thanks. That's what I get for typing it rather than copy/paste.
 
Old 09-12-2017, 03:28 PM   #88
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 2,699

Rep: Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129Reputation: 1129
Quote:
Originally Posted by 55020 View Post
Apparently there isn't consensus about what is a buildtime dependency and what is a runtime dependency.

I was interpreting "buildtime dependency" as something needed at buildtime but not at runtime -- tools used to generate documentation from source would be an example of that.

And "runtime dependency" would be something that is not referenced in the build and is needed only at runtime, maybe by shelling out to a command line interface or by the kind of lazy binding you get in interpreted languages.

I am *very* reluctant to say that lazy bound dependencies in interpreted languages like Python don't need rebuilds. APIs change all the time, with or without strongly versioned shared libraries. If we're lucky, a rebuild will re-validate any version constraints in (for example) requirements.txt, and fail the build.
Ah. In that case, I'd say the confusion would be on my side.
 
Old 09-13-2017, 03:53 AM   #89
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,114
Blog Entries: 4

Rep: Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525
Well... if you have some confusion, I'd be inclined to say that the concept needs more work. [1]

For avoidance of doubt, I am not saying *never*, but I am saying that maybe there is a more intuitive concept hiding in there somewhere that we can implement instead. If the problem is too many rebuilds, maybe the solution is less rebuilds.

[1] or its documentation, but in my opinion "This index contains 579 entries, referring to 216 individual manual pages" just says "we don't understand il semble que la perfection soit atteinte non quand il n'y a plus rien ajouter, mais quand il n'y a plus rien retrancher".
 
Old 09-14-2017, 07:50 PM   #90
atelszewski
Member
 
Registered: Aug 2007
Distribution: Slackware
Posts: 792

Rep: Reputation: Disabled
Hi,

Language is a bitch ;-)

What I meant by RUNTIME was optional application, that might be or might not be present while the main application was running. In addition, update of RUNTIME wouldn't cause the dependant application to be rebuilt.

This came out from (if I recall correctly) krusader, which might optionally use multiple different applications. And, updating any of those applications, should not cause krusader rebuild, because they are binaries called by krusader.

We could think about something like RUNTIME_REQ, RUNTIME_OPT, but I think this all is becoming messy to say the least.

So, I think the best option is to allow the user to decide, by marking the package as not needing the rebuild.
Say, you run slackrepo with --preview switch to see what is going to happen and then you can decide which packages are going to be rebuilt and which not.

BUILDTIME= is a very welcome addition and I think it'll serve it's purpose.
For example, when you don't want to populate the tools used during build to the target machines.

(I haven't yet updated to the latest git to test, but I will soon :-)).

--
Best regards,
Andrzej Telszewski
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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
[SOLVED] Two questions / wishes related to slackrepo slalik Slackware 3 07-21-2015 05:18 AM
Howto undo updates or roll system back to initial installation? suguru SUSE / openSUSE 2 01-08-2006 11:31 PM
Howto? upgrade kernel on initial boot into Sarge haertig Debian 12 11-12-2005 11:58 PM
Initial questions after first Linux use Foxy Mandriva 11 07-04-2004 03:55 AM
Initial setup .. umd Linux From Scratch 9 04-05-2003 12:36 PM

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

All times are GMT -5. The time now is 02:07 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
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration