diff options
| author | Dirk | 2014-02-21 11:16:02 +0100 |
|---|---|---|
| committer | Dirk | 2014-02-21 11:16:02 +0100 |
| commit | 1e30627c5b00884054fae7210d036e34ebe4f181 (patch) | |
| tree | 6d258c5a7a2279881706f38e37921dc4557a0b8d /remote/includes | |
| parent | Setzen des Windows-Namens beim Booten aus Laufwerk B: (diff) | |
| parent | [nvidia_libs] Debug: Checkin für Joey:). (diff) | |
| download | tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.gz tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.xz tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
...
Diffstat (limited to 'remote/includes')
| -rw-r--r-- | remote/includes/distribution.inc | 1 | ||||
| -rw-r--r-- | remote/includes/kernel.inc | 22 | ||||
| -rw-r--r-- | remote/includes/versioncompare.inc | 63 |
3 files changed, 80 insertions, 6 deletions
diff --git a/remote/includes/distribution.inc b/remote/includes/distribution.inc index 64190986..7a7be738 100644 --- a/remote/includes/distribution.inc +++ b/remote/includes/distribution.inc @@ -28,6 +28,7 @@ detect_distribution () { esac # Get version - we mangle this quite a bit. first make sure it has no spaces, then split version at period (.), underscore (_) and dash (-) SYS_VERSION=$(lsb_release -rs | tolower) + SYS_CODENAME=$(lsb_release -c|cut -f 2) # Codename: eg. Ubuntu raring, openSuse: Dartmouth etc. local VERSION=$(echo $SYS_VERSION | sed -r 's/\s//g;s/[\._]/ /g;s/-//g') local STRTMP="" PRINT_SYS_VERSIONS="*.conf.$SYS_DISTRIBUTION" diff --git a/remote/includes/kernel.inc b/remote/includes/kernel.inc index ae5791df..4eef36e5 100644 --- a/remote/includes/kernel.inc +++ b/remote/includes/kernel.inc @@ -13,13 +13,23 @@ # must be given as kernel/fs/nfs/nfs.ko # -# determine kernel version -KERNEL_CURRENT_VERSION=$(uname -r) -[ -z "$KERNEL_CURRENT_VERSION" ] && pwarning "Could not determine kernel version." - # set global KERNEL_TARGET_NAME KERNEL_TARGET_NAME="kernel" +get_kernel_version () { + # determine kernel version currently running on this machine + KERNEL_CURRENT_VERSION=$(uname -r) + [ -z "$KERNEL_CURRENT_VERSION" ] && pwarning "Could not determine kernel version." + # determine kernel version that will be running in the generated system + if [ -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ]; then + SYS_UTS_RELEASE=$(grep 'UTS_RELEASE' "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}') + SYS_KERNEL=$(echo "$SYS_UTS_RELEASE" | grep -o -E '^[0-9\.]+') + else + SYS_UTS_RELEASE="(unknown-not-compiled-yet)" + SYS_KERNEL="$SYS_UTS_RELEASE" + fi +} + check_kernel_build_dir() { [ -d "${MODULES_DIR}/kernel/build" ] && KERNEL_BUILD_DIR="${MODULES_DIR}/kernel/build" \ || perror "No build directory set for the kernel. Was is built?" @@ -89,8 +99,8 @@ copy_kernel_modules() { # generate modules map files # # first strip modules.order of all the modules we don't use - cat "${KERNEL_MODULES_DIR}/modules.order" | grep -E $(echo ${REQUIRED_KERNEL_MODULES} | tr '\ ' '|') \ - >> "${TARGET_BUILD_DIR}/${KERNEL_MODULES_DIR}/modules.order" + cat "${KERNEL_MODULES_DIR}/modules.order" | grep -E "$(echo ${REQUIRED_KERNEL_MODULES} | tr '\ ' '|' | tr '_' '.' | tr '-' '.')" \ + >> "${TARGET_BUILD_DIR}/${KERNEL_MODULES_DIR}/modules.order" # copy list of builtin kernel modules cp "${KERNEL_MODULES_DIR}/modules.builtin" "${TARGET_BUILD_DIR}/${KERNEL_MODULES_DIR}" # with modules.order and modules.builtin, we can run depmod for the rest of the files diff --git a/remote/includes/versioncompare.inc b/remote/includes/versioncompare.inc new file mode 100644 index 00000000..75f59456 --- /dev/null +++ b/remote/includes/versioncompare.inc @@ -0,0 +1,63 @@ + +# From http://stackoverflow.com/a/4025065/2043481 +# Returns 0 when equal, 1 when $1 > $2, 2 otherwise +version_compare () { + if [[ "$1" == "$2" ]]; then + return 0 + fi + local IFS=".-_" + local i ver1=($1) ver2=($2) + # fill empty fields in ver1 with zeros + for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do + ver1[i]=0 + done + for ((i=0; i<${#ver1[@]}; i++)); do + if [[ -z "${ver2[i]}" ]]; then + # fill empty fields in ver2 with zeros + ver2[i]=0 + fi + if ((10#${ver1[i]} > 10#${ver2[i]})); then + return 1 + fi + if ((10#${ver1[i]} < 10#${ver2[i]})); then + return 2 + fi + done + return 0 +} + +version_ge () { + version_compare "$1" "$2" + local RET=$? + [ "$RET" == "2" ] && return 1 + return 0 +} + +version_le () { + version_compare "$1" "$2" + local RET=$? + [ "$RET" == "1" ] && return 1 + return 0 +} + +version_gt () { + version_compare "$1" "$2" + local RET=$? + [ "$RET" == "1" ] && return 0 + return 1 +} + +version_lt () { + version_compare "$1" "$2" + local RET=$? + [ "$RET" == "2" ] && return 0 + return 1 +} + +version_eq () { + version_compare "$1" "$2" + return $? +} + +version_eq "1.0" "1" && ! version_eq "1.0" "1.1" && version_ge "1.1" "1.0" + |
