summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2021-04-28 11:48:48 +0200
committerJonathan Bauer2021-04-28 11:48:48 +0200
commit383ff737ff8ad5c27d18528c34ce08e1def1b36a (patch)
treea6b9159e625f424a320b5d7c2a1aa32f75281575
parentMerge branch 'master' into installer (diff)
parent[kernel-vanilla] Improve aufs patch selection again (diff)
downloadmltk-383ff737ff8ad5c27d18528c34ce08e1def1b36a.tar.gz
mltk-383ff737ff8ad5c27d18528c34ce08e1def1b36a.tar.xz
mltk-383ff737ff8ad5c27d18528c34ce08e1def1b36a.zip
Merge branch 'master' into installer
-rw-r--r--core/modules/kernel-vanilla/module.build30
-rw-r--r--core/modules/kernel-vanilla/module.conf2
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/pam/hooks/auth-final-exec.d/99-pwdaemon-fallback.sh9
-rw-r--r--core/modules/run-virt/data/opt/openslx/pam/hooks/auth-slx-source.d/99-run_virt_credentials11
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc2
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc15
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc7
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc22
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer10
-rw-r--r--core/modules/run-virt/pw_daemon.c3
-rw-r--r--core/modules/vbox-src/module.conf2
-rw-r--r--core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc38
-rw-r--r--core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc28
-rw-r--r--core/modules/vmware16/module.conf2
-rw-r--r--core/modules/xscreensaver/module.conf5
15 files changed, 132 insertions, 54 deletions
diff --git a/core/modules/kernel-vanilla/module.build b/core/modules/kernel-vanilla/module.build
index 4954ac35..320e7b6b 100644
--- a/core/modules/kernel-vanilla/module.build
+++ b/core/modules/kernel-vanilla/module.build
@@ -54,6 +54,7 @@ fetch_source() {
git apply < "$patch" || perror "Could not apply $patch"
echo "$patch" >> "patches-done"
done
+ sed -i 's/batch_add(&cmds, 0xffff0000);/batch_add(\&cmds, 0xffff0000 | ((IS_IVB_GT1(i915) || IS_VALLEYVIEW(i915)) ? HIZ_RAW_STALL_OPT_DISABLE : 0));/' "drivers/gpu/drm/i915/gt/gen7_renderclear.c" || perror "Could not patch Ivybridge/Baytrail graphics."
cd -
# remember the current kernel version
echo "${SYSTEM_KERNEL_LONG}" > ksrc/KVERSION
@@ -159,6 +160,7 @@ patch_aufs() {
git clone "git://aufs.git.sourceforge.net/gitroot/aufs/${AUFS}-standalone.git" || perror "Cloning ${AUFS} failed."
else
git clone "git://github.com/sfjro/${AUFS}-standalone.git" || perror "Cloning ${AUFS} failed."
+ #git clone "git://github.com/bnied/${AUFS}-standalone.git" || perror "Cloning ${AUFS} failed."
fi
# get the needed version
cde "${MODULE_WORK_DIR}/${AUFS}-standalone"
@@ -168,16 +170,26 @@ patch_aufs() {
if [ -z "$major" ] || [ -z "$minor" ]; then
perror "REQUIRED_KERNEL not in properly set, this should not happen!"
fi
- local NEEDED_BRANCH="aufs${major}.${minor}"
- local testvar
- while [ "${patch}" -gt 0 ]; do
- for testvar in "${branches[@]}"; do
- if [ "$testvar" = "${NEEDED_BRANCH}.${patch}" ] || [ "$testvar" = "${NEEDED_BRANCH}.${patch}+" ]; then
- NEEDED_BRANCH="$testvar"
- break 2
- fi
+ local testvar outer NEEDED_BRANCH
+ while (( minor >= 0 )); do
+ NEEDED_BRANCH="aufs${major}.${minor}"
+ outer=false
+ while (( patch > 0 )); do
+ for testvar in "${branches[@]}"; do
+ if [ "$testvar" = "${NEEDED_BRANCH}.${patch}" ] || [ "$testvar" = "${NEEDED_BRANCH}.${patch}+" ]; then
+ NEEDED_BRANCH="$testvar"
+ break 3
+ elif [ "$testvar" = "${NEEDED_BRANCH}" ]; then
+ outer=true
+ fi
+ done
+ (( patch-- ))
done
- patch=$(( patch - 1 ))
+ $outer && break
+ if (( patch == 0 )); then
+ patch=500
+ (( minor-- ))
+ fi
done
pinfo "Getting branch origin/$NEEDED_BRANCH"
git checkout "origin/$NEEDED_BRANCH" || git checkout "origin/${AUFS}.x-rcN" || perror "Could not checkout needed branch."
diff --git a/core/modules/kernel-vanilla/module.conf b/core/modules/kernel-vanilla/module.conf
index 2bae7757..62ece1a4 100644
--- a/core/modules/kernel-vanilla/module.conf
+++ b/core/modules/kernel-vanilla/module.conf
@@ -2,5 +2,5 @@
REQUIRED_BINARIES=""
REQUIRED_LIBRARIES=""
REQUIRED_DIRECTORIES=""
-REQUIRED_KERNEL="5.4.54"
+REQUIRED_KERNEL="5.10.32"
REQUIRED_GIT="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"
diff --git a/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-final-exec.d/99-pwdaemon-fallback.sh b/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-final-exec.d/99-pwdaemon-fallback.sh
index e1347e41..6f86e0f8 100755
--- a/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-final-exec.d/99-pwdaemon-fallback.sh
+++ b/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-final-exec.d/99-pwdaemon-fallback.sh
@@ -1,5 +1,12 @@
#!/bin/ash
-USERNAME="${PAM_USER}" PASSWORD="${USER_PASSWORD}" PWSOCKET="${TEMP_HOME_DIR}/.pwsocket" pwdaemon --daemon "${USER_UID}"
+[ -z "${SLX_PXE_CLIENT_IP}${SLX_KCL_SERVERS}" ] && . /opt/openslx/config
+
+# Allow querying PW via UNIX Socket?
+pw=0
+[ "$SLX_PRINT_REUSE_PASSWORD" = "yes" ] && pw=1
+
+USERNAME="${PAM_USER}" PASSWORD="${USER_PASSWORD}" PWSOCKET="${TEMP_HOME_DIR}/.pwsocket" \
+ LOCAL_PW="$pw" pwdaemon --daemon "${USER_UID}"
exit 0
diff --git a/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-slx-source.d/99-run_virt_credentials b/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-slx-source.d/99-run_virt_credentials
index 613c66ca..4611c461 100644
--- a/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-slx-source.d/99-run_virt_credentials
+++ b/core/modules/run-virt/data/opt/openslx/pam/hooks/auth-slx-source.d/99-run_virt_credentials
@@ -64,8 +64,15 @@ if [ -n "$TEMP_HOME_DIR" ]; then
fi
fi
fi
- [ -n "$XDOMAIN" ] && XDOMAIN="$(echo "$XDOMAIN" | tr '[a-z]' '[A-Z]')\\"
- USERNAME="${XDOMAIN}${XUSER}" PASSWORD="$PAM_AUTHTOK" PWSOCKET="${TEMP_HOME_DIR}/.pwsocket" pwdaemon --daemon "${USER_UID}"
+ [ -n "$XDOMAIN" ] && XDOMAIN="$(echo "$XDOMAIN" | tr 'a-z' 'A-Z')\\"
+
+ [ -z "${SLX_PXE_CLIENT_IP}${SLX_KCL_SERVERS}" ] && . /opt/openslx/config
+ # Allow querying password via UNIX Socket?
+ pw=0
+ [ "$SLX_PRINT_REUSE_PASSWORD" = "yes" ] && pw=1
+
+ USERNAME="${XDOMAIN}${XUSER}" PASSWORD="$PAM_AUTHTOK" PWSOCKET="${TEMP_HOME_DIR}/.pwsocket" \
+ LOCAL_PW="$pw" pwdaemon --daemon "${USER_UID}"
unset XUSER XDOMAIN
fi
fi
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
index d6ddfbd0..9dd30845 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
@@ -34,6 +34,8 @@ MOUNTCIFSPRAE="-v -t cifs -o "
MOUNTCIFSOPTS="uid=$(id --user "$LOCALUSER"),gid=$(id --group "$LOCALUSER"),forceuid,forcegid,file_mode=0700,dir_mode=0700,nobrl,noacl"
MOUNTNFSPRAE="-v -t nfs4 -o "
MOUNTNFSOPTS="rw,nosuid,nodev,nolock,intr,hard,sloppy"
+MOUNTDAVPRAE="-t davfs -o "
+MOUNTDAVOPTS="uid=$(id --user "$LOCALUSER"),gid=$(id --group "$LOCALUSER")"
NATADDR=$(head -n 1 "$CONFIGFILE" | cut -f 1 -d$'\t')
PORT=$(head -n 1 "$CONFIGFILE" | cut -f 2 -d$'\t')
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
index e080d278..c7db1971 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
@@ -69,6 +69,19 @@ function mounter()
done
[ "$AUSGANG" -eq 0 ] && logger "openslx sharemapper: ${SHAREPATH} mounted to ${MOUNTDIR} (cifs $VERSION)."
;;
+ dav) AUSGANG=0
+ x=2
+ while ! echo -e "${USER}\n${PASSWD}" | mount $MOUNTPARAM "$MOUNTOPTS" "$SHAREPATH" "$MOUNTDIR" 2>/dev/null 1>&2; do
+ logger "openslx sharemapper: could not mount ${SHAREPATH} to ${MOUNTDIR}, waited another $x seconds, retrying."
+ sleep x
+ if [ "$x" -gt 4 ]; then
+ AUSGANG=1
+ logger "openslx sharemapper: timeout, could not mount ${SHAREPATH} to ${MOUNTDIR}. mount.davfs installed?"
+ break
+ fi
+ let x=x+2
+ done
+ ;;
*) logger "openslx sharemapper: unknown mounter ${MOUNTER}!"
;;
esac
@@ -103,7 +116,7 @@ function mount_share()
ERR=$? # ERR merken wg. Links aus USERSHAREDIR
if [ "$ERR" -eq 1 ]; then
logger "openslx sharemapper: Could not mount ${USERSHAREDIR} even using user credentials; giving up."
- echo "Konnte Laufwerk ${SHAREPATH} nicht einhängen." >> "$USERLOGFILE"
+ echo "Konnte Laufwerk ${SHAREPATH} nicht einhängen. mount.cifs / mount.davfs installiert?" >> "$USERLOGFILE"
fi
unset USER
unset PASSWD
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
index c5d37105..c6bdc8c9 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
@@ -9,7 +9,12 @@ function mount_shares()
SHAREPASS=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 5 -d$'\t') # User-PW, bei Userhome nicht vorhanden
# Sharetyp bestimmen:
- if [ "${SHAREPATH:0:2}" == '\\' ] || [ "${SHAREPATH:0:2}" == '//' ]; then
+ if [ "${SHAREPATH:0:4}" == 'http' ]; then
+ SHAREPATH="${SHAREPATH//\\//}" # shouldn't be needed, but who knows what windows users do...
+ MOUNTER=dav
+ MOUNTPARAM="$MOUNTDAVPRAE"
+ MOUNTOPTS="$MOUNTDAVOPTS"
+ elif [ "${SHAREPATH:0:2}" == '\\' ] || [ "${SHAREPATH:0:2}" == '//' ]; then
USER=$(echo "$SHAREUSER"|cut -d '\' -f 2)
SHAREPATH="${SHAREPATH//\\//}" # '\' --> `/` :-)
MOUNTER=cifs
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc
index e161b961..a4c080d2 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc
@@ -1,12 +1,22 @@
umount_home() {
- umount /home/"${LOCALUSER}"/PERSISTENT && logger "openslx unmounter: umounted home (PERSISTENT)." \
- || logger "openslx unmounter: could not home (PERSISTENT)!"
+ umount "${USERHOMEDIR}" && logger "openslx umounter: umounted home (${USERHOMEDIR})." \
+ || logger "openslx umounter: could not home(${USERHOMEDIR})!"
}
umount_shares() {
- index=0
- for SHARE in $( mount | grep SHARE | tr -s ' ' | cut -f 3 -d " " ); do
- umount "${SHARE}" && logger "openslx unmounter: umounted ${SHARE}." \
- || logger "openslx unmounter: could not umount ${SHARE}!"
+ get_shares # fills array ROHSHARES; row 0 global infos from (shares-)CONFIGFILE,
+
+ for (( CONFIGROW = 2; CONFIGROW < ${#ROHSHARES[@]}; CONFIGROW++ )); do # row 1 always home, so forget...
+ SHAREPATH=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 1 -d$'\t') # Could be a webdav share...
+ SHARENAME=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 3 -d$'\t' | sed 's/ /_/g')
+ [ -z "${SHARENAME}" ] && SHARENAME=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 2 -d$'\t' | sed 's/://g') # yields SHARELETTER
+
+ if [ "${SHAREPATH:0:4}" == 'http' ]; then
+ fusermount -u "${USERHOME}/${SHARENAME}" && logger "openslx umounter: umounted ${SHARENAME}. (webdav)" \
+ || logger "openslx umounter: could not umount ${SHARENAME}! (webdav)"
+ else
+ umount "${USERHOME}/${SHARENAME}" && logger "openslx umounter: umounted ${SHARE}." \
+ || logger "openslx umounter: could not umount ${SHARE}!"
+ fi
done
}
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
index 91f5b6d2..7bf44730 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/vm_installer
@@ -75,7 +75,6 @@ case $(${PS} --pid 1 -o comm h) in
[Unit]
Description=openSLX umount utility
Before=shutdown.target
- Requires=${SERVICEDISKMOUNT}
DefaultDependencies=no
[Service]
@@ -88,9 +87,16 @@ case $(${PS} --pid 1 -o comm h) in
[ ! -d "$SERVICEDIR"/"${TARGET}".wants ] && mkdir "$SERVICEDIR"/"${TARGET}".wants 2>/dev/null
[ ! -d "$SERVICEDIR"/shutdown.target.wants ] && mkdir "$SERVICEDIR"/shutdown.target.wants 2>/dev/null
-
+ # some distr. eg. Suse seem to want these:
+ # [ ! -d "$SERVICEDIR"/reboot.target.wants ] && mkdir "$SERVICEDIR"/reboot.target.wants 2>/dev/null
+ # [ ! -d "$SERVICEDIR"/halt.target.wants ] && mkdir "$SERVICEDIR"/halt.target.wants 2>/dev/null
+
ln -s "${SERVICEDIR}"/"${SERVICEUTIL}" "$SERVICEDIR"/"${TARGET}".wants/"${SERVICEUTIL}"
ln -s "${SERVICEDIR}"/"${SERVICEUMOUNT}" "$SERVICEDIR"/shutdown.target.wants/"${SERVICEUMOUNT}"
+ # ln -s "${SERVICEDIR}"/"${SERVICEUMOUNT}" "$SERVICEDIR"/reboot.target.wants/"${SERVICEUMOUNT}"
+ # ln -s "${SERVICEDIR}"/"${SERVICEUMOUNT}" "$SERVICEDIR"/halt.target.wants/"${SERVICEUMOUNT}"
+
+
echo "openslx praeinstaller: doing systemd reload."
systemctl daemon-reload
diff --git a/core/modules/run-virt/pw_daemon.c b/core/modules/run-virt/pw_daemon.c
index 0c9508a3..f25ffffc 100644
--- a/core/modules/run-virt/pw_daemon.c
+++ b/core/modules/run-virt/pw_daemon.c
@@ -149,7 +149,10 @@ static int mode_daemon(const uid_t uidNumber)
const char *envuser = getenv("USERNAME");
volatile char *envpass = getenv("PASSWORD");
const char *pwsocket = getenv("PWSOCKET");
+ const char *localstr = getenv("LOCAL_PW");
+ int allowLocal = localstr != NULL && atoi(localstr);
gid_t gidNumber = 65534;
+
memset(&addr, 0, sizeof(addr));
memset(&sig, 0, sizeof(sig));
if (envuser == NULL) {
diff --git a/core/modules/vbox-src/module.conf b/core/modules/vbox-src/module.conf
index 989b16cd..28b6efc2 100644
--- a/core/modules/vbox-src/module.conf
+++ b/core/modules/vbox-src/module.conf
@@ -1,5 +1,5 @@
REQUIRED_MODULES="kernel"
-REQUIRED_VBOX_VERSION="6.1.16"
+REQUIRED_VBOX_VERSION="6.1.20"
REQUIRED_DIRECTORIES="
/lib/modules
/usr/lib/virtualbox
diff --git a/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc b/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc
index b7c59819..f63a9ba1 100644
--- a/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc
+++ b/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc
@@ -67,7 +67,7 @@ set_vm_hardware_limits() {
;;
winnet*64|win*2003*64|windowsnet*64)
VM_OS_TYPE="winnetstandard-64"
- MAXMEM="8000"
+ MAXMEM="16000"
MAXCORES="8"
;;
winnet*|win*2003*|windowsnet*)
@@ -97,18 +97,18 @@ set_vm_hardware_limits() {
;;
windows7-64)
VM_OS_TYPE="windows7-64"
- MAXMEM="32000"
+ MAXMEM="64000"
MAXCORES="8"
;;
windows8-64)
VM_OS_TYPE="windows8-64"
- MAXMEM="32000"
- MAXCORES="8"
+ MAXMEM="128000"
+ MAXCORES="256"
;;
windows9-64)
VM_OS_TYPE="windows9-64"
- MAXMEM="64000"
- MAXCORES="8"
+ MAXMEM="512000"
+ MAXCORES="256"
;;
winvista)
VM_OS_TYPE="winvista"
@@ -121,22 +121,20 @@ set_vm_hardware_limits() {
MAXCORES="4"
;;
windows8)
- VM_OS_TYPE="windows8"
MAXMEM="8000"
- MAXCORES="4"
+ MAXCORES="32"
;;
windows9)
- VM_OS_TYPE="windows9"
MAXMEM="8000"
- MAXCORES="4"
+ MAXCORES="32"
;;
win*64)
- MAXMEM="16000"
- MAXCORES="4"
+ MAXMEM="32000"
+ MAXCORES="32"
;;
win*)
MAXMEM="8000"
- MAXCORES="1"
+ MAXCORES="32"
;;
dos|msdos*|ms-dos*)
VM_OS_TYPE="dos"
@@ -147,25 +145,24 @@ set_vm_hardware_limits() {
macos*64)
VM_OS_TYPE="freebsd-64"
MAXMEM="4000"
- MAXCORES="2"
+ MAXCORES="8"
;;
macos*)
VM_OS_TYPE="freebsd"
MAXMEM="4000"
- MAXCORES="1"
+ MAXCORES="4"
;;
beos*)
VM_OS_TYPE="other"
SHARED_FOLDERS="FALSE"
+ MAXCORES="16"
;;
# Unknown guestOS setting in .xml - this encompasses linux too,
# as there is a multitude of different distributions. Perhaps further
# action will be needed if this leads to problems with exotic OSs.
*64)
- VM_OS_TYPE="other-64"
- # SHARED_FOLDERS="FALSE"
MAXMEM="123456"
- MAXCORES="4"
+ MAXCORES="64"
;;
*)
VM_OS_TYPE="other"
@@ -177,7 +174,10 @@ set_vm_hardware_limits() {
declare -g CPU_CORES="${HW_THREADS:-1}"
declare -rg HOST_CORE_COUNT="$CPU_CORES"
- [ "$CPU_CORES" -gt "$MAXCORES" ] && CPU_CORES="$MAXCORES"
+ if (( CPU_CORES > MAXCORES )); then
+ writelog "Limiting vCPU count from $CPU_CORES to $MAXCORES because of guest OS"
+ CPU_CORES="$MAXCORES"
+ fi
# It currently makes no sense to set the virtual number of cores
# to a different value than the virtual number of cores per virtual CPU.
diff --git a/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc b/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc
index 87f4ff2e..4c62bb38 100644
--- a/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc
+++ b/core/modules/vmware-common/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc
@@ -136,6 +136,20 @@ setup_serial() {
# CPU and RAM
setup_vcpu_ram() {
#writelog "numvcpus = ${CPU_CORES} - maxvcpus=${HOST_CORE_COUNT}"
+ if (( VM_HW_VERSION < 18 && CPU_CORES > 16 )); then
+ writelog "Limiting VM to 16 cores since hwVersion < 18"
+ CPU_CORES=16
+ elif (( CPU_CORES > 32 )); then
+ writelog "Limiting VM to 32 cores since it's the current maximum VMware supports"
+ CPU_CORES=32
+ fi
+ if (( VM_HW_VERSION < 18 && VM_MEM > 65536 )); then
+ writelog "Limiting VM to 64GB since hwVersion < 18"
+ VM_MEM=65536
+ elif (( VM_MEM > 131072 )); then
+ writelog "Limiting VM to 128GB since it's the current maximum VMware supports"
+ VM_MEM=131072
+ fi
cat >> "${TMPCONFIG}" <<-HEREEND
numvcpus = "$CPU_CORES"
cpuid.coresPerSocket = "$VM_CORES_PER_SOCKET"
@@ -267,13 +281,6 @@ setup_graphics() {
}
finalize_hardware() {
- # Apply $maxhardwareversion to final VMX
- if notempty VM_HW_VERSION && [ "$VM_HW_VERSION" -gt "$maxhardwareversion" ]; then
- writelog "Hardware version capped to $maxhardwareversion (was $VM_HW_VERSION)"
- sed -i 's/^virtualHW\.version.*$/virtualHW.version = "'$maxhardwareversion'"/I' "${TMPCONFIG}"
- VM_HW_VERSION="$maxhardwareversion"
- fi
-
# Enable nested virtualization if not specified in remote vmx
if [ -e "/run/hwinfo" ] && ! grep -qi '^vhv\.enable' "${TMPCONFIG}" \
&& detect_cpu_flag "ept" "npt" \
@@ -297,6 +304,13 @@ finalize_hardware() {
## MAIN ##
write_final_vmx() {
+ # Apply $maxhardwareversion to final VMX
+ if notempty VM_HW_VERSION && [ "$VM_HW_VERSION" -gt "$maxhardwareversion" ]; then
+ writelog "Hardware version capped to $maxhardwareversion (was $VM_HW_VERSION)"
+ sed -i 's/^virtualHW\.version.*$/virtualHW.version = "'$maxhardwareversion'"/I' "${TMPCONFIG}"
+ VM_HW_VERSION="$maxhardwareversion"
+ fi
+
replace_placeholders
setup_ethernet
setup_optical_drives
diff --git a/core/modules/vmware16/module.conf b/core/modules/vmware16/module.conf
index d9db93f1..43d40a36 100644
--- a/core/modules/vmware16/module.conf
+++ b/core/modules/vmware16/module.conf
@@ -1,5 +1,5 @@
#!/bin/bash
-REQUIRED_VERSION="16.1.0"
+REQUIRED_VERSION="16.1.1"
REQUIRED_TYPE="workstation"
REQUIRED_MODULES="kernel vmware-common"
REQUIRED_DIRECTORIES="
diff --git a/core/modules/xscreensaver/module.conf b/core/modules/xscreensaver/module.conf
index 84d3ff24..cc67a903 100644
--- a/core/modules/xscreensaver/module.conf
+++ b/core/modules/xscreensaver/module.conf
@@ -2,15 +2,14 @@
REQUIRED_MODULES="
qt5core
"
+# Switch back to branch "openslx" once 6.x is fixed
REQUIRED_GIT="
- git://git.openslx.org/openslx-ng/xscreensaver.git|openslx
+ git://git.openslx.org/openslx-ng/xscreensaver.git||bfe7aeb88fac24b
git://git.openslx.org/openslx-ng/bwlp-screensaver.git
"
REQUIRED_PREFIX="/opt/openslx/bin"
REQUIRED_BINARIES="
xscreensaver
- xscreensaver-auth
xscreensaver-command
- xscreensaver-gfx
bwlp-screensaver
"