[Clfs-support] CBLFS: after CLFS

appzer0 appzer0 at free.fr
Tue Aug 10 07:18:40 PDT 2010


Hi,

Apologises for my english first of all.


OK, I'm working on my CLFS multilib (32/64-bit) system for quite a while 
now - and I must say it works pretty good!

I'm on it for about a year now (LFS -> CLFS Pure64 -> CLFS multilib -> a 
home-scripted, mixing slackware design, CLFS, DIY, fully UTF-8 and 
french-speakers-oriented distro with a realtime kernel, blah blah blah).

Packages are packed in cpio archives, each containing a xz'ed cpio 
archive of files, the rest is meta-info (thanks to the developer who 
worked hard on this piece of software, see 
http://requiescant.tuxfamily.org/home/index.html).

Builds are done with fakeroot, not to spam host with errors of 
manipulations or unfortunate builds. Only the packages that use 'mknod' 
have to be run by root (there is 2 such packages).

The system has two Java environments, two Firefoxes, two Thunderbirds, 
two Python packages repositories, etc. Everything is scripted to rebuild 
(sorry for the french comments, though commands are still 
understandable), see there:  
http://git.tuxfamily.org/0linux/0linux.git?p=gitroot/0linux/0linux.git;a=tree

Precompiled packages (all x86_64 with 32-bit capabilities) can be found 
here:  http://download.tuxfamily.org/0linux/pub/0/paquets/

Some packages were a PITA to build, sometimes I had to take the precious 
32-bit libs and place it in a safe place before compiling the 64-bit 
ones to prevent autoconf systems and such to overwrite them.

So the system works (almost) like a charm. Still, some questions are 
still in my mind.

The python packages (files in /usr/lib/python2.6/site-packages): My 
/usr/lib{,64}/python2.6/site-packages are not the same:

appzer0 at buildbox:~$ LC_ALL=C ls -al /usr/lib/python2.6/site-packages/
total 1651
drwxr-xr-x 14 root root   1704 Aug 10 14:25 ./
drwxr-xr-x 25 root root  19360 Jul  2 20:28 ../
drwxr-xr-x  3 root root    640 Jul  2 20:28 PyQt4/
-rw-r--r--  1 root root    119 Jun 21 21:09 README
-rw-r--r--  1 root root    800 Jun 22 00:42 Wicd-1.7.0-py2.6.egg-info
-rwxr-xr-x  1 root root   1026 Jun 21 14:22 _dbus_bindings.la*
-rwxr-xr-x  1 root root 135644 Jun 21 14:22 _dbus_bindings.so*
-rwxr-xr-x  1 root root   1170 Jun 21 14:22 _dbus_glib_bindings.la*
-rwxr-xr-x  1 root root   6508 Jun 21 14:22 _dbus_glib_bindings.so*
-rw-r--r--  1 root root   7000 Jun 21 00:34 _gamin.a
-rwxr-xr-x  1 root root    827 Jun 21 00:34 _gamin.la*
-rwxr-xr-x  1 root root   7672 Jun 21 00:34 _gamin.so*
drwxr-xr-x  2 root root    208 Jul  2 20:27 cairo/
drwxr-xr-x  3 root root   1632 Jul  2 20:22 dbus/
-rw-r--r--  1 root root     33 Jun 21 14:22 dbus_bindings.py
-rw-r--r--  1 root root    185 Jun 21 14:22 dbus_bindings.pyc
-rw-r--r--  1 root root    185 Jun 21 14:22 dbus_bindings.pyo
drwxr-xr-x  7 root root    872 Aug  7 22:17 docutils/
-rw-r--r--  1 root root   1681 Aug  7 22:17 docutils-0.8-py2.6.egg-info
-rw-r--r--  1 root root  15061 Jun 21 05:07 drv_libxml2.py
drwxr-xr-x  3 root root    144 Aug 10 12:36 exo-0.3/
-rw-r--r--  1 root root   6954 Jun 21 00:34 gamin.py
-rw-r--r--  1 root root   9358 Jun 21 00:34 gamin.pyc
-rw-r--r--  1 root root   9358 Jun 21 00:34 gamin.pyo
drwxr-xr-x  3 root root    184 Jul  2 20:23 git_remote_helpers/
-rw-r--r--  1 root root    271 Jun 21 00:36 
git_remote_helpers-0.1.0-py2.6.egg-info
drwxr-xr-x  7 root root    584 Jul  2 20:27 gtk-2.0/
-rw-r--r--  1 root root   4330 Feb 25 21:29 libproxy.py
drwxr-xr-x  2 root root   1296 Jul  2 20:25 libsmbios_c/
-rw-r--r--  1 root root 339776 Jun 21 05:07 libxml2.py
-rw-r--r--  1 root root 365378 Jun 21 05:09 libxml2mod.a
-rwxr-xr-x  1 root root   1011 Jun 21 05:07 libxml2mod.la*
-rwxr-xr-x  1 root root 274340 Jun 21 05:09 libxml2mod.so*
-rw-r--r--  1 root root  48277 Jun 21 05:11 libxslt.py
-rw-r--r--  1 root root  73814 Jun 21 05:11 libxsltmod.a
-rwxr-xr-x  1 root root   1088 Jun 21 05:11 libxsltmod.la*
-rwxr-xr-x  1 root root  61972 Jun 21 05:11 libxsltmod.so*
drwxr-xr-x 15 root root   1224 Jul  2 20:27 numpy/
-rw-r--r--  1 root root   1610 Jun 21 01:28 numpy-1.3.0-py2.6.egg-info
-rw-r--r--  1 root root   2762 Aug 10 12:32 pyexo.py
-rw-r--r--  1 root root   1639 Aug 10 12:32 pyexo.pyc
-rw-r--r--  1 root root   1346 Aug 10 12:32 pyexo.pyo
-rw-r--r--  1 root root      8 Jun 21 06:28 pygtk.pth
-rw-r--r--  1 root root   2966 Jun 21 06:28 pygtk.py
-rw-r--r--  1 root root   2074 Jun 21 06:28 pygtk.pyc
-rw-r--r--  1 root root   1781 Jun 21 06:28 pygtk.pyo
-rw-r--r--  1 root root   2687 Sep 29  2008 roman.py
-rw-r--r--  1 root root   3532 Apr 30 22:01 roman.pyc
-rwxr-xr-x  1 root root  74244 Aug 10 14:24 sip.so*
-rw-r--r--  1 root root  88597 Aug 10 14:24 sipconfig.py
-rw-r--r--  1 root root   5264 Aug 10 14:24 sipdistutils.py
drwxr-xr-x  2 root root    992 Jul  3 20:52 wicd/
drwxr-xr-x  2 root root    584 Jul  2 20:29 xcbgen/
drwxr-xr-x  3 root root    168 Jul  2 20:23 xml2po/

---

appzer0 at buildbox:~$ LC_ALL=C ls -al /usr/lib64/python2.6/site-packages/
total 2034
drwxr-xr-x  8 root root   1128 Aug 10 14:25 ./
drwxr-xr-x 25 root root  19360 Jul  2 20:28 ../
drwxr-xr-x  3 root root    672 Jul  2 20:28 PyQt4/
-rw-r--r--  1 root root    119 Jun 21 21:12 README
-rwxr-xr-x  1 root root   1019 Jun 21 14:22 _dbus_bindings.la*
-rwxr-xr-x  1 root root 172232 Jun 21 14:22 _dbus_bindings.so*
-rwxr-xr-x  1 root root   1171 Jun 21 14:22 _dbus_glib_bindings.la*
-rwxr-xr-x  1 root root   9064 Jun 21 14:22 _dbus_glib_bindings.so*
-rw-r--r--  1 root root  10948 Jun 21 00:34 _gamin.a
-rwxr-xr-x  1 root root    831 Jun 21 00:34 _gamin.la*
-rwxr-xr-x  1 root root   9432 Jun 21 00:34 _gamin.so*
drwxr-xr-x  2 root root    208 Jul  2 20:27 cairo/
drwxr-xr-x  3 root root     72 May  4 02:57 dbus/
-rw-r--r--  1 root root  15061 Jun 21 05:09 drv_libxml2.py
drwxr-xr-x  3 root root    144 Aug 10 12:36 exo-0.3/
-rw-r--r--  1 root root   6954 Jun 21 00:34 gamin.py
-rw-r--r--  1 root root   9410 Jun 21 00:34 gamin.pyc
-rw-r--r--  1 root root   9410 Jun 21 00:34 gamin.pyo
drwxr-xr-x  7 root root    584 Jul  2 20:27 gtk-2.0/
-rw-r--r--  1 root root   4330 Feb 25 21:29 libproxy.py
-rw-r--r--  1 root root 339776 Jun 21 05:09 libxml2.py
-rw-r--r--  1 root root 579058 Jun 21 05:09 libxml2mod.a
-rwxr-xr-x  1 root root   1015 Jun 21 05:09 libxml2mod.la*
-rwxr-xr-x  1 root root 370040 Jun 21 05:09 libxml2mod.so*
-rw-r--r--  1 root root  48277 Jun 21 05:11 libxslt.py
-rw-r--r--  1 root root 113666 Jun 21 05:11 libxsltmod.a
-rwxr-xr-x  1 root root   1104 Jun 21 05:11 libxsltmod.la*
-rwxr-xr-x  1 root root  78328 Jun 21 05:11 libxsltmod.so*
drwxr-xr-x 15 root root   1224 Jul  2 20:27 numpy/
-rw-r--r--  1 root root   1610 Jun 21 01:29 numpy-1.3.0-py2.6.egg-info
-rw-r--r--  1 root root      8 Jun 21 06:29 pygtk.pth
-rw-r--r--  1 root root   2966 Jun 21 06:29 pygtk.py
-rw-r--r--  1 root root   2082 Jun 21 06:29 pygtk.pyc
-rw-r--r--  1 root root   1789 Jun 21 06:29 pygtk.pyo
-rwxr-xr-x  1 root root 103784 Aug 10 14:24 sip.so*
-rw-r--r--  1 root root  88581 Aug 10 14:24 sipconfig.py
-rw-r--r--  1 root root   5264 Aug 10 14:24 sipdistutils.py

---

Do I need to have the same contents in both dirs? I suppose so. So it's 
gonna complicate the scripts over a bit more, I guess. Like, moving the 
32-bit python packages in a safe place before 64-bit builds.
I would really appreciate directions on about how to specify 
'site-packages' dirs to build systems or if I have to manually put the 
files in the right places after the build.

Following CBLFS led me to frequently invoke the same parameters and 
commands. For example, LDFLAGS="-L/usr/lib -L/lib" for 32-bit builds is 
now systematic, so as it is for the 64-bit builds too (just look at the 
'generique.recette' script on my GIT repo - "generique.recette" meaning 
"generic.recipe").

It is a pity that we cannot find more discussions about CBLFS system 
packaging and experience. Is there so few people managing to get this to 
a good result?

2nd question: is there a way to know if some binaries have to be 
wrapped, other than *-config binaries? How to know if a header need to 
be wrapped as well? CBLFS tells us how to do that for many packages, but 
not how to figure it out. Any directions or a method?

Sorry for that long-tailed post - I was thinking that this kind of 
questions should be stated, especially on this mailing-list. I may have 
other questions but it is enough for now :)

Thanks again fot this great method, CBLFS needs more contributors (even 
if I could myself contribute a bit more often, I admit it).


appzer0



More information about the Clfs-support mailing list