LinuxQuestions.org
Visit Jeremy's Blog.
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-22-2016, 03:08 PM   #16
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,545

Original Poster
Rep: Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497

Quote:
Originally Posted by titopoquito View Post
If you are using slackpkg+, have you tried "slackpkg install <name-of-your-repo>"? AFAIR it should do the trick.
I haven't gotten that far yet. I'm still building packages and until that is done, my desktop will be running my heavily modified 14.1. Once I finish all the packages I can think of, then I'll spend an afternoon and do a clean install of 14.2 on my desktop, followed by installing all of the packages.

I know that works for Slackware itself and I had wondered if that'd work for 3rd-party repos with slackpkg+, but I don't know anyone who has tried it.
 
Old 11-22-2016, 03:59 PM   #17
titopoquito
Senior Member
 
Registered: Jul 2004
Location: Lower Rhine region, Germany
Distribution: Slackware64 14.2 and current, SlackwareARM current
Posts: 1,597

Rep: Reputation: 125Reputation: 125
Quote:
Originally Posted by bassmadrigal View Post
I know that works for Slackware itself and I had wondered if that'd work for 3rd-party repos with slackpkg+, but I don't know anyone who has tried it.
My server is not running right now, but If I try it with "slackpkg install alienbob" I get an impressive list 😀
 
1 members found this post helpful.
Old 11-22-2016, 04:45 PM   #18
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,545

Original Poster
Rep: Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497
Quote:
Originally Posted by titopoquito View Post
My server is not running right now, but If I try it with "slackpkg install alienbob" I get an impressive list 😀
Good to know

Now I just need to start researching other package managers that handle dependencies, but that probably goes beyond this thread (although, I suppose it could be helpful for others who are going to set up something similar.
 
Old 11-22-2016, 04:46 PM   #19
titopoquito
Senior Member
 
Registered: Jul 2004
Location: Lower Rhine region, Germany
Distribution: Slackware64 14.2 and current, SlackwareARM current
Posts: 1,597

Rep: Reputation: 125Reputation: 125
Quote:
Originally Posted by bassmadrigal View Post
Now I just need to start researching other package managers that handle dependencies, but that probably goes beyond this thread (although, I suppose it could be helpful for others who are going to set up something similar.
I think slapt-get is able to handle the .dep-files but I never tried it. It's the only one that comes to my mind.
 
1 members found this post helpful.
Old 11-22-2016, 05:19 PM   #20
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2 on Lenovo Thinkpad W520
Posts: 7,867

Rep: Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780
Yes, slapt-get can handle dependencies. But it doen't compute them, so you need another tool for that, like depfinder, cf. depfinder. If a field "PACKAGE REQUIRE" is filled in PACKAGES.TXT like here slapt-get will get the corresponding packages.

Also, please note that this doesn't work like sbopkgsqg because sbopkgsqg finds the deps in <package>.info that only mentions the direct dependencies (the fist link in the chain) whilst slapt-get needs the whole chain.

Practically; to use this stuff you need to:
1) compute the dependencies, e.g. "depfinder -f package.txz" outputs a file package.dep
2) build a file PACKAGES.TXT with that info. For instance for Slint I use this script adapted from Salix. Eric Hameleers has written one better looking and with more options among other tools he makes available.

Last edited by Didier Spaier; 11-22-2016 at 06:55 PM. Reason: s/sbopkg/sqg/, thanks bassmadrigal.
 
1 members found this post helpful.
Old 11-22-2016, 05:39 PM   #21
titopoquito
Senior Member
 
Registered: Jul 2004
Location: Lower Rhine region, Germany
Distribution: Slackware64 14.2 and current, SlackwareARM current
Posts: 1,597

Rep: Reputation: 125Reputation: 125
Quote:
Originally Posted by Didier Spaier View Post
Yes, slapt-get can handle dependencies. But it doen't compute them, so you need another tool for that, like depfinder, cf. depfinder. If a field "PACKAGE REQUIRE" is filled in PACKAGES.TXT like here slapt-get will get the corresponding packages.

Also, please note that this doesn't work like sbopkg because sbopkg finds the deps in <package>.info that only mentions the direct dependencies (the fist link in the chain) whilst slapt-get needs he whole chain.

Practically; t us ethis stuff yu need to:
1) compute the dependencies, e.g. "depfinder -f package.txz" output a file package.dep
2) build a file PACKAGES.TXT with that info. For instance for Slint I use this one adapted from Salix. Eric Hameleers has written one more options among other tools he makes available.
slackrepo is able to handle this, or more specific it's Eric's script to build the repo structure. If you should use slackrepo you can add optional dependencies in the hint files. At least when I took a look the dependency lists created by slackrepo/gen_repos_files.sh looked complete, but I would have to double check it to be sure.
 
1 members found this post helpful.
Old 11-22-2016, 05:47 PM   #22
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2 on Lenovo Thinkpad W520
Posts: 7,867

Rep: Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780
@bassmadrigal: by the way the response to your question about not typing the passphrase every time is in Eric's script, see the function gpg_sign.

Last edited by Didier Spaier; 11-22-2016 at 05:50 PM.
 
2 members found this post helpful.
Old 11-22-2016, 06:46 PM   #23
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,545

Original Poster
Rep: Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497
Quote:
Originally Posted by Didier Spaier View Post
Yes, slapt-get can handle dependencies. But it doen't compute them, so you need another tool for that, like depfinder, cf. depfinder. If a field "PACKAGE REQUIRE" is filled in PACKAGES.TXT like here slapt-get will get the corresponding packages.

--snip--

Practically; to use this stuff you need to:
1) compute the dependencies, e.g. "depfinder -f package.txz" outputs a file package.dep
2) build a file PACKAGES.TXT with that info. For instance for Slint I use this script adapted from Salix. Eric Hameleers has written one better looking and with more options among other tools he makes available.
Does it have to be in the PACKAGES.TXT? Because slackrepo (or rather Eric's gen_repos_files.sh script that David included with slackrepo) does generate the package.dep files, but it doesn't add anything into the PACKAGES.TXT. After looking into the gpg-agent portion below, I found there is an option in slackrepo's config for slapt-get support (which is actually support in Eric's gen_repos_files.sh script that slackrepo calls after it's done building), which will create those fields in the PACKAGES.TXT. There's just so much in there that it can easily get looked over if you're not interested in it at the time.

Quote:
Originally Posted by Didier Spaier View Post
Also, please note that this doesn't work like sbopkg because sbopkg finds the deps in <package>.info that only mentions the direct dependencies (the fist link in the chain) whilst slapt-get needs the whole chain.
Yeah, this is quite a different beast than sbopkg, and a lot more powerful. But, actually, sbopkg doesn't do anything with deps, it just reads queue files that contain them and process them in order (assuming you choose to build the queuefile). The actual queue files are generated by sqg, and that will get dependencies of dependencies. A quick example from deluge is below:

Code:
jbhansen@febtober:/var/lib/sbopkg/queues$ grep REQUIRES ../SBo/14.2/network/deluge/deluge.info
REQUIRES="Mako libtorrent-rasterbar pyOpenSSL python-chardet python-twisted pyxdg"
jbhansen@febtober:/var/lib/sbopkg/queues$ sudo sqg -p deluge
Processing deluge.
Done.
jbhansen@febtober:/var/lib/sbopkg/queues$ cat deluge.sqf
pyxdg
zope.interface
python-twisted
python-chardet
idna
ipaddress
enum34
six
pycparser
cffi
pyasn1
cryptography
pyOpenSSL
GeoIP
libtorrent-rasterbar
MarkupSafe
Mako
deluge
Quote:
Originally Posted by Didier Spaier View Post
@bassmadrigal: by the way the response to your question about not typing the passphrase every time is in Eric's script, see the function gpg_sign.
Awesome! That led me to the correct location within slackrepo's config to set the same option. Now I just need to figure out the proper way to ensure gpg-agent is always running (I'm not sure if it is like ssh-agent in that it needs to make sure it's only run once -- assuming I remember that right). I probably won't dig into this until Thursday or Friday, but I'm not opposed to anyone giving me the info here without me researching
 
Old 11-22-2016, 06:54 PM   #24
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2 on Lenovo Thinkpad W520
Posts: 7,867

Rep: Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780Reputation: 2780
Quote:
Originally Posted by bassmadrigal View Post
Yeah, this is quite a different beast than sbopkg, and a lot more powerful. But, actually, sbopkg doesn't do anything with deps, it just reads queue files that contain them and process them in order (assuming you choose to build the queuefile). The actual queue files are generated by sqg, and that will get dependencies of dependencies.
Indeed! I wrote sbopkg but actually thought sqg, thanks for the correction. As we say: "je pense une chose, j'en dis une autre et j'en écris une troisième".
 
Old 11-23-2016, 05:13 PM   #25
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,136
Blog Entries: 4

Rep: Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565
Quote:
Originally Posted by bassmadrigal View Post
I found there is an option in slackrepo's config for slapt-get support (which is actually support in Eric's gen_repos_files.sh script that slackrepo calls after it's done building), which will create those fields in the PACKAGES.TXT.
ISTR slackrepo no longer uses gen_repos_files.sh for this, for speed purposes, but also ISTR that the slackrepo implementation is buggy or broken
 
1 members found this post helpful.
Old 11-25-2016, 10:05 PM   #26
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,545

Original Poster
Rep: Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497
One (possibly) final question (well, questions... but it's all on the same topic)... what is the best way to handle building software that relies on openjdk or jdk? I know David had automatic rebuilds of ponce's repo (or maybe it was SBo's master repo after submissions for 14.1 shut down) every so often, and he might still be doing this, but I haven't seen any updates. I know jdk has the restriction of requiring downloading the source manually, and openjdk ends up requiring jdk because apache-ant requires it for compiling. Does slackrepo provide a way to overcome these obstacles? I'd love to make kodi upgrades more manageable, but I don't see an easy way to use slackrepo to build it. I also have a package I intend to submit to SBo that requires a v8 jdk (Oracle or open... doesn't matter which). In the past, I've always used Eric's openjdk (and qt5, but I bit the bullet and decided to compile qt5 finally, so my htpc is chugging through it now), but I'm not sure if I can work that into the builds here. I imagine when there's a dependency, slackrepo can only install packages that it compiled itself.

So, what is the best method of compiling programs that rely on jdk or openjdk? Do I just manually have to download the jdk source and put it in the directory any time there's an update? And I don't think there's any way to override jdk requirements with openjdk without branching the git repo, right?
 
Old 11-26-2016, 07:04 AM   #27
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,136
Blog Entries: 4

Rep: Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565
Yo Mr Madrigal!
The answer to pretty much all your reasonable questions is unfortunately No

There is no legal way of getting round the manual download of Oracle's JDK. I download it manually like everybody else There are unofficial mirrors out there (which you can find by searching for the md5sum), but the work to find that and update it for each new release is more than the work to download it manually. And some people have figured out the URL for getting the official release without having to agree to the licence, but again that URL would need updating manually for each release. [* see edit below *]

Alternative/substitute dependencies like jdk->openjdk is on my Todo Roadmap of Eternal Wishlistness. I know it's another heretical idea (and I utterly hate the idea of "virtual packages"), but it would be useful in lots of situations: jdk/openjdk, jack2/jack-audio-connection-kit, wxX11/wxGTK/wxPython, and the package name changes that happen when packages get added or upgraded in -current (like the gst-plugins thing that happened in the 14.2 cycle).

(The Todo list does actually exist, it's slowly taking over on my whiteboard: https://pbs.twimg.com/media/CyL4Sl9WgAAmkqR.jpg:large -- there's not any priority order by the way)

[* Edit *]
but if it allowed $VERSION to be expanded in DOWNLOAD="..." in a hintfile, that would work ... in fact, this may already work unintentionally ... hmmm, I don't want to reinvent Arch PKGBUILDS, but this one thing is useful. Thanks for the idea! The relevant URLs can be found e.g. at https://gist.github.com/P7h/9741922 although unfortunately the "-b15" part of the jdk URL and version is not part of the SBo VERSION string, so it still won't work properly

Last edited by 55020; 11-26-2016 at 07:21 AM.
 
2 members found this post helpful.
Old 11-26-2016, 09:01 AM   #28
bassmadrigal
Senior Member
 
Registered: Nov 2003
Location: Newport News, VA
Distribution: Slackware
Posts: 4,545

Original Poster
Rep: Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497Reputation: 2497
Haha... no worries man. This has already saved me a buttload of time, so I can deal with the little bit of extra time it takes to manually download jdk and put it in the correct folder. I figured that was the case, but wanted to double check in case there was some alternate.

And that's quite the TODO list. A possibly simple way to deal with the "alternative/substitute dependencies" (and I say possibly, because I have no idea if it would end up being difficult to actually implement) would be to have a IGNOREREQUIRES or REMOVEREQUIRES field in the hint file. This would obviously cause slackrepo to ignore some that package from the .info's REQUIRES line. This would allow people to remove certain dependencies the package maintainer added if the enduser doesn't require the functionality (can't think of any examples off the top of my head) or to replace existing packages with alternates.

But this has been a great piece of software to deal with. So far, I've built 124 packages (puddletag was a ridiculous program once you started throwing in optional dependencies), but it's nice to know that the environment is still entirely clean and these packages will easily install onto the end system and be able to be easily kept up-to-date. My desktop now is horribly outdated in regards to SBo packages, as I don't like to take the time to figure out what packages need to be rebuilt due to upgrades, so I usually never upgrade them. This will completely solve that. I just let slackrepo figure everything out and then upgrade as needed on the end machine.

Do you have something set up for donations? (This would be for past work done, not potential future work.)
 
1 members found this post helpful.
Old 11-26-2016, 11:01 AM   #29
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,136
Blog Entries: 4

Rep: Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565Reputation: 1565
Quote:
Originally Posted by bassmadrigal View Post
have a IGNOREREQUIRES or REMOVEREQUIRES field in the hint file
Pretty good idea: it actually fixes two TODO items at once; thanks

Quote:
Originally Posted by bassmadrigal View Post
it's nice to know that the environment is still entirely clean
Sadly there's a regression with that, I made a change that mounts your home directory in order to make ccache work, unfortunately that allows a bad build to mess up your home directory, so it needs to be reverted or made more cleverer real soon now... *something* in SBo, I don't know what (yet), chowned bits of my home dir to root:root last week

Quote:
Originally Posted by bassmadrigal View Post
Do you have something set up for donations?
Well thanks for the thought, but this is part of what I do to give something back to Slackware and its community, so you don't need to make an offsetting donation -- especially considering your own extraordinary generosity donating high quality answers right here
 
Old 11-26-2016, 12:09 PM   #30
slalik
Member
 
Registered: Nov 2014
Location: Moscow, Russia
Distribution: Slackware
Posts: 119

Rep: Reputation: 54
As for jdk, the problem could be resolved with a hint that allows to add options to wget/curl.

In srcfunctions.sh there is a case statement that adds an option to curl for dropbox. As a temporary solution, I added another line for oracle:
Code:
*download.oracle.com*) curlboredom="${curlboredom} --cookie oraclelicense=accept-securebackup-cookie" ;;

Last edited by slalik; 11-26-2016 at 12:12 PM.
 
2 members found this post helpful.
  


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 06:18 AM
Howto undo updates or roll system back to initial installation? suguru SUSE / openSUSE 2 01-09-2006 12:31 AM
Howto? upgrade kernel on initial boot into Sarge haertig Debian 12 11-13-2005 12:58 AM
Initial questions after first Linux use Foxy Mandriva 11 07-04-2004 04:55 AM
Initial setup .. umd Linux From Scratch 9 04-05-2003 01:36 PM

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

All times are GMT -5. The time now is 09:11 AM.

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