-
Notifications
You must be signed in to change notification settings - Fork 2
/
PKGBUILD
144 lines (123 loc) · 4.72 KB
/
PKGBUILD
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
# $Id$
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: valgrind requires rebuilt with each major glibc version
pkgname=glibc
pkgver=2.29.r34436.56c86f5dd5
# branch 'master' in glibc.git
_commit=56c86f5dd516284558e106d04b92875d5b623b7a
pkgrel=1
arch=(i686)
url="http://www.gnu.org/software/libc"
license=(GPL LGPL)
makedepends=(git mig)
options=(!strip staticlibs !emptydirs)
source=(git+git://sourceware.org/git/glibc.git#commit=$_commit
locale.gen.txt
locale-gen
glibc_compatibility_symbols.patch # symbols that were declared in earlier glibc versions, should be removed once all packages are recompiled
tg-mach-hurd-link.diff # needed for linking a bunch of stuff
local-enable-ldconfig.diff # patch based on local-enable-ldconfig.diff from Debian
local-clock_gettime_MONOTONIC.diff) # from Debian
sha256sums=('SKIP'
'd42648cea552ba5353a32e264686e992263289d5cc86207314dffc54ab514981'
'83f108f915863c7ed0338e2d3e8f2e071a531a090ef8f8b2eb3a956a3c4f04d7'
'6be8c1f6b24ac7c8714baf972caf4c261fb848ca5feaf40da87eed33a9be9e86'
'58e3929cfb0dd3573e9bef0877a9d5480cedf451193bcfcb12adefff8193016b'
'6dce5ae782515a57a3f6fe5f4fde4554049d4c7d206f83725a3debcd8db22a9f'
'17f015eb50a0b70d865b6b5bd0f7ceb5762cc4e8d7392b2100c8ae9032980454')
pkgver() {
cd glibc
version=$(grep "VERSION" version.h | cut -d'"' -f2)
printf "%s.r%s.%s" "$version" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
mkdir -p glibc-build
cd glibc
patch -Np1 -i "$srcdir"/glibc_compatibility_symbols.patch
patch -Np1 -i "$srcdir"/tg-mach-hurd-link.diff
patch -Np1 -i "$srcdir"/local-enable-ldconfig.diff
patch -Np1 -i "$srcdir"/local-clock_gettime_MONOTONIC.diff
}
build() {
cd glibc-build
echo "slibdir=/usr/lib" >> configparms
echo "rtlddir=/usr/lib" >> configparms
echo "sbindir=/usr/bin" >> configparms
echo "rootsbindir=/usr/bin" >> configparms
../glibc/configure \
--prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--with-headers=/usr/include \
--enable-obsolete-rpc \
--disable-profile \
--enable-add-ons=libpthread \
--enable-obsolete-rpc \
--disable-werror \
--disable-nscd
make
}
check() {
cd glibc-build
# some failures are "expected"
make check || true
}
package() {
pkgdesc='GNU C Library'
depends=(tzdata filesystem)
optdepends=('gd: for memusagestat')
install=glibc.install
backup=(etc/gai.conf
etc/locale.gen
etc/nscd.conf)
groups=(base)
install -dm755 "$pkgdir/etc"
touch "$pkgdir/etc/ld.so.conf"
make -C glibc-build install_root="$pkgdir" install
rm -f "$pkgdir"/etc/ld.so.{cache,conf}
cd glibc
install -dm755 "$pkgdir"/usr/lib/locale
install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf"
install -dm755 "$pkgdir/var/db/nscd"
install -m644 posix/gai.conf "$pkgdir"/etc/gai.conf
install -m755 "$srcdir/locale-gen" "$pkgdir/usr/bin"
# Create /etc/locale.gen
install -m644 "$srcdir/locale.gen.txt" "$pkgdir/etc/locale.gen"
sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
"$srcdir/glibc/localedata/SUPPORTED" >> "$pkgdir/etc/locale.gen"
# Move sbin files to /usr/bin
# mv "$pkgdir"/sbin/* "$pkgdir"/usr/bin/
# rmdir "$pkgdir"/sbin
#
# # Move /lib to /usr/lib
# mv -b "$pkgdir"/lib/* "$pkgdir"/usr/lib/
# rmdir "$pkgdir"/lib
# ln -sf libanl.so.1 "$pkgdir"/usr/lib/libanl.so
# ln -sf libBrokenLocale.so.1 "$pkgdir"/usr/lib/libBrokenLocale.so
# ln -sf libcrypt.so.1 "$pkgdir"/usr/lib/libcrypt.so
# ln -sf libdl.so.2 "$pkgdir"/usr/lib/libdl.so
# ln -sf libhurduser.so.0.3 "$pkgdir"/usr/lib/libhurduser.so
# ln -sf libmachuser.so.1 "$pkgdir"/usr/lib/libmachuser.so
# ln -sf libm.so.6 "$pkgdir"/usr/lib/libm.so
# ln -sf libnsl.so.1 "$pkgdir"/usr/lib/libnsl.so
# ln -sf libnss_compat.so.2 "$pkgdir"/usr/lib/libnss_compat.so
# ln -sf libnss_db.so.2 "$pkgdir"/usr/lib/libnss_db.so
# ln -sf libnss_dns.so.2 "$pkgdir"/usr/lib/libnss_dns.so
# ln -sf libnss_files.so.2 "$pkgdir"/usr/lib/libnss_files.so
# ln -sf libnss_hesiod.so.2 "$pkgdir"/usr/lib/libnss_hesiod.so
# ln -sf libnss_nisplus.so.2 "$pkgdir"/usr/lib/libnss_nisplus.so
# ln -sf libnss_nis.so.2 "$pkgdir"/usr/lib/libnss_nis.so
# ln -sf libresolv.so.2 "$pkgdir"/usr/lib/libresolv.so
# ln -sf librt.so.1 "$pkgdir"/usr/lib/librt.so
# ln -sf libutil.so.1 "$pkgdir"/usr/lib/libutil.so
#
# # CHeck if mv didn't overwrite files
# if ls "$pkgdir"/usr/lib/*~ 1> /dev/null 2>&1; then
# echo "Files in /usr/lib were overwritten!"
# echo "Exiting."
# return 1
# fi
# Add ld.so symlink because gcc has ld.so hardcoded for Hurd
ln -s ld.so.1 "$pkgdir"/usr/lib/ld.so
}