From f8ffee8f862a3d5e411e6f09c606399d9cbb604c Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sun, 27 Sep 2015 07:57:49 -0300 Subject: adapt armv7h kernels for GRUB usage --- libre/linux-libre-grsec/PKGBUILD | 163 ++++++--------------------------------- 1 file changed, 25 insertions(+), 138 deletions(-) (limited to 'libre/linux-libre-grsec/PKGBUILD') diff --git a/libre/linux-libre-grsec/PKGBUILD b/libre/linux-libre-grsec/PKGBUILD index 3519c9be9..90abea1e7 100644 --- a/libre/linux-libre-grsec/PKGBUILD +++ b/libre/linux-libre-grsec/PKGBUILD @@ -28,7 +28,7 @@ url="https://grsecurity.net/" license=('GPL2') makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc') if [ "${CARCH}" = "armv7h" ]; then - makedepends+=('git' 'uboot-tools') + makedepends+=('git') fi options=('!strip') source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz" @@ -117,7 +117,6 @@ prepare() { rm localversion-grsec if [ "${CARCH}" = "armv7h" ]; then - # RCN patch (CM3 firmware deblobbed) git apply -v "${srcdir}/rcn-libre-grsec-${_pkgver%-*}-${rcnrel}.patch" @@ -186,22 +185,15 @@ build() { _package() { pkgdesc="The ${pkgbase^} kernel and modules with grsecurity/PaX patches" [ "${pkgbase}" = "linux-libre" ] && groups=('base') - depends=('coreutils' 'linux-libre-firmware' 'kmod' 'grsec-common') + depends=('coreutils' 'linux-libre-firmware' 'kmod' 'grsec-common' 'mkinitcpio>=0.7') optdepends=('crda: to set the correct wireless channels of your country' 'gradm: to configure and enable Role Based Access Control (RBAC)' 'paxd-libre: to enable PaX exploit mitigations and apply exceptions automatically') - if [ "${CARCH}" = "armv7h" ]; then - provides=("${_replacesarchkernel}") - conflicts=("${_replacesarchkernel}") - replaces=("${_replacesarchkernel}") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}") - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - depends+=('mkinitcpio>=0.7') - provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}") - conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - backup=("etc/mkinitcpio.d/${pkgbase}.preset") - fi + provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}") + conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + [ "${CARCH}" = "armv7h" ] && conflicts+=("${_replacesarchkernel}-uimage") && replaces+=("${_replacesarchkernel}-uimage") + backup=("etc/mkinitcpio.d/${pkgbase}.preset") install=linux.install cd "${srcdir}/${_srcname}" @@ -213,12 +205,12 @@ _package() { mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} if [ "${CARCH}" = "armv7h" ]; then - mkdir -p "${pkgdir}"/boot/dtbs + mkdir -p "${pkgdir}/boot/dtbs/${pkgbase}" fi make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install if [ "${CARCH}" = "armv7h" ]; then - cp arch/$KARCH/boot/zImage "${pkgdir}/boot/zImage" - cp arch/$KARCH/boot/dts/*.dtb "${pkgdir}/boot/dtbs" + cp arch/$KARCH/boot/zImage "${pkgdir}/boot/vmlinuz-${pkgbase}" + cp arch/$KARCH/boot/dts/*.dtb "${pkgdir}/boot/dtbs/${pkgbase}" elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" fi @@ -231,25 +223,19 @@ _package() { -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \ -i "${startdir}/${install}" - if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - # install mkinitcpio preset file for kernel - install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" - sed \ - -e "1s|'linux.*'|'${pkgbase}'|" \ - -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \ - -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \ - -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \ - -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" - fi + # install mkinitcpio preset file for kernel + install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + sed \ + -e "1s|'linux.*'|'${pkgbase}'|" \ + -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \ + -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \ + -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \ + -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" # remove build and source links rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} # remove the firmware rm -rf "${pkgdir}/lib/firmware" - if [ "${CARCH}" = "armv7h" ]; then - # gzip -9 all modules to save 100MB of space - find "${pkgdir}" -name '*.ko' |xargs -P 2 -n 1 gzip -9 - fi # make room for external modules ln -s "../extramodules-${_basekernel}${_kernelname}" "${pkgdir}/lib/modules/${_kernver}/extramodules" # add real version for building modules and running depmod from post_install/upgrade @@ -265,7 +251,7 @@ _package() { if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then # add vmlinux - install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" + install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" # add grsecurity gcc plugins mkdir -p "$pkgdir/usr/lib/modules/${_kernver}/build/tools/gcc" @@ -280,16 +266,9 @@ _package() { _package-headers() { pkgdesc="Header files and scripts for building modules for ${pkgbase^} kernel" - if [ "${CARCH}" = "armv7h" ]; then - provides=("${_replacesarchkernel}-headers") - conflicts=("${_replacesarchkernel}-headers") - replaces=("${_replacesarchkernel}-headers") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-headers") - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - provides=("${_replacesarchkernel[@]/%/-headers=${_archpkgver}}") - conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - fi + provides=("${_replacesarchkernel[@]/%/-headers=${_archpkgver}}") + conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") + replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" @@ -415,16 +394,9 @@ _package-headers() { _package-docs() { pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel" - if [ "${CARCH}" = "armv7h" ]; then - provides=("${_replacesarchkernel}-docs") - conflicts=("${_replacesarchkernel}-docs") - replaces=("${_replacesarchkernel}-docs") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-docs") - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - provides=("${_replacesarchkernel[@]/%/-docs=${_archpkgver}}") - conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") - replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") - fi + provides=("${_replacesarchkernel[@]/%/-docs=${_archpkgver}}") + conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") + replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") cd "${srcdir}/${_srcname}" @@ -437,92 +409,7 @@ _package-docs() { rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" } -_package-smileplug() { - pkgdesc="The ${pkgbase^} kernel - Marvell SMILE Plug" - arch=('armv7h') - depends=("${pkgbase}") - provides=("${_replacesarchkernel}-uimage") - conflicts=("${_replacesarchkernel}-uimage") - replaces=("${_replacesarchkernel}-uimage") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-uimage") - - cd "${srcdir}/${_srcname}" - - mkdir -p "${pkgdir}/boot" - cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/armada-370-smileplug.dtb > myimage - mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "${pkgbase}" -d myimage "${pkgdir}/boot/uImage" -} - -_package-mirabox() { - pkgdesc="The ${pkgbase^} kernel - Globalscale Mirabox" - arch=('armv7h') - depends=("${pkgbase}") - provides=("${_replacesarchkernel}-uimage") - conflicts=("${_replacesarchkernel}-uimage") - replaces=("${_replacesarchkernel}-uimage") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-uimage") - - cd "${srcdir}/${_srcname}" - - mkdir -p "${pkgdir}/boot" - cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/armada-370-mirabox.dtb > myimage - mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "${pkgbase}" -d myimage "${pkgdir}/boot/uImage" -} - -_package-ax3() { - pkgdesc="The ${pkgbase^} kernel - OpenBlocks AX3-4" - arch=('armv7h') - depends=("${pkgbase}") - provides=("${_replacesarchkernel}-uimage") - conflicts=("${_replacesarchkernel}-uimage") - replaces=("${_replacesarchkernel}-uimage") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-uimage") - - cd "${srcdir}/${_srcname}" - - mkdir -p "${pkgdir}/boot" - cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/armada-xp-openblocks-ax3-4.dtb > myimage - mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "${pkgbase}" -d myimage "${pkgdir}/boot/uImage" -} - -_package-d3plug() { - pkgdesc="The ${pkgbase^} kernel - Globalscale D3Plug" - arch=('armv7h') - depends=("${pkgbase}") - provides=("${_replacesarchkernel}-uimage") - conflicts=("${_replacesarchkernel}-uimage") - replaces=("${_replacesarchkernel}-uimage") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-uimage") - - cd "${srcdir}/${_srcname}" - - mkdir -p "${pkgdir}/boot" - cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/dove-d3plug.dtb > myimage - mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "${pkgbase}" -d myimage "${pkgdir}/boot/uImage" -} - -_package-cubox() { - pkgdesc="The ${pkgbase^} kernel - SolidRun Cubox (Marvell)" - arch=('armv7h') - depends=("${pkgbase}") - provides=("${_replacesarchkernel}-uimage") - conflicts=("${_replacesarchkernel}-uimage") - replaces=("${_replacesarchkernel}-uimage") - [ "${pkgbase}" != "linux-libre" ] && conflicts+=("${_replacesarchkernel%${_kernelname}}-uimage") - - cd "${srcdir}/${_srcname}" - - mkdir -p "${pkgdir}/boot" - cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/dove-cubox.dtb > myimage - mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "${pkgbase}" -d myimage "${pkgdir}/boot/uImage" -} - pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs") - -if [ "${CARCH}" = "armv7h" ]; then - pkgname+=("${pkgbase}-smileplug" "${pkgbase}-mirabox" "${pkgbase}-ax3" "${pkgbase}-d3plug" "${pkgbase}-cubox") -fi - for _p in ${pkgname[@]}; do eval "package_${_p}() { $(declare -f "_package${_p#${pkgbase}}") -- cgit v1.2.3