#!/bin/env beesh # calculate package extra versions and legacy level # - use extraversions to define nvidia extraversion and/or legacy level # - legacy level should be the last part of extraversion # - legacy level 2 to 5 will be calculated from version number.. mxnvversion=${PKGEXTRAVERSION##*_} : ${mxnvversion=current} nvextraversion="${PKGEXTRAVERSION_DASH}" if [ "${mxnvversion:0:6}" = "legacy" -o "${mxnvversion}" = "current" ] ; then nvextraversion="${nvextraversion%_*}" nvextraversion="${nvextraversion#-${mxnvversion}}" else if [ "${PKGVERSION:0:4}" = "340." ] ; then mxnvversion="legacy5" elif [ "${PKGVERSION:0:4}" = "304." ] ; then mxnvversion="legacy4" elif [ "${PKGVERSION:0:7}" = "173.14." ] ; then mxnvversion="legacy3" elif [ "${PKGVERSION:0:6}" = "96.43." ] ; then mxnvversion="legacy2" else mxnvversion="current" fi fi print_info "calculated mxnvversion = '${mxnvversion}'" print_info "calculated nvextraversion = '${nvextraversion}'" NVIDIA_ARCHIVE="NVIDIA-Linux-x86_64-${PKGVERSION}${nvextraversion}.run" SRCURL[0]="https://download.nvidia.com/XFree86/Linux-x86_64/${PKGVERSION}/${NVIDIA_ARCHIVE}" LINUXPKG=${PKGEXTRANAME}.${ARCH} LINUXKLOCALVER=$(beeversion --format "%v.mx64.%r" "${LINUXPKG}") # '4.4.mx64.75' to '4.4.0.mx64.75' if [[ $LINUXKLOCALVER =~ ^([0-9]+\.[0-9]+)(\.mx64.*) ]]; then LINUXKLOCALVER="${BASH_REMATCH[1]}.0${BASH_REMATCH[2]}" fi build_in_sourcedir sourcesubdir_append kernel : ${BEE_TMP_TMPDIR:=/tmp} mee_extract() { LINUXBUILDARCHIVE="${BEE_BUILDARCHIVEDIR}/${LINUXPKG}.beebuild.tar.bz2" print_info "extracting nvidia archive .." start_cmd rmdir ${S} start_cmd sh ${F}/${NVIDIA_ARCHIVE} -x --target ${S} if [ -d "/usr/src/linux/${LINUXPKG}/source" ] ; then LINUXSRCDIR="/usr/src/linux/${LINUXPKG}/source" elif [ -d "${BEE_TMP_TMPDIR}/${LINUXPKG}/source" ] ; then LINUXSRCDIR="${BEE_TMP_TMPDIR}/${LINUXPKG}/source" else print_info "extracting linux build ${LINUXPKG} .." start_cmd gtar -xf "${LINUXBUILDARCHIVE}" -C ${BEE_TMP_TMPDIR} LINUXSRCDIR="${BEE_TMP_TMPDIR}/${LINUXPKG}/source" fi print_info "using kernel sources from ${LINUXSRCDIR} .." } mee_build_pre() { ln -s ${LINUXSRCDIR}/include ${S}/include } mee_build() { start_cmd make SYSSRC=${LINUXSRCDIR} module } mee_install() { mkdir -pv ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION} cp -v *.ko ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${PKGVERSION}/ ln -s ${PKGVERSION} ${D}${DATAROOTDIR}/nvidia/kernel/${LINUXKLOCALVER}/${mxnvversion} }