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.
 
 
 
 
 
 

82 lines
2.4 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: target/early/build-initramfs.in
# Copyright (C) 2007 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 ---
INITRD_POSTFLIST_HOOK='early_adjust_initrd'
# flatten
ln -s . ${initrddir}/usr
# don't break /tmp when flattening
INITRD_FLIST_PATTERN="$INITRD_FLIST_PATTERN -e '/ usr\/tmp/d;'"
INITRD_FLIST_PATTERN="$INITRD_FLIST_PATTERN -e '/ lib\/udev\/devices/d;'"
INITRD_EMPTY_PATTERN="-e '/\.\/rootfs/d;'"
initrd_flist_install_filter() {
local root="build/${SDECFG_ID}/"
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,-std}.in; do
cp "$root/$x" "$initrddir/$x"
done
for x in etc/{fstab,hosts,resolv.conf}; do
touch "$initrddir/$x"
done
;;
*) return 0 ;;
esac
return 1
}
early_adjust_initrd() {
echo_status "Tweaking initrd ..."
for x in var/state/pkgtool var/spool/{locks,mail} \
usr/{doc,info,man,opt,spool} etc/{rc.d/,}init.d usr
do
rm ${initrddir}/$x
done
mkdir "${initrddir}/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 ${initrddir}/sbin/modprobe
for x in $( ls -1 target/$target/initrd/*.exec 2> /dev/null ); do
y="${x##*/}"; y="$( echo ${y%.exec} | tr '_%' '/_' )"
echo_status "injecting $y*"
cp -f "$x" "${initrddir}/$y"
chmod +x "${initrddir}/$y"
done
for x in $( ls -1 target/$target/initrd/*.txt 2> /dev/null ); do
y="${x##*/}"; y="$( echo ${y%.txt} | tr '_%' '/_' )"
echo_status "injecting $y"
cp -f "$x" "${initrddir}/$y"
done
for x in $( ls -1 target/$target/initrd/*.patch 2> /dev/null ); do
echo_status "$(patch -p1 -d "${initrddir}" 2>&1 < $x )"
done
}