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