OpenSDE Framework (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
2.2 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: target/early/build-initramfs.in
# Copyright (C) 2007 - 2009 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- SDE-COPYRIGHT-NOTE-END ---
INITRAMFS_POSTINSTALL_HOOK='early_adjust_initrd'
# flatten
ln -s . ${rootfs}/usr
# don't break /tmp when flattening
INITRAMFS_INSTALL_PATTERN="$INITRAMFS_INSTALL_PATTERN -e '/ usr\/tmp/d;'"
INITRAMFS_EMPTY_PATTERN="-e '/\.\/rootfs/d;'"
# initramfs_install <pkg_name> <sandbox> <rootfs>
initramfs_install() {
local root="$2" initrddir="$3"
case "$1" in
udev) cp -a "$root/lib/udev/devices"/* "$initrddir/dev/"
return 0 ;;
hotplug2)
cp "$root/sbin/hotplug2-modwrap" "$initrddir/sbin/"
;;
strace)
cp "$root/usr/bin/strace" "$initrddir/bin/"
;;
sysfiles)
for x in etc/{,SDE-}VERSION etc/{passwd,group} etc/rc.d/functions{,-ansi}.in; do
cp "$root/$x" "$initrddir/$x"
done
for x in etc/{fstab,hosts,resolv.conf}; do
touch "$initrddir/$x"
done
;;
dietlibc)
# skip
;;
*) return 0 ;;
esac
return 1
}
early_adjust_initrd() {
echo_status "Tweaking initrd ..."
for x in var/spool/{locks,mail} \
usr/{doc,info,man,opt,spool} etc/{rc.d/,}init.d usr
do
rm ${rootfs}/$x
done
mkdir "${rootfs}/rootfs"
# HACK: bb's modprobe needs insmod on PATH, but udev clears it
# HACK: additionaly bb's modprobe doesn't handle MODALIAS properly
# HACK: so we use our own wrapper on top of bb's
rm ${rootfs}/sbin/modprobe
}
initramfs_install_pattern() {
local pkg_name="$1"; shift
case "$pkg_name" in
udev)
echo -n "-n -e '/etc\/udev\//p;' -e '/lib.*\/udev\/devices\//p;' -e '/lib\/udev\/.*_id$/p;' "
echo "-e '/sbin\/\(udevd\|udevadm\)$/P'"
;;
lvm2)
echo "$@ -e '/sbin\/lvmdump$/d;'"
;;
fhs)
echo "-e '/\/local\(\|\/.*\)$/d;' $@"
;;
*)
echo "$@"
;;
esac
}