summaryrefslogtreecommitdiff
path: root/repo/system/glibc.xibuild
blob: 98c0e33b91355be0a3cdade7eeeed32f71680fd6 (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

MAKEDEPS=(make)
DEPS=(glibc)

PKG_VER=2.34
SOURCE=https://ftp.gnu.org/gnu/glibc/glibc-$PKG_VER.tar.xz

ADDITIONAL=(
    https://www.linuxfromscratch.org/patches/lfs/development/glibc-$PKG_VER-fhs-1.patch 
    https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/glibc/trunk/locale-gen 
    )

DESC="The main gnu C library providing basic routines and procedures"

prepare () {
    unset LDFLAGS
    # patches as recommended by lfs
    sed -e '/NOTIFY_REMOVED)/s/)/ \&\& data.attr != NULL)/' -i sysdeps/unix/sysv/linux/mq_notify.c
    patch -Np1 -i glibc-$PKG_VER-fhs-1.patch || exit 1
}

build () {
    mkdir -v build
    cd build

    # ensure that the ldconfig and sln utilities are installed into /usr/sbin
    echo "rootsbindir=/usr/sbin" > configparms

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

    make
}

check () {
    # some check failures are 'expected'
    make check || true
}

package () {
    mkdir -pv $PKG_DEST/etc
    touch $PKG_DEST/etc/ld.so.conf

    sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
    make DESTDIR=$PKG_DEST install
    
    # fix hardcoded path to the excutable in ldd script
    sed '/RTLDLIST=/s@/usr@@g' -i $PKG_DEST/usr/bin/ldd

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

    # create locales for the system
    # note, this should be moved to a better place
    make DESTDIR=$PKG_DEST localedata/install-locales

    cat > $PKG_DEST/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
    #install -m755 locale-gen "$PKG_DEST/usr/bin"

    #curl https://data.iana.org/time-zones/releases/tzdata2021e.tar.gz > tzdata2021e.tar.gz
    #tar -xf tzdata2021e.tar.gz
#
    #ZONEINFO=$PKG_DEST/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
    #unset ZONEINFO


    # configure dynamic loader
    cat > $PKG_DEST/etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib
include /etc/ld.so.conf.d/*.conf
EOF
    mkdir -pv $PKG_DEST/etc/ld.so.conf.d
}