Nevermind, I think I managed to discover where I went wrong - in portage, one needs to add the ~<arch> flag in /etc/portage/package.keywords to equivalently set ACCEPT_KEYWORDS="~<arch>" then?

The strange thing, is that on my plain-old i686 laptop, i usually just say 'sys-app/busybox' without the ~<arch> and it manages to set ACCEPT_KEYWORDS for that package to ~<arch> ....

wierd!

Christopher Friedt wrote:
Hi Nedd,

Thanks for your reply - i've been crazy busy lately.

The ROOT & PORTAGE_CONFIGROOT directories are the same, and I tested out /sysroot/etc/portage/package.use. That works no problem.

However, i still don't see an effect if I do something in package.keywords.

I usually do this on my desktop machine if I'd like to open up the keywords for a particular package. Am I doing something wrong?


vaiprime / # echo "sys-apps/busybox" >> /sysroot/etc/portage/package.keywords
vaiprime / # xmerge -pv busybox

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-apps/busybox-1.2.2.1 to /sysroot/ USE="static* -debug -make-symlinks -netboot -savedconfig" 1,380 kB

vaiprime / # ACCEPT_KEYWORDS="~arm" xmerge -avB busybox

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild U ] sys-apps/busybox-1.3.1 [1.2.2.1] to /sysroot/ USE="static* -debug -make-symlinks -savedconfig (-netboot%)" 1,456 kB

Ned Ludd wrote:
Is your $SYSROOT the same as your $PORTAGE_CONFIGROOT?
Cuz portage only looks in $PORTAGE_CONFIGROOT and cares nothing of
$SYSROOT..


On Sat, 2007-01-13 at 00:12 +0100, Christopher Friedt wrote:
Hi everyone,

I've set up a 'build root' that I can chroot into for cross development.
There is also a directory of targets to compile for, and for each target, a series of different configurations.

When I chroot into my buildroot my 'enter_chroot' script will automatically mount -o bind each of the sysroot, binpkgs, and overlay directories for a specified configuration, as well as mount -o bind the portage tree itself.

So my directory structure looks something like this:

gentoo-crossdev-buildroot/
   enter_chroot.sh
     (mounts proc, mounts -o bind portage/sysroot/binpkg/overlay etc)
   portage/
     ... (the portage tree)
   buildroot/
     ... (all cross compilation tools and a stage1 filesystem)
   targets/
     arm-9tdmi-linux-gnu/
       cross-toolchain/
       configurations/
         reference/
           overlay/
           binpkgs/
           sysroot/
         client1/
           ...
         client2/
           ...
     arm-9tdmi-linux-uclibc/
       cross-toolchain/
       configurations/
         reference/
           overlay/
           binpkgs/
           sysroot/
         client1/
           ...
         client2/
           ...

What I'm hoping to do is leverage the power of portage overlays here, and make it possible to have different package customizations for each client and each platform that my company deals with.

It doesn't take a lot to see that this is a great way to minimize maintenance.

My problem though, is that when doing cross development (I use the xmerge scrypt and set a SYSROOT variable), I have noticed that when I set new flags in $SYSROOT/etc/portage/package.use, it's not noticed properly during emerge.

I'm hoping that portage can be flexible enough to acknowlege those use flags. The xmerge script (taken from one of the gentoo cross development guides online) properly sets the PORTAGE_CONFIGROOT variable, ROOT, etc, so I don't understand why it doesn't acknowlege the changes in $SYSROOT/etc/portage/package.use.

Any suggestions?


Regards,

~/Chris
--
[email protected] mailing list

Reply via email to