3 # Copyright Matthias Hentges <devel@hentges.net> (c) 2006
4 # License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
6 # Filename: altboot_1.0.5-rc2.bb
9 DESCRIPTION = "The altboot bootmanager"
10 MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
11 HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml"
13 ######################################################################################
17 ######################################################################################
19 PACKAGE_ARCH = "${MACHINE}"
21 TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}"
23 SRC_URI = "cvs://anonymous@hentges.net/hentgescvs;method=pserver;tag=${TAG};module=altboot"
25 S = "${WORKDIR}/altboot/"
27 ######################################################################################
31 install -d ${D}/etc/altboot-menu
32 install -d ${D}/etc/altboot-menu/Advanced
33 install -d ${D}/etc/altboot.rc
34 install -d ${D}/usr/share/doc/altboot
36 if test -d ${WORKDIR}/altboot/${MACHINE}
38 install -m 0644 ${WORKDIR}/altboot/${MACHINE}/altboot*.cfg ${D}/etc
40 install -m 0644 ${WORKDIR}/altboot/altboot*.cfg ${D}/etc
43 install -m 0644 ${WORKDIR}/altboot/altboot.func ${D}/etc
44 install -m 0755 ${WORKDIR}/altboot/init.altboot ${D}/sbin
46 if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/
48 install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/*-* ${D}/etc/altboot-menu
50 install -m 0755 ${WORKDIR}/altboot/altboot-menu/*-* ${D}/etc/altboot-menu
53 if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/
55 install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced
57 install -m 0755 ${WORKDIR}/altboot/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced
60 install -m 0755 ${WORKDIR}/altboot/altboot.rc/*.sh ${D}/etc/altboot.rc
61 install -m 0644 ${WORKDIR}/altboot/altboot.rc/*.txt ${D}/etc/altboot.rc
64 ######################################################################################
67 cat ${WORKDIR}/altboot/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${WORKDIR}/altboot/init.altboot_
68 mv ${WORKDIR}/altboot/init.altboot_ ${WORKDIR}/altboot/init.altboot
71 ######################################################################################
74 update-alternatives --install /sbin/init init /sbin/init.altboot 55
77 pkg_postinst_spitz() {
78 # Note: Spitz support is a royal pain in the ass.
79 # Since Spitz pivot_roots by default, there is no real way
80 # a user can install an altboot.ipk into the flash FS.
81 # So we need to do that manually (*SIGH*)
83 # the 2.6 kernel for spitz boots from HDD, no need to copy to flash
84 if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then
85 update-alternatives --install /sbin/init init /sbin/init.altboot 55
86 # no need to copy to flash if we're installing to flash already
87 elif mount | grep ' / ' | grep -q mtdblock; then
88 update-alternatives --install /sbin/init init /sbin/init.altboot 55
90 # /l/m only exists on the HDD on spitz
91 if test -d /lib/modules
93 if [ -e /media/realroot/sbin/init ]; then
94 ROOT_MOUNT_POINT="/media/realroot"
95 elif [ -e /media/ROM/sbin/init ]; then
96 ROOT_MOUNT_POINT="/media/ROM"
98 if [ ! "$ROOT_MOUNT_POINT" = "" ]; then
99 ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1`
100 if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then
101 mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT
102 cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc
103 cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin
104 if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then
105 mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig
107 ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init
114 ######################################################################################
117 update-alternatives --remove init /sbin/init.altboot
121 # the 2.6 kernel for spitz boots from HDD, no need to remove from flash
122 if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then
123 update-alternatives --remove init /sbin/init.altboot
124 # no need to copy to flash if we're removing from flash already
125 elif mount | grep ' / ' | grep -q mtdblock; then
126 update-alternatives --remove init /sbin/init.altboot
128 if test -d /lib/modules
130 if [ -e /media/realroot/sbin/init ]; then
131 ROOT_MOUNT_POINT="/media/realroot"
132 elif [ -e /media/ROM/sbin/init ]; then
133 ROOT_MOUNT_POINT="/media/ROM"
135 if [ ! "$ROOT_MOUNT_POINT" = "" ]; then
136 ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1`
137 if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then
138 mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT
139 if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then
140 rm $ROOT_MOUNT_POINT/sbin/init
141 rm $ROOT_MOUNT_POINT/sbin/init.altboot
142 mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init
144 echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!"