Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  PKGBUILD   Sprache: unbekannt

 
# SPDX-License-Identifier: GPL-2.0-only
# Maintainer: Thomas Weißschuh <linux@weissschuh.net>
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>

pkgbase=${PACMAN_PKGBASE:-linux-upstream}
pkgname=("${pkgbase}")

_extrapackages=${PACMAN_EXTRAPACKAGES-headers api-headers debug}
for pkg in $_extrapackages; do
 pkgname+=("${pkgbase}-${pkg}")
done

pkgver="${KERNELRELEASE//-/_}"
# The PKGBUILD is evaluated multiple times.
# Running scripts/build-version from here would introduce inconsistencies.
pkgrel="${KBUILD_REVISION}"
pkgdesc='Upstream Linux'
url='https://www.kernel.org/'
# Enable flexible cross-compilation
arch=(${CARCH})
license=(GPL-2.0-only)
makedepends=(
 bc
 bison
 flex
 gettext
 kmod
 libelf
 openssl
 pahole
 perl
 python
 rsync
 tar
)
options=(!debug !strip !buildflags !makeflags)

_prologue() {
 # MAKEFLAGS from makepkg.conf override the ones inherited from kbuild.
 # Bypass this override with a custom variable.
 export MAKEFLAGS="${KBUILD_MAKEFLAGS}"

 # Kbuild works in the output directory, where this PKGBUILD is located.
 cd "$(dirname "${BASH_SOURCE[0]}")"
}

build() {
 _prologue

 ${MAKE} KERNELRELEASE="${KERNELRELEASE}" KBUILD_BUILD_VERSION="${pkgrel}"
}

_package() {
 pkgdesc="The ${pkgdesc} kernel and modules"

 local modulesdir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}"

 _prologue

 echo "Installing boot image..."
 # systemd expects to find the kernel here to allow hibernation
 # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
 install -Dm644 "$(${MAKE} -s image_name)" "${modulesdir}/vmlinuz"

 # Used by mkinitcpio to name the kernel
 echo "${pkgbase}" > "${modulesdir}/pkgbase"

 echo "Installing modules..."
 ${MAKE} INSTALL_MOD_PATH="${pkgdir}/usr" INSTALL_MOD_STRIP=1 \
  DEPMOD=true modules_install

 if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
  echo "Installing dtbs..."
  ${MAKE} INSTALL_DTBS_PATH="${modulesdir}/dtb" dtbs_install
 fi

 # remove build link, will be part of -headers package
 rm -f "${modulesdir}/build"
}

_package-headers() {
 pkgdesc="Headers and scripts for building modules for the ${pkgdesc} kernel"

 local builddir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}/build"

 _prologue

 if grep -q CONFIG_MODULES=y include/config/auto.conf; then
  echo "Installing build files..."
  "${srctree}/scripts/package/install-extmod-build" "${builddir}"
 fi

 echo "Installing System.map and config..."
 mkdir -p "${builddir}"
 cp System.map "${builddir}/System.map"
 cp .config "${builddir}/.config"

 echo "Adding symlink..."
 mkdir -p "${pkgdir}/usr/src"
 ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}"
}

_package-api-headers() {
 pkgdesc="Kernel headers sanitized for use in userspace"
 provides=(linux-api-headers="${pkgver}")
 conflicts=(linux-api-headers)

 _prologue

 ${MAKE} headers_install INSTALL_HDR_PATH="${pkgdir}/usr"
}

_package-debug(){
 pkgdesc="Non-stripped vmlinux file for the ${pkgdesc} kernel"

 local debugdir="${pkgdir}/usr/src/debug/${pkgbase}"
 local builddir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}/build"

 _prologue

 install -Dt "${debugdir}" -m644 vmlinux
 mkdir -p "${builddir}"
 ln -sr "${debugdir}/vmlinux" "${builddir}/vmlinux"
}

for _p in "${pkgname[@]}"; do
 eval "package_$_p() {
  $(declare -f "_package${_p#$pkgbase}")
  _package${_p#$pkgbase}
 }"
done

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge