Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-libs/glibc: glibc-2.19.ebuild ChangeLog
Date: Sat, 08 Feb 2014 14:59:48
Message-Id: 20140208145943.154092004B@flycatcher.gentoo.org
1 vapier 14/02/08 14:59:42
2
3 Modified: ChangeLog
4 Added: glibc-2.19.ebuild
5 Log:
6 Version bump.
7
8 (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
9
10 Revision Changes Path
11 1.981 sys-libs/glibc/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/ChangeLog?rev=1.981&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/ChangeLog?rev=1.981&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/ChangeLog?r1=1.980&r2=1.981
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v
20 retrieving revision 1.980
21 retrieving revision 1.981
22 diff -u -r1.980 -r1.981
23 --- ChangeLog 31 Jan 2014 18:22:06 -0000 1.980
24 +++ ChangeLog 8 Feb 2014 14:59:42 -0000 1.981
25 @@ -1,6 +1,11 @@
26 # ChangeLog for sys-libs/glibc
27 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.980 2014/01/31 18:22:06 vapier Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.981 2014/02/08 14:59:42 vapier Exp $
30 +
31 +*glibc-2.19 (08 Feb 2014)
32 +
33 + 08 Feb 2014; Mike Frysinger <vapier@g.o> +glibc-2.19.ebuild:
34 + Version bump.
35
36 31 Jan 2014; Mike Frysinger <vapier@g.o> glibc-2.17.ebuild:
37 Mark sh stable.
38
39
40
41 1.1 sys-libs/glibc/glibc-2.19.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/glibc-2.19.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/glibc/glibc-2.19.ebuild?rev=1.1&content-type=text/plain
45
46 Index: glibc-2.19.ebuild
47 ===================================================================
48 # Copyright 1999-2014 Gentoo Foundation
49 # Distributed under the terms of the GNU General Public License v2
50 # $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.19.ebuild,v 1.1 2014/02/08 14:59:42 vapier Exp $
51
52 inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing
53
54 DESCRIPTION="GNU libc6 (also called glibc2) C library"
55 HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
56
57 LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
58 #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
59 RESTRICT="strip" # strip ourself #46186
60 EMULTILIB_PKG="true"
61
62 # Configuration variables
63 RELEASE_VER=""
64 case ${PV} in
65 9999*)
66 EGIT_REPO_URIS="git://sourceware.org/git/glibc.git"
67 EGIT_SOURCEDIRS="${S}"
68 inherit git-2
69 ;;
70 *)
71 RELEASE_VER=${PV}
72 ;;
73 esac
74 PATCH_VER="1" # Gentoo patchset
75 NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.16"} # min kernel version nptl requires
76
77 IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only"
78
79 # Here's how the cross-compile logic breaks down ...
80 # CTARGET - machine that will target the binaries
81 # CHOST - machine that will host the binaries
82 # CBUILD - machine that will build the binaries
83 # If CTARGET != CHOST, it means you want a libc for cross-compiling.
84 # If CHOST != CBUILD, it means you want to cross-compile the libc.
85 # CBUILD = CHOST = CTARGET - native build/install
86 # CBUILD != (CHOST = CTARGET) - cross-compile a native build
87 # (CBUILD = CHOST) != CTARGET - libc for cross-compiler
88 # CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
89 # For install paths:
90 # CHOST = CTARGET - install into /
91 # CHOST != CTARGET - install into /usr/CTARGET/
92
93 export CBUILD=${CBUILD:-${CHOST}}
94 export CTARGET=${CTARGET:-${CHOST}}
95 if [[ ${CTARGET} == ${CHOST} ]] ; then
96 if [[ ${CATEGORY} == cross-* ]] ; then
97 export CTARGET=${CATEGORY#cross-}
98 fi
99 fi
100
101 [[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.16/2.6.20}
102
103 is_crosscompile() {
104 [[ ${CHOST} != ${CTARGET} ]]
105 }
106
107 # Why SLOT 2.2 you ask yourself while sippin your tea ?
108 # Everyone knows 2.2 > 0, duh.
109 SLOT="2.2"
110
111 # General: We need a new-enough binutils/gcc to match upstream baseline.
112 # arch: we need to make sure our binutils/gcc supports TLS.
113 DEPEND=">=app-misc/pax-utils-0.1.10
114 !<sys-apps/sandbox-1.6
115 !<sys-apps/portage-2.1.2
116 selinux? ( sys-libs/libselinux )"
117 RDEPEND="!sys-kernel/ps3-sources
118 selinux? ( sys-libs/libselinux )
119 !sys-libs/nss-db"
120
121 if [[ ${CATEGORY} == cross-* ]] ; then
122 DEPEND+=" !crosscompile_opts_headers-only? (
123 >=${CATEGORY}/binutils-2.20
124 >=${CATEGORY}/gcc-4.3
125 )"
126 [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
127 else
128 DEPEND+="
129 >=sys-devel/binutils-2.20
130 >=sys-devel/gcc-4.3
131 virtual/os-headers
132 !vanilla? ( >=sys-libs/timezone-data-2012c )"
133 RDEPEND+="
134 vanilla? ( !sys-libs/timezone-data )
135 !vanilla? ( sys-libs/timezone-data )"
136 fi
137
138 SRC_URI=$(
139 upstream_uris() {
140 echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
141 }
142 gentoo_uris() {
143 local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
144 devspace=${devspace//HTTP/http://dev.gentoo.org/}
145 echo mirror://gentoo/$1 ${devspace//URI/$1}
146 }
147
148 [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz
149 [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2
150 )
151
152 # eblit-include [--skip] <function> [version]
153 eblit-include() {
154 local skipable=false
155 [[ $1 == "--skip" ]] && skipable=true && shift
156 [[ $1 == pkg_* ]] && skipable=true
157
158 local e v func=$1 ver=$2
159 [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
160 for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
161 e="${FILESDIR}/eblits/${func}${v}.eblit"
162 if [[ -e ${e} ]] ; then
163 source "${e}"
164 return 0
165 fi
166 done
167 ${skipable} && return 0
168 die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
169 }
170
171 # eblit-run-maybe <function>
172 # run the specified function if it is defined
173 eblit-run-maybe() {
174 [[ $(type -t "$@") == "function" ]] && "$@"
175 }
176
177 # eblit-run <function> [version]
178 # aka: src_unpack() { eblit-run src_unpack ; }
179 eblit-run() {
180 eblit-include --skip common "${*:2}"
181 eblit-include "$@"
182 eblit-run-maybe eblit-$1-pre
183 eblit-${PN}-$1
184 eblit-run-maybe eblit-$1-post
185 }
186
187 src_unpack() { eblit-run src_unpack ; }
188 src_compile() { eblit-run src_compile ; }
189 src_test() { eblit-run src_test ; }
190 src_install() { eblit-run src_install ; }
191
192 # FILESDIR might not be available during binpkg install
193 for x in setup {pre,post}inst ; do
194 e="${FILESDIR}/eblits/pkg_${x}.eblit"
195 if [[ -e ${e} ]] ; then
196 . "${e}"
197 eval "pkg_${x}() { eblit-run pkg_${x} ; }"
198 fi
199 done
200
201 eblit-src_unpack-pre() {
202 GLIBC_PATCH_EXCLUDE+=" 00_all_0012-mips-add-clock_-g-s-ettime-symbol-compat-hacks.patch" #456912 #481438
203 }
204
205 eblit-src_unpack-post() {
206 if use hardened ; then
207 cd "${S}"
208 einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
209 gcc-specs-pie && epatch "${FILESDIR}"/2.17/glibc-2.17-hardened-pie.patch
210 epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
211 epatch "${FILESDIR}"/2.18/glibc-2.18-hardened-inittls-nosysenter.patch
212
213 einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
214 cp -f "${FILESDIR}"/2.18/glibc-2.18-gentoo-stack_chk_fail.c \
215 debug/stack_chk_fail.c || die
216 cp -f "${FILESDIR}"/2.18/glibc-2.18-gentoo-chk_fail.c \
217 debug/chk_fail.c || die
218
219 if use debug ; then
220 # When using Hardened Gentoo stack handler, have smashes dump core for
221 # analysis - debug only, as core could be an information leak
222 # (paranoia).
223 sed -i \
224 -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
225 debug/Makefile \
226 || die "Failed to modify debug/Makefile for debug stack handler"
227 sed -i \
228 -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
229 debug/Makefile \
230 || die "Failed to modify debug/Makefile for debug fortify handler"
231 fi
232
233 # Build nscd with ssp-all
234 sed -i \
235 -e 's:-fstack-protector$:-fstack-protector-all:' \
236 nscd/Makefile \
237 || die "Failed to ensure nscd builds with ssp-all"
238 fi
239 }
240
241 eblit-pkg_preinst-post() {
242 if [[ ${CTARGET} == arm* ]] ; then
243 # Backwards compat support for renaming hardfp ldsos #417287
244 local oldso='/lib/ld-linux.so.3'
245 local nldso='/lib/ld-linux-armhf.so.3'
246 if [[ -e ${D}${nldso} ]] ; then
247 if scanelf -qRyi "${ROOT}$(alt_prefix)"/*bin/ | grep -s "^${oldso}" ; then
248 ewarn "Symlinking old ldso (${oldso}) to new ldso (${nldso})."
249 ewarn "Please rebuild all packages using this old ldso as compat"
250 ewarn "support will be dropped in the future."
251 ln -s "${nldso##*/}" "${D}$(alt_prefix)${oldso}"
252 fi
253 fi
254 fi
255 }