[Clfs-support] CLFS RPM project
Jonathan Norman
jonathan at bluesquarelinux.co.uk
Sat Sep 27 05:45:15 PDT 2008
On 27 Sep 2008, at 06:30, Michael A. Peters wrote:
> RPM CLFS project
>
> Just thought I'd share with the list what I'm currently working on.
> I'm working on RPM boot strapping both i386 and x86_64 builds of CLFS.
>
> Initially I was working with multiarch but that was the wrong
> approach, the goal is to end up with a set of i386 and x86_64 RPMs
> that can be used in a yum package repository for building
> additional software in mock. Mock is a chroot build tool that
> assists in the creation of pristine packages that do not link
> against what you do not specifically want them to link against, and
> that can be important in long term system maintenance.
>
> The problem with using multilib was glibc and gcc - I could build
> i386 packages that in most cases were just dandy, but the resulting
> i686 glibc packages were not equivalent to x86_64, and gcc - it
> would build both 32-bit and 64-bit from the single make command
> when multiarch is not disabled in its configure, and that's just
> not suitable for producing pristine i386 and x86_64 packages.
>
> My new approach is "pure" 32 bit almost identical to the CLFS book
> and a "pure" 64-bit with some multiarch book patches so that it
> properly use lib64 and will allow for the eventual installation of
> 32-bit RPMs.
>
> I may not end up with a multiarch C compiler, I don't know enough
> about gcc to know if disabling multiarch at configure but
> installing the 32-bit libraries will allow 32-bit compilation from
> 64 bit Linux, but I should at least be able to run 32-bit libraries
> and programs inside 64-bit Linux. I really only need that for a
> handful of programs (IE google earth, Adobe Flash, and 32-bit TeX
> Live - I suppose I could use 64-bit TeX Live but hear 32-bit is far
> more stable, or at least was a few years ago).
>
> Most of the RPM packages I am writing from scratch, as close to the
> CLFS/CBLFS build instructions as I can stay. There are a few minor
> deviations, IE using /etc/ld.so.conf.d/ is so much easier for RPM
> than a single file. Generally with RPMs that result in both
> binaries and libraries, I'm putting the libs in a sub package so
> that it's easier to install the 32-bit version in 64-bit. RPM
> allegedly does decent job of handling that, when both arches own a
> file the 64-bit take priority, but I think it is cleaner to just
> not have it an issue. I'm also using rpmlint to verify the
> integrity of the packaging as much as possible.
>
> perl - I am deviating from the CLFS perl instructions, so that
> there is a common place for 32-bit and 64-bit to look for non arch
> specific perl modules. The 32-bit is almost the same but 64-bit has
> some extra args to make it look in the same place that 32-bit perl
> puts noarch stuff. I may need to do the same for Python and Ruby
> but I haven't looked into them yet.
>
> Anyway - it's a blast, and I'm learning a lot - I'm doing this for
> me, but if anyone else is interested I'd love to share. I'm not
> sharing any packages, but rpm spec files for packages I can share.
> I may try to put together a tips page for installing rpm itself -
> it's not *too* hard, but if you want debug package support you need
> elfutils and it seems the newer versions of elfutils depend upon
> patches to the fedora/redhat toolchain (compilation ends up stuck
> in what appears to be a loop with cc1 taking 100% of the CPU and
> never finishing the task it gets stuck in) - but I found a version
> that both builds and isn't too old for modern RPM. I don't think
> I'll be ready to share anything for a few weeks though, I highly
> suspect I'll fubar the system a few times before I get things right
> - I already did once with glibc ... (that seems to be resolved now)
>
> I've almost got the i386 build bootstrapped, then it's time to test
> the spec files on 64-bit ... and then get mock installed and working.
> _______________________________________________
> Clfs-support mailing list
> Clfs-support at lists.cross-lfs.org
> http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
I have made RPMS for the LFS book and created multi-arch spec files.
The installation of these RPMS onto a blank hard drive is done with
shell scripts. I have not come across a problem doing multilib
because I have made it for i686, UltraSPARC and PowerPC G4, there for
no need for multilib yet. Good luck with it tho :)
Cosmo~
More information about the Clfs-support
mailing list