summaryrefslogtreecommitdiffstats
path: root/remote/includes
diff options
context:
space:
mode:
authorDirk2014-02-21 11:16:02 +0100
committerDirk2014-02-21 11:16:02 +0100
commit1e30627c5b00884054fae7210d036e34ebe4f181 (patch)
tree6d258c5a7a2279881706f38e37921dc4557a0b8d /remote/includes
parentSetzen des Windows-Namens beim Booten aus Laufwerk B: (diff)
parent[nvidia_libs] Debug: Checkin für Joey:). (diff)
downloadtm-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.inc1
-rw-r--r--remote/includes/kernel.inc22
-rw-r--r--remote/includes/versioncompare.inc63
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"
+