blob: 7605fa80083d29ccbcad6a2e2306028b3d5767f4 (
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
# Hook addon for common utils
# copy internal tcos conf
cp $TCOS_DIR/tcos-run-functions.sh $DESTDIR/conf/tcos-run-functions
cp $CONFDIR/tcos.conf $DESTDIR/conf/
for tpl in $(tcos_get_templates); do
_verbose "(00main) cat $tpl >> $DESTDIR/conf/tcos.conf"
cat $tpl >> $DESTDIR/conf/tcos.conf
done
# load forced settings for derivatives
if [ -d $CONFDIR/conf.d/ ]; then
for file in $CONFDIR/conf.d/tcos*conf; do
[ -e $file ] && cat $file >> $DESTDIR/conf/tcos.conf
done
fi
# clean tcos.conf file (delete empty lines and comments)
grep -v "^#" $DESTDIR/conf/tcos.conf | grep "=" | grep -v "^TEMPLATE" > $DESTDIR/conf/tcos.conf.tmp
mv $DESTDIR/conf/tcos.conf.tmp $DESTDIR/conf/tcos.conf
# make some dirs
[ -d $DESTDIR/dev ] || mkdir -m 0755 $DESTDIR/dev
[ -d $DESTDIR/root ] || mkdir --mode=0700 $DESTDIR/root
[ -d $DESTDIR/ram ] || mkdir $DESTDIR/ram
[ -d $DESTDIR/nfs ] || mkdir $DESTDIR/nfs
mkdir -p $DESTDIR/usr/bin
mkdir -p $DESTDIR/usr/sbin
mkdir -p $DESTDIR/lib/lsb/
cp /lib/lsb/init-functions ${DESTDIR}/lib/lsb/
cpifexists /etc/debian_version /etc/
cpifexists $TCOS_DIR/tcos-modules.conf /conf/
# seq script
cpifexists ${TCOS_BINS}/seq /bin
# get_filesystem
cpifexists ${TCOS_BINS}/get_filesystem /bin
# limits
cpifexists ${TCOS_BINS}/set-limits /bin
# exec and daemonize
cpifexists ${TCOS_BINS}/daemonize.sh /sbin
# tcos-pam-usb.sh (tcosxmlrpc helper)
cpifexists ${TCOS_BINS}/tcos-pam-usb.sh /sbin
rm -f $DESTDIR/sbin/start-stop-daemon
# in tcos-buildchroot we save this exe file in start-stop-daemon.original
if [ -e /sbin/start-stop-daemon.original ]; then
copy_exec /sbin/start-stop-daemon.original /sbin/
rm -f $DESTDIR/sbin/start-stop-daemon.original
cp -a /sbin/start-stop-daemon.original $DESTDIR/sbin/start-stop-daemon
if ! file ${DESTDIR}/sbin/start-stop-daemon | grep -q ELF ; then
_echo " * WARNING:"
_echo " /sbin/start-stop-daemon is not a ELF (binary) file"
_echo " Some apps will not work."
fi
elif [ -e /sbin/start-stop-daemon.REAL ]; then
copy_exec /sbin/start-stop-daemon.REAL /sbin/
rm -f $DESTDIR/sbin/start-stop-daemon.REAL
rm -f $DESTDIR/sbin/start-stop-daemon
cp -a /sbin/start-stop-daemon.REAL $DESTDIR/sbin/start-stop-daemon
if ! file ${DESTDIR}/sbin/start-stop-daemon | grep -q ELF ; then
_echo " * WARNING:"
_echo " /sbin/start-stop-daemon is not a ELF (binary) file"
_echo " Some apps will not work."
fi
else
copy_exec /sbin/start-stop-daemon /sbin/
rm -f $DESTDIR/sbin/start-stop-daemon
cp -a /sbin/start-stop-daemon $DESTDIR/sbin/start-stop-daemon
fi
# exec and daemonize
cpifexists ${TCOS_BINS}/clear-logs /bin
if [ "${TCOS_INCLUDE_INIT}" != "1" ]; then
# only include ldconfig in no NFS image
# ubuntu hack for ldconfig
if [ -e /sbin/ldconfig.real ]; then
cpifexists /sbin/ldconfig.real /usr/sbin/
# rename
rm -f $DESTDIR/usr/sbin/ldconfig.real
cp -a /sbin/ldconfig.real $DESTDIR/usr/sbin/ldconfig
else
cpifexists /sbin/ldconfig /usr/sbin/
fi
fi
[ -f /etc/ld.so.conf ] && cpifexists /etc/ld.so.conf /etc/
[ ! -f /etc/ld.so.conf ] && echo "/usr/lib" >> $DESTDIR/etc/ld.so.conf
# multiarch support
mkdir -p $DESTDIR/etc/ld.so.conf.d/
[ -f /etc/ld.so.conf.d/i486-linux-gnu.conf ] && cpifexists /etc/ld.so.conf.d/i486-linux-gnu.conf /etc/ld.so.conf.d/
[ -f /etc/ld.so.conf.d/x86_64-linux-gnu.conf ] && cpifexists /etc/ld.so.conf.d/x86_64-linux-gnu.conf /etc/ld.so.conf.d/
cpifexists /sbin/depmod /sbin/
cpifexists /etc/localtime /etc/
[ -f /etc/adjtime ] && cpifexists /etc/adjtime /etc/
cpifexists /etc/securetty /etc
cpifexists /etc/services /etc/
# create (if not exists) empty modules file
touch $DESTDIR/etc/modules
mkdir -p $DESTDIR/usr/lib
# multiarch support
LIB_DIR=/lib
[ -e /lib/x86_64-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/x86_64-linux-gnu
[ -e /lib/i386-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/i386-linux-gnu
cpifexists ${LIB_DIR}/libresolv.so.2 /lib/
cpifexists /usr/${LIB_DIR}/libgssapi_krb5.so.2 /usr/lib/
# need to copy this libs to support usernames with busybox
cpifexists ${LIB_DIR}/libnss_compat.so.2 /lib/
cpifexists ${LIB_DIR}/libnss_files.so.2 /lib/
cpifexists ${LIB_DIR}/libnss_nis.so.2 /lib/
cpifexists ${LIB_DIR}/libnss_dns.so.2 /lib/
[ -e ${LIB_DIR}/libnss_db.so.2 ] && cpifexists ${LIB_DIR}/libnss_db.so.2 /usr/lib/
# new lib (needed for DNS calls)
[ -e /lib/libnss_mdns4_minimal.so.2 ] && cpifexists /lib/libnss_mdns4_minimal.so.2 /lib/
# needed for NFS
[ -x /sbin/portmap ] && cpifexists /sbin/portmap /sbin
[ -x /sbin/rpcbind ] && cpifexists /sbin/rpcbind /sbin
# create some dirs
mkdir -p $DESTDIR/var/log
touch $DESTDIR/var/log/lastlog
mkdir -p ${DESTDIR}/var/run
# hack run_scripts... TCOS use numbered
cat << EOF >> $DESTDIR/scripts/functions
# TCOS hacked ;)
run_scripts()
{
initdir=\${1}
[ ! -d \${1} ] && return
for sc in \$(ls -t1 \${1}); do
\${1}/\${sc}
done
}
EOF
|