summaryrefslogtreecommitdiff
path: root/libre-testing/linux-libre-pck/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre-testing/linux-libre-pck/PKGBUILD')
-rw-r--r--libre-testing/linux-libre-pck/PKGBUILD240
1 files changed, 204 insertions, 36 deletions
diff --git a/libre-testing/linux-libre-pck/PKGBUILD b/libre-testing/linux-libre-pck/PKGBUILD
index d8fd91364..ad5784108 100644
--- a/libre-testing/linux-libre-pck/PKGBUILD
+++ b/libre-testing/linux-libre-pck/PKGBUILD
@@ -4,31 +4,36 @@
# Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org>
# Contributor: Michał Masłowski <mtjm@mtjm.eu>
# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor: Luke R. <g4jc@openmailbox.org>
# Based on linux package
pkgbase=linux-libre-pck
_pkgbasever=4.2-gnu
-_pkgver=${_pkgbasever}
-_pckpatchver=pck4
+_pkgver=4.2.1-gnu
+_pckpatchver=pck1
_replacesarchkernel=('linux-zen')
-_replacesoldkernels=('kernel26-zen')
+_replacesoldkernels=()
_replacesoldmodules=()
_srcname=linux-${_pkgbasever%-*}
_archpkgver=${_pkgver%-*}
pkgver=${_pkgver//-/_}.${_pckpatchver}
pkgrel=1
-arch=('i686' 'x86_64')
+rcnrel=armv7-x2
+arch=('i686' 'x86_64' 'armv7h')
url="https://wiki.parabola.nu/PCK"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
+if [ "${CARCH}" = "armv7h" ]; then
+ makedepends+=('git' 'uboot-tools')
+fi
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz"
"http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz.sign"
- #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz"
- #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign"
"https://repo.parabola.nu/other/pck/patches/${_pkgver}/patch-${_pkgver}-${_pckpatchver}.patch"
"https://repo.parabola.nu/other/pck/patches/${_pkgver}/patch-${_pkgver}-${_pckpatchver}.patch.sig"
"https://repo.parabola.nu/other/linux-libre/logos/logo_linux_clut224.ppm"
@@ -38,13 +43,26 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li
"https://repo.parabola.nu/other/linux-libre/logos/logo_linux_vga16.ppm"
"https://repo.parabola.nu/other/linux-libre/logos/logo_linux_vga16.ppm.sig"
# the main kernel config files
- 'config.i686' 'config.x86_64'
+ 'config.i686' 'config.x86_64' 'config.armv7h'
# standard config files for mkinitcpio ramdisk
'linux.preset'
- 'change-default-console-loglevel.patch')
+ 'change-default-console-loglevel.patch'
+ # armv7h patches
+ "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"
+ "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch.sig"
+ '0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch'
+ '0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch'
+ '0003-SMILE-Plug-device-tree-file.patch'
+ '0004-fix-mvsdio-eMMC-timing.patch'
+ '0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch'
+ '0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch'
+ '0007-set-default-cubietruck-led-triggers.patch'
+ '0008-USB-armory-support.patch')
sha256sums=('3a8fc9da5a38f15cc4ed0c5132d05b8245dfc1007c37e7e1994b2486535ecf49'
'SKIP'
- '616428a785acc24d46d7b972bb111d6158a9fb35888d941b01d0760db4ee61df'
+ '2fb0b42c6cac0bd550ceb71072fef4f7ed72976e64542de8e7ad759a9e195237'
+ 'SKIP'
+ 'c1175a26c48cdc69aa4c785834218b391ef2d8afe842ef4f33d11b2d290ed5bf'
'SKIP'
'bfd4a7f61febe63c880534dcb7c31c5b932dde6acf991810b41a939a93535494'
'SKIP'
@@ -52,10 +70,21 @@ sha256sums=('3a8fc9da5a38f15cc4ed0c5132d05b8245dfc1007c37e7e1994b2486535ecf49'
'SKIP'
'6de8a8319271809ffdb072b68d53d155eef12438e6d04ff06a5a4db82c34fa8a'
'SKIP'
- '6a21b657f471ce49bdebbbcb0b2eb49f7cb1875d4b28bf04bc9e710ec8068d0e'
- '95a9c91b731615d56bacaf4eedc6f4d22e1cb2161cb49ee0644f6e489f36a9a9'
+ '8cd611d46755d5dbb545c170a416f189a32e2761fb5367ccaa8c73e4ef24a065'
+ '24c0fe6b86a95adcc29be5c617718e5dba066552f161e52f05f92cbb14b7123c'
+ '229b9a693539c0f35eb4c3173d48b06cc978f09ea6f502fd5903e1f0c18d5a27'
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
- '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99')
+ '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
+ '1d365219ca72ef7290277a47c45a4f406705f27a9f7c177ac860da0e5b994bdb'
+ 'SKIP'
+ '2654680bc8f677f647bca6e2b367693bf73ffb2edc21e3757a329375355a335d'
+ '842e4f483fa36c0e7dbe18ad46d78223008989cce097e5bef1e14450280f5dfe'
+ '810697eec07faa60acb59b97df291e5f2e9428e86ae54e5ef90a6e4b2d0844ab'
+ 'c743e41975260aab3176b6f473707c8d8371cb89575e1c128bddb3bd74030b8b'
+ 'abc9593a479b9bb677112fa1d6502c8165d27d0854a712e1662374e4bafb96a0'
+ 'd068215561ce769439901da0118e251c624de58fe414cc2166fbf972f76dd1a7'
+ 'ac0fb2180560652f94bebb3c09baef3c34785b539cae541df175ebec6989d79c'
+ 'c23c3bf29fd557fe2e9ca72e65cd0f1e790b771b4568d0732388d7d420cefd6a')
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
'C92BAA713B8D53D3CAE63FC9E6974752F9704456' # André Silva
@@ -64,8 +93,9 @@ validpgpkeys=(
_kernelname=${pkgbase#linux-libre}
-case "$CARCH" in
+case "${CARCH}" in
i686|x86_64) KARCH=x86;;
+ armv7h) KARCH=arm;;
esac
prepare() {
@@ -79,6 +109,22 @@ prepare() {
# add pck patch
patch -p1 -i "${srcdir}/patch-${_pkgver}-${_pckpatchver}.patch"
+ if [ "${CARCH}" = "armv7h" ]; then
+
+ # RCN patch (CM3 firmware deblobbed)
+ git apply -v "${srcdir}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"
+
+ # ALARM patches
+ patch -p1 -i "${srcdir}/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch"
+ patch -p1 -i "${srcdir}/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch"
+ patch -p1 -i "${srcdir}/0003-SMILE-Plug-device-tree-file.patch"
+ patch -p1 -i "${srcdir}/0004-fix-mvsdio-eMMC-timing.patch"
+ patch -p1 -i "${srcdir}/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch"
+ patch -p1 -i "${srcdir}/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch"
+ patch -p1 -i "${srcdir}/0007-set-default-cubietruck-led-triggers.patch"
+ patch -p1 -i "${srcdir}/0008-USB-armory-support.patch"
+ fi
+
# add freedo as boot logo
install -m644 -t drivers/video/logo \
"${srcdir}/logo_linux_"{clut224.ppm,vga16.ppm,mono.pbm}
@@ -117,20 +163,31 @@ prepare() {
build() {
cd "${srcdir}/${_srcname}"
- make ${MAKEFLAGS} LOCALVERSION= bzImage modules
+ if [ "${CARCH}" = "armv7h" ]; then
+ make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs
+ elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
+ make ${MAKEFLAGS} LOCALVERSION= bzImage modules
+ fi
}
_package() {
pkgdesc="The ${pkgbase^} kernel and modules with a handful of awesome features not merged into mainline [AUFS, BFQ, BFS, KDBUS, Knock, TuxOnIce, UKSM]"
[ "${pkgbase}" = "linux-libre" ] && groups=('base')
- depends=('coreutils' 'linux-libre-firmware' 'kmod' 'mkinitcpio>=0.7')
+ depends=('coreutils' 'linux-libre-firmware' 'kmod')
optdepends=('crda: to set the correct wireless channels of your country'
'systemd-knock: to use system and service manager with TCP Stealth support'
'openssh-knock: to use SSH with TCP Stealth support')
- provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}")
- conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}")
- replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}")
- backup=("etc/mkinitcpio.d/${pkgbase}.preset")
+ if [ "${CARCH}" = "armv7h" ]; then
+ provides=("${_replacesarchkernel%${_kernelname}}")
+ conflicts=("${_replacesarchkernel%${_kernelname}}")
+ replaces=("${_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
install=linux.install
cd "${srcdir}/${_srcname}"
@@ -141,8 +198,16 @@ _package() {
_basekernel=${_basekernel%.*}
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
+ if [ "${CARCH}" = "armv7h" ]; then
+ mkdir -p "${pkgdir}"/boot/dtbs
+ fi
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
- cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ if [ "${CARCH}" = "armv7h" ]; then
+ cp arch/$KARCH/boot/zImage "${pkgdir}/boot/zImage"
+ cp arch/$KARCH/boot/dts/*.dtb "${pkgdir}/boot/dtbs"
+ elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
+ cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ fi
# set correct depmod command for install
cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
@@ -152,19 +217,25 @@ _package() {
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
-i "${startdir}/${install}"
- # 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"
+ 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
# 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
@@ -178,15 +249,23 @@ _package() {
mkdir -p "${pkgdir}/usr"
mv "${pkgdir}/lib" "${pkgdir}/usr/"
- # add vmlinux
- install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
+ # add vmlinux
+ install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ fi
}
_package-headers() {
pkgdesc="Header files and scripts for building modules for ${pkgbase^} kernel"
- provides=("${_replacesarchkernel[@]/%/-headers=${_archpkgver}}")
- conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}")
- replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}")
+ if [ "${CARCH}" = "armv7h" ]; then
+ provides=("${_replacesarchkernel%${_kernelname}}-headers")
+ conflicts=("${_replacesarchkernel%${_kernelname}}-headers")
+ replaces=("${_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
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
@@ -208,6 +287,14 @@ _package-headers() {
# copy arch includes for external modules
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}"
cp -a arch/${KARCH}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
+ if [ "${CARCH}" = "armv7h" ]; then
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-omap2"
+ cp -a arch/${KARCH}/mach-omap2/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-omap2/"
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-mvebu"
+ cp -a arch/${KARCH}/mach-mvebu/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-mvebu/"
+ mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-omap"
+ cp -a arch/${KARCH}/plat-omap/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-omap/"
+ fi
# copy files necessary for later builds
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
@@ -304,9 +391,15 @@ _package-headers() {
_package-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel"
- provides=("${_replacesarchkernel[@]/%/-docs=${_archpkgver}}")
- conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}")
- replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}")
+ if [ "${CARCH}" = "armv7h" ]; then
+ provides=("${_replacesarchkernel%${_kernelname}}-docs")
+ conflicts=("${_replacesarchkernel%${_kernelname}}-docs")
+ replaces=("${_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
cd "${srcdir}/${_srcname}"
@@ -319,7 +412,82 @@ _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%${_kernelname}}-uimage")
+ 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%${_kernelname}}-uimage")
+ 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%${_kernelname}}-uimage")
+ 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%${_kernelname}}-uimage")
+ 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%${_kernelname}}-uimage")
+ 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}}")