summaryrefslogtreecommitdiffstats
path: root/debian/sse4.2-support.preinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/sse4.2-support.preinst')
-rw-r--r--debian/sse4.2-support.preinst50
1 files changed, 50 insertions, 0 deletions
diff --git a/debian/sse4.2-support.preinst b/debian/sse4.2-support.preinst
new file mode 100644
index 0000000..b74cba7
--- /dev/null
+++ b/debian/sse4.2-support.preinst
@@ -0,0 +1,50 @@
+#!/bin/sh
+set -e
+
+if [ "$1" = install ] || [ "$1" = upgrade ]; then
+ FILE="/usr/libexec/x86_64-linux-gnu/isa-support/test-SSE4.2"
+ # "exec >;command" instead of "command >" looks strange but regular
+ # redirections don't fully work within qemu-user.
+ ret=0;(exec >/dev/null 2>&1; "$FILE") || ret=$?
+ if [ $ret -ne 0 ] && [ -n "$IGNORE_ISA" ]; then
+ cat >&2 <<END
+This machine doesn't support SSE4.2, but override (IGNORE_ISA) is enabled.
+Continuing...
+END
+ ret=0
+ fi
+
+ if [ $ret -eq 126 ]; then
+ cat >&2 <<END
+Couldn't execute test binary for SSE4.2, you either do foreign multi-arch
+without qemu or do something strange. Assuming you know what you're doing.
+Continuing...
+END
+ ret=0
+ fi
+
+ if [ $ret -ne 0 ]; then
+ # Fail noisily, first via debconf (if installed).
+ if [ -e /usr/share/debconf/confmodule ]; then
+
+ . /usr/share/debconf/confmodule
+ db_version 2.0
+
+ db_fset SSE4.2-support/fail seen false ||:
+ db_reset SSE4.2-support/fail ||:
+ db_input critical SSE4.2-support/fail ||:
+ db_go ||:
+ db_stop ||:
+ fi
+
+ cat >&2 <<END
+This machine doesn't support SSE4.2, sorry.
+Aborting.
+END
+ exit 2
+ fi
+fi
+
+#DEBHELPER#
+
+exit 0