aboutsummaryrefslogtreecommitdiffstats
path: root/chapter8/glibc.sh
blob: e344b475576078eb77e0811d451f6f19024890d5 (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
#!/bin/bash
# shellcheck disable=SC2016


patch -Np1 -i ../glibc-"${VERSION}"-fhs-1.patch &&

sed -e '402a\      *result = local->data.services[database_index];' \
    -i nss/nss_database.c &&

mkdir -v build
cd build || exit 1

../configure --prefix=/usr \
             --disable-werror \
             --enable-kernel=5.10.0 \
             --enable-stack-protector=strong \
             --with-headers=/usr/include \
             libc_cv_slibdir=/lib &&

make PARALLELMFLAGS="${MAKEFLAGS}" &&

touch /etc/ld.so.conf &&

sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile &&

make -j1 install &&

cp -v ../nscd/nscd.conf /etc/nscd.conf &&
mkdir -pv /var/cache/nscd &&

make localedata/install-locales &&

cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf
EOF

tar -xf ../../tzdata2021a.tar.gz &&

ZONEINFO=/usr/share/zoneinfo
mkdir -pv "${ZONEINFO}"/{posix,right} &&

for tz in etcetera southamerica northamerica europe africa antarctica  \
          asia australasia backward; do
    zic -L /dev/null   -d "${ZONEINFO}"       "${tz}" &&
    zic -L /dev/null   -d "${ZONEINFO}"/posix "${tz}" &&
    zic -L leapseconds -d "${ZONEINFO}"/right "${tz}"
done

cp -v zone.tab zone1970.tab iso3166.tab "${ZONEINFO}" &&
zic -d "${ZONEINFO}" -p America/New_York &&

ln -sfv /usr/share/zoneinfo/America/Chicago /etc/localtime &&

cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib

EOF

cat >> /etc/ld.so.conf << "EOF"
# Add an include directory
include /etc/ld.so.conf.d/*.conf

EOF
mkdir -pv /etc/ld.so.conf.d