diff options
author | Barna Csorogi | 2017-07-13 00:02:06 +0200 |
---|---|---|
committer | Barna Csorogi | 2017-07-13 00:02:06 +0200 |
commit | d71ed3b4bef60884ce58ec5aead7038c98810984 (patch) | |
tree | 3e0ee82ac2e332cd1b57dd34517434fcdbc813e0 | |
download | aur-d71ed3b4bef60884ce58ec5aead7038c98810984.tar.gz |
initial commit
-rw-r--r-- | .SRCINFO | 33 | ||||
-rw-r--r-- | PKGBUILD | 263 | ||||
-rw-r--r-- | linux-galliumos.preset | 14 | ||||
-rw-r--r-- | linux.install | 37 |
4 files changed, 347 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..772b345b1fa4 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,33 @@ +pkgbase = linux-galliumos + pkgver = 4.12.0 + pkgrel = 1 + url = http://www.kernel.org/ + arch = i686 + arch = x86_64 + license = GPL2 + makedepends = kmod + makedepends = inetutils + makedepends = bc + makedepends = git + makedepends = libelf + options = !strip + source = git+https://github.com/GalliumOS/linux.git#branch=v4.12.0-galliumos + source = linux-galliumos.preset + sha256sums = SKIP + sha256sums = 2c8a0e7bea719c82005fd7158a4a7ca344b7af5a37fedce44b9fda488a9116c2 + +pkgname = linux-galliumos + pkgdesc = The Linux kernel and modules with GalliumOS patches for chromebooks + install = linux.install + depends = coreutils + depends = linux-firmware + depends = kmod + depends = mkinitcpio>=0.7 + optdepends = crda: to set the correct wireless channels of your country + provides = linux + backup = etc/mkinitcpio.d/linux-galliumos.preset + +pkgname = linux-galliumos-headers + pkgdesc = Header files and scripts for building modules for Linux kernel with GalliumOS patches for chromebooks + provides = linux-headers + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..64ff85e2ee9c --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,263 @@ +# Maintainer: Barna Csorogi <barnacs@justletit.be> +# Contributor: Boohbah <boohbah at gmail.com> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: Thomas Baechler <thomas@archlinux.org> +# Contributor: Jonathan Chan <jyc@fastmail.fm> +# Contributor: misc <tastky@gmail.com> +# Contributor: NextHendrix <cjones12 at sheffield.ac.uk> + +pkgbase=linux-galliumos +_srcname=linux +pkgver=4.12.0 +pkgrel=1 +arch=('i686' 'x86_64') +url="http://www.kernel.org/" +license=('GPL2') +makedepends=('kmod' 'inetutils' 'bc' 'git' 'libelf') +options=('!strip') +source=("git+https://github.com/GalliumOS/linux.git#branch=v${pkgver}-galliumos" + # standard config files for mkinitcpio ramdisk + "${pkgbase}.preset") +sha256sums=('SKIP' + '2c8a0e7bea719c82005fd7158a4a7ca344b7af5a37fedce44b9fda488a9116c2') + +_kernelname=${pkgbase#linux} + +prepare() { + cd "${_srcname}" + + bash galliumos/diffs/apply_all.sh + + cp galliumos/config .config + + # modules for initramfs usb storage support + sed \ + -e 's/^CONFIG_INPUT_EVDEV=y/CONFIG_INPUT_EVDEV=m/' \ + -e 's/^CONFIG_INPUT_EVBUG*/# CONFIG_INPUT_EVBUG is not set/' \ + -e 's/^CONFIG_BLK_DEV_SD=.*/CONFIG_BLK_DEV_SD=m/' \ + -e 's/^CONFIG_SCSI=.*/CONFIG_SCSI=m/' \ + -e 's/^CONFIG_SCSI_MOD=.*/CONFIG_SCSI_MOD=m/' \ + -e 's/^CONFIG_EXT4_FS=.*/CONFIG_EXT4_FS=m/' \ + -e 's/^CONFIG_USB_COMMON=.*/CONFIG_USB_COMMON=m/' \ + -e 's/^CONFIG_USB=.*/CONFIG_USB=m/' \ + -e 's/^CONFIG_USB_XHCI_HCD=.*/CONFIG_USB_XHCI_HCD=m/' \ + -e 's/^CONFIG_USB_XHCI_PCI=.*/CONFIG_USB_XHCI_PCI=m/' \ + -e 's/^CONFIG_USB_EHCI_HCD=.*/CONFIG_USB_EHCI_HCD=m/' \ + -e 's/^CONFIG_USB_EHCI_PCI=.*/CONFIG_USB_EHCI_PCI=m/' \ + -e 's/^CONFIG_USB_UHCI_HCD=.*/CONFIG_USB_UHCI_HCD=m/' \ + -i .config + + + # don't run depmod on 'make install'. We'll do this ourselves in packaging + sed -i '2iexit 0' scripts/depmod.sh + + # 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 + make olddefconfig # old config from previous kernel, defaults for new options + # ... or manually edit .config +} + +build() { + cd "${_srcname}" + + make ${MAKEFLAGS} bzImage modules +} + +_package() { + pkgdesc="The Linux kernel and modules with GalliumOS patches for chromebooks" + depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') + optdepends=('crda: to set the correct wireless channels of your country') + provides=('linux') + backup=("etc/mkinitcpio.d/${pkgbase}.preset") + install=linux.install + + cd "${_srcname}" + + KARCH=x86 + + # get kernel version + _kernver="$(make kernelrelease)" + _basekernel=${_kernver%%-*} + _basekernel=${_basekernel%.*} + + mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} + make INSTALL_MOD_PATH="${pkgdir}" modules_install + cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" + + # set correct depmod command for install + cp -f "${startdir}/${install}" "${startdir}/${install}.pkg" + true && install=${install}.pkg + sed \ + -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \ + -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \ + -i "${startdir}/${install}" + + # install mkinitcpio preset file for kernel + install -D -m644 "${srcdir}/${pkgbase}.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" + # make room for external modules + ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules" + # add real version for building modules and running depmod from post_install/upgrade + mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}" + echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version" + + # Now we call depmod... + depmod -b "${pkgdir}" -F System.map "${_kernver}" + + # move module tree /lib -> /usr/lib + mkdir -p "${pkgdir}/usr" + mv "${pkgdir}/lib" "${pkgdir}/usr/" + + # add vmlinux + install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" + + # add System.map + install -D -m644 System.map "${pkgdir}/boot/System.map-${_kernver}" +} + +_package-headers() { + pkgdesc="Header files and scripts for building modules for Linux kernel with GalliumOS patches for chromebooks" + provides=('linux-headers') + + install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" + + cd "${_srcname}" + install -D -m644 Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile" + install -D -m644 kernel/Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile" + install -D -m644 .config \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/.config" + + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include" + + for i in acpi asm-generic config crypto drm generated keys linux math-emu \ + media net pcmcia scsi sound trace uapi video xen; do + cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/" + done + + # copy arch includes for external modules + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86" + cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/" + + # copy files necessary for later builds, like nvidia and vmware + cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build" + cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build" + + # fix permissions on scripts dir + chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions" + + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel" + + cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" + + if [ "${CARCH}" = "i686" ]; then + cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" + fi + + cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/" + + # add docbook makefile + install -D -m644 Documentation/DocBook/Makefile \ + "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" + + # add dm headers + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md" + cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md" + + # add inotify.h + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux" + cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/" + + # add wireless headers + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/" + cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/" + + # add dvb headers for external modules + # in reference to: + # http://bugs.archlinux.org/task/9912 + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core" + cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/" + # and... + # http://bugs.archlinux.org/task/11194 + + # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new + # in reference to: + # http://bugs.archlinux.org/task/13146 + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/" + cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/" + + # add dvb headers + # in reference to: + # http://bugs.archlinux.org/task/20402 + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb" + cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends" + cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners" + cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/" + + # add xfs and shmem for aufs building + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs" + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm" + # removed in 3.17 series + # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h" + + # copy in Kconfig files + for i in $(find . -name "Kconfig*"); do + mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'` + cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}" + done + + # Fix file conflict with -doc package + rm "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild"/Kconfig.*-* + + # Add objtool for CONFIG_STACK_VALIDATION + mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools" + cp -a tools/objtool "${pkgdir}/usr/lib/modules/${_kernver}/build/tools" + + chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build" + find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \; + + # strip scripts directory + find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do + case "$(file -bi "${binary}")" in + *application/x-sharedlib*) # Libraries (.so) + /usr/bin/strip ${STRIP_SHARED} "${binary}";; + *application/x-archive*) # Libraries (.a) + /usr/bin/strip ${STRIP_STATIC} "${binary}";; + *application/x-executable*) # Binaries + /usr/bin/strip ${STRIP_BINARIES} "${binary}";; + esac + done + + # remove unneeded architectures + rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa} +} + +pkgname=("${pkgbase}" "${pkgbase}-headers") +for _p in ${pkgname[@]}; do + eval "package_${_p}() { + $(declare -f "_package${_p#${pkgbase}}") + _package${_p#${pkgbase}} + }" +done + +# vim:set ts=8 sts=2 sw=2 et: diff --git a/linux-galliumos.preset b/linux-galliumos.preset new file mode 100644 index 000000000000..9e4da743b610 --- /dev/null +++ b/linux-galliumos.preset @@ -0,0 +1,14 @@ +# mkinitcpio preset file for the 'linux-galliumos' package + +ALL_config="/etc/mkinitcpio.conf" +ALL_kver="/boot/vmlinuz-linux-galliumos" + +PRESETS=('default' 'fallback') + +#default_config="/etc/mkinitcpio.conf" +default_image="/boot/initramfs-linux-galliumos.img" +#default_options="" + +#fallback_config="/etc/mkinitcpio.conf" +fallback_image="/boot/initramfs-linux-galliumos-fallback.img" +fallback_options="-S autodetect" diff --git a/linux.install b/linux.install new file mode 100644 index 000000000000..ef42413835ac --- /dev/null +++ b/linux.install @@ -0,0 +1,37 @@ +# arg 1: the new package version +# arg 2: the old package version + +KERNEL_NAME= +KERNEL_VERSION= + +post_install () { + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod ${KERNEL_VERSION} + echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." + mkinitcpio -p linux${KERNEL_NAME} +} + +post_upgrade() { + if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then + echo "WARNING: /boot appears to be a separate partition but is not mounted." + fi + + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod ${KERNEL_VERSION} + echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." + mkinitcpio -p linux${KERNEL_NAME} + + if [ $(vercmp $2 3.13) -lt 0 ]; then + echo ">>> WARNING: AT keyboard support is no longer built into the kernel." + echo ">>> In order to use your keyboard during early init, you MUST" + echo ">>> include the 'keyboard' hook in your mkinitcpio.conf." + fi +} + +post_remove() { + # also remove the compat symlinks + rm -f boot/initramfs-linux${KERNEL_NAME}.img + rm -f boot/initramfs-linux${KERNEL_NAME}-fallback.img +} |