CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Fixed order for injected packages in setup-helper script.
[initrd.git] / filesystem / setup-helper
CommitLineData
762878ff
JB
1#!/bin/bash
2# post setup
3#
4# Johannes Winkelmann, jw at tks6 dot net
5
6ROOT=$1
7DB=$ROOT/var/lib/pkg/db
8
9## those values should be changed:
10TMPDB=$DB.tmp
11BACKUPDB=$DB.backup
12PKGADD="pkgadd"
13PKGRM="pkgrm"
14MV="mv"
15
16
17is_installed() {
18 printf "%s" $(pkginfo -r $ROOT -i | gawk -v r="^$1\$" '$1 ~ r {print $1}')
19}
20
21
22rename_packages() {
23 if [ -z "$1" ]; then
24 return
25 fi
26 pkg=$@
27
28 filter="sed "
29 runfilter="no"
30 for tuple in $@; do
31 split=($(echo $tuple|sed -e 's|:| |'))
32 if [ -n "${split[1]}" ] && [ `is_installed ${split[0]}` ]; then
33 echo "Package renamed: ${split[0]} -> ${split[1]}"
34 filter="$filter -e 's|^${split[0]}$|${split[1]}|'"
35 runfilter="yes"
36 fi
37 done
38 if [ "$runfilter" = "no" ]; then
39 return
40 fi
41
42 :> $TMPDB
43 if [ -f $DB ]; then
44 nextIsName=1
45 cat $DB|while read l; do
46 if [ $nextIsName -eq 1 ]; then
47 nextIsName=0
48 echo $l|eval $filter >> $TMPDB
49 else
50 if [ "$l" = "" ]; then
51 nextIsName=1
52 fi
53 echo $l >> $TMPDB
54 fi
55 done
56 fi
57
58 $MV $DB $BACKUPDB
59 $MV $TMPDB $DB
60}
61
62
63remove_packages() {
64 for package in $@; do
65 if [ `is_installed $package` ]; then
66 echo "Package removed: $package"
67 $PKGRM -r $ROOT $package
68 fi
69 done
70}
71
72inject_packages() {
73 for package in $@; do
b58c7507 74 pkg="`find core $EXTRA_COLLECTIONS \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
762878ff 75 if [ -z "$pkg" ]; then
b58c7507 76 echo " ERROR: package $package not found on CRUX media installer"
762878ff
JB
77 else
78 if [ -z `is_installed $package` ]; then
79 echo "Package injected: $package"
80 $PKGADD -r $ROOT -f $pkg
81 else
82 echo "Package upgraded: $package"
83 $PKGADD -r $ROOT -u -f $pkg
84 fi
85 fi
86 done
87}
88
89####################
90
91if [ -z "$1" ]; then
92 echo "Usage: $0 <root>"
93 exit -1
94fi
95
b58c7507
JB
96EXTRA_COLLECTIONS=""
97for i in /media/crux/*; do.
98 if [ -d $i ]; then
99 if [ "$i" != "core" ] && [ "$i" != "kernel" ]; then
100 EXTRA_COLLECTIONS="$EXTRA_COLLECTIONS $i"
101 fi
102 fi
103done
762878ff
JB
104
105##### # 2.7 -> 2.8 #####
106echo "* CRUX 2.7 -> 2.8 setup-helper"
107
108rename_packages "util-linux-ng:util-linux"
109remove_packages module-init-tools eject
110inject_packages kmod tzdata util-linux
111
b58c7507 112if grep -q opt $EXTRA_COLLECTIONS; then
762878ff 113
b58c7507
JB
114 if [ `is_installed glib` ]; then
115 inject_packages libffi
116 fi
762878ff 117
b58c7507
JB
118 if [ `is_installed wpa_supplicant` ]; then
119 inject_packages libnl
120 fi
c1447ba5
JB
121
122 if [ `is_installed firefox` ]; then
123 inject_packages nspr nss sqlite3
124 fi
762878ff
JB
125fi
126
b58c7507 127if grep -q xorg $EXTRA_COLLECTIONS; then
762878ff 128
b58c7507
JB
129 if [ `is_installed xorg-xcb-util` ]; then
130 inject_packages xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-renderutil xorg-xcb-util-wm
131 fi
762878ff 132
b58c7507
JB
133 if [ `is_installed xorg-xf86-input-evdev` ]; then
134 inject_packages mtdev
135 fi
136
137 if [ `is_installed xorg-xf86-input-synaptics` ]; then
138 inject_packages mtdev
139 fi
140
b58c7507
JB
141 if [ `is_installed mesa3d` ]; then
142 inject_packages glu
143 fi
762878ff
JB
144fi
145
146# force replacement of /etc/mtab with symlink
147ln -sf /proc/self/mounts $ROOT/etc/mtab