Glad to see Gentoo-openmoko distro

Previdi Roberto previdi.roberto at gmail.com
Wed Sep 10 13:12:42 CEST 2008


On Wed, Sep 10, 2008 at 1:22 AM, Al Johnson
<openmoko at mazikeen.demon.co.uk>wrote:

> No loss of USE - see the Gentoo Embedded Handbook, in particular this page:
>
> http://www.gentoo.org/proj/en/base/embedded/handbook/index.xml?part=1&chap=5
>

Ok, i have read that document, i think you are referring to the part where
he says
*"For your runtime system, you'll need a much slimmer/trimmed down setup.
The files you remove from a normal installed package is why this tree is not
suitable for compiling against. If you build binary packages while
installing into your sysroot, then you can use those binary packages in
conjunction with the INSTALL_MASK variable to trim out most things. See the
make.conf(5) man page for more information."

*But i cannot understand a thing: why if i only have one neo, and i don't
plan to release any overlay or similar to the public, should i choose to
prepare the binary packages on the desktop and then emerge them from the
neo? Isn't it the same thing of just syncing the two trees? umh..

Anyway, i have thought a bit about the available options to keep the
installation clean.. i came to 2+1 solutions:

1) concurrent tree
we keep 2 different trees, one on the neo and one on the desktop. when we
want to update, install, remove, destroy any piece of our little gentoo
thing we just make an operation of "sync-emerge-sync".
we must make the first sync to import in the desktop any modified
configuration file, any custom installed lib, or deletion of things..
the second sync is obviously to transfer the newly updated files on the neo

pros:
- two copies are better than one (simple and up to date backup)
- you can make the painful "after holiday world update" (which can compile
for something like one night on slow desktops) and other slow operations
without keeping the neo connected. just make the first sync and then launch
the command
- versioning?
- eventual neo disconnections during the sync phase are not so terrible, we
just reconnect and restart the sync..

cons:
- much space occupied
- the sync can be very slow (because the flash card is slow)

2) on-desktop compilation - on-neo installation
we mount the neo root as sysroot on the desktop (nfs? usbfs?). then we add
to the mounted tree the missing directories (/usr/portage, /var/tmp/portage,
/usr/doc and others) which will actually reside on the desktop disk. now we
have a complete sysroot where we can execute the cross-emerge as explained
in the guide. after that we simply unmount our neo and go out with our
freshly updated system.

pros:
- faster, no tedious sync involved
- less space required on the desktop

cons:
- you must keep the neo connected all the time
- neo disconnection can cause emerge to fail (but it shouldn't create
inconsistencies, until the disconnection happens in the installation phase)
- maybe other problems due to discording user ids or something (?)

3) hybrid (my preferred one)
we keep both the clone tree and the mounting scripts, we mount the neo over
the clone tree (and complete with the links) when we want a simple and wuick
update of 2 or 3 packages. But when we must compile the heavy 65-packages
gnome+qt+apache+openoffice update we just make the sync, launch the command
and come back after the necessary hours..

pros: flexibility
cons: cannot find one (maybe paranoia? personality conflicts? :) )

please guys tell me what you think about.. maybe there are much simpler ways
that i forgot or just don't know about..

roby







*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/community/attachments/20080910/0d51c86d/attachment-0002.htm 


More information about the community mailing list