mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-29 12:31:35 +01:00
222 lines
5.0 KiB
Plaintext
222 lines
5.0 KiB
Plaintext
# Contributor: Olliver Schinagl <oliver@schinagl.nl>
|
|
# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
|
|
pkgname="klibc"
|
|
pkgver="2.0.9"
|
|
pkgrel=0
|
|
pkgdesc="A minimalistic libc subset for use with initramfs"
|
|
url="https://git.kernel.org/pub/scm/libs/klibc/klibc.git/"
|
|
arch="all"
|
|
license="GPL-2.0-or-later"
|
|
makedepends="linux-headers perl"
|
|
subpackages="
|
|
${pkgname}-dash
|
|
${pkgname}-dev
|
|
${pkgname}-doc
|
|
${pkgname}-static:static
|
|
${pkgname}-fstype:bins
|
|
${pkgname}-ipconfig:bins
|
|
${pkgname}-kinit::noarch
|
|
${pkgname}-klcc::noarch
|
|
${pkgname}-nfsmount:bins
|
|
${pkgname}-resume:bins
|
|
${pkgname}-run-init:bins
|
|
${pkgname}-utils
|
|
lib${pkgname}:libs
|
|
"
|
|
source="
|
|
https://git.kernel.org/pub/scm/libs/klibc/klibc.git/snapshot/${pkgname}-${pkgver}.tar.gz
|
|
|
|
lib${pkgname}.post-deinstall
|
|
lib${pkgname}.post-install
|
|
"
|
|
_installdir="/usr/lib/${pkgname}-${CARCH}/"
|
|
|
|
# secfixes:
|
|
# 2.0.9-r0:
|
|
# - CVE-2021-31870
|
|
# - CVE-2021-31871
|
|
# - CVE-2021-31872
|
|
# - CVE-2021-31873
|
|
|
|
build() {
|
|
# klibc's header misses the struct declaration, Linux's misses
|
|
# the function declaration. Combine them here.
|
|
if [ ! -e "${builddir}/usr/include/sys/sysinfo.h.orig" ]; then
|
|
mv "${builddir}/usr/include/sys/sysinfo.h" \
|
|
"${builddir}/usr/include/sys/sysinfo.h.orig"
|
|
fi
|
|
cat \
|
|
"/usr/include/linux/sysinfo.h" \
|
|
"${builddir}/usr/include/sys/sysinfo.h.orig" > \
|
|
"${builddir}/usr/include/sys/sysinfo.h"
|
|
|
|
make \
|
|
KBUILD_REPRODUCIBLE=1 \
|
|
KLIBCKERNELSRC="/usr/"
|
|
}
|
|
|
|
check() {
|
|
make \
|
|
KBUILD_REPRODUCIBLE=1 \
|
|
KLIBCKERNELSRC="/usr/" \
|
|
test
|
|
}
|
|
|
|
package() {
|
|
depends="
|
|
lib${pkgname}
|
|
${pkgname}-dash
|
|
${pkgname}-kinit
|
|
${pkgname}-utils
|
|
"
|
|
|
|
case "${CARCH}" in
|
|
aarch64)
|
|
_klibcarch="arm64"
|
|
;;
|
|
armhf)
|
|
_klibcarch="arm"
|
|
CPU_ARCH="armv6zk"
|
|
CPU_TUNE="arm1176jzf-s"
|
|
;;
|
|
armv7)
|
|
_klibcarch="arm"
|
|
CPU_ARCH="armv7"
|
|
CPU_TUNE="generic-armv7-a"
|
|
;;
|
|
mips|mipsel)
|
|
_klibcarch="mips"
|
|
;;
|
|
mips64|mips64el)
|
|
_klibcarch="mips64"
|
|
;;
|
|
ppc)
|
|
_klibcarch="ppc"
|
|
;;
|
|
ppc64|ppc64le)
|
|
_klibcarch="ppc64"
|
|
;;
|
|
riscv64)
|
|
_klibcarch="riscv64"
|
|
;;
|
|
s390x)
|
|
_klibcarch="s390"
|
|
;;
|
|
x86)
|
|
_klibcarch="i386"
|
|
;;
|
|
x86_64)
|
|
_klibcarch="x86_64"
|
|
;;
|
|
*)
|
|
echo 'Unsupported architecture'
|
|
;;
|
|
esac
|
|
export CPU_ARCH
|
|
export CPU_TUNE
|
|
make \
|
|
INSTALLDIR="${_installdir}" \
|
|
INSTALLROOT="${pkgdir}" \
|
|
KBUILD_REPRODUCIBLE=1 \
|
|
KLIBCKERNELSRC="/usr/" \
|
|
mandir="/usr/share/man" \
|
|
install
|
|
|
|
# Duplicated in INSTALLDIR/lib and replaced with post.install
|
|
rm -r "${pkgdir:?}/lib"
|
|
|
|
for _arch in "${pkgdir}/${_installdir}/include/arch/"*; do
|
|
if [ "${_arch##*/}" != "${_klibcarch}" ]; then
|
|
rm -r "${_arch:?}"
|
|
fi
|
|
done
|
|
|
|
# Replace hardlinks with symlinks
|
|
unlink "${pkgdir}/${_installdir}/bin/gunzip"
|
|
unlink "${pkgdir}/${_installdir}/bin/poweroff"
|
|
unlink "${pkgdir}/${_installdir}/bin/reboot"
|
|
unlink "${pkgdir}/${_installdir}/bin/zcat"
|
|
|
|
ln -s "gzip" "${pkgdir}/${_installdir}/bin/gunzip"
|
|
ln -s "gzip" "${pkgdir}/${_installdir}/bin/zcat"
|
|
|
|
ln -s "halt" "${pkgdir}/${_installdir}/bin/poweroff"
|
|
ln -s "halt" "${pkgdir}/${_installdir}/bin/reboot"
|
|
}
|
|
|
|
klcc() {
|
|
depends="perl"
|
|
|
|
mkdir -p "${subpkgdir}/usr/bin"
|
|
mv "${pkgdir}/usr/bin/klcc" "${subpkgdir}/usr/bin/"
|
|
}
|
|
|
|
libs() {
|
|
install="lib${pkgname}.post-deinstall lib${pkgname}.post-install"
|
|
|
|
mkdir -p "${subpkgdir}/${_installdir}"
|
|
mv "${pkgdir}/${_installdir}/lib" "${subpkgdir}/${_installdir}/"
|
|
}
|
|
|
|
bins() {
|
|
depends="lib${pkgname}"
|
|
|
|
mkdir -p "${subpkgdir}/${_installdir}/bin"
|
|
mv "${pkgdir}/${_installdir}/bin/${subpkgname#${pkgname}-}" "${subpkgdir}/${_installdir}/bin/"
|
|
}
|
|
|
|
dash() {
|
|
depends="lib${pkgname}"
|
|
|
|
mkdir -p "${subpkgdir}/${_installdir}/bin"
|
|
mv "${pkgdir}/${_installdir}/bin/sh" "${subpkgdir}/${_installdir}/bin/"
|
|
}
|
|
|
|
kinit() {
|
|
depends="
|
|
${pkgname}-fstype
|
|
${pkgname}-ipconfig
|
|
${pkgname}-nfsmount
|
|
${pkgname}-resume
|
|
${pkgname}-run-init
|
|
"
|
|
|
|
mkdir -p "${subpkgdir}"
|
|
}
|
|
|
|
utils() {
|
|
depends="lib${pkgname}"
|
|
|
|
mkdir -p "${subpkgdir}/${_installdir}/"
|
|
mv "${pkgdir}/${_installdir}/bin" "${subpkgdir}/${_installdir}/"
|
|
}
|
|
|
|
static() {
|
|
mkdir -p "${subpkgdir}/${_installdir}/bin"
|
|
|
|
find "${builddir}" -type d -name 'static' | while read -r _staticbins; do
|
|
for _bin in "${_staticbins}/"*; do
|
|
if [ -z "${_bin%%*.g}" ]; then
|
|
continue
|
|
fi
|
|
|
|
install -D -m 755 "${_bin}" \
|
|
"${subpkgdir}/${_installdir}/bin/${_bin##*/}.static"
|
|
done
|
|
done
|
|
|
|
mv "${pkgdir}/${_installdir}/bin/gunzip" \
|
|
"${subpkgdir}/${_installdir}/bin/gunzip.static"
|
|
|
|
mv "${pkgdir}/${_installdir}/bin/gzip" \
|
|
"${subpkgdir}/${_installdir}/bin/gzip.static"
|
|
|
|
mv "${pkgdir}/${_installdir}/bin/zcat" \
|
|
"${subpkgdir}/${_installdir}/bin/zcat.static"
|
|
}
|
|
|
|
|
|
sha512sums="a03afd73d1576f45d6abbca396373feb08ff4edbae576fef7789a3b729a38f6272539425cfaa9c7705d5551519b81367fb2c6d1fef57892a0430566b8321a34c klibc-2.0.9.tar.gz
|
|
672f87b240b3349b2ffee2768ef6b1d37f6395d8f00bdf33375c03f967041de14b6365bcecff2d3918130b16c250ec5e3d50f1ac04c9530f0b169bc01e7d39cb libklibc.post-deinstall
|
|
7340bfd2c048b8b7a6edd752d552e1007c202a5b44bf9d0ae741a80dcea1cbfdde38ade50f7d008c723a2b99570156877476273073039da286b604693323e484 libklibc.post-install"
|