From 28529fefc594bf968ca30905a5a2d6c9ae1d6f3c Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sat, 23 Aug 2014 01:36:15 -0300 Subject: add modifications from coadde and lukeshu contributions for linux-libre* and dependencies --- libre/linux-libre/PKGBUILD | 202 +++++++++++++++------------------------------ 1 file changed, 65 insertions(+), 137 deletions(-) (limited to 'libre/linux-libre/PKGBUILD') diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index d7479db9e..c5a85232e 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -1,4 +1,3 @@ -# $Id: PKGBUILD 219731 2014-08-14 06:02:01Z tpowa $ # Maintainer (Arch): Tobias Powalowski # Maintainer (Arch): Thomas Baechler # Maintainer: André Silva @@ -8,59 +7,63 @@ # Contributor: Márcio Silva # Contributor: Luke Shumaker -pkgbase=linux-libre # Build stock -libre kernel -#pkgbase=linux-libre-custom # Build kernel with a different name -_basekernel=3.16 -_sublevel=1 -pkgver=${_basekernel}.${_sublevel} +pkgbase=linux-libre # Build stock "" kernel +_pkgbasever=3.16-gnu +_pkgver=3.16.1-gnu + +_replaces=('kernel26%' 'kernel26-libre%' 'linux%' 'linux-libre%-kmod-alx') # '%' gets replaced with _kernelname + +_srcname=linux-${_pkgbasever%-*} +pkgver=${_pkgver//-/.} pkgrel=1 -_lxopkgver=${_basekernel}.0 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc') options=('!strip') -source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz" - "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz" +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/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz" # the main kernel config files - 'config.i686' 'config.x86_64' + 'config.i686' 'config.x86_64' 'config.mips64el' # standard config files for mkinitcpio ramdisk - "${pkgbase}.preset" - 'Kbuild' - 'Kbuild.platforms' - 'boot-logo.patch' + 'linux.preset' + 'logo_linux_'{clut224.ppm,vga16.ppm,mono.pbm} 'change-default-console-loglevel.patch' 'compal-laptop-hwmon-fix.patch' - "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.xz") + # loongson-community patch: http://linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/ + '3.16-7981337ad0-loongson-community.patch') sha256sums=('9c2a524c901febe0f0138f702bfdeb52d6f79f22c1fdbabaa37580bc70f16218' '3bbc78694d76b12b6229799d7c4daf5215b9dd731908d96b03603aceb54ad5c7' - '46f70101acc6ffa57ea8f077db55ad554dd4b335c2e0fa85edf61db9f89c45ed' - '5b809f025fc13ccffb77092fadf044b4a52d9b8242028b01d15845589c4e1e19' - 'dfe01c93d83cdac9ca502715ceb6ac9502d327c939fec2e3052a5a58422dc176' - 'c5451d5e1eafc4f8d28b1a2958ec3102c124433a414a86450fc32058e004156b' - '55bf07738a3286168a7929ae16dbca29defd14e77b9d24c487ae4c3d12bb9eb9' - '8303b426b1a6dce456b2350003558ae312d21cab0ae6c1f0d7b9d21395f4e177' + 'df929e6e3ca5aa23ef7c4fb5c30b5a7757588ffcd1841fffa8e064feaa6c7834' + '10035cb6b7d4ce90b3743f0ada64364d1d03556589d1dc754caebd0f5919848b' + '44e9c253df7a7d1457e01f36dbd93f7c713c7e02e8a56f6e85a287f35e556bce' + 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' + '074b67818582874146c389c029bc43648d145891a27e47aa2c5c42d3571f0264' + '2e87a8ec1cc0c91938cac24992d8a3d4362b3e9d939767e4c9d2ec8e6d969d53' + 'f67f60a30bcf2e9a2ba88ad97cace308da7a7f94919bb95c3dc030f5885a8015' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' 'f36f61a0a72bcb0a9c04264343503bfbf927c9ea0db819e66734a3933b060588' - '86a5e1ab424fe5dec8dffe24253d11575d5e7a51b7fb117db95a5bf1efdba3fd') -if [ "$CARCH" != "mips64el" ]; then - # don't use the Loongson-specific patches on non-mips64el arches. - unset source[${#source[@]}-1] - unset sha256sums[${#sha256sums[@]}-1] -fi + 'fc78b69f6c0709f5170bfd609e8dc6c96291ea920ddbd4b5166448477b1f6619') _kernelname=${pkgbase#linux-libre} -_localversionname=-libre +_replaces=("${_replaces[@]/\%/${_kernelname}}") + +case "$CARCH" in + i686|x86_64) KARCH=x86;; + mips64el) KARCH=mips;; +esac prepare() { - cd "${srcdir}/linux-${_basekernel}" + cd "${srcdir}/${_srcname}" - if [ "${_basekernel}" != "${pkgver}" ]; then - patch -p1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu" + # add upstream patch + if [ "${_pkgbasever}" != "${_pkgver}" ]; then + patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}" fi # add freedo as boot logo - patch -p1 -i "${srcdir}/boot-logo.patch" + install -m644 -t drivers/video/logo \ + "${srcdir}/logo_linux_"{clut224.ppm,vga16.ppm,mono.pbm} # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git @@ -73,35 +76,15 @@ prepare() { # #41458 fix hwmon for compal-laptop module patch -p1 -i "${srcdir}/compal-laptop-hwmon-fix.patch" - if [ "$CARCH" == "mips64el" ]; then - sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile - sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \ - < "${srcdir}/lxo-config.patch" > lxo-config.patch - msg2 "Adding loongson-community patches" - patch -p1 -i ${srcdir}/${_basekernel}*-*-loongson-community.patch - patch -p0 -i lxo-config.patch - - # ensure N32, add localversion, remove uevent helper as per - # https://git.kernel.org/?p=linux/hotplug/udev.git;a=blob_plain;f=README - # and make USB storage support builtin (e.g. for booting from USB - # disks without slowly loading an initramfs) - sed -ri \ - -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \ - -e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \ - -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_localversionname}\"|g" \ - -e "s;(CONFIG_USB(_COMMON|_EHCI_HCD|_OHCI_HCD|_STORAGE.*|_UAS)?)=.*;\1=y;g" \ - ./.config - else - cat "${srcdir}/config.${CARCH}" > ./.config # simpler + # Adding loongson-community patch + if [ "${CARCH}" == "mips64el" ]; then + patch -p1 -i ${srcdir}/3.16-7981337ad0-loongson-community.patch fi - if [ "${_kernelname}" != "" ]; then - sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_localversionname}\"|g" ./.config - sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config - fi + cat "${srcdir}/config.${CARCH}" > ./.config - # set extraversion to pkgrel - sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile + # append pkgrel to extraversion + sed -ri "s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|" Makefile # don't run depmod on 'make install'. We'll do this ourselves in packaging sed -i '2iexit 0' scripts/depmod.sh @@ -122,46 +105,23 @@ prepare() { } build() { - cd "${srcdir}/linux-${_basekernel}" - - if [ "$CARCH" == "mips64el" ]; then - # The build system passes it directly to linker, disable to avoid - # having unknown -Wl,... options. - export LDFLAGS="" - # bzImage is arch-specific and not supported on mips; vmlinux is - # useful for oprofile. - make ${MAKEFLAGS} LOCALVERSION= vmlinux vmlinuz modules - else - make ${MAKEFLAGS} LOCALVERSION= bzImage modules - fi + cd "${srcdir}/${_srcname}" + + make ${MAKEFLAGS} LOCALVERSION= bzImage modules } _package() { pkgdesc="The ${pkgbase^} kernel and modules" [ "${pkgbase}" = "linux-libre" ] && groups=('base') - depends=('coreutils' 'linux-libre-firmware' 'kmod') + depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') optdepends=('crda: to set the correct wireless channels of your country') - provides=("kernel26${_kernelname}=${pkgver}" "linux${_kernelname}=${pkgver}") - conflicts=("kernel26${_kernelname}" "kernel26-libre${_kernelname}" "linux${_kernelname}") - replaces=("kernel26${_kernelname}" "kernel26-libre${_kernelname}" "linux${_kernelname}") + provides=( "${_replaces[@]/%/=${pkgver}}") + conflicts=("${_replaces[@]}") + replaces=( "${_replaces[@]}") backup=("etc/mkinitcpio.d/${pkgbase}.preset") - install=${pkgbase}.install - if [ "$CARCH" != "mips64el" ]; then - provides+=("linux-libre${_kernelname}-kmod-alx") - conflicts+=("linux-libre${_kernelname}-kmod-alx") - replaces+=("linux-libre${_kernelname}-kmod-alx") - fi - if [ "$CARCH" = "mips64el" ]; then - optdepends+=('mkinitcpio: to make the initramfs (needs reinstall of this package)') - conflicts+=('mkinitcpio<0.7') - else - depends+=('mkinitcpio>=0.7') - fi + install=linux.install - cd "${srcdir}/linux-${_basekernel}" - - KARCH=x86 - [ $CARCH = "mips64el" ] && KARCH=mips + cd "${srcdir}/${_srcname}" # get kernel version _kernver="$(make LOCALVERSION= kernelrelease)" @@ -170,13 +130,7 @@ _package() { mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install - - if [ "$CARCH" == "mips64el" ]; then - cp vmlinuz "${pkgdir}/boot/vmlinuz-${pkgbase}" - cp vmlinux "${pkgdir}/boot/vmlinux-${pkgbase}" - else - cp arch/${KARCH}/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" - fi + cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" # set correct depmod command for install cp -f "${startdir}/${install}" "${startdir}/${install}.pkg" @@ -187,20 +141,14 @@ _package() { -i "${startdir}/${install}" # install mkinitcpio preset file for kernel - install -D -m644 "${srcdir}/${pkgbase}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" sed \ - -e "1s|'linux*.*'|'${pkgbase}'|" \ + -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" - # mkinitcpio 0.7 relies on bzImage to find the kernel version - if [ "$CARCH" == "mips64el" ]; then - sed -e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|" \ - -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" - fi - # remove build and source links rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} # remove the firmware @@ -208,10 +156,10 @@ _package() { # gzip -9 all modules to save 100MB of space find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; # make room for external modules - ln -s "../extramodules-${_basekernel}${_localversionname:--libre}" "${pkgdir}/lib/modules/${_kernver}/extramodules" + ln -s "../extramodules-${_basekernel}${_kernelname}" "${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}${_localversionname:--libre}" - echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--libre}/version" + mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}" + echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}/version" # Now we call depmod... depmod -b "${pkgdir}" -F System.map "${_kernver}" @@ -226,22 +174,13 @@ _package() { _package-headers() { pkgdesc="Header files and scripts for building modules for ${pkgbase^} kernel" - provides=("kernel26${_kernelname}-headers=${pkgver}" "linux${_kernelname}-headers=${pkgver}") - conflicts=("kernel26${_kernelname}-headers" "kernel26-libre${_kernelname}-headers" "linux${_kernelname}-headers") - replaces=("kernel26${_kernelname}-headers" "kernel26-libre${_kernelname}-headers" "linux${_kernelname}-headers") - - KARCH=x86 - [ $CARCH = "mips64el" ] && KARCH=mips - - # in case of repackaging this is empty - if [ -z "${_kernver}" ]; then - cd "${srcdir}/linux-${_basekernel}" - _kernver="$(make LOCALVERSION= kernelrelease)" - fi + provides=( "${_replaces[@]/%/-headers=${pkgver}}") + conflicts=("${_replaces[@]/%/-headers}") + replaces=( "${_replaces[@]/%/-headers}") install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" - cd "${srcdir}/linux-${_basekernel}" + cd "${srcdir}/${_srcname}" install -D -m644 Makefile \ "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile" install -D -m644 kernel/Makefile \ @@ -264,12 +203,6 @@ _package-headers() { cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build" cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build" - if [ "$CARCH" = "mips64el" ]; then - cp arch/${KARCH}/Kbuild "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" - cp -a arch/${KARCH}/loongson "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" - cp ${srcdir}/Kbuild.platforms "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/" - fi - # 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" @@ -355,21 +288,16 @@ _package-headers() { 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,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa} - if [ "$CARCH" = "mips64el" ]; then - rm -rf ${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86 - else - rm -rf ${pkgdir}/usr/lib/modules/${_kernver}/build/arch/mips - fi + find "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name "$KARCH" -exec rm -rf {} + } _package-docs() { pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel" - provides=("kernel26${_kernelname}-docs=${pkgver}" "linux${_kernelname}-docs=${pkgver}") - conflicts=("kernel26${_kernelname}-docs" "kernel26-libre${_kernelname}-docs" "linux${_kernelname}-docs") - replaces=("kernel26${_kernelname}-docs" "kernel26-libre${_kernelname}-docs" "linux${_kernelname}-docs") + provides=( "${_replaces[@]/%/-docs=${pkgver}}") + conflicts=("${_replaces[@]/%/-docs}") + replaces=( "${_replaces[@]/%/-docs}") - cd "${srcdir}/linux-${_basekernel}" + cd "${srcdir}/${_srcname}" mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build" cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build" -- cgit v1.2.3-54-g00ecf