]> git.ipfire.org Git - ipfire-3.x.git/blob - glibc/glibc.nm
lz4: New package
[ipfire-3.x.git] / glibc / glibc.nm
1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
5
6 name = glibc
7 version = 2.29
8 release = 1
9
10 maintainer = Michael Tremer <michael.tremer@ipfire.org>
11 groups = System/Base
12 url = http://www.gnu.org/software/libc/libc.html
13 license = GPLv2+ LGPLv2+
14 summary = The GNU libc libraries.
15
16 description
17 The glibc package contains standard libraries which are used by
18 multiple programs on the system. In order to save disk space and
19 memory, as well as to make upgrading easier, common system code is
20 kept in one place and shared between programs. This particular package
21 contains the most important sets of shared libraries: the standard C
22 library and the standard math library. Without these two libraries, a
23 Linux system will not function.
24 end
25
26 source_dl = https://ftp.gnu.org/gnu/glibc/
27 sources = %{thisapp}.tar.xz
28
29 build
30 # Optimize glibc for kernel
31 OPTIMIZED_KERNEL = 3.2
32
33 requires
34 autoconf
35 automake
36 binutils >= 2.29
37 bison
38 gcc >= 8
39 gettext
40 kernel-headers >= %{OPTIMIZED_KERNEL}
41 libcap-devel
42 libstdc++-static
43 make >= 4.0
44 python3 >= 3.4
45 texinfo
46 end
47
48 # Build glibc with custom cflags
49 GLIBC_FLAGS = -O2 -g -DNDEBUG -pipe
50
51 if "%{DISTRO_ARCH}" == "i686"
52 GLIBC_FLAGS += -march=i686 -mtune=generic
53 end
54
55 if "%{DISTRO_ARCH}" == "x86_64"
56 GLIBC_FLAGS += -mtune=generic
57 end
58
59 export CFLAGS = %{GLIBC_FLAGS}
60 export CXXFLAGS = %{GLIBC_FLAGS}
61
62 export QUALITY_AGENT_RPATH_ALLOW_ORIGIN=yes
63
64 prepare_cmds
65 # In the vi_VN.TCVN locale, bash enters an infinite loop at startup. It is
66 # unknown whether this is a bash bug or a Glibc problem. Disable
67 # installation of this locale in order to avoid the problem.
68 sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
69
70 # The ldd shell script contains Bash-specific syntax. Change its default
71 # program interpreter to /bin/bash in case another /bin/sh is installed.
72 sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
73
74 # We don't install pt_chown(1) on the final system
75 sed -e "/^install.*pt_chown/d" -i login/Makefile
76
77 # Build nscd with -fstack-protector-all, instead of -fstack-protector:
78 sed -e "s/fstack-protector/&-strong/" -i nscd/Makefile
79
80 # Use gnu hash style
81 sed -i Makeconfig \
82 -e "s/-Wl,--hash-style=both/-Wl,--hash-style=gnu -Wl,-O1/"
83
84 # http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
85 sed -e "s/PIC/SHARED/g" -i sysdeps/arm/{set,__long}jmp.S
86 end
87
88 configure_options = \
89 --build=%{DISTRO_BUILDTARGET} \
90 --prefix=/usr \
91 --libexecdir=%{libdir}/glibc \
92 --disable-profile \
93 --enable-add-ons \
94 --enable-kernel=%{OPTIMIZED_KERNEL} \
95 --disable-werror \
96 --enable-stack-protector=strong \
97 --enable-bind-now \
98 --enable-obsolete-rpc \
99 --with-bugurl=http://bugtracker.ipfire.org \
100 --enable-lock-elision \
101 --enable-cet
102
103 if "%{DISTRO_ARCH}" == "armv5tel"
104 # Disable hardware FP for ARM.
105 configure_options += \
106 --without-fp
107 end
108
109 build
110 mkdir -p %{DIR_SRC}/glibc-build
111 cd %{DIR_SRC}/glibc-build
112
113 CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" \
114 ../%{thisapp}/configure \
115 %{configure_options}
116
117 make PARALLELMFLAGS=%{PARALLELISMFLAGS} \
118 CFLAGS="%{CFLAGS}" CXXFLAGS="%{CXXFLAGS}"
119 end
120
121 install
122 cd %{DIR_SRC}/glibc-build
123 make install install_root=%{BUILDROOT}
124
125 # Locales
126 mkdir -pv %{BUILDROOT}/usr/lib/locale
127 # This would install all locales that are supported
128 make localedata/install-locales install_root=%{BUILDROOT}
129
130 # Configuration
131 cp -vf %{DIR_SOURCE}/{ld.so.conf,nsswitch.conf} %{BUILDROOT}/etc
132 mkdir -pv %{BUILDROOT}/etc/{default,ld.so.conf.d}
133 install -p -m644 %{DIR_APP}/nis/nss %{BUILDROOT}/etc/default/nss
134
135 if [ "%{DISTRO_ARCH}" = "armv7hl" ]; then
136 ln -svf ld-linux-armhf.so.3 %{BUILDROOT}/lib/ld-linux.so.3
137 fi
138
139 # Remove unused binaries
140 rm -vf %{BUILDROOT}/sbin/sln \
141 %{BUILDROOT}/usr/bin/rpcinfo
142
143 # Don't distribute linker cache
144 rm -vf %{BUILDROOT}/etc/ld.so.cache
145
146 # Include /usr/lib/gconv/gconv-modules.cache
147 > %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
148 chmod 644 %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
149
150 strip -g %{BUILDROOT}%{libdir}/*.o
151
152 # Move some libs to correct place
153 mv -v %{BUILDROOT}/%{lib}/lib{memusage,pcprofile}.so %{BUILDROOT}%{libdir}
154
155 # Fix library permissions.
156 chmod 755 %{BUILDROOT}%{libdir}/lib*.so*
157
158 # rquota.x and rquota.h are now provided by quota
159 rm -vf %{BUILDROOT}%{includedir}/rpcsvc/rquota.[hx]
160 end
161
162 keep_libraries
163 %{libdir}/libc_nonshared.a
164 %{libdir}/libmvec_nonshared.a
165 %{libdir}/libpthread_nonshared.a
166 end
167 end
168
169 packages
170 package glibc
171 if "%{DISTRO_ARCH}" == "armv7hl"
172 provides += ld-linux.so.3
173 provides += ld-linux.so.3(GLIBC_2.4)
174 provides += ld-linux.so.3(GLIBC_PRIVATE)
175 end
176
177 requires
178 tzdata
179 end
180
181 conflicts
182 kernel < %{OPTIMIZED_KERNEL}
183 end
184
185 obsoletes
186 glibc-common < %{thisver}
187 end
188 end
189
190 package glibc-devel
191 template DEVEL
192
193 requires
194 glibc = %{thisver}
195 glibc-headers = %{thisver}
196 kernel-headers >= %{OPTIMIZED_KERNEL}
197 end
198
199 provides
200 glibc-headers = %{thisver}
201 end
202
203 obsoletes
204 glibc-headers < %{thisver}
205 end
206
207 files += %{libdir}/*.[ao]
208 end
209
210 package nscd
211 summary = A Name Service Caching Daemon (nscd).
212 description
213 Nscd caches name service lookups and can dramatically improve
214 performance with NIS+, and may help with DNS as well.
215 end
216 group = System/Daemons
217
218 files
219 /usr/sbin/nscd
220 end
221 end
222
223 package %{name}-utils
224 summary = Development utilities from GNU C library.
225 description
226 The glibc-utils package contains memusage, a memory usage profiler,
227 mtrace, a memory leak tracer and xtrace, a function call tracer
228 which can be helpful during program debugging.
229 end
230 group = Development/Tools
231
232 files
233 /usr/bin/memusage
234 /usr/bin/memusagestat
235 /usr/bin/mtrace
236 /usr/bin/pcprofiledump
237 /usr/bin/xtrace
238 %{libdir}/libmemusage.so
239 %{libdir}/libpcprofile.so
240 end
241 end
242
243 package %{name}-debuginfo
244 template DEBUGINFO
245 end
246 end