summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2015-01-20 17:31:03 +0100
committerJose <jose@zeroc.com>2015-01-20 17:31:03 +0100
commit7a49b8830a3f91c57b92b10bb1b5d206693bda2f (patch)
tree95cbee6f99cec4a12b200dedc94237db341a2d85
parentUpdated the Objective-C to generate Slice local interfaces and classes (diff)
downloadice-7a49b8830a3f91c57b92b10bb1b5d206693bda2f.tar.bz2
ice-7a49b8830a3f91c57b92b10bb1b5d206693bda2f.tar.xz
ice-7a49b8830a3f91c57b92b10bb1b5d206693bda2f.zip
Fixed (ICE-5957) - Freeze/backup demo doesn't work with multiarch dists
-rwxr-xr-xcpp/allDemos.py8
-rw-r--r--demoscript/Util.py18
2 files changed, 22 insertions, 4 deletions
diff --git a/cpp/allDemos.py b/cpp/allDemos.py
index e45bb73e37a..69dcd963bb6 100755
--- a/cpp/allDemos.py
+++ b/cpp/allDemos.py
@@ -72,11 +72,11 @@ demos = [
"Manual/lifecycle"]
#
-# Freeze backup doesn't work on x86 multiarch because it require to
-# use x86 db tools that are currently not available for x64
-# distributions.
+# Freeze backup doesn't work on x86 multiarch because it require to use x86 db tools that are
+# currently not available for x64 distributions.
#
-if not "--x86" in sys.argv:
+if not (Util.isLinux64() and
+ Util.isLinux32BitExe(os.path.join(os.path.dirname(os.path.abspath(__file__)), "demo/Freeze/backup/client"))):
demos += ["Freeze/backup"]
if not "--c++11" in sys.argv and not "--x86" in sys.argv:
diff --git a/demoscript/Util.py b/demoscript/Util.py
index 88767def2a9..0bdb0dccb0b 100644
--- a/demoscript/Util.py
+++ b/demoscript/Util.py
@@ -409,6 +409,24 @@ def isRhel():
def isSles():
return isLinux() and linuxDistribution and linuxDistribution == "SUSE LINUX"
+def isLinux64():
+ if not isLinux():
+ False
+ p = subprocess.Popen("uname -m", shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
+ if(p.wait() != 0):
+ print("uname command failed:\n" + p.stdout.read().strip())
+ sys.exit(1)
+ return p.stdout.readline().decode('UTF-8').strip() == "x86_64"
+
+def isLinux32BitExe(f):
+ if not isLinux() or not os.path.isfile(f):
+ return False
+ p = subprocess.Popen("file %s" % f, shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
+ if(p.wait() != 0):
+ print("file command failed:\n" + p.stdout.read().strip())
+ sys.exit(1)
+ return p.stdout.readline().decode('UTF-8').strip().find("ELF 32-bit") != -1
+
def getWinRegistryKeyValue(key, subKey):
import winreg
try: