#!/bin/bash # Written by Manfred Mueller # # Copyright (c) 2013 Manfred Mueller, Muelheim, Germany # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # ----------------------------------------------------------------------------- . /usr/share/slax/slaxbuildlib SLAX_BUNDLE_NAME="kernel-devel" SLAX_BUNDLE_VERSION="3.8.2" SLAX_BUNDLE_DESCRIPTION="Kernel headers and makefiles sufficient to build modules against the kernel package." SLAX_BUNDLE_CATEGORIES="develop,system" SLAX_BUNDLES_REQUIRED="" SLAX_BUNDLES_REQUIRED_TO_COMPILE_ONLY="perl" SLAX_BUNDLE_MAINTAINER_NAME="Manfred Mueller" SLAX_BUNDLE_MAINTAINER_EMAIL="manfred.mueller@fluxflux.net" SLAX_BUNDLE_SOURCE_DOWNLOAD[0]="ftp://ftp.linux.cz/pub/linux/slax/Slax-7.x-development/sources/Slax-7.0-sources/kernel/linux-${SLAX_BUNDLE_VERSION}.tar.xz" SLAX_BUNDLE_SOURCE_DOWNLOAD[1]="ftp://ftp.linux.cz/pub/linux/slax/Slax-7.x-development/sources/Slax-7.0-sources/kernel/additions.tar.gz" check_variables_for_errors download_all_sources extract_all_sources init_bundle_target_dir activate_required_bundles VER=${SLAX_BUNDLE_VERSION} DST=./linux-$VER SRC=$(realpath .)/aufs3-standalone.git/ mkdir -p "$SLAX_BUNDLE_TARGET"/{etc,bin,sbin,usr/bin,usr/sbin} umount $DST 2>/dev/null | true rm -Rf $DST mkdir -p $DST mount -t tmpfs -o size="100%" tmpfs $DST cd $DST tar -C .. -xvf $SRC/../linux-$VER.tar.* patch -p1 < $SRC/aufs3-kbuild.patch patch -p1 < $SRC/aufs3-base.patch patch -p1 < $SRC/aufs3-proc_map.patch patch -p1 < $SRC/aufs3-standalone.patch cp -va $SRC/Documentation . cp -va $SRC/fs . cp -va $SRC/include/linux/aufs_type.h ./include/linux cp -va $SRC/include/uapi/linux/aufs_type.h ./include/uapi/linux zcat /proc/config.gz >.config make -j 8 || make || exit 1 make modules || exit 1 make headers_install INSTALL_HDR_PATH=${SLAX_BUNDLE_TARGET}/usr || exit 1 install -dm755 "${SLAX_BUNDLE_TARGET}/usr/lib/modules/${SLAX_BUNDLE_VERSION}" ( cd "${SLAX_BUNDLE_TARGET}/usr/lib/modules/${SLAX_BUNDLE_VERSION}" ln -sf ../../../src/linux-${SLAX_BUNDLE_VERSION} build ) install -D -m644 Makefile \ "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/Makefile" install -D -m644 kernel/Makefile \ "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/kernel/Makefile" install -D -m644 .config \ "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/.config" mkdir -p "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/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} "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/include/" done mkdir -p "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86" cp -a arch/x86/include "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86/" cp Module.symvers "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}" cp -a scripts "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}" chmod og-w -R "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/scripts" mkdir -p "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/.tmp_versions" mkdir -p "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86/kernel" cp arch/x86/Makefile "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86/" cp arch/x86/Makefile_32.cpu "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86/" cp arch/x86/kernel/asm-offsets.s "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/x86/kernel/" chown -R root.root "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}" find "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}" -type d -exec chmod 755 {} \; find "${SLAX_BUNDLE_TARGET}/usr/src/linux-${SLAX_BUNDLE_VERSION}/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 rm -rf "${SLAX_BUNDLE_TARGET}"/usr/src/linux-${SLAX_BUNDLE_VERSION}/arch/{alpha,arc,arm,arm26,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} ( cd ${SLAX_CURRENT_BUILDSCRIPT_DIR}/linux-$VER for FILE in System.map \ $(find . -name "Kconfig*" -type f) \ $(find . -name "Makefile*" -type f) \ $(find . -name "Kbuild*" -type f) \ $(find . -name "*.h" -type f); do mkdir -p ${SLAX_BUNDLE_TARGET}/usr/src/linux-$VER/$(dirname $FILE) cp -af $FILE ${SLAX_BUNDLE_TARGET}/usr/src/linux-$VER/$(dirname $FILE)/$(basename $FILE) done ) rmdir --ignore-fail-on-non-empty "$SLAX_BUNDLE_TARGET"/{etc,bin,sbin,usr/bin,usr/sbin} create_slax_bundle