First off, excuse my poor English. Thank you.
Trying to build my own amd64-k10-pure64 chain of stages, I ran into several issues with Metro. They are:
1. Metro does not compile Python with ability to use shared memory. Some packages rely on this feature of Python (namely, Chromium) and cannot be built.
2. Metro does not wipe out openrc leftovers from /run before packaging a stage tarball. It prevents all runlevel scripts from starting up if they were added in the working environment after you've done with deploying stage3, setup and reboot.
3. stage3 cannot be built as there is a file collision. /etc/init.d/udev-postmount is claimed by udev and udev-init-scripts.
So, I resolved these issues and made a pull request on GitHub waiting for Metro maintainers to review. For those who suffer from the same and cannot wait, here it is:
--XXX-CUT-HERE-XXX--
etc/builds/funtoo-current/build.conf
@@ -42,7 +42,7 @@ packages: [
sys-devel/bc
sys-apps/pciutils
app-portage/gentoolkit
- sys-fs/udev
+ virtual/udev
]
[section snapshot]
--XXX-CUT-HERE-XXX--
modules/targets/chroot.py
@@ -12,7 +12,7 @@ def _init_(self, settings):
self.required_files.append("path/mirror/source")
- define general linux mount points
- self.mounts =
{"/proc": "/proc"}
+ self.mounts =
{"/proc": "/proc", "/dev/shm": "/dev/shm"}
if not self.settings.has_key("target/class"):
return
--XXX-CUT-HERE-XXX--
targets/gentoo/steps/stage.spec View
@@ -13,6 +13,7 @@ export CLEAN_DELAY=0
export EBEEP_IGNORE=0
export EPAUSE_IGNORE=0
export CONFIG_PROTECT="-* /etc/locale.gen"
+export COLLISION_IGNORE="/etc/init.d/udev-postmount"
if [ -d /var/tmp/cache/compiler ]
then
if ! [ -e /usr/bin/ccache ]
@@ -246,6 +247,8 @@ fi
- locale-archive can be ~81 MB; this should shrink it to 2MB.
rm -f /usr/lib*/locale/locale-archive
locale-gen
+
+rm -rf $ROOT/run/*
]
postclean: [
--XXX-CUT-HERE-XXX--