mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-17 01:46:58 +02:00
sys-libs/glibc: Apply Flatcar modifications
- take care of nscd.conf via tmpfiles, add files/nscd-conf.tmpfiles. - don't run sanity checks in pkg_pretend to prevent gcc checks when only the binary package is installed. - comment out 'dostrip -x' to force the OS image binaries to be stripped - remove everything glibc wants to put under /etc since we use baselayout to provide that
This commit is contained in:
parent
26475e5ebf
commit
66b8c112f7
9
sdk_container/src/third_party/coreos-overlay/sys-libs/glibc/README.md
vendored
Normal file
9
sdk_container/src/third_party/coreos-overlay/sys-libs/glibc/README.md
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# GLibc
|
||||||
|
|
||||||
|
The system's C library, sometimes referred to as "service pack for the C
|
||||||
|
language". The build recipe has a single modification over the one Gentoo
|
||||||
|
upstream uses: in the installation callback `glibc_do_src_install`, we remove
|
||||||
|
all of glibc's `/etc` files right after the stock glibc build diligently
|
||||||
|
installed them, since we ship our own `/etc` stuff via the `baseimage` recipe.
|
||||||
|
The addition sits at the end of the `glibc_do_src_install` function and is duly
|
||||||
|
labelled `## Flatcar Container Linux: ...`.
|
2
sdk_container/src/third_party/coreos-overlay/sys-libs/glibc/files/nscd-conf.tmpfiles
vendored
Normal file
2
sdk_container/src/third_party/coreos-overlay/sys-libs/glibc/files/nscd-conf.tmpfiles
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
L /etc/nscd.conf - - - - ../usr/share/baselayout/nscd.conf
|
||||||
|
d /var/db/nscd - - - - -
|
@ -803,10 +803,12 @@ upgrade_warning() {
|
|||||||
|
|
||||||
# pkg_pretend
|
# pkg_pretend
|
||||||
|
|
||||||
|
# Flatcar: Skip sanity checks at pretend time because we don't ship a compiler
|
||||||
|
# in the OS image. This test fails when installing the glibc binpkg and no
|
||||||
|
# compiler is present.
|
||||||
pkg_pretend() {
|
pkg_pretend() {
|
||||||
# All the checks...
|
einfo "Flatcar: Skipping sanity_prechecks for binpkg installation. src_unpack will take care of compile-time prechecks."
|
||||||
einfo "Checking general environment sanity."
|
# sanity_prechecks
|
||||||
sanity_prechecks
|
|
||||||
upgrade_warning
|
upgrade_warning
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1259,12 +1261,13 @@ glibc_do_src_install() {
|
|||||||
# '#define VERSION "2.26.90"' -> '2.26.90'
|
# '#define VERSION "2.26.90"' -> '2.26.90'
|
||||||
local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
|
local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
|
||||||
|
|
||||||
|
# Flatcar: override this and strip everything to keep image size at bay
|
||||||
# Avoid stripping binaries not targeted by ${CHOST}. Or else
|
# Avoid stripping binaries not targeted by ${CHOST}. Or else
|
||||||
# ${CHOST}-strip would break binaries build for ${CTARGET}.
|
# ${CHOST}-strip would break binaries build for ${CTARGET}.
|
||||||
is_crosscompile && dostrip -x /
|
# is_crosscompile && dostrip -x /
|
||||||
# gdb thread introspection relies on local libpthreas symbols. stripping breaks it
|
# gdb thread introspection relies on local libpthreas symbols. stripping breaks it
|
||||||
# See Note [Disable automatic stripping]
|
# See Note [Disable automatic stripping]
|
||||||
dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
|
# dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
|
||||||
|
|
||||||
if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
|
if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
|
||||||
# Move versioned .a file out of libdir to evade portage QA checks
|
# Move versioned .a file out of libdir to evade portage QA checks
|
||||||
@ -1447,6 +1450,23 @@ glibc_do_src_install() {
|
|||||||
run_locale_gen --inplace-glibc "${ED}/"
|
run_locale_gen --inplace-glibc "${ED}/"
|
||||||
sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
|
sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Flatcar Container Linux: Add some local changes:
|
||||||
|
# - Config files are installed by baselayout, not glibc.
|
||||||
|
# - Install nscd/systemd stuff in /usr.
|
||||||
|
|
||||||
|
# Use tmpfiles to put nscd.conf in /etc and create directories.
|
||||||
|
insinto /usr/share/baselayout
|
||||||
|
if ! in_iuse nscd || use nscd ; then
|
||||||
|
doins "${S}"/nscd/nscd.conf || die
|
||||||
|
newtmpfiles "${FILESDIR}"/nscd-conf.tmpfiles nscd-conf.conf || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clean out any default configs.
|
||||||
|
rm -rf "${ED}"/etc
|
||||||
|
|
||||||
|
# Restore this one for the SDK.
|
||||||
|
test ! -e "${T}"/00glibc || doenvd "${T}"/00glibc
|
||||||
}
|
}
|
||||||
|
|
||||||
glibc_headers_install() {
|
glibc_headers_install() {
|
||||||
|
Loading…
Reference in New Issue
Block a user