Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/linux-pae/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/linux-pae/PKGBUILD')
-rw-r--r--extra/linux-pae/PKGBUILD341
1 files changed, 121 insertions, 220 deletions
diff --git a/extra/linux-pae/PKGBUILD b/extra/linux-pae/PKGBUILD
index 7cc9f305..6cf93b74 100644
--- a/extra/linux-pae/PKGBUILD
+++ b/extra/linux-pae/PKGBUILD
@@ -1,206 +1,43 @@
-# $Id$
-# Maintainer: Erich Eckner <arch at eckner dot net>
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-pkgbase=linux-pae # Build stock -ARCH kernel
-pkgver='6.7.6'
-_srcname=linux-${pkgver}
-pkgrel='1'
-arch=('i686' 'pentium4' 'x86_64')
-url="https://www.kernel.org/"
-license=('GPL2')
-makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'cpio' 'libelf')
-options=('!strip')
-source=(
- https://www.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign}
- config # the main kernel config file
- 60-linux.hook # pacman hook for depmod
- 90-linux.hook # pacman hook for initramfs regeneration
- linux.preset # standard config files for mkinitcpio ramdisk
- no-ultra-zstd.patch # avoid using zstd compression in ultra mode (exhausts virtual memory)
-)
-validpgpkeys=(
- 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
- '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
-)
-sha256sums=('e489ec0e1370d089b446d565aded7a698093d2b7c4122a18f21edb6ef93d37d3'
- 'SKIP'
- '325ac6b61ddea38bcd2fe63362d53a0df03bf05c3c059eb937f43999058d2534'
- 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
- '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
- 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
- 'd32270be5fd9c3e3ba50f3aef33f6cfcb85be0c8216f03b777287cc621fdff28')
-
-_kernelname=${pkgbase#linux}
-: ${_kernelname:=-ARCH}
-
-prepare() {
- cd ${_srcname}
- patch -Np1 -i $srcdir/no-ultra-zstd.patch
-
- # add latest fixes from stable queue, if needed
- # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
-
- cat ../config - >.config <<END
-CONFIG_LOCALVERSION="${_kernelname}"
-CONFIG_LOCALVERSION_AUTO=n
-END
-
- # set extraversion to pkgrel and empty localversion
- sed -e "/^EXTRAVERSION =/s/=.*/= -${pkgrel}/" \
- -e "/^EXTRAVERSION =/aLOCALVERSION =" \
- -i Makefile
-
- # don't run depmod on 'make install'. We'll do this ourselves in packaging
- sed -i '2iexit 0' scripts/depmod.sh
-
- make olddefconfig
-
- # get kernel version
- make prepare
-
- # load configuration
- # Configure the kernel. Replace the line below with one of your choice.
- #make menuconfig # CLI menu for configuration
- #make nconfig # new CLI menu for configuration
- #make xconfig # X-based configuration
- #make oldconfig # using old config from previous kernel version
- # ... or manually edit .config
-
- # rewrite configuration
- yes "" | make config >/dev/null
-}
-
-build() {
- cd ${_srcname}
-
- make bzImage modules
-}
-
-_package() {
- pkgdesc="The Linux kernel and modules with PAE (physical address extension) support"
- [ "${pkgbase}" = "linux" ] && groups=('base')
- depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
- optdepends=('crda: to set the correct wireless channels of your country')
- backup=("etc/mkinitcpio.d/${pkgbase}.preset")
- install=linux.install
-
- cd ${_srcname}
-
- # get kernel version
- _kernver="$(make kernelrelease)"
- _basekernel=${_kernver%%-*}
- _basekernel=${_basekernel%.*}
-
- mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
- make INSTALL_MOD_PATH="${pkgdir}/usr" modules_install
- cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
-
- # make room for external modules
- local _extramodules="extramodules-${_basekernel}${_kernelname}"
- ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
-
- # add real version for building modules and running depmod from hook
- echo "${_kernver}" |
- install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
-
- # remove build and source links
- rm "${pkgdir}"/usr/lib/modules/*/{source,build}
-
- # now we call depmod...
- depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
-
- # add vmlinux
- install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
-
- # sed expression for following substitutions
- local _subst="
- s|%PKGBASE%|${pkgbase}|g
- s|%KERNVER%|${_kernver}|g
- s|%EXTRAMODULES%|${_extramodules}|g
- "
-
- # hack to allow specifying an initially nonexisting install file
- sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
- true && install=${install}.pkg
-
- # install mkinitcpio preset file
- sed "${_subst}" ../linux.preset |
- install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
-
- # install pacman hooks
- sed "${_subst}" ../60-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
- sed "${_subst}" ../90-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
-}
-
-_package-headers() {
- pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
-
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
-
- install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
- install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
-
- mkdir "${_builddir}/.tmp_versions"
-
- cp -t "${_builddir}" -a include scripts
-
- install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile_32.cpu
- install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
- install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
-
- cp -t "${_builddir}/arch/x86" -a arch/x86/include
-
- install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
- install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
-
- # http://bugs.archlinux.org/task/13146
- install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
-
- # http://bugs.archlinux.org/task/20402
- install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
- install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
- install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
-
- # add xfs and shmem for aufs building
- mkdir -p "${_builddir}"/{fs/xfs,mm}
-
- # copy in Kconfig files
- find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
-
- # remove unneeded architectures
- local _arch
- for _arch in "${_builddir}"/arch/*/; do
- [[ ${_arch} == */x86/ ]] && continue
- rm -r "${_arch}"
- done
-
- # remove files already in linux-docs package
- rm -r "${_builddir}/Documentation"
-
- # remove now broken symlinks
- find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
+source "${BASH_SOURCE%/*}/PKGBUILD_upstream_linux"
+pkgbase=linux-pae
+
+# upstream git revision: 3cfc65aa439e42f6dd539f29d3ebb972c5508f7e
+
+source+=('config.x86_64')
+sha256sums+=('04143712e593d45a597661fe00f89cf92d52c62df3468c68a46c952c2ef4db64')
+b2sums+=('21083151bdcd0fc2bcc0475b9cd73bab5666a71f043eedd67b19a3a4c09c8253a5a06794ce9270215782f5885e05e70b5e424123f1bded7aa7a6d3f30d02a4b3')
+source_pentium4=('config.pentium4')
+source_i686=('config.i686')
+source_i486=('config.i486')
+# fail if upstream's .config changes
+for ((i=0; i<${#b2sums[@]}; i++)); do
+ if [ "${b2sums[${i}]}" = '21083151bdcd0fc2bcc0475b9cd73bab5666a71f043eedd67b19a3a4c09c8253a5a06794ce9270215782f5885e05e70b5e424123f1bded7aa7a6d3f30d02a4b3' ]; then
+ b2sums_pentium4=('759861f49726995d56e2fea96b60622d67fd43c8f8643b183ea0ee1efbe86e98c1435561e2d9ef3c58d581e8a6d147c8a11f4de97c2aaa25231b26db9e1c4859')
+ b2sums_i686=('3c716e2c37196cb9be479e3dfddaa1ad36da4053dfdd8c84a9141289d958e2c995795a13f683507bf2a6fa09f4ccaf52a576b6589c93bd36bd934c2a1ee34312')
+ b2sums_i486=('21e9e76c23d6ef348f5e54480ee3f16fb6c86d67c9103fea30fec91102e3695ebf53fa970bc8a7b842fd4763defd02b92bbd099bf77dccd4abd627f879425c06')
+ fi
+done
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
+# copy architecture specific config file, not default 'config'
+eval "$(
+ declare -f prepare | \
+ sed '
+ s,\.\./config,../config.$CARCH,
+ '
+)"
- # strip scripts directory
- local _binary _strip
- while read -rd '' _binary; do
- case "$(file -bi "${_binary}")" in
- *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
- *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
- *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
- *) continue ;;
- esac
- /usr/bin/strip ${_strip} "${_binary}"
- done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
- depends+=(gcc-libs=$(_get_gcc_version_from_config))
-}
+# patch architecture when copying the kernel Makefile
+eval "$(
+ declare -f package_linux-headers | \
+ sed '
+ \,/tools/objtool" ,d
+ \,arch/x86/Makefile, {
+ a \
+ install -t "${builddir}/arch/x86" -m644 arch/x86/Makefile_32.cpu
+ }
+ $ i depends+=(gcc-libs=$(_get_gcc_version_from_config))
+ '
+)"
_get_gcc_version_from_config() {
if [ -z "$srcdir" ]; then
@@ -221,25 +58,89 @@ _get_gcc_version_from_config() {
fi
}
-_package-docs() {
- pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
-
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
-
- mkdir -p "${_builddir}"
- cp -t "${_builddir}" -a Documentation
+# use our tarballer instead of cloning from git
+for ((i=0; i<${#source[@]}; i++)); do
+ infos=$(
+ printf '%s\n' "${source[${i}]}" | \
+ sed '
+ s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)\(?signed\)\?#\(\(tag\|commit\)=[^?]\+\)$@\3 \2 \4 \5 \6@
+ t
+ s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)#\(\(tag\|commit\)=[^?]\+\)\(?signed\)\?$@\3 \2 \4 \7 \5@
+ t
+ d
+ '
+ )
+ if [ -n "${infos}" ]; then
+ source[${i}]=$(
+ type="${infos%% *}"
+ infos="${infos#* }"
+ if [ -n "${infos%% *}" ]; then
+ prefix="${infos%% *}"
+ else
+ prefix=''
+ fi
+ infos="${infos#* }"
+ repo="${infos%% *}"
+ repo64=$(
+ printf '%s' "${repo}" | \
+ base64 -w0 | \
+ sed 's/=/%3D/g'
+ )
+ infos="${infos#* }"
+ if [ "${infos%% *}" = '?signed' ]; then
+ key_check=$(
+ printf '&valid_keys='
+ printf '%s,' "${validpgpkeys[@]}" | \
+ sed 's/,$//'
+ )
+ else
+ key_check=''
+ fi
+ infos="${infos#* }"
+ if [ -z "${prefix}" ]; then
+ prefix="${repo%.git}"
+ prefix="${prefix##*/}"
+ fi
+ prefix_64=$(
+ printf '%s/' "${prefix}" | \
+ base64 -w0 | \
+ sed 's/=/%3D/g'
+ )
+
+ printf '%s-%s.tar.gz::https://archive-server.archlinux32.org/?t=%s&p=%s&r=%s%s&%s\n' \
+ "${prefix}" \
+ "${pkgver}" \
+ "${type}" \
+ "${prefix_64}" \
+ "${repo64}" \
+ "${key_check}" \
+ "${infos}"
+ )
+ fi
+done
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
-}
+# upstream prepare() does already do the *.patch patching
-pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
-for _p in ${pkgname[@]}; do
- eval "package_${_p}() {
- $(declare -f "_package${_p#${pkgbase}}")
- _package${_p#${pkgbase}}
- }"
-done
+# avoid using zstd compression in ultra mode (exhausts virtual memory)
+source+=('no-ultra-zstd.patch')
+sha256sums+=('d32270be5fd9c3e3ba50f3aef33f6cfcb85be0c8216f03b777287cc621fdff28')
+b2sums+=('165ab9dd8cedeaae5327accc1581c19cf0be55f923b03feb889cad3351b74c7c4cd3d3c206938e5152bfe1d947513dea8f630f8f5544099ec13d16d254725c40')
-# vim:set ts=8 sts=2 sw=2 et:
+# temporarily disabled documentation due to sphinx_rtd_theme (FS32#163)
+pkgname=(
+ $(
+ printf '%s\n' "${pkgname[@]}" | \
+ grep -v '^\$pkgbase-docs'
+ )
+)
+eval "$(
+ declare -f build | \
+ sed '
+ s/\bhtmldocs\b//
+ '
+)"
+makedepends=(${makedepends[@]//python-sphinx_rtd_theme/})
+makedepends=(${makedepends[@]//python-sphinx<6.0.0/})
+makedepends=(${makedepends[@]//graphviz/})
+makedepends=(${makedepends[@]//imagemagick/})
+makedepends=(${makedepends[@]//texlive-latexextra/})