blob: 082f312bfa86f1a16b9c42d6ac7d0435f26d57a1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#! /bin/sh
#
# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
#
# Filename: altboot_0.0.5-rc2.bb
# Date: 21-Feb-06
DESCRIPTION = "The altboot bootmanager"
MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml"
######################################################################################
PR = "r0"
######################################################################################
PACKAGE_ARCH = "${MACHINE}"
TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}"
SRC_URI = "cvs://anonymous@hentges.net/hentgescvs;method=pserver;tag=${TAG};module=altboot"
######################################################################################
do_install() {
install -d ${D}/sbin
install -d ${D}/etc/altboot-menu
install -d ${D}/etc/altboot-menu/Advanced
install -d ${D}/etc/altboot.rc
install -d ${D}/usr/share/doc/altboot
if test -d ${WORKDIR}/altboot/${MACHINE}
then
install -m 0644 ${WORKDIR}/altboot/${MACHINE}/altboot*.cfg ${D}/etc
else
install -m 0644 ${WORKDIR}/altboot/altboot*.cfg ${D}/etc
fi
install -m 0644 ${WORKDIR}/altboot/altboot.func ${D}/etc
install -m 0755 ${WORKDIR}/altboot/init.altboot ${D}/sbin
if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/
then
install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/*-* ${D}/etc/altboot-menu
else
install -m 0755 ${WORKDIR}/altboot/altboot-menu/*-* ${D}/etc/altboot-menu
fi
if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/
then
install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced
else
install -m 0755 ${WORKDIR}/altboot/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced
fi
install -m 0755 ${WORKDIR}/altboot/altboot.rc/*.sh ${D}/etc/altboot.rc
install -m 0644 ${WORKDIR}/altboot/altboot.rc/*.txt ${D}/etc/altboot.rc
}
######################################################################################
do_configure() {
cat ${WORKDIR}/altboot/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${WORKDIR}/altboot/init.altboot_
mv ${WORKDIR}/altboot/init.altboot_ ${WORKDIR}/altboot/init.altboot
}
######################################################################################
pkg_postinst() {
update-alternatives --install /sbin/init init /sbin/init.altboot 55
}
pkg_postinst_spitz() {
# Note: Spitz support is a royal pain in the ass.
# Since Spitz pivot_roots by default, there is no real way
# a user can install an altboot.ipk into the flash FS.
# So we need to do that manually (*SIGH*)
# /l/m only exists on the HDD on spitz
if test -d /lib/modules
then
if [ -e /media/realroot/sbin/init ]; then
ROOT_MOUNT_POINT="/media/realroot"
elif [ -e /media/ROM/sbin/init ]; then
ROOT_MOUNT_POINT="/media/ROM"
fi
if [ ! "$ROOT_MOUNT_POINT" = "" ]; then
ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1`
if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then
mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT
cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc
cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin
if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then
mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig
fi
ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init
fi
fi
fi
}
######################################################################################
pkg_postrm() {
update-alternatives --remove init /sbin/init.altboot
}
pkg_postrm_spitz() {
if test -d /lib/modules
then
if [ -e /media/realroot/sbin/init ]; then
ROOT_MOUNT_POINT="/media/realroot"
elif [ -e /media/ROM/sbin/init ]; then
ROOT_MOUNT_POINT="/media/ROM"
fi
if [ ! "$ROOT_MOUNT_POINT" = "" ]; then
ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1`
if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then
mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT
if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then
rm $ROOT_MOUNT_POINT/sbin/init
rm $ROOT_MOUNT_POINT/sbin/init.altboot
mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init
else
echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!"
fi
fi
fi
fi
}
|