core/linux-raspberrypi-latest to 3.12.1 and PKGFILE rewrite (following Kevin's example)

This commit is contained in:
moonman 2013-11-23 21:31:03 -07:00
parent c82cccc5a0
commit 2bea0f2b8d
3 changed files with 305 additions and 145 deletions

View file

@ -3,12 +3,12 @@
buildarch=18
pkgbase=linux-raspberrypi
pkgname=('linux-raspberrypi-latest' 'linux-headers-raspberrypi-latest')
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux}
_basekernel=3.12
pkgver=${_basekernel}.0
pkgbase=linux-raspberrypi-latest
_commit=7d6a419fb377cede2d24f77b362acbcbe6197396
_srcname=linux-${_commit}
_kernelname=${pkgbase#linux}
_desc="Raspberry Pi"
pkgver=3.12.1
pkgrel=1
bfqver=v6r2
uksmver="0.1.2.2"
@ -17,72 +17,77 @@ uksmname="v3.12"
arch=('arm armv6h')
url="http://www.kernel.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'uboot-mkimage' 'git' 'python2' 'bc')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'uboot-mkimage' 'git' 'python2' 'bc')
options=('!strip')
source=('config'
source=("https://github.com/raspberrypi/linux/archive/${_commit}.tar.gz"
'config'
'change-default-console-loglevel.patch'
'usb-add-reset-resume-quirk-for-several-webcams.patch'
'args-uncompressed.txt'
'boot-uncompressed.txt'
'imagetool-uncompressed.py'
"http://kerneldedup.org/download/uksm/${uksmver}/uksm-${uksmver}-for-${uksmname}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${_basekernel}.0-${bfqver}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${_basekernel}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${_basekernel}.0-${bfqver}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${_basekernel}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${_basekernel}.0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${_basekernel}.0.patch")
"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver%.*}"
"http://kerneldedup.org/download/uksm/${uksmver}/uksm-${uksmver}-for-${uksmname}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver%.*}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver%.*}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver%.*}.0.patch")
md5sums=('83615de3b58701293212fd118de8371d'
md5sums=('bc65cef8139f134690055e946f86b98d'
'd0d9d44e23c43c9173405006e2b6f191'
'c0d63f4d42fd334bf31e4f749d4694f3'
'd00814b57448895e65fbbc800e8a58ba'
'9335d1263fd426215db69841a380ea26'
'a00e424e2fbb8c5a5f77ba2c4871bed4'
'2f82dbe5752af65ff409d737caf11954'
'57cbf7fa8220461f8a052ea0eb9af779'
'SKIP'
'57cbf7fa8220461f8a052ea0eb9af779'
'2d39966d14fdad1e05679232f97fdb3c'
'2965641038a5aae263722b1ba16b971b'
'9a55951ee4c3741b61e2e159631b5cf2')
build() {
git clone --branch=rpi-${_basekernel}.y --depth=1 https://github.com/raspberrypi/linux.git
cd "${srcdir}/linux"
prepare() {
cd "${srcdir}/${_srcname}"
msg "Patches:"
#msg2 "Add upstream patch"
#patch -p1 -i "${srcdir}/patch-${pkgver}"
msg2 "Add the USB_QUIRK_RESET_RESUME for several webcams"
# FS#26528
patch -Np1 -i "${srcdir}/usb-add-reset-resume-quirk-for-several-webcams.patch"
msg2 "Add UKSM patch"
patch -Np1 -i "${srcdir}/uksm-${uksmver}-for-${uksmname}.patch"
msg2 "Add BFQ patches"
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${_basekernel}.patch"
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${_basekernel}.patch"
patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${_basekernel}.0.patch"
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
msg2 "Set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)"
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
cp ${srcdir}/args-uncompressed.txt arch/arm/boot/
cp ${srcdir}/boot-uncompressed.txt arch/arm/boot/
cp ${srcdir}/imagetool-uncompressed.py arch/arm/boot/
#make bcmrpi_defconfig
#sed -ri "s|^(CONFIG_LOCALVERSION=\").*|\1\-ARCH\"|" .config
cat "${srcdir}/config" > ./.config
msg2 "AUFS patches"
cp -ru "${srcdir}/aufs3-standalone/Documentation" .
cp -ru "${srcdir}/aufs3-standalone/fs" .
cp -ru "${srcdir}/aufs3-standalone/include/uapi/linux/aufs_type.h" ./include/linux
cp -ru "${srcdir}/aufs3-standalone/include/uapi/linux/aufs_type.h" ./include/uapi/linux
patch -Np1 -i ../aufs3-standalone/aufs3-kbuild.patch
patch -Np1 -i ../aufs3-standalone/aufs3-base.patch
patch -Np1 -i ../aufs3-standalone/aufs3-mmap.patch
patch -Np1 -i ../aufs3-standalone/aufs3-standalone.patch
msg2 "Add UKSM patch"
patch -Np1 -i "${srcdir}/uksm-${uksmver}-for-${uksmname}.patch"
msg2 "Add BFQ patches"
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver%.*}.patch"
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver%.*}.patch"
patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver%.*}.0.patch"
msg "Prepare to build"
# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
cat "${srcdir}/config" > ./.config
# add pkgrel to extraversion
sed -ri "s|^(EXTRAVERSION =)(.*)|\1 \2-${pkgrel}|" Makefile
# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh
}
build() {
cd "${srcdir}/${_srcname}"
# get kernel version
make prepare
@ -93,6 +98,7 @@ msg "Prepare to build"
#make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
#make bcmrpi_defconfig # using RPi defconfig
# ... or manually edit .config
# Copy back our configuration (use with new kernel version)
@ -107,19 +113,19 @@ msg "Prepare to build"
#yes "" | make config
msg "Building!"
msg "Building!"
make ${MAKEFLAGS} modules uImage
}
package_linux-raspberrypi-latest() {
pkgdesc="The Linux Kernel and modules for Raspberry Pi"
_package() {
pkgdesc="The Linux Kernel and modules - ${_desc}"
depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26' "linux=${pkgver}")
provides=('kernel26' "linux=${pkgver}" 'aufs_friendly')
conflicts=('kernel26' 'linux')
install=${pkgname}.install
cd "${srcdir}/linux"
cd "${srcdir}/${_srcname}"
KARCH=arm
@ -128,9 +134,9 @@ package_linux-raspberrypi-latest() {
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
make INSTALL_MOD_PATH="${pkgdir}" modules_install
cd arch/$KARCH/boot/
/usr/bin/python2 imagetool-uncompressed.py
cd "${srcdir}/linux"
pushd arch/$KARCH/boot/
/usr/bin/python2 imagetool-uncompressed.py
popd
cp arch/$KARCH/boot/kernel.img ${pkgdir}/boot/kernel.img
#cp arch/$KARCH/boot/uImage "${pkgdir}/boot/uImage"
@ -160,9 +166,10 @@ package_linux-raspberrypi-latest() {
mv "$pkgdir/lib" "$pkgdir/usr"
}
package_linux-headers-raspberrypi-latest() {
pkgdesc="Header files and scripts for building modules for linux kernel for Raspberry Pi"
_package-headers() {
pkgdesc="Header files and scripts for building modules for linux kernel - ${_desc}"
provides=('kernel26-headers' "linux-headers=${pkgver}")
replaces=('linux-headers-raspberrypi-latest')
conflicts=('kernel26-headers')
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
@ -170,7 +177,7 @@ package_linux-headers-raspberrypi-latest() {
cd "${pkgdir}/usr/lib/modules/${_kernver}"
ln -sf ../../../src/linux-${_kernver} build
cd "${srcdir}/linux"
cd "${srcdir}/${_srcname}"
install -D -m644 Makefile \
"${pkgdir}/usr/src/linux-${_kernver}/Makefile"
install -D -m644 kernel/Makefile \
@ -299,3 +306,10 @@ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/i2c/${i}"
# remove unneeded architectures
rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,x86,xtensa}
}
pkgname=("${pkgbase}" "${pkgbase}-headers")
for _p in ${pkgname[@]}; do
eval "package_${_p}() {
_package${_p#${pkgbase}}
}"
done

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-raspberrypi-latest
KERNEL_VERSION=3.11.7-1-ARCH+
KERNEL_VERSION=3.12.1-1-ARCH
post_install () {
# updating module dependencies