LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
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 09-09-2014, 04:12 AM   #1
bandrami
LQ Newbie
 
Registered: Nov 2013
Location: Mumbai
Distribution: Slackware, GUIX, NixOS
Posts: 18

Rep: Reputation: Disabled
Is there a build dependency tree listed anywhere? (Porting to a different libc)


Hi all,

As a side project, I'm trying to build Slackware against the Musl C library. I've got a bootable system but I haven't gotten much past that (I'm up to udev and most of the X libraries, which is about as far as I remember from the last time I rolled my own installation). And part of the point is to mirror the official build as much as possible. So, I'm curious if there's a platinum-iridium build dependency tree somewhere that I'm missing so that I can make sure the packages are built with the same deps as the official ones.

So far I've just been going on what I know different packages can depend on (and BLFS ended up being a huge help here), but there are a million different ways to do this, and I'd like to use the same one that the official builds use; I just can't seem to find it anywhere.

Last edited by bandrami; 09-09-2014 at 04:16 AM.
 
Old 09-09-2014, 05:15 AM   #2
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,307
Blog Entries: 4

Rep: Reputation: Disabled
There is no official list.

As you already know, BLFS is a goldmine of information, but there are some other resources that might be useful:

Salix -- see the PACKAGE REQUIRED entries in http://slackware.org.uk/salix/x86_64...4/PACKAGES.TXT

Alien Bob's ARM port -- start at http://alien.slackbook.org/blog/armport/ -- it's really a way of bootstrapping Slackware onto *any* new platform, so it's quite relevant to what you're doing

Tomas M's dependency list for Slackware 13.37 -- http://www.tomas-m.com/blog/upload/s...deps-13.37.php

[Hm. When you google alien arm, you get something quite inappropriate]
 
1 members found this post helpful.
Old 09-09-2014, 05:17 AM   #3
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,056

Rep: Reputation: Disabled
Hi and welcome to LQ.

Short answer:
no.

Long answer:
Slackware is not a source distribution and is not rebuilt from scratch at each release. And it is not guaranteed that running a Slackbuild again to re-build a Slackware package will always succeed without some modification, though it most often does.

As far as I know there is no officially released build dependency tree.

Of course some people have somehow had to re-build Slackware from scratch, e.g. for porting it to a new architecture (see AlienBOB's work for x86_64 or drmozes' work for ARM, for instance).

Using the "Search this forum" feature of LinuxQuestions should lead you to relevant threads.

Good luck.
 
Old 09-09-2014, 05:30 AM   #4
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097
Slackware can reproduce packages to put together to create a full distribution, but without extensive modifications it can not from source, bootstrap, and rebuild itself.

Very few distributions can do this. I think LFS is the only self-reproducable distribution, and maybe Gentoo.
 
Old 09-09-2014, 08:21 AM   #5
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
"Very few distributions can do this" I think it would be more accurate to say that "Very few distributions can *not* do this" -at least as far as 'real' distros are concerned. debian and fedora (and their derivatives) can both be mass-rebuilt.
 
3 members found this post helpful.
Old 09-09-2014, 10:27 AM   #6
hendrickxm
Member
 
Registered: Feb 2014
Posts: 344

Rep: Reputation: Disabled
I would look at the buildscripts for dragora 2.2 as well.
Just curious on how you started the build, did you follow the LFS book but using pkgtools from chapter 6?
 
Old 09-09-2014, 11:26 AM   #7
a4z
Senior Member
 
Registered: Feb 2009
Posts: 1,727

Rep: Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742
I can give you all dynamic linked files that use a lib / package
Code:
sbbdep --whoneeds --xdl /var/adm/packages/glibc-2.17-x86_64-7
I can not upload the result because it is to big, so just part that you see how it looks like
generated with
https://bitbucket.org/a4z/sbbdep/wiki/Home
check this for examples, the who need section
https://bitbucket.org/a4z/sbbdep/wiki/examples

part of the result might look like
Quote:
/lib64/libc-2.17.so (libc.so.6) is used from:
ConsoleKit-0.4.5-x86_64-1
/usr/bin/ck-history
/usr/bin/ck-launch-session
/usr/bin/ck-list-sessions
/usr/lib64/libck-connector.so.0.0.0
/usr/libexec/ck-collect-session-info
/usr/libexec/ck-get-x11-display-device
/usr/libexec/ck-get-x11-server-pid
/usr/sbin/ck-log-system-restart
/usr/sbin/ck-log-system-start
/usr/sbin/ck-log-system-stop
/usr/sbin/console-kit-daemon
GConf-3.2.6-x86_64-1
/usr/bin/gconf-merge-tree
/usr/bin/gconftool-2
/usr/bin/gsettings-data-convert
/usr/lib64/GConf/2/libgconfbackend-evoldap.so
/usr/lib64/GConf/2/libgconfbackend-oldxml.so
/usr/lib64/GConf/2/libgconfbackend-xml.so
/usr/lib64/gio/modules/libgsettingsgconfbackend.so
/usr/lib64/libgconf-2.so.4.1.5
/usr/libexec/gconf-defaults-mechanism
/usr/libexec/gconfd-2
LibRaw-0.16.0-x86_64-1alien
/usr/lib64/libraw.so.10.0.0
/usr/lib64/libraw_r.so.10.0.0
M2Crypto-0.21.1-x86_64-2
/usr/lib64/python2.7/site-packages/M2Crypto/__m2crypto.so
MPlayer-1.1_20130819-x86_64-2
/usr/bin/mencoder
/usr/bin/mplayer
ModemManager-1.0.0-x86_64-2
/usr/bin/mmcli
/usr/lib64/ModemManager/libmm-plugin-altair-lte.so
/usr/lib64/ModemManager/libmm-plugin-anydata.so
/usr/lib64/ModemManager/libmm-plugin-cinterion.so
/usr/lib64/ModemManager/libmm-plugin-generic.so
/usr/lib64/ModemManager/libmm-plugin-gobi.so
/usr/lib64/ModemManager/libmm-plugin-hso.so
/usr/lib64/ModemManager/libmm-plugin-huawei.so
/usr/lib64/ModemManager/libmm-plugin-iridium.so
/usr/lib64/ModemManager/libmm-plugin-linktop.so
/usr/lib64/ModemManager/libmm-plugin-longcheer.so
/usr/lib64/ModemManager/libmm-plugin-mbm.so
/usr/lib64/ModemManager/libmm-plugin-motorola.so
....
and very many lines more
 
Old 09-09-2014, 05:11 PM   #8
bandrami
LQ Newbie
 
Registered: Nov 2013
Location: Mumbai
Distribution: Slackware, GUIX, NixOS
Posts: 18

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by hendrickxm View Post
I would look at the buildscripts for dragora 2.2 as well.
Just curious on how you started the build, did you follow the LFS book but using pkgtools from chapter 6?
Roughly. I've been rolling my own distro for a while now on my servers and don't exactly follow LFS per se, though it's the same theory. Except in this case it would be closer to Cross LFS because I needed a compiler running on i486-unknown-linux-gnu targeting i486-slackware-linux-musl, to build a native i486-slackware-linux-musl compiler that would work once I was in a chroot.

But, yeah, in LFS parlance once I built /tools and chrooted I installed pkgtools and just started using the SlackBuild scripts on the sources. I had to bump up findutils because of a gnulib problem but pretty much everything else has worked fine with some minor patching except for things that simply don't build with musl (gcc-go, etc.). I was surprised udev worked without any complaint (I remember reading that it requires glibc explicitly, but it didn't kvetch at all; on my homebrewed servers I've been using mdev).

Last edited by bandrami; 09-09-2014 at 05:19 PM.
 
Old 09-09-2014, 05:15 PM   #9
bandrami
LQ Newbie
 
Registered: Nov 2013
Location: Mumbai
Distribution: Slackware, GUIX, NixOS
Posts: 18

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by ReaperX7 View Post
Slackware can reproduce packages to put together to create a full distribution, but without extensive modifications it can not from source, bootstrap, and rebuild itself.

Very few distributions can do this. I think LFS is the only self-reproducable distribution, and maybe Gentoo.
Well, given that I have just done that, one obviously can do it. You just need to build a cross compiler and use that to build a native compiler and the necessary tools to start running the SlackBuild scripts in a chroot. Pretty much any distro that ships binutils and gcc can do that, and I think that's all of them.
 
Old 09-09-2014, 05:19 PM   #10
bandrami
LQ Newbie
 
Registered: Nov 2013
Location: Mumbai
Distribution: Slackware, GUIX, NixOS
Posts: 18

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by a4z View Post
I can give you all dynamic linked files that use a lib / package
Thanks, though I'm more concerned about inter-package dependencies, eg, whether cyrus-sasl needs to wait until mariadb is built, whether harfbuzz should wait for freetype or vice versa, etc. (Actually I think stock slackware doesn't ship harfbuzz, but you get the idea.)
 
Old 09-09-2014, 05:22 PM   #11
bandrami
LQ Newbie
 
Registered: Nov 2013
Location: Mumbai
Distribution: Slackware, GUIX, NixOS
Posts: 18

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by Didier Spaier View Post
Slackware is not a source distribution and is not rebuilt from scratch at each release. And it is not guaranteed that running a Slackbuild again to re-build a Slackware package will always succeed without some modification, though it most often does.
Well, I mean, somebody builds slackware before it's released. I'd just like to follow the same build order he or she does.

Last edited by bandrami; 09-09-2014 at 05:24 PM.
 
Old 09-09-2014, 05:57 PM   #12
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097
Usually, from what AlienBOB hinted at a few times at least from my POV, is that certain packages are built by an existing system, and then a system is put together with certain packages as key structural points like glibc, gcc, and kernel-headers, with everything else either repackaged, rebuilt, and reworked around those structural points on some level, but not always.
 
Old 09-09-2014, 08:29 PM   #13
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,056

Rep: Reputation: Disabled
Quote:
Originally Posted by bandrami View Post
Well, I mean, somebody builds slackware before it's released. I'd just like to follow the same build order he or she does.
Well, yes but "builds Slackware" doesn't mean "rebuilds all Slackware packages".

Let's take an example:
Code:
/$ find /media/versions/slackware-14.1/{slackware,extra,testing} -type f -name "*t?z"|wc -l
1347
/$ find /media/versions/slackware-14.1/{slackware,extra,testing} -type f -name "*t?z" -newermt "Sep 26 01:10:42 UTC 2012" |wc -l
821
So, out of the 1347 packages included in Slackware 14.1, 821 were built after the release of the previous Slackware version (Slackware 14.0) that occurred on Sep 26 01:10:42 UTC 2012, but the other ones already existed.

PS I forgot the 2 packages in pasture/ so that's 1349/821. Oh, well...

Last edited by Didier Spaier; 09-10-2014 at 05:18 AM.
 
1 members found this post helpful.
Old 09-10-2014, 12:55 AM   #14
a4z
Senior Member
 
Registered: Feb 2009
Posts: 1,727

Rep: Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742Reputation: 742
Quote:
Originally Posted by bandrami View Post
Thanks, though I'm more concerned about inter-package dependencies, eg, whether cyrus-sasl needs to wait until mariadb is built, whether harfbuzz should wait for freetype or vice versa, etc. (Actually I think stock slackware doesn't ship harfbuzz, but you get the idea.)
if package, or library/binary A needs B, than A has to wait and B needs to be build
if package, or library/binary A is needed by B, B has to wait and A needs to be built first
sbbdep finds those dependencies on file or package level for dynamically linked files and binaries reports them to you.
so this can be some help

Slackware itself does, in opposite to some other distributions, not have a 'build world' (unfortunately, in my opinion)
it's more like a rolling release, and from time to time there is a 'snapshot' which is labeled as a release.

AlienBob has started to build, and put some documentation therefore, form scratch, which is possible the best help you could find if you really want to build from scratch
I think here are the scripts
http://taper.alienbase.nl/mirrors/alienarm/
 
Old 09-10-2014, 04:58 AM   #15
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
"file or package level for dynamically linked files and binaries" -this still does not equate with 'build order'.
 
  


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
dependency error: libc.so.6 asdf1234 Linux - Software 6 08-23-2012 03:30 AM
Dependency: libc.so.6(GLIBC_2.7) karthickk02 Linux - Newbie 2 10-08-2010 03:01 AM
compiling software without libc dependency augustocv Linux - Software 4 12-10-2006 06:52 PM
mkinitrd - Failed Dependency (libc.so.6) d1g1ta7 Linux - Software 3 08-15-2005 08:30 PM
libc.so.6 dependency questions giovannym Linux - Newbie 5 07-10-2004 02:12 AM

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

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