summaryrefslogtreecommitdiff
path: root/scripts/upgrade/install.template
blob: 191dcf749778b79867c717280efbbefc362bba0f (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
#!/bin/bash
# This script works with a tar archvie
# called upgrade.bin in either /var/volatile
# or on the SD card.
#
# This is what the tar file upgrade file
# should look like to create an ipk upgrade
# file.  IPK files should be in all,
# arm926ejste, and mtcdt (for mtcdt)
cat <<'!EOF' >/dev/null
.
|-- install_list.txt
|-- install_list.txt.md5
|-- install.sh*
|-- local.conf
|-- repo/
|   |-- arm926ejste/
|   |   |-- busybox_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
|   |   |-- busybox-hwclock_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
|   |   |-- busybox-ifplugd_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
|   |   |-- busybox-syslog_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
|   |   |-- busybox-udhcpc_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
|   |   |-- initscripts_1.0-r155.3.40.0_arm926ejste.ipk
|   |   |-- initscripts-functions_1.0-r155.3.40.0_arm926ejste.ipk
|   |   |-- Packages
|   |   |-- Packages.gz
|   |   `-- Packages.stamps
|   `-- Packages
!EOF
#
# The tarball must be called upgrade.bin.
#
# The file /var/volatile/do_flash_upgrade must exist and
# be owned by root.
#
# The tar file, upgrade.bin must be either in
# /var/volatile/flash-upgrade or
# /media/card/flash-upgrade
#
# Note that when this script is started, the
# tar file is already unpacked, since this script
# is in the tarball.

# This script assumes that the rootfs and maybe /var
# are writable.  For MTR, we may need to set
# root and var to read/write

NAME=install.sh
echo "$NAME starting in directory $(pwd)"
cd flash-upgrade/UPGRADE_DIR

id=$(id -u)
if ((id != 0)) ; then
   echo 'You must be root (admin in AEP) to install packages.'
   exit 1
fi

cat /proc/mounts
ls /
ls -l /tmp

localcnf=local.conf

if ! [[ -f ${localcnf} ]] ; then
    echo "Cannot find ${localcnf}"
    echo "This file must be in the current directory."
    exit 1
fi

dir=$(pwd)

sed -i "s?FLASHDIR?${dir}?" ${localcnf}
machine=$(mts-io-sysfs show product-id | sed 's/-.*//')
if [[ $machine == MTCAP ]] ; then
    # remove mtcdt
    sed -i '/mtcdt/d' ${localcnf}
else
    # remove mtcap
    sed -i '/mtcap/d' ${localcnf}
fi

cat ${localcnf}
pkglist_file="install_list.txt"
cat ${pkglist_file} |
(if ! md5sum -c ${pkglist_file}.md5 ; then
    echo "md5sum bad on ${pkglist_file}"
    umount_all error
fi)

echo "Update package list ... /usr/bin/opkg -f ${localcnf} update"
/usr/bin/opkg -t /var/volatile/ -f "${localcnf}" update
if [[ -r ${pkglist_file} ]] ; then
    OIFS="${IFS}"
    IFS=$'\n'
    for p in $(cat ${pkglist_file}) ; do
        echo /usr/bin/opkg -f "${localcnf}" install $p
        /usr/bin/opkg -t /var/volatile/ -f "${localcnf}" install $p
    done
    IFS="${OIFS}"
fi

/usr/bin/opkg -t /var/volatile/ -f "${localcnf}" upgrade


version=$(grep mLinux /etc/mlinux-version | sed 's/mLinux //')

sed -ri "s/mLinux [0-9][^ ]* /mLinux ${version} /" /etc/issue
sed -ri "s/Version: [0-9][^ ]*/Version: ${version} /" /etc/issue