A tip for building packages with a lot of dependencies from Slackbuilds
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
A tip for building packages with a lot of dependencies from Slackbuilds
Hi all,
I recently decided to try again to build gnucash using sbopkg and slackbuilds.org. In the past, I've gotten tangled up in the dependencies and given up in frustration. The problem isn't with slackbuilds.org -- the dependencies are very well-documented! The problem isn't with sbopkg and it's queue functions, which are intelligent, logical, and powerful.
The problem is that some of gnucash's dependencies have dependencies that share dependencies with other dependencies. I was having trouble taking a branching chain of dependencies and translating it to a queue where each package is only listed once.
Last night I realized that I could create a flow chart showing the dependencies as branches and use that to identify the duplicated packages. After than, I created a queue file with each package listed only once and in the preferred order. It built without errors and gnucash is now running on my system.
I've attached the flow chart I created. The duplicate dependencies are in yellow. The resulting gnucash.sqf queue file is below.
It's possible that I just "discovered" a tip that most people already know about and use. Nevertheless, I find creating a flow chart of the dependencies very helpful and thought I'd share it.
That's the perfect opportunity for a bit of self-promotion. *cough* *cough*
Quote:
Originally Posted by 55020
clean building - dependencies are built as a 'tree', not a linear 'queue'
I see you're on Slackware-14.0, well, comparing what's below with your nice chart, thankfully you won't have to do all that again; most of those deps are already in 14.1.
Code:
===============================================================================
! office/gnucash 21:05:40 !
===============================================================================
Hints for libraries/webkitgtk:
NUMJOBS="-j1"
Dependencies of office/gnucash:
libraries/goffice0.8
libraries/libgnomecanvas
libraries/libofx
libraries/webkitgtk
libraries/goffice0.8 is up-to-date.
libraries/libgnomecanvas is up-to-date.
libraries/libofx is up-to-date.
Dependencies of libraries/webkitgtk:
libraries/gst1-plugins-base
libraries/libwebp
Dependencies of libraries/gst1-plugins-base:
libraries/gstreamer1
Dependencies of libraries/gstreamer1:
development/orc
development/orc is up-to-date.
libraries/gstreamer1 is up-to-date.
libraries/gst1-plugins-base is up-to-date.
libraries/libwebp is up-to-date.
libraries/webkitgtk is up-to-date.
office/gnucash is up-to-date.
So 55020 how much did you have to pay Lufbery to post his tree structure on the day* you announced the release of your software?
It's open source. I didn't get paid a dime.
I'll check out slackrepo. It looks like it serves a real need.
Nevertheless, I think creating a flow chart of dependencies is a great way to check the sanity of your build order. QGIS is another one where, once you get into the optional dependencies, everything can become tangled with dependencies being dependencies of other dependencies.
I've been using Slackware since version 11 was released (late 2006), and I've been building 3rd party packages from source for nearly as long -- primarily using slackbuilds and src2pkg. I've also built Linux From Scratch -- with package management -- several times. I feel pretty good about my ability to build stuff from source, although I run into enough snags to not get cocky.
Anyway, it hit me last night that a flowchart is the perfect tool for documenting dependencies before coming up with the build order. It seems so obvious now that I can't believe I didn't think of it sometime in the prior six or seven years that I've been a slacker.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.