about summary refs log tree commit diff homepage
path: root/chroot.sh
blob: 856a0c3636f9e76a82dd10060d77a11aaa159577 (plain) (blame)
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
#!/bin/sh
set -e -u -x

./server.c -O3 -g
./client.c -O3 -g
./help.c -O3 -g

if [ ! -f termcap.db ]; then
    patch -p0 -o termcap < termcap.diff
    cap_mkdb termcap
fi

user=torus
ownflags='-o root -g wheel'
dirflags="-d $ownflags"
binflags="$ownflags -m 555"
libflags="$ownflags -m 444"

mkdir -p root

for dir in bin home lib libexec usr; do
    sudo install $dirflags root/$dir
done
sudo install $dirflags root/usr/share
sudo install $dirflags root/usr/share/misc
sudo install -d -o $user -g $user root/home/$user

sudo install $binflags /libexec/ld-elf.so.1 root/libexec

for lib in libc.so.7 libedit.so.7 libncurses.so.8 libncursesw.so.8; do
    sudo install $libflags /lib/$lib root/lib
done

for bin in server client help; do
    sudo install $binflags $bin root/bin
done
sudo install $binflags /bin/sh root/bin

sudo install $libflags termcap.db root/usr/share/misc

tar -c -f chroot.tar -C root bin home lib libexec usr