├── src ├── eltechs-deb │ ├── arch-linux │ │ ├── debian-binary │ │ ├── control │ │ │ ├── conffiles │ │ │ ├── postrm │ │ │ ├── prerm │ │ │ ├── control │ │ │ ├── postinst │ │ │ ├── md5sums │ │ │ └── preinst │ │ └── data │ │ │ ├── opt │ │ │ └── exagear │ │ │ │ ├── bin │ │ │ │ ├── actool │ │ │ │ ├── ubt_x32a32_al │ │ │ │ ├── ubt_wrapper_suid │ │ │ │ └── ubt_wrapper │ │ │ │ └── share │ │ │ │ └── doc │ │ │ │ ├── user-guide.pdf │ │ │ │ └── licenses │ │ │ │ └── EULA │ │ │ ├── etc │ │ │ ├── exagear-activation.conf │ │ │ ├── sysctl.d │ │ │ │ └── 10-inotify.conf │ │ │ ├── binfmt-x86.conf │ │ │ └── init.d │ │ │ │ └── exagear │ │ │ └── usr │ │ │ ├── share │ │ │ └── applications │ │ │ │ └── exagear.desktop │ │ │ └── bin │ │ │ ├── exagear-ls │ │ │ └── exagear │ └── original │ │ ├── debian-binary │ │ ├── data │ │ ├── opt │ │ │ └── exagear │ │ │ │ ├── bin │ │ │ │ ├── ubt_wrapper_suid │ │ │ │ ├── actool │ │ │ │ ├── ubt_x32a32_al │ │ │ │ └── ubt_wrapper │ │ │ │ └── share │ │ │ │ └── doc │ │ │ │ ├── user-guide.pdf │ │ │ │ └── licenses │ │ │ │ └── EULA │ │ ├── etc │ │ │ ├── exagear-activation.conf │ │ │ ├── sysctl.d │ │ │ │ └── 10-inotify.conf │ │ │ ├── binfmt-x86.conf │ │ │ └── init.d │ │ │ │ └── exagear │ │ └── usr │ │ │ ├── share │ │ │ └── applications │ │ │ │ └── exagear.desktop │ │ │ └── bin │ │ │ ├── exagear-ls │ │ │ └── exagear │ │ └── control │ │ ├── conffiles │ │ ├── postrm │ │ ├── prerm │ │ ├── control │ │ ├── postinst │ │ ├── md5sums │ │ └── preinst └── ubuntu-deb │ ├── arch-linux │ ├── debian-binary │ └── control │ │ ├── conffiles │ │ ├── control │ │ ├── preinst │ │ ├── postrm │ │ ├── prerm │ │ └── postinst │ └── original │ ├── debian-binary │ └── control │ ├── conffiles │ ├── preinst │ ├── control │ ├── postrm │ ├── prerm │ └── postinst ├── bin ├── pack-deb ├── unpack-deb ├── install-on-archlinux └── install-exagear-orig └── README.md /src/eltechs-deb/arch-linux/debian-binary: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/debian-binary: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/debian-binary: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/debian-binary: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/bin/ubt_wrapper_suid: -------------------------------------------------------------------------------- 1 | ubt_x32a32_al -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/conffiles: -------------------------------------------------------------------------------- 1 | /etc/init.d/exagear-guest-ubuntu-1604 2 | /etc/exagear-guest-ubuntu-1604.conf 3 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/conffiles: -------------------------------------------------------------------------------- 1 | /etc/init.d/exagear-guest-ubuntu-1604 2 | /etc/exagear-guest-ubuntu-1604.conf 3 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/conffiles: -------------------------------------------------------------------------------- 1 | /etc/sysctl.d/10-inotify.conf 2 | /etc/binfmt-x86.conf 3 | /etc/init.d/exagear 4 | /etc/exagear-activation.conf 5 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/bin/actool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/original/data/opt/exagear/bin/actool -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/conffiles: -------------------------------------------------------------------------------- 1 | /etc/sysctl.d/10-inotify.conf 2 | /etc/binfmt-x86.conf 3 | /etc/init.d/exagear 4 | /etc/exagear-activation.conf 5 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/bin/actool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/arch-linux/data/opt/exagear/bin/actool -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/bin/ubt_x32a32_al: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/arch-linux/data/opt/exagear/bin/ubt_x32a32_al -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/etc/exagear-activation.conf: -------------------------------------------------------------------------------- 1 | primary=http://activation.eltechs.com/cl/activation/ 2 | secondary=http://activation.eltechs.com/cl/activation/ 3 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/bin/ubt_x32a32_al: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/original/data/opt/exagear/bin/ubt_x32a32_al -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/etc/exagear-activation.conf: -------------------------------------------------------------------------------- 1 | primary=http://activation.eltechs.com/cl/activation/ 2 | secondary=http://activation.eltechs.com/cl/activation/ 3 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/bin/ubt_wrapper_suid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/arch-linux/data/opt/exagear/bin/ubt_wrapper_suid -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/share/doc/user-guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/original/data/opt/exagear/share/doc/user-guide.pdf -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/share/doc/user-guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skilbjo/exagear/HEAD/src/eltechs-deb/arch-linux/data/opt/exagear/share/doc/user-guide.pdf -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | # Automatically added by dh_installinit 4 | if [ "$1" = "purge" ] ; then 5 | update-rc.d exagear remove >/dev/null 6 | fi 7 | # End automatically added section 8 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | # Automatically added by dh_installinit 4 | if [ "$1" = "purge" ] ; then 5 | update-rc.d exagear remove >/dev/null 6 | fi 7 | # End automatically added section 8 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Automatically added by dh_installinit 4 | if [ -x "/etc/init.d/exagear" ]; then 5 | invoke-rc.d exagear stop || exit $? 6 | fi 7 | # End automatically added section 8 | 9 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Automatically added by dh_installinit 4 | if [ -x "/etc/init.d/exagear" ]; then 5 | invoke-rc.d exagear stop || exit $? 6 | fi 7 | # End automatically added section 8 | 9 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/etc/sysctl.d/10-inotify.conf: -------------------------------------------------------------------------------- 1 | # Under ExaGear it is possible to get inotify events that are 2 | # generated by ExaGear itself (not by a guest application). 3 | # Some valid usage patterns of inotify in guest application may 4 | # require increased capacity of inotify message buffers. 5 | fs.inotify.max_queued_events = 131072 6 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/etc/sysctl.d/10-inotify.conf: -------------------------------------------------------------------------------- 1 | # Under ExaGear it is possible to get inotify events that are 2 | # generated by ExaGear itself (not by a guest application). 3 | # Some valid usage patterns of inotify in guest application may 4 | # require increased capacity of inotify message buffers. 5 | fs.inotify.max_queued_events = 131072 6 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/usr/share/applications/exagear.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=ExaGear 3 | GenericName=ExaGear Desktop 4 | Comment=ExaGear Desktop 5 | Exec=/etc/alternatives/x-terminal-emulator -e /usr/bin/exagear 6 | Icon=exagear 7 | StartupNotify=true 8 | Terminal=false 9 | Type=Application 10 | Categories=System 11 | Vendor=Eltechs 12 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/usr/share/applications/exagear.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=ExaGear 3 | GenericName=ExaGear Desktop 4 | Comment=ExaGear Desktop 5 | Exec=/etc/alternatives/x-terminal-emulator -e /usr/bin/exagear 6 | Icon=exagear 7 | StartupNotify=true 8 | Terminal=false 9 | Type=Application 10 | Categories=System 11 | Vendor=Eltechs 12 | -------------------------------------------------------------------------------- /bin/pack-deb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eou pipefail 3 | 4 | echo "sample deb_file: src/eltechs-deb/orig" 5 | 6 | tmp_dir="tmp" 7 | deb_file="fixed.deb" 8 | 9 | read -p "Pack $tmp_dir in $(pwd) to be named $deb_file ?" -n1 -r 10 | 11 | if [[ $REPLY =~ ^[Yy]$ ]]; then 12 | 13 | dpkg-deb -b "$tmp_dir" "$deb_file" 14 | fi 15 | 16 | echo "Now run install-on-archlinux" 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /bin/unpack-deb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eou pipefail 3 | 4 | echo "sample deb_file: src/eltechs-deb/orig" 5 | 6 | deb_file=$1 7 | tmp_dir="tmp" 8 | 9 | read -p "Unpack $deb_file to $tmp_dir in $(pwd) ?" -n1 -r 10 | 11 | if [[ $REPLY =~ ^[Yy]$ ]]; then 12 | mkdir "$tmp_dir" 13 | 14 | dpkg-deb -R "$deb_file" "$tmp_dir" 15 | fi 16 | 17 | echo "Now edit files in $tmp_dir and run bin/pack-deb" 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/control: -------------------------------------------------------------------------------- 1 | Package: exagear-guest-ubuntu-1604 2 | Version: 2 3 | Architecture: all 4 | Maintainer: ExaGear distribution maintainers 5 | Installed-Size: 331021 6 | Section: misc 7 | Priority: extra 8 | Homepage: http://eltechs.com 9 | Description: A minimal guest system to be run under ExaGear 10 | A minimal installation of Ubuntu 16.04 tailored to be a template 11 | for guest systems running under ExaGear. 12 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/preinst: -------------------------------------------------------------------------------- 1 | # 2 | # This is a maintainer pre-installation script for an ExaGear guest image package. 3 | # 4 | # Copyright (c) 2015 "Elbrus Technologies" LLC. All rights reserved. 5 | # 6 | # This script comes with NO warranty, not even for MERCHANTABILITY or 7 | # FITNESS FOR A PARTICULAR PURPOSE. 8 | # 9 | if [ -e /opt/exagear/images/ubuntu-1604 ] ; then 10 | echo "It is not possible to update guest images with host tools." 11 | echo "Use apt-get from within the guest to update it." 12 | exit 1 13 | fi 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/preinst: -------------------------------------------------------------------------------- 1 | # 2 | # This is a maintainer pre-installation script for an ExaGear guest image package. 3 | # 4 | # Copyright (c) 2015 "Elbrus Technologies" LLC. All rights reserved. 5 | # 6 | # This script comes with NO warranty, not even for MERCHANTABILITY or 7 | # FITNESS FOR A PARTICULAR PURPOSE. 8 | # 9 | if [ -e /opt/exagear/images/ubuntu-1604 ] ; then 10 | echo "It is not possible to update guest images with host tools." 11 | echo "Use apt-get from within the guest to update it." 12 | exit 1 13 | fi 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/control: -------------------------------------------------------------------------------- 1 | Package: exagear 2 | Version: 2526 3 | Architecture: armhf 4 | Maintainer: ExaGear distribution maintainers 5 | Installed-Size: 3316 6 | Conflicts: exagear-armv8, exagear-legacy, exagear-legacy-mem2g, exagear-mem2g, ubt 7 | Provides: exagear-virtual 8 | Section: misc 9 | Priority: extra 10 | Homepage: http://eltechs.com 11 | Description: ExaGear binary translation system 12 | ExaGear by Elbrus Technologies enables running standard PC software 13 | compiled for Intel x86, on ARM-based computers. 14 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/control: -------------------------------------------------------------------------------- 1 | Package: exagear-guest-ubuntu-1604 2 | Version: 2 3 | Architecture: all 4 | Maintainer: ExaGear distribution maintainers 5 | Installed-Size: 331021 6 | Depends: bash, coreutils, findutils, awk, exagear | exagear-mem2g | exagear-legacy | exagear-legacy-mem2g | exagear-virtual 7 | Section: misc 8 | Priority: extra 9 | Homepage: http://eltechs.com 10 | Description: A minimal guest system to be run under ExaGear 11 | A minimal installation of Ubuntu 16.04 tailored to be a template 12 | for guest systems running under ExaGear. 13 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/control: -------------------------------------------------------------------------------- 1 | Package: exagear 2 | Version: 2526 3 | Architecture: armhf 4 | Maintainer: ExaGear distribution maintainers 5 | Installed-Size: 3316 6 | Depends: bash, coreutils, findutils, realpath, awk, curl, binfmt-support, cron, alsa-base 7 | Conflicts: exagear-armv8, exagear-legacy, exagear-legacy-mem2g, exagear-mem2g, ubt 8 | Provides: exagear-virtual 9 | Section: misc 10 | Priority: extra 11 | Homepage: http://eltechs.com 12 | Description: ExaGear binary translation system 13 | ExaGear by Elbrus Technologies enables running standard PC software 14 | compiled for Intel x86, on ARM-based computers. 15 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/usr/bin/exagear-ls: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This script lists available ExaGear guest images. 5 | # 6 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 7 | # 8 | # This script comes with NO warranty, not even for MERCHANTABILITY or 9 | # FITNESS FOR A PARTICULAR PURPOSE. 10 | # 11 | 12 | installation_dir="/opt/exagear/images/" 13 | 14 | have_images= 15 | 16 | echo "Installed guest images:" 17 | 18 | for img in $(find $installation_dir -mindepth 1 -maxdepth 1 -type d) ; do 19 | echo "${img:${#installation_dir}}" 20 | have_images=y 21 | done 22 | 23 | if ! [ "$have_images" = "y" ] ; then 24 | echo "There are no guest images installed in $installation_dir" 25 | fi 26 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/usr/bin/exagear-ls: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This script lists available ExaGear guest images. 5 | # 6 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 7 | # 8 | # This script comes with NO warranty, not even for MERCHANTABILITY or 9 | # FITNESS FOR A PARTICULAR PURPOSE. 10 | # 11 | 12 | installation_dir="/opt/exagear/images/" 13 | 14 | have_images= 15 | 16 | echo "Installed guest images:" 17 | 18 | for img in $(find $installation_dir -mindepth 1 -maxdepth 1 -type d) ; do 19 | echo "${img:${#installation_dir}}" 20 | have_images=y 21 | done 22 | 23 | if ! [ "$have_images" = "y" ] ; then 24 | echo "There are no guest images installed in $installation_dir" 25 | fi 26 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/etc/binfmt-x86.conf: -------------------------------------------------------------------------------- 1 | # Configuration of the binfmt_misc handler of ExaGear. 2 | 3 | # 4 | # Normally binfmt_misc handler does not allow starting SUID programs because 5 | # it requires giving extra privileges to ExaGear. If you find it necessary 6 | # to run SUID or SGID binaries under ExaGear, say Y here. 7 | # 8 | # Note: vulnerabilities in x86 SUID binaries can be used to corrupt memory 9 | # of the translator; it potentially increases the surface of attack. 10 | # It is therefore recommended that you disable the support for SUID binaries 11 | # after the installation of guest software packages. 12 | # 13 | # After modifying the settings here, run 14 | # service exagear restart 15 | # to apply the changes. 16 | # 17 | ENABLE_SUID=Y 18 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/etc/binfmt-x86.conf: -------------------------------------------------------------------------------- 1 | # Configuration of the binfmt_misc handler of ExaGear. 2 | 3 | # 4 | # Normally binfmt_misc handler does not allow starting SUID programs because 5 | # it requires giving extra privileges to ExaGear. If you find it necessary 6 | # to run SUID or SGID binaries under ExaGear, say Y here. 7 | # 8 | # Note: vulnerabilities in x86 SUID binaries can be used to corrupt memory 9 | # of the translator; it potentially increases the surface of attack. 10 | # It is therefore recommended that you disable the support for SUID binaries 11 | # after the installation of guest software packages. 12 | # 13 | # After modifying the settings here, run 14 | # service exagear restart 15 | # to apply the changes. 16 | # 17 | ENABLE_SUID=Y 18 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/postrm: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer post-removal script for an ExaGear guest image package. 4 | # 5 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 6 | # 7 | # This script comes with NO warranty, not even for MERCHANTABILITY or 8 | # FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | case "$1" in 12 | remove|purge) 13 | rm -rf $(grep -l __WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604 /etc/init/*)\ 14 | /opt/exagear/images/ubuntu-1604 \ 15 | >/dev/null 2>&1 16 | ;; 17 | esac 18 | 19 | # Automatically added by dh_installinit 20 | if [ "$1" = "purge" ] ; then 21 | update-rc.d exagear-guest-ubuntu-1604 remove >/dev/null 22 | fi 23 | # End automatically added section 24 | 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/postrm: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer post-removal script for an ExaGear guest image package. 4 | # 5 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 6 | # 7 | # This script comes with NO warranty, not even for MERCHANTABILITY or 8 | # FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | case "$1" in 12 | remove|purge) 13 | rm -rf $(grep -l __WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604 /etc/init/*)\ 14 | /opt/exagear/images/ubuntu-1604 \ 15 | >/dev/null 2>&1 16 | ;; 17 | esac 18 | 19 | # Automatically added by dh_installinit 20 | if [ "$1" = "purge" ] ; then 21 | update-rc.d exagear-guest-ubuntu-1604 remove >/dev/null 22 | fi 23 | # End automatically added section 24 | 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sysctl -p /etc/sysctl.d/10-inotify.conf > /dev/null 3 | 4 | for DESKTOP_DIR in `find /home -maxdepth 2 -mindepth 2 -type d -name Desktop` 5 | do 6 | LAUNCHER=${DESKTOP_DIR}/exagear.desktop 7 | OWNERSHIP=`stat -c '%U:%G' ${DESKTOP_DIR}` 8 | echo '#!/usr/bin/env xdg-open' > ${LAUNCHER} 9 | cat /usr/share/applications/exagear.desktop >> ${LAUNCHER} 10 | chown ${OWNERSHIP} ${LAUNCHER} 11 | chmod 0775 ${LAUNCHER} 12 | done 13 | 14 | chmod 0777 /var/log/exagear/ 15 | 16 | # Automatically added by dh_installinit 17 | if [ -x "/etc/init.d/exagear" ]; then 18 | if [ ! -e "/etc/init/exagear.conf" ]; then 19 | update-rc.d exagear defaults >/dev/null 20 | fi 21 | invoke-rc.d exagear start || exit $? 22 | fi 23 | # End automatically added section 24 | 25 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sysctl -p /etc/sysctl.d/10-inotify.conf > /dev/null 3 | 4 | for DESKTOP_DIR in `find /home -maxdepth 2 -mindepth 2 -type d -name Desktop` 5 | do 6 | LAUNCHER=${DESKTOP_DIR}/exagear.desktop 7 | OWNERSHIP=`stat -c '%U:%G' ${DESKTOP_DIR}` 8 | echo '#!/usr/bin/env xdg-open' > ${LAUNCHER} 9 | cat /usr/share/applications/exagear.desktop >> ${LAUNCHER} 10 | chown ${OWNERSHIP} ${LAUNCHER} 11 | chmod 0775 ${LAUNCHER} 12 | done 13 | 14 | chmod 0777 /var/log/exagear/ 15 | 16 | # Automatically added by dh_installinit 17 | if [ -x "/etc/init.d/exagear" ]; then 18 | if [ ! -e "/etc/init/exagear.conf" ]; then 19 | update-rc.d exagear defaults >/dev/null 20 | fi 21 | invoke-rc.d exagear start || exit $? 22 | fi 23 | # End automatically added section 24 | 25 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/md5sums: -------------------------------------------------------------------------------- 1 | 1c138a2aff15e5744d0b1fc458d9fdf9 opt/exagear/bin/actool 2 | 49a01957e3bf498b678046ee5ff8f926 opt/exagear/bin/ubt_wrapper 3 | 064224a48eb73475a2a098dca3041810 opt/exagear/bin/ubt_x32a32_al 4 | e392390a03c42d41c671073d69586f38 opt/exagear/share/doc/licenses/EULA 5 | d0326737e228c802f4f815737f9edba1 opt/exagear/share/doc/user-guide.pdf 6 | 7d27ce1fd96a50f68fc177a6e9b23c4d usr/bin/exagear 7 | cc656d83f3d3ca8e13ce735889a9ac06 usr/bin/exagear-ls 8 | 62ce5a4c12e229601f258982178839b8 usr/share/applications/exagear.desktop 9 | e50e761fc3fa37c8dedd9a124bca2630 usr/share/icons/hicolor/128x128/apps/exagear.png 10 | cf7992026ca6cade424316e957c305c6 usr/share/icons/hicolor/16x16/apps/exagear.png 11 | 526b64f974ab4fcce32146571031d544 usr/share/icons/hicolor/32x32/apps/exagear.png 12 | 2f8e99d5215b0120ee6fd413cef63185 usr/share/icons/hicolor/64x64/apps/exagear.png 13 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/md5sums: -------------------------------------------------------------------------------- 1 | 1c138a2aff15e5744d0b1fc458d9fdf9 opt/exagear/bin/actool 2 | 49a01957e3bf498b678046ee5ff8f926 opt/exagear/bin/ubt_wrapper 3 | 064224a48eb73475a2a098dca3041810 opt/exagear/bin/ubt_x32a32_al 4 | e392390a03c42d41c671073d69586f38 opt/exagear/share/doc/licenses/EULA 5 | d0326737e228c802f4f815737f9edba1 opt/exagear/share/doc/user-guide.pdf 6 | 7d27ce1fd96a50f68fc177a6e9b23c4d usr/bin/exagear 7 | cc656d83f3d3ca8e13ce735889a9ac06 usr/bin/exagear-ls 8 | 62ce5a4c12e229601f258982178839b8 usr/share/applications/exagear.desktop 9 | e50e761fc3fa37c8dedd9a124bca2630 usr/share/icons/hicolor/128x128/apps/exagear.png 10 | cf7992026ca6cade424316e957c305c6 usr/share/icons/hicolor/16x16/apps/exagear.png 11 | 526b64f974ab4fcce32146571031d544 usr/share/icons/hicolor/32x32/apps/exagear.png 12 | 2f8e99d5215b0120ee6fd413cef63185 usr/share/icons/hicolor/64x64/apps/exagear.png 13 | -------------------------------------------------------------------------------- /bin/install-on-archlinux: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eou pipefail 3 | 4 | install-dependencies() { 5 | sudo pacman -Syu --noconfirm bash \ 6 | coreutils \ 7 | findutils \ 8 | awk \ 9 | curl \ 10 | binfmt-support \ 11 | cronie \ 12 | alsa-base 13 | 14 | yaourt install dpkg 15 | } 16 | 17 | install-exagear() { 18 | echo "Installing the binary translator..." 19 | dpkg -i exagear.deb || exit 1 20 | } 21 | 22 | install-ubuntu() { 23 | echo "Installing the guest image..." 24 | dpkg -i ubuntu.deb || exit 1 25 | } 26 | 27 | activate() { 28 | echo "Installing the primary key..." 29 | mv $PK_FILE_NAME /opt/exagear/lic/ || exit 1 30 | 31 | echo "Activating the copy of ExaGear..." 32 | /opt/exagear/bin/actool || exit 1 33 | } 34 | 35 | install-dependencies 36 | sudo bin/install-exagear-orig 37 | install-exagear 38 | install-ubuntu 39 | activate 40 | 41 | echo "Done!" 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # exagear 2 | 3 | ## Why 4 | 5 | I'd like to run Mesos but Mesos only compiles on x86 machines. 6 | 7 | Exagear is a virtual machine that translates x86 instructions to an 8 | ARM instruction set. However exagear is meant for a debian system, 9 | not arch linux. 10 | 11 | ## Install 12 | 13 | Make some aliases 14 | 15 | sudo -s 16 | echo alias arch="echo 'armv7l'" >> /root/.bashrc 17 | alias realpath="/usr/bin/realpath" >> /root/.bashrc 18 | alias bash="/usr/bin/bash" >> /root/.bashrc 19 | alias awk="/usr/bin/awk" >> /root/.bashrc 20 | 21 | Clone this repo on the target ARM device. 22 | 23 | bin/pack-deb src/eltechs-deb/arch-linux/ 24 | mv fixed.deb exagear.deb 25 | bin/pack-deb src/ubuntu-deb/arch-linux/ 26 | mv fixed.deb ubuntu.deb 27 | sudo bin/install-on-archlinux 28 | 29 | ## Use 30 | 31 | What is available: `exagear ls` 32 | 33 | Turn exagear on: `exagear` 34 | 35 | Turn exagear off: `exagear` ;; TODO is this the correct command? 36 | 37 | ## Debug 38 | 39 | System memory configuration is determined as 2g/2g 40 | ARCH=armv7l 41 | ls: cannot access '/opt/exagear/images/': No such file or directory 42 | HOST OS: arch 43 | HOST OS VERSION: default 44 | EXAGEAR package: exagear-mem2g_*-1_armhf.deb 45 | EXAGEAR guest image package: 'exagear-guest-ubuntu-1404lts_*_all.deb' 46 | Installing prerequisites... 47 | Installing the binary translator... 48 | Installing the guest image... 49 | Installing the primary key... 50 | actool: Found no primary key file. 51 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/bin/ubt_wrapper: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This is a wrapper around ExaGear for binfmt_misc. 5 | # 6 | # binfmt_misc a way to run non-native executables on a Linux system. When 7 | # the kernel running on ARM is requested to execve() an x86 binary it invokes 8 | # this wrapper instead of the binary; the wrapper in turn starts the binary 9 | # under ExaGear. 10 | # 11 | # For more details, see Documentation/binfmt_misc.txt in the kernel source. 12 | # 13 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 14 | # 15 | # This script comes NO warranty, not even for MERCHANTABILITY or 16 | # FITNESS FOR A PARTICULAR PURPOSE. 17 | # 18 | 19 | saved_path="$PATH" 20 | saved_ifs="$IFS" 21 | 22 | PATH="/bin:/usr/bin" 23 | IFS=$(echo) 24 | 25 | exe=$(realpath "$1") 26 | shift 27 | 28 | ubt_home=$(dirname "$0") 29 | ubt=${UBT_OVERRIDE:-"$ubt_home/ubt_x32a32_al"} 30 | 31 | installation_dir=$(realpath "$ubt_home/../") 32 | images_dir="$installation_dir/images/" 33 | 34 | image_dir= 35 | 36 | for img in $(find $images_dir -mindepth 1 -maxdepth 1 -type d) ; do 37 | if (echo "$exe" | grep -E "^$img" > /dev/null) ; then 38 | image_dir="$img/" 39 | exe=${exe:${#img}} 40 | break; 41 | fi 42 | done 43 | 44 | if [ -z "$image_dir" ] ; then 45 | echo "The file $exe belongs to no guest image located under the directory $images_dir" 46 | exit 127 47 | fi 48 | 49 | vpaths_list="$image_dir/.exagear/vpaths-list" 50 | opaths_list="$image_dir/.exagear/opaths-list" 51 | 52 | PATH="$saved_path" 53 | IFS="$saved_ifs" 54 | 55 | $ubt --path-prefix $image_dir --vpaths-list $vpaths_list --opaths-list $opaths_list -f $exe -- "$@" 56 | exit $? 57 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/bin/ubt_wrapper: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This is a wrapper around ExaGear for binfmt_misc. 5 | # 6 | # binfmt_misc a way to run non-native executables on a Linux system. When 7 | # the kernel running on ARM is requested to execve() an x86 binary it invokes 8 | # this wrapper instead of the binary; the wrapper in turn starts the binary 9 | # under ExaGear. 10 | # 11 | # For more details, see Documentation/binfmt_misc.txt in the kernel source. 12 | # 13 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 14 | # 15 | # This script comes NO warranty, not even for MERCHANTABILITY or 16 | # FITNESS FOR A PARTICULAR PURPOSE. 17 | # 18 | 19 | saved_path="$PATH" 20 | saved_ifs="$IFS" 21 | 22 | PATH="/bin:/usr/bin" 23 | IFS=$(echo) 24 | 25 | exe=$(realpath "$1") 26 | shift 27 | 28 | ubt_home=$(dirname "$0") 29 | ubt=${UBT_OVERRIDE:-"$ubt_home/ubt_x32a32_al"} 30 | 31 | installation_dir=$(realpath "$ubt_home/../") 32 | images_dir="$installation_dir/images/" 33 | 34 | image_dir= 35 | 36 | for img in $(find $images_dir -mindepth 1 -maxdepth 1 -type d) ; do 37 | if (echo "$exe" | grep -E "^$img" > /dev/null) ; then 38 | image_dir="$img/" 39 | exe=${exe:${#img}} 40 | break; 41 | fi 42 | done 43 | 44 | if [ -z "$image_dir" ] ; then 45 | echo "The file $exe belongs to no guest image located under the directory $images_dir" 46 | exit 127 47 | fi 48 | 49 | vpaths_list="$image_dir/.exagear/vpaths-list" 50 | opaths_list="$image_dir/.exagear/opaths-list" 51 | 52 | PATH="$saved_path" 53 | IFS="$saved_ifs" 54 | 55 | $ubt --path-prefix $image_dir --vpaths-list $vpaths_list --opaths-list $opaths_list -f $exe -- "$@" 56 | exit $? 57 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/prerm: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer pre-removal script for an ExaGear guest image package. 4 | # 5 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 6 | # 7 | # This script comes with NO warranty, not even for MERCHANTABILITY or 8 | # FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | for rc in $(find /lib/systemd/system -type f -name '*.service' | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 12 | systemctl stop $(basename $rc | cut -d'.' --complement -f2-) 13 | rm -f $rc 14 | systemctl daemon-reload 15 | done 16 | 17 | for rc in $(find /etc/init/ -type f -name '*.conf' | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 18 | job_name=$(basename $rc | cut -d'.' --complement -f2-) 19 | rm -f /etc/init/${job_name}.conf 20 | done 21 | 22 | for rc in $(find /etc/init.d/ -type f -executable | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 23 | service $(basename $rc) stop 24 | done 25 | 26 | for rc in $(find /etc/init.d/ -type f -executable | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 27 | rm -f /etc/rc*.d/*$(basename $rc) 28 | rm -f $rc 29 | done 30 | 31 | rm -f /etc/cron.d/EG_* 32 | rm -f /etc/udev/rules.d/EG_* 33 | 34 | if [ "$(readlink /emul/x86-linux)" == "/opt/exagear/images/ubuntu-1604/" ] ; then 35 | rm -f /emul/x86-linux 36 | fi 37 | 38 | function handle_error { 39 | echo "Warning: failed to stop exagear services"; 40 | exit 0; 41 | } 42 | 43 | # Automatically added by dh_installinit 44 | if [ -x "/etc/init.d/exagear-guest-ubuntu-1604" ]; then 45 | invoke-rc.d exagear-guest-ubuntu-1604 stop || handle_error 46 | fi 47 | # End automatically added section 48 | 49 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/prerm: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer pre-removal script for an ExaGear guest image package. 4 | # 5 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 6 | # 7 | # This script comes with NO warranty, not even for MERCHANTABILITY or 8 | # FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | for rc in $(find /lib/systemd/system -type f -name '*.service' | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 12 | systemctl stop $(basename $rc | cut -d'.' --complement -f2-) 13 | rm -f $rc 14 | systemctl daemon-reload 15 | done 16 | 17 | for rc in $(find /etc/init/ -type f -name '*.conf' | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 18 | job_name=$(basename $rc | cut -d'.' --complement -f2-) 19 | rm -f /etc/init/${job_name}.conf 20 | done 21 | 22 | for rc in $(find /etc/init.d/ -type f -executable | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 23 | service $(basename $rc) stop 24 | done 25 | 26 | for rc in $(find /etc/init.d/ -type f -executable | xargs grep -l '__WRAPPED_FOR_EXAGEAR_GUEST_UBUNTU_1604') ; do 27 | rm -f /etc/rc*.d/*$(basename $rc) 28 | rm -f $rc 29 | done 30 | 31 | rm -f /etc/cron.d/EG_* 32 | rm -f /etc/udev/rules.d/EG_* 33 | 34 | if [ "$(readlink /emul/x86-linux)" == "/opt/exagear/images/ubuntu-1604/" ] ; then 35 | rm -f /emul/x86-linux 36 | fi 37 | 38 | function handle_error { 39 | echo "Warning: failed to stop exagear services"; 40 | exit 0; 41 | } 42 | 43 | # Automatically added by dh_installinit 44 | if [ -x "/etc/init.d/exagear-guest-ubuntu-1604" ]; then 45 | invoke-rc.d exagear-guest-ubuntu-1604 stop || handle_error 46 | fi 47 | # End automatically added section 48 | 49 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/etc/init.d/exagear: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ### BEGIN INIT INFO 4 | # Provides: exagear 5 | # Required-Start: binfmt-support 6 | # Required-Stop: binfmt-support 7 | # Default-Start: 2 3 4 5 8 | # Default-Stop: 0 1 6 9 | # Short-Description: registers ExaGear as a handler for x86 binaries 10 | # Description: registers ExaGear as a handler for x86 binaries 11 | ### END INIT INFO 12 | 13 | # 14 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 15 | # 16 | # This script comes with NO warranty, not even for MERCHANTABILITY or 17 | # FITNESS FOR A PARTICULAR PURPOSE. 18 | # 19 | 20 | . /etc/binfmt-x86.conf 21 | 22 | DESC="ExaGear" 23 | NAME="x86_guest" 24 | BINFMT_PREFIX="/proc/sys/fs/binfmt_misc" 25 | test -d $BINFMT_PREFIX || BINFMT_PREFIX="/var/binfmt_misc" 26 | BINFMT_CONTROL=${BINFMT_PREFIX}"/$NAME" 27 | 28 | MAGIC="\\x7f\\x45\\x4c\\x46\\x01\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x03\\x00" 29 | MASK="\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfc\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfc\\xff\\xff\\xff" 30 | 31 | UBT_WRAPPER="/opt/exagear/bin/ubt_wrapper" 32 | OPTIONS="P" 33 | 34 | if [ "$ENABLE_SUID" = "Y" ] ; then 35 | UBT_WRAPPER="/opt/exagear/bin/ubt_wrapper_suid" 36 | OPTIONS="PC" 37 | fi 38 | 39 | case "$1" in 40 | start|restart|reload|force-reload) 41 | echo -n "Starting $DESC: " 42 | [ -e $BINFMT_CONTROL ] && echo -1 > $BINFMT_CONTROL 43 | echo ":$NAME:M::$MAGIC:$MASK:$UBT_WRAPPER:$OPTIONS" > ${BINFMT_PREFIX}/register 44 | echo "$NAME." 45 | ;; 46 | 47 | stop) 48 | [ -e $BINFMT_CONTROL ] && echo -1 > $BINFMT_CONTROL 49 | ;; 50 | 51 | status) 52 | if [ -e $BINFMT_CONTROL ] ; then 53 | echo "$NAME is enabled" 54 | exit 0 55 | else 56 | echo "$NAME is disabled" 57 | exit 1 58 | fi 59 | ;; 60 | 61 | *) 62 | echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2 63 | exit 1 64 | ;; 65 | esac 66 | 67 | exit 0 68 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/etc/init.d/exagear: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ### BEGIN INIT INFO 4 | # Provides: exagear 5 | # Required-Start: binfmt-support 6 | # Required-Stop: binfmt-support 7 | # Default-Start: 2 3 4 5 8 | # Default-Stop: 0 1 6 9 | # Short-Description: registers ExaGear as a handler for x86 binaries 10 | # Description: registers ExaGear as a handler for x86 binaries 11 | ### END INIT INFO 12 | 13 | # 14 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 15 | # 16 | # This script comes with NO warranty, not even for MERCHANTABILITY or 17 | # FITNESS FOR A PARTICULAR PURPOSE. 18 | # 19 | 20 | . /etc/binfmt-x86.conf 21 | 22 | DESC="ExaGear" 23 | NAME="x86_guest" 24 | BINFMT_PREFIX="/proc/sys/fs/binfmt_misc" 25 | test -d $BINFMT_PREFIX || BINFMT_PREFIX="/var/binfmt_misc" 26 | BINFMT_CONTROL=${BINFMT_PREFIX}"/$NAME" 27 | 28 | MAGIC="\\x7f\\x45\\x4c\\x46\\x01\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x03\\x00" 29 | MASK="\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfc\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfc\\xff\\xff\\xff" 30 | 31 | UBT_WRAPPER="/opt/exagear/bin/ubt_wrapper" 32 | OPTIONS="P" 33 | 34 | if [ "$ENABLE_SUID" = "Y" ] ; then 35 | UBT_WRAPPER="/opt/exagear/bin/ubt_wrapper_suid" 36 | OPTIONS="PC" 37 | fi 38 | 39 | case "$1" in 40 | start|restart|reload|force-reload) 41 | echo -n "Starting $DESC: " 42 | [ -e $BINFMT_CONTROL ] && echo -1 > $BINFMT_CONTROL 43 | echo ":$NAME:M::$MAGIC:$MASK:$UBT_WRAPPER:$OPTIONS" > ${BINFMT_PREFIX}/register 44 | echo "$NAME." 45 | ;; 46 | 47 | stop) 48 | [ -e $BINFMT_CONTROL ] && echo -1 > $BINFMT_CONTROL 49 | ;; 50 | 51 | status) 52 | if [ -e $BINFMT_CONTROL ] ; then 53 | echo "$NAME is enabled" 54 | exit 0 55 | else 56 | echo "$NAME is disabled" 57 | exit 1 58 | fi 59 | ;; 60 | 61 | *) 62 | echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2 63 | exit 1 64 | ;; 65 | esac 66 | 67 | exit 0 68 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/control/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | test_binary=$(mktemp) 3 | echo f0VMRgEBAQAAAAAAAAAAAAIAKAABAAAAVIAAADQAAADIAAAAAAIABTQAIAABACgABgADAAEAAAAAAAAAAIAAAACAAACAAAAAgAAAAAUAAAAAgAAACgKg4wEaoOMAIKDjMjCg48BwoOMAAADvCgJQ4wAAoAMBAKATAXCg4wAAAO9BEwAAAGFlYWJpAAEJAAAABgEIAQAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5BUk0uYXR0cmlidXRlcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAAAVIAAAFQAAAAsAAAAAAAAAAAAAAAEAAAAAAAAACEAAAADAABwAAAAAAAAAACAAAAAFAAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAlAAAADEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAALgBAADgAAAABQAAAAYAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAACYAgAAWwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAMAAgABAAAAAAAAAAAAAAAEAPH/DAAAAFSAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAQA8f8PAAAAgAABAAAAAAAQAAEAGgAAAIAAAQAAAAAAEAABACgAAACAAAEAAAAAABAAAQA0AAAAVIAAAAAAAAAQAAEAOwAAAIAAAQAAAAAAEAABAEcAAACAAAEAAAAAABAAAQBPAAAAgAABAAAAAAAQAAEAVgAAAIAAAQAAAAAAEAABAABtZW1fdGVzdC5vACRhAF9ic3NfZW5kX18AX19ic3Nfc3RhcnRfXwBfX2Jzc19lbmRfXwBfc3RhcnQAX19ic3Nfc3RhcnQAX19lbmRfXwBfZWRhdGEAX2VuZAA= | base64 --decode > $test_binary 4 | chmod +x $test_binary 5 | $test_binary 6 | ret=$? 7 | rm -f $test_binary 8 | 9 | if [ "$ret" -ne "0" ] 10 | then 11 | echo "" 12 | echo "==============================================================================================" 13 | echo "| ExaGear requires at least 3 GiB of user space memory to be available for applicatons. |" 14 | echo "| However, this system provides less user space memory. |" 15 | echo "| ExaGear supports 2G/2G user/kernel memory split configuration via *exagear-mem2g* package. |" 16 | echo "| Please contact package mantainers at Eltechs to obtain *exagear-mem2g* package. |" 17 | echo "==============================================================================================" 18 | echo "" 19 | exit 1 20 | fi 21 | 22 | if [ $(arch) != "armv7l" ] && [ $(arch) != "aarch64" ]; 23 | then 24 | echo "" 25 | echo "==============================================================================================" 26 | echo "| ExaGear requires armv7l instruction set to be supported. This machine supports $(arch) instruction set." 27 | echo "| Possibly you are trying to run ExaGear on armv6 or non-ARM machine" 28 | echo "==============================================================================================" 29 | echo "" 30 | exit 1 31 | fi 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/control/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | test_binary=$(mktemp) 3 | echo f0VMRgEBAQAAAAAAAAAAAAIAKAABAAAAVIAAADQAAADIAAAAAAIABTQAIAABACgABgADAAEAAAAAAAAAAIAAAACAAACAAAAAgAAAAAUAAAAAgAAACgKg4wEaoOMAIKDjMjCg48BwoOMAAADvCgJQ4wAAoAMBAKATAXCg4wAAAO9BEwAAAGFlYWJpAAEJAAAABgEIAQAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5BUk0uYXR0cmlidXRlcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAAAVIAAAFQAAAAsAAAAAAAAAAAAAAAEAAAAAAAAACEAAAADAABwAAAAAAAAAACAAAAAFAAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAlAAAADEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAALgBAADgAAAABQAAAAYAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAACYAgAAWwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAMAAgABAAAAAAAAAAAAAAAEAPH/DAAAAFSAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAQA8f8PAAAAgAABAAAAAAAQAAEAGgAAAIAAAQAAAAAAEAABACgAAACAAAEAAAAAABAAAQA0AAAAVIAAAAAAAAAQAAEAOwAAAIAAAQAAAAAAEAABAEcAAACAAAEAAAAAABAAAQBPAAAAgAABAAAAAAAQAAEAVgAAAIAAAQAAAAAAEAABAABtZW1fdGVzdC5vACRhAF9ic3NfZW5kX18AX19ic3Nfc3RhcnRfXwBfX2Jzc19lbmRfXwBfc3RhcnQAX19ic3Nfc3RhcnQAX19lbmRfXwBfZWRhdGEAX2VuZAA= | base64 --decode > $test_binary 4 | chmod +x $test_binary 5 | $test_binary 6 | ret=$? 7 | rm -f $test_binary 8 | 9 | if [ "$ret" -ne "0" ] 10 | then 11 | echo "" 12 | echo "==============================================================================================" 13 | echo "| ExaGear requires at least 3 GiB of user space memory to be available for applicatons. |" 14 | echo "| However, this system provides less user space memory. |" 15 | echo "| ExaGear supports 2G/2G user/kernel memory split configuration via *exagear-mem2g* package. |" 16 | echo "| Please contact package mantainers at Eltechs to obtain *exagear-mem2g* package. |" 17 | echo "==============================================================================================" 18 | echo "" 19 | exit 1 20 | fi 21 | 22 | if [ $(arch) != "armv7l" ] && [ $(arch) != "aarch64" ]; 23 | then 24 | echo "" 25 | echo "==============================================================================================" 26 | echo "| ExaGear requires armv7l instruction set to be supported. This machine supports $(arch) instruction set." 27 | echo "| Possibly you are trying to run ExaGear on armv6 or non-ARM machine" 28 | echo "==============================================================================================" 29 | echo "" 30 | exit 1 31 | fi 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/ubuntu-deb/arch-linux/control/postinst: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer post-installation script for the ExaGear guest image package 4 | # based on Ubuntu 16.04 5 | # 6 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 7 | # 8 | # This script comes with NO warranty, not even for MERCHANTABILITY or 9 | # FITNESS FOR A PARTICULAR PURPOSE. 10 | # 11 | 12 | GUEST_IMAGE_NAME='ubuntu-1604' 13 | if ! [ -e /emul/x86-linux ] ; then 14 | ln -s /opt/exagear/images/ubuntu-1604/ /emul/x86-linux 15 | fi 16 | 17 | chmod u+s /opt/exagear/images/ubuntu-1604/.exagear/upstart-integration/initctl 18 | 19 | test_binary=$(mktemp) 20 | echo f0VMRgEBAQAAAAAAAAAAAAIAKAABAAAAVIAAADQAAADIAAAAAAIABTQAIAABACgABgADAAEAAAAAAAAAAIAAAACAAACAAAAAgAAAAAUAAAAAgAAACgKg4wEaoOMAIKDjMjCg48BwoOMAAADvCgJQ4wAAoAMBAKATAXCg4wAAAO9BEwAAAGFlYWJpAAEJAAAABgEIAQAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5BUk0uYXR0cmlidXRlcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAAAVIAAAFQAAAAsAAAAAAAAAAAAAAAEAAAAAAAAACEAAAADAABwAAAAAAAAAACAAAAAFAAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAlAAAADEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAALgBAADgAAAABQAAAAYAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAACYAgAAWwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAMAAgABAAAAAAAAAAAAAAAEAPH/DAAAAFSAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAQA8f8PAAAAgAABAAAAAAAQAAEAGgAAAIAAAQAAAAAAEAABACgAAACAAAEAAAAAABAAAQA0AAAAVIAAAAAAAAAQAAEAOwAAAIAAAQAAAAAAEAABAEcAAACAAAEAAAAAABAAAQBPAAAAgAABAAAAAAAQAAEAVgAAAIAAAQAAAAAAEAABAABtZW1fdGVzdC5vACRhAF9ic3NfZW5kX18AX19ic3Nfc3RhcnRfXwBfX2Jzc19lbmRfXwBfc3RhcnQAX19ic3Nfc3RhcnQAX19lbmRfXwBfZWRhdGEAX2VuZAA= | base64 --decode > $test_binary 21 | chmod +x $test_binary 22 | $test_binary 23 | ret=$? 24 | rm -f $test_binary 25 | 26 | if [ "$ret" -ne "0" ] 27 | then 28 | WINE_BUILD=mem2g 29 | WINE_BUILD_OTHER=mem3g 30 | else 31 | WINE_BUILD=mem3g 32 | WINE_BUILD_OTHER=mem2g 33 | fi 34 | 35 | sed -i -e 's/__WINE_PRIO/999/g' /opt/exagear/images/${GUEST_IMAGE_NAME}/etc/apt/preferences.d/${WINE_BUILD_OTHER} 36 | sed -i -e 's/__WINE_PRIO/1000/g' /opt/exagear/images/${GUEST_IMAGE_NAME}/etc/apt/preferences.d/${WINE_BUILD} 37 | # Automatically added by dh_installinit 38 | if [ -x "/etc/init.d/exagear-guest-ubuntu-1604" ]; then 39 | if [ ! -e "/etc/init/exagear-guest-ubuntu-1604.conf" ]; then 40 | update-rc.d exagear-guest-ubuntu-1604 defaults >/dev/null 41 | fi 42 | invoke-rc.d exagear-guest-ubuntu-1604 start || handle_error 43 | fi 44 | # End automatically added section 45 | 46 | -------------------------------------------------------------------------------- /src/ubuntu-deb/original/control/postinst: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # This is a maintainer post-installation script for the ExaGear guest image package 4 | # based on Ubuntu 16.04 5 | # 6 | # Copyright (c) 2016 "Elbrus Technologies" LLC. All rights reserved. 7 | # 8 | # This script comes with NO warranty, not even for MERCHANTABILITY or 9 | # FITNESS FOR A PARTICULAR PURPOSE. 10 | # 11 | 12 | GUEST_IMAGE_NAME='ubuntu-1604' 13 | if ! [ -e /emul/x86-linux ] ; then 14 | ln -s /opt/exagear/images/ubuntu-1604/ /emul/x86-linux 15 | fi 16 | 17 | chmod u+s /opt/exagear/images/ubuntu-1604/.exagear/upstart-integration/initctl 18 | 19 | test_binary=$(mktemp) 20 | echo f0VMRgEBAQAAAAAAAAAAAAIAKAABAAAAVIAAADQAAADIAAAAAAIABTQAIAABACgABgADAAEAAAAAAAAAAIAAAACAAACAAAAAgAAAAAUAAAAAgAAACgKg4wEaoOMAIKDjMjCg48BwoOMAAADvCgJQ4wAAoAMBAKATAXCg4wAAAO9BEwAAAGFlYWJpAAEJAAAABgEIAQAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5BUk0uYXR0cmlidXRlcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAAAVIAAAFQAAAAsAAAAAAAAAAAAAAAEAAAAAAAAACEAAAADAABwAAAAAAAAAACAAAAAFAAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAlAAAADEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAALgBAADgAAAABQAAAAYAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAACYAgAAWwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAMAAgABAAAAAAAAAAAAAAAEAPH/DAAAAFSAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAQA8f8PAAAAgAABAAAAAAAQAAEAGgAAAIAAAQAAAAAAEAABACgAAACAAAEAAAAAABAAAQA0AAAAVIAAAAAAAAAQAAEAOwAAAIAAAQAAAAAAEAABAEcAAACAAAEAAAAAABAAAQBPAAAAgAABAAAAAAAQAAEAVgAAAIAAAQAAAAAAEAABAABtZW1fdGVzdC5vACRhAF9ic3NfZW5kX18AX19ic3Nfc3RhcnRfXwBfX2Jzc19lbmRfXwBfc3RhcnQAX19ic3Nfc3RhcnQAX19lbmRfXwBfZWRhdGEAX2VuZAA= | base64 --decode > $test_binary 21 | chmod +x $test_binary 22 | $test_binary 23 | ret=$? 24 | rm -f $test_binary 25 | 26 | if [ "$ret" -ne "0" ] 27 | then 28 | WINE_BUILD=mem2g 29 | WINE_BUILD_OTHER=mem3g 30 | else 31 | WINE_BUILD=mem3g 32 | WINE_BUILD_OTHER=mem2g 33 | fi 34 | 35 | sed -i -e 's/__WINE_PRIO/999/g' /opt/exagear/images/${GUEST_IMAGE_NAME}/etc/apt/preferences.d/${WINE_BUILD_OTHER} 36 | sed -i -e 's/__WINE_PRIO/1000/g' /opt/exagear/images/${GUEST_IMAGE_NAME}/etc/apt/preferences.d/${WINE_BUILD} 37 | # Automatically added by dh_installinit 38 | if [ -x "/etc/init.d/exagear-guest-ubuntu-1604" ]; then 39 | if [ ! -e "/etc/init/exagear-guest-ubuntu-1604.conf" ]; then 40 | update-rc.d exagear-guest-ubuntu-1604 defaults >/dev/null 41 | fi 42 | invoke-rc.d exagear-guest-ubuntu-1604 start || handle_error 43 | fi 44 | # End automatically added section 45 | 46 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/usr/bin/exagear: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This script starts a shell in an ExaGear guest system. 5 | # 6 | # The scripts starts /bin/bash (or any other shell specified by the environment 7 | # variable $SHELL) under ExaGear and sets the current directory to the root of 8 | # the guest file system. This can be considered as a way to log into an ExaGear 9 | # guest system. 10 | # 11 | # If there is only one ExaGear guest installed, the shell is started inside it 12 | # automatically; otherwise you have to specify the name of the guest image 13 | # that you intend to use. 14 | # 15 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 16 | # 17 | # This script comes with NO warranty, not even for MERCHANTABILITY or 18 | # FITNESS FOR A PARTICULAR PURPOSE. 19 | # 20 | 21 | installation_dir="/opt/exagear/images/" 22 | ubt=${UBT_OVERRIDE:-"/opt/exagear/bin/ubt_x32a32_al"} 23 | 24 | image_dir= 25 | images_count=0 26 | 27 | function find_guest_image { 28 | for img in $(find $installation_dir -mindepth 1 -maxdepth 1 -type d) ; do 29 | image_dir="$img" 30 | images_count=$(( images_count+1 )) 31 | done 32 | 33 | if [ $images_count -eq 0 ] ; then 34 | echo "There are no guest images in $installation_dir" 35 | echo "Please make sure that you have installed packages with guest system templates." 36 | exit 1 37 | fi 38 | 39 | if [ $images_count -gt 1 ] ; then 40 | echo "You have multiple guest images installed. Use" 41 | echo " exagear name_of_guest_image" 42 | echo "to start the shell in one of them." 43 | exagear-ls 44 | exit 1 45 | fi 46 | } 47 | 48 | function print_usage_and_exit { 49 | echo 'Usage: exagear [image] [ -- command]' 50 | exagear-ls 51 | exit 0 52 | } 53 | 54 | args="" 55 | while test ${#} -gt 0 56 | do 57 | if [ "$1" == "--usage" ] || [ "$1" == "--help" ] || [ "$1" == "-h" ]; then 58 | print_usage_and_exit 59 | elif [ "$1" == "--" ]; then 60 | shift 61 | command="$1" 62 | shift 63 | break 64 | else 65 | if ! [ -z "$image_dir" ]; then 66 | print_usage_and_exit 67 | fi 68 | 69 | image_dir="${installation_dir}$1"; 70 | if ! [ -d "$image_dir" ];then 71 | echo "There is no guest image $image_dir" 72 | exagear-ls 73 | exit 1 74 | fi 75 | fi 76 | 77 | shift 78 | done 79 | 80 | if [ -z "$image_dir" ]; then 81 | find_guest_image 82 | fi 83 | 84 | if [ -z "$command" ]; then 85 | if [ -n "$SHELL" ] && [ -x "${image_dir}${SHELL}" ]; then 86 | command="$SHELL" 87 | else 88 | command="/bin/bash" 89 | fi 90 | fi 91 | 92 | vpaths_list="$image_dir/.exagear/vpaths-list" 93 | opaths_list="$image_dir/.exagear/opaths-list" 94 | 95 | use_binfmt_misc= 96 | use_upstart_integration= 97 | 98 | SERVICE=`which service` 99 | if [ -z "$SERVICE" ]; then 100 | SERVICE="/usr/sbin/service" 101 | fi 102 | 103 | 104 | if $SERVICE exagear status > /dev/null ; then 105 | use_binfmt_misc="--use-binfmt_misc" 106 | fi 107 | 108 | use_upstart_integration="--opaths-list ${opaths_list}" 109 | 110 | cd ~ 111 | args=`for arg in "$@"; do printf "%q " "$arg"; done` 112 | 113 | unset LC_CTYPE 114 | unset LC_NUMERIC 115 | unset LC_TIME 116 | unset LC_COLLATE 117 | unset LC_MONETARY 118 | unset LC_MESSAGES 119 | unset LC_PAPER 120 | unset LC_NAME 121 | unset LC_ADDRESS 122 | unset LC_TELEPHONE 123 | unset LC_MEASUREMENT 124 | unset LC_IDENTIFICATION 125 | unset LC_ALL 126 | unset LANGUAGE 127 | unset LANG 128 | 129 | $ubt --path-prefix $image_dir --vpaths-list $vpaths_list -- \ 130 | /bin/echo "Starting $command $args in the guest image $image_dir" || \ 131 | echo "Failed to start Exagear. Please check that file $ubt exists and has executable permission" 132 | 133 | eval $ubt --path-prefix $image_dir --vpaths-list $vpaths_list $use_upstart_integration $use_binfmt_misc -- \ 134 | $command $args 135 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/usr/bin/exagear: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # This script starts a shell in an ExaGear guest system. 5 | # 6 | # The scripts starts /bin/bash (or any other shell specified by the environment 7 | # variable $SHELL) under ExaGear and sets the current directory to the root of 8 | # the guest file system. This can be considered as a way to log into an ExaGear 9 | # guest system. 10 | # 11 | # If there is only one ExaGear guest installed, the shell is started inside it 12 | # automatically; otherwise you have to specify the name of the guest image 13 | # that you intend to use. 14 | # 15 | # Copyright (c) 2013 "Elbrus Technologies" LLC. All rights reserved. 16 | # 17 | # This script comes with NO warranty, not even for MERCHANTABILITY or 18 | # FITNESS FOR A PARTICULAR PURPOSE. 19 | # 20 | 21 | installation_dir="/opt/exagear/images/" 22 | ubt=${UBT_OVERRIDE:-"/opt/exagear/bin/ubt_x32a32_al"} 23 | 24 | image_dir= 25 | images_count=0 26 | 27 | function find_guest_image { 28 | for img in $(find $installation_dir -mindepth 1 -maxdepth 1 -type d) ; do 29 | image_dir="$img" 30 | images_count=$(( images_count+1 )) 31 | done 32 | 33 | if [ $images_count -eq 0 ] ; then 34 | echo "There are no guest images in $installation_dir" 35 | echo "Please make sure that you have installed packages with guest system templates." 36 | exit 1 37 | fi 38 | 39 | if [ $images_count -gt 1 ] ; then 40 | echo "You have multiple guest images installed. Use" 41 | echo " exagear name_of_guest_image" 42 | echo "to start the shell in one of them." 43 | exagear-ls 44 | exit 1 45 | fi 46 | } 47 | 48 | function print_usage_and_exit { 49 | echo 'Usage: exagear [image] [ -- command]' 50 | exagear-ls 51 | exit 0 52 | } 53 | 54 | args="" 55 | while test ${#} -gt 0 56 | do 57 | if [ "$1" == "--usage" ] || [ "$1" == "--help" ] || [ "$1" == "-h" ]; then 58 | print_usage_and_exit 59 | elif [ "$1" == "--" ]; then 60 | shift 61 | command="$1" 62 | shift 63 | break 64 | else 65 | if ! [ -z "$image_dir" ]; then 66 | print_usage_and_exit 67 | fi 68 | 69 | image_dir="${installation_dir}$1"; 70 | if ! [ -d "$image_dir" ];then 71 | echo "There is no guest image $image_dir" 72 | exagear-ls 73 | exit 1 74 | fi 75 | fi 76 | 77 | shift 78 | done 79 | 80 | if [ -z "$image_dir" ]; then 81 | find_guest_image 82 | fi 83 | 84 | if [ -z "$command" ]; then 85 | if [ -n "$SHELL" ] && [ -x "${image_dir}${SHELL}" ]; then 86 | command="$SHELL" 87 | else 88 | command="/bin/bash" 89 | fi 90 | fi 91 | 92 | vpaths_list="$image_dir/.exagear/vpaths-list" 93 | opaths_list="$image_dir/.exagear/opaths-list" 94 | 95 | use_binfmt_misc= 96 | use_upstart_integration= 97 | 98 | SERVICE=`which service` 99 | if [ -z "$SERVICE" ]; then 100 | SERVICE="/usr/sbin/service" 101 | fi 102 | 103 | 104 | if $SERVICE exagear status > /dev/null ; then 105 | use_binfmt_misc="--use-binfmt_misc" 106 | fi 107 | 108 | use_upstart_integration="--opaths-list ${opaths_list}" 109 | 110 | cd ~ 111 | args=`for arg in "$@"; do printf "%q " "$arg"; done` 112 | 113 | unset LC_CTYPE 114 | unset LC_NUMERIC 115 | unset LC_TIME 116 | unset LC_COLLATE 117 | unset LC_MONETARY 118 | unset LC_MESSAGES 119 | unset LC_PAPER 120 | unset LC_NAME 121 | unset LC_ADDRESS 122 | unset LC_TELEPHONE 123 | unset LC_MEASUREMENT 124 | unset LC_IDENTIFICATION 125 | unset LC_ALL 126 | unset LANGUAGE 127 | unset LANG 128 | 129 | $ubt --path-prefix $image_dir --vpaths-list $vpaths_list -- \ 130 | /bin/echo "Starting $command $args in the guest image $image_dir" || \ 131 | echo "Failed to start Exagear. Please check that file $ubt exists and has executable permission" 132 | 133 | eval $ubt --path-prefix $image_dir --vpaths-list $vpaths_list $use_upstart_integration $use_binfmt_misc -- \ 134 | $command $args 135 | -------------------------------------------------------------------------------- /bin/install-exagear-orig: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eou pipefail 3 | 4 | function retback { 5 | popd > /dev/null 6 | } 7 | trap retback EXIT 8 | 9 | pushd `dirname $0` > /dev/null 10 | 11 | UBT_PACKAGE_NAME_2G="exagear-mem2g_*-1_armhf.deb" 12 | UBT_PACKAGE_NAME_3G="exagear_*-1_armhf.deb" 13 | UBT_PACKAGE_NAME_LEGACY_2G="exagear-legacy-mem2g_*-1_armhf.deb" 14 | UBT_PACKAGE_NAME_LEGACY_3G="exagear-legacy_*-1_armhf.deb" 15 | UBT_PACKAGE_NAME_ARM7_8="exagear-armv8_*-1_arm64.deb" 16 | 17 | GUEST_IMAGE_PACKAGE_NAME_DEBIAN_7="exagear-guest-debian-7_*_all.deb" 18 | GUEST_IMAGE_PACKAGE_NAME_DEBIAN_7_WINE2G="exagear-guest-debian-7-wine2g_*_all.deb" 19 | GUEST_IMAGE_PACKAGE_NAME_DEBIAN_8="exagear-guest-debian-8_*_all.deb" 20 | GUEST_IMAGE_PACKAGE_NAME_UBUNTU_1204="exagear-guest-ubuntu-1204lts_*_all.deb" 21 | GUEST_IMAGE_PACKAGE_NAME_UBUNTU_1404="exagear-guest-ubuntu-1404lts_*_all.deb" 22 | GUEST_IMAGE_PACKAGE_NAME_UBUNTU_1504="exagear-guest-ubuntu-1504_*_all.deb" 23 | GUEST_IMAGE_PACKAGE_NAME_UBUNTU_1604="exagear-guest-ubuntu-1604_*_all.deb" 24 | 25 | PK_FILE_NAME="pk-*.key" 26 | 27 | function file_exists { 28 | stat $1 &> /dev/null 29 | } 30 | 31 | function get_host_system_type { 32 | HOST_OS=$(cat /etc/lsb-release 2>/dev/null | egrep "^DISTRIB_ID\=" | awk -F= '{print $2}' | tr '[:upper:]' '[:lower:]') 33 | if [ -n "$HOST_OS" ]; then 34 | return 35 | fi 36 | 37 | HOST_OS=$(cat /etc/os-release | egrep "^ID\=" | awk -F= '{print $2}' | tr '[:upper:]' '[:lower:]') 38 | if [ -n "$HOST_OS" ]; then 39 | if [ "$HOST_OS" == "debian" -o "$HOST_OS" == "ubuntu" ] ; then 40 | return 41 | fi 42 | fi 43 | 44 | HOST_OS=$(cat /etc/os-release | egrep "^ID_LIKE\=" | awk -F= '{print $2}' | tr '[:upper:]' '[:lower:]') 45 | if [ -n "$HOST_OS" ]; then 46 | return 47 | fi¬ 48 | 49 | if [[ ! -z $HOST_OS ]]; then 50 | $HOST_OS="default" 51 | fi 52 | } 53 | 54 | function get_host_system_version { 55 | if [ "$HOST_OS" == "debian" ] ; then 56 | HOST_OS_VERSION=`cat /etc/*-release | egrep "^VERSION_ID\=" | awk -F= '{print $2}' | tr '[:upper:]' '[:lower:]' | tr -d "\"" ` 57 | if [ -z "$HOST_OS_VERSION" ] ; then 58 | if grep "jessie" /etc/*-release; then 59 | HOST_OS_VERSION="8" 60 | fi 61 | fi 62 | 63 | elif [ "$HOST_OS" == "ubuntu" ] ; then 64 | HOST_OS_VERSION=`cat /etc/*-release | egrep "^DISTRIB_RELEASE\=" | awk -F= '{print $2}' | awk -F. '{print $1}' | tr '[:upper:]' '[:lower:]'` 65 | fi 66 | 67 | if [ -z "$HOST_OS_VERSION" ] ; then 68 | HOST_OS_VERSION="default" 69 | fi 70 | } 71 | 72 | function get_arch { 73 | #ARCH=`arch` 74 | ARCH="armv7l" # Arch Linux 75 | echo "ARCH=$ARCH" 76 | } 77 | 78 | function check_guest_image_already_installed { 79 | INSTALLED_GUEST_IMAGE=$(ls /opt/exagear/images/ | head -n 1) 80 | 81 | if [ ! -z "$INSTALLED_GUEST_IMAGE" ]; then 82 | echo "It is not possible to install guest image package as you already have guest image package installed." 83 | echo "Installed guest image package name is exagear-guest-$INSTALLED_GUEST_IMAGE. " 84 | echo "To uninstall current guest image package use ' sudo apt-get purge exagear-guest-$INSTALLED_GUEST_IMAGE '" 85 | echo "Note that all x86 applications installed inside the current guest image will be also deleted." 86 | exit 1 87 | fi 88 | } 89 | 90 | function check_free_space { 91 | FREE_SPACE_MB=`df -m /opt/ | awk 'NR==2 {print $4}'` 92 | INSTALL_BLOCKDEV=`df -m /opt/ | awk 'NR==2 {print $1}'` 93 | if [ $FREE_SPACE_MB -lt 1500 ]; then 94 | echo "No enough space on your $INSTALL_BLOCKDEV file system. 1500M is required for exagear. You got only ${FREE_SPACE_MB}M. Please perform some cleanup or resize partitin" 95 | exit 1 96 | fi 97 | } 98 | 99 | if [ ! -z "$1" ] && [ "$1" != "ubuntu-1404" ] ; then 100 | echo "Invalid argument: $1" 101 | exit 1 102 | fi 103 | 104 | uid=$(id -u) 105 | if [ "$uid" != "0" ] ; then 106 | echo "Must be root" 107 | exit 1 108 | fi 109 | 110 | test_binary=$(mktemp) 111 | echo f0VMRgEBAQAAAAAAAAAAAAIAKAABAAAAVIAAADQAAADIAAAAAAIABTQAIAABACgABgADAAEAAAAAAAAAAIAAAACAAACAAAAAgAAAAAUAAAAAgAAACgKg4wEaoOMAIKDjMjCg48BwoOMAAADvCgJQ4wAAoAMBAKATAXCg4wAA 112 | chmod +x $test_binary 113 | $test_binary 114 | test_bin_ret=$? 115 | rm -f $test_binary 116 | 117 | if [ "$test_bin_ret" -eq '0' ]; then 118 | is_3g="1" 119 | echo "System memory configuration is determined as 3g/1g" 120 | else 121 | is_3g="0" 122 | echo "System memory configuration is determined as 2g/2g" 123 | fi 124 | 125 | get_host_system_type 126 | get_host_system_version 127 | get_arch 128 | check_guest_image_already_installed 129 | check_free_space 130 | 131 | echo "HOST OS: $HOST_OS" 132 | echo "HOST OS VERSION: $HOST_OS_VERSION" 133 | echo "EXAGEAR package: $UBT_PACKAGE_NAME" 134 | echo "EXAGEAR guest image package: '$GUEST_IMAGE_PACKAGE_NAME'" 135 | 136 | if ! file_exists "$PK_FILE_NAME" ; then 137 | echo "Put a primary key file to the current directory." 138 | echo "Primary key files are named ${PK_FILE_NAME/\*/NNNNNN}" 139 | exit 1 140 | fi 141 | 142 | echo "HOST OS: $HOST_OS" 143 | echo "HOST OS VERSION: $HOST_OS_VERSION" 144 | echo "EXAGEAR package: $UBT_PACKAGE_NAME" 145 | echo "EXAGEAR guest image package: '$GUEST_IMAGE_PACKAGE_NAME'" 146 | 147 | echo "Installing the binary translator..." 148 | dpkg -i $UBT_PACKAGE_NAME || exit 1 149 | 150 | echo "Installing the guest image..." 151 | dpkg -i $GUEST_IMAGE_PACKAGE_NAME || exit 1 152 | 153 | echo "Installing the primary key..." 154 | mv $PK_FILE_NAME /opt/exagear/lic/ || exit 1 155 | 156 | echo "Activating the copy of ExaGear..." 157 | /opt/exagear/bin/actool || exit 1 158 | 159 | echo "Done!" 160 | 161 | -------------------------------------------------------------------------------- /src/eltechs-deb/arch-linux/data/opt/exagear/share/doc/licenses/EULA: -------------------------------------------------------------------------------- 1 | ELTECHS END USER LICENSE AGREEMENT 2 | 3 | 4 | 5 | IMPORTANT NOTE: BY CLICKING .I AGREE., DOWNLOADING, INSTALLING OR USING THE SOFTWARE, YOU AGREE TO THE TERMS OF THIS END USER LICENSE AGREEMENT (.EULA.). IF YOU DO NOT AGREE TO THE TERMS OF THIS EULA, YOU MUST NOT CLICK .I AGREE., DOWNLOAD, INSTALL, OR USE THE SOFTWARE. 6 | 7 | 1. DEFINITIONS. 8 | (a) .Documentation. means that documentation that is generally provided to You by Eltechs with the Software and which may include end user manuals, installation guides, release notes, and on-line help regarding the use of the Software. 9 | (b) .Eltechs. means .Elbrus Technologies. LLC, a Russian company. 10 | (c) .Intellectual Property Rights. means all intellectual property rights, including, without limitation, patent, copyright, trademark, and trade secret, recognized in any jurisdiction worldwide, whether perfected or not, and any similar and other proprietary rights. 11 | (d) .License. means a license granted under Section 2 (a). 12 | (e) .License Key. means a license key file that enables You to activate and use the Software. 13 | (f) .License Term. means the duration of a License as specified in the Order. 14 | (g) .License Type. means the type of License applicable to the Software, as more fully described in the Order. 15 | (h) "Open Source Software" means code that is provided with the Software and identified as open source code or otherwise as being subject to open source license terms. 16 | (i) .Order. means a purchase order, enterprise license agreement, or other ordering document issued by You to Eltechs or a Eltechs authorized reseller. 17 | (j) .Software. means the Eltechs computer programs to which You acquire a license under an Order. 18 | (k) .Third Party Agent. means a third party delivering information technology services to You pursuant to a written contract with You. 19 | 20 | 2. LICENSE GRANT, USE AND OWNERSHIP 21 | (a) Scope of License. Subject to the terms and conditions of this EULA, Eltechs grants You, during the License Term, a non-exclusive, non-transferable License to use the Software, in executable code form only for Your internal operations in accordance with (i) the Documentation; (ii) the License Type for which You have paid the applicable fees; (iii) other applicable limitations set forth in the Order. The License to the Software is limited to the quantities specified in each applicable Order. 22 | (b) Third Party Use. Under the License granted to You in Section 2 (a) above, You may permit Your Third Party Agents to access, use and/or operate the Software on Your behalf for the sole purpose of delivering services to You, provided that You will be fully responsible for Your Third Party Agents. compliance with terms and conditions of this EULA and any breach of this EULA by a Third Party Agent shall be deemed to be a breach by You. 23 | (c) Permitted Copies. You may make one copy of the Software for archival purposes only. The copy shall: (i) be kept within Your possession or control; (ii) include all titles, trademarks, and copyright and restricted rights notices in the original; and (iii) be subject to this EULA. You may not otherwise copy the Software without Eltechs.s prior written consent. 24 | (d) Support and Maintenance Services; Updates. Eltechs will not provide any support or maintenance services under this EULA. You acknowledge that Eltechs has no express or implied obligation to announce or make available any updates, enhancements, modifications, revisions, or additions to the Software and that this EULA does not give you any rights in or to any of the foregoing. 25 | (e) Open Source Software. Notwithstanding anything herein, Except Section 4, any Open Source Software accompanying the Software is provided under the terms of the open source license agreement or copyright notice accompanying such Open Source Software or in the open_source_licenses.txt file accompanying the Software. 26 | (f) Restrictions. You acknowledge that the Software and the structure, organization and source code of the Software constitute valuable trade secrets of Eltechs. Accordingly, except as expressly permitted in this EULA or as otherwise authorized by Eltechs in writing, You will not and will not permit any third party to: (i) sell, lease, license, distribute, sublicense or otherwise transfer in whole or in part the Software or Documentation to any third party; (ii) decompile, disassemble, reverse engineer, or otherwise attempt to derive source code from the Software, in whole or in part; (iii) copy the Software, except for archival purposes, as set out in Section 2 (c); (iv) create, develop, license, install, use, or deploy any software or services to circumvent, enable, modify or provide access, permissions or rights which violate the technical restrictions of the Software as described in this EULA; (v) translate, modify or create derivative works based upon the Software; (vi) permit any use of or access to the Software by any third party; (vii) remove any product identification, proprietary, copyright or other notices contained in the Software; or (viii) operate the Software on behalf of or for the benefit of any third party, including the operation of any service that is accessed by a third party. 27 | (g) Ownership. The Software and Documentation, all copies and portions thereof, and all improvements, enhancements, modifications and derivative works thereof, and all Intellectual Property Rights therein, are and shall remain the sole and exclusive property of Eltechs and its licensors. Your rights to use the Software and Documentation shall be limited to those expressly granted in this EULA. No other rights with respect to the Software or any related Intellectual Property Rights are implied. You are not authorized to use (and shall not permit any third party to use) the Software, Documentation or any portion thereof except as expressly authorized by this EULA. 28 | 29 | 3. TERM AND TERMINATION 30 | This EULA is effective upon your acceptance of the EULA, or upon your downloading, installing, accessing, and using the Software, even if you have not expressly accepted this EULA. This EULA shall continue in effect until expiration or termination as provided herein. Term-based licenses terminate upon the expiration of the prepaid term, unless you have paid all applicable fees to extend the term. Without prejudice to any other rights, this EULA will terminate automatically without notice to you if you breach or fail to comply with any of the limitations or other requirements described herein, including the payment of any applicable fees, and you agree that in any such case Eltechs may, in addition to any other remedies it may have at law or in equity, remotely disable the Software. You may terminate this EULA at any time by providing written notice of your decision to terminate the EULA to Eltechs and ceasing use of the Software and Documentation. Upon any termination or expiration of the EULA for any reason, you agree to uninstall the Software and destroy the Software, Documentation, all copies thereof, and all license keys that you have obtained and provide written verification of such destruction to Eltechs. 31 | 32 | 4. WARRANTY DISCLAIMER AND LIMITATION OF LIABILITY 33 | (a) WARRANTY DISCLAIMER. THE SOFTWARE AND DOCUMENTATION ARE LICENSED .AS IS,. AND ELTECHS DISCLAIMS ANY AND ALL OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, TIMELINESS, TITLE, OR NON-INFRINGEMENT OF THIRD PARTY RIGHTS, TO THE FULLEST EXTENT AUTHORIZED BY LAW. ELTECHS DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR FREE, THAT DEFECTS OR ERRORS IN THE SOFTWARE WILL BE CORRECTED OR THAT THE PACKAGE WILL BE COMPATIBLE WITH FUTURE ELTECHS PRODUCTS, OR THAT ANY INFORMATION STORED OR TRANSMITTED THROUGH THE SOFTWARE WILL NOT BE LOST, CORRUPTED OR DESTROYED. YOU ASSUME RESPONSIBILITY FOR SELECTING THE SOFTWARE TO ACHIEVE YOUR INTENDED RESULTS, AND FOR THE RESULTS OBTAINED FROM YOUR USE OF THE SOFTWARE. YOU SHALL BEAR THE ENTIRE RISK AS TO THE QUALITY AND THE PERFORMANCE OF THE SOFTWARE. 34 | (b) LIMITATION OF LIABILITY. ELTECHS CUMULATIVE LIABILITY TO YOU OR ANY PARTY RELATED TO YOU FOR ANY LOSS OR DAMAGES ARISING OUT OF OR RELATING TO THIS EULA, OR INSTALLATION OR USE OF THE SOFTWARE SHALL NOT EXCEED THE AMOUNT OF LICENSE FEES PAID TO ELTECHS BY YOU UNDER THIS EULA. THIS LIMITATION APPLIES TO ALL CAUSES OF ACTION OR CLAIMS IN THE AGGREGATE, INCLUDING, WITHOUT LIMITATION, BREACH OF CONTRACT, BREACH OF WARRANTY, INDEMNITY, NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION, AND OTHER TORTS. IN NO EVENT SHALL ELTECHS BE LIABLE TO YOU OR ANY PARTY RELATED TO YOU FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY, OR PUNITIVE DAMAGES OR LOST PROFITS, EVEN IF ELTECHS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 35 | 36 | 5. OTHER PROVISIONS 37 | (a) Governing Law, Injunctive Relief and Legal Costs. 38 | (aa) Choice of Law. This EULA and any dispute arising out of or related to this EULA or the Software ("Dispute") will be governed by Delaware law, without regard to its choice of law principles. For purposes of this EULA, the parties acknowledge and agree that Eltechs is the proponent of this EULA and of the transaction embodied herein. 39 | (bb) Injunctive Relief. Either party may, at its sole discretion, seek preliminary judicial relief in any court of competent jurisdiction (including, but not limited to, preliminary injunctive relief). 40 | (cc) Legal Costs. If it is necessary for either party to retain the services of an attorney or attorneys to enforce the terms of this EULA or to file an action to enforce any of the terms, conditions or rights contained herein, or to defend any action, then the prevailing party in any such action will be entitled to recover from the other party its reasonable fees for attorneys and expert witnesses, plus such court costs and expenses as may be fixed by any court of competent jurisdiction. 41 | (b) Indemnification. You will, at your own expense, indemnify and hold Eltechs, and all officers, directors, and employees thereof, harmless from and against any and all claims, actions, liabilities, losses, damages, judgments, grants, costs, and expenses, including reasonable attorneys. fees, arising out of any use of the Software by you, any party related to you, or any party acting upon your authorization in a manner that is not expressly authorized by this EULA. 42 | (c) Severability. In the event any of the terms and conditions hereof shall contradict with any mandatory or restrictive provisions of the applicable laws at any time and thereby becomes invalid or unenforceable, such invalidity or unenforceability shall not affect the validity and enforceability of the other terms and conditions of this EULA, which shall thereafter be construed in all respects as if such invalid or unenforceable provisions were omitted, provided that no party is, as a result thereof, deprived of the enjoyment of its substantial benefits under this EULA. 43 | (d) Waivers. The waivers, express or implied, by any of the parties to this EULA of any right hereunder or of any failure to perform, or of any breach by any other party or parties shall not constitute or be deemed as a waiver of such provision(s) granting such right or requiring such performance, or of the right of such party to thereafter enforce each and every such provision, or to enforce any other right hereunder. Any specific right or remedy contained in this EULA shall not be exclusive but shall be cumulative upon all allowable under applicable law. 44 | (f) Contact information. If you have any questions about this EULA, or if you want to contact Eltechs for any reason, please email support@eltechs.com or visit our website www.eltechs.com or visit our technical forum forum.eltechs.com. 45 | 46 | -------------------------------------------------------------------------------- /src/eltechs-deb/original/data/opt/exagear/share/doc/licenses/EULA: -------------------------------------------------------------------------------- 1 | ELTECHS END USER LICENSE AGREEMENT 2 | 3 | 4 | 5 | IMPORTANT NOTE: BY CLICKING .I AGREE., DOWNLOADING, INSTALLING OR USING THE SOFTWARE, YOU AGREE TO THE TERMS OF THIS END USER LICENSE AGREEMENT (.EULA.). IF YOU DO NOT AGREE TO THE TERMS OF THIS EULA, YOU MUST NOT CLICK .I AGREE., DOWNLOAD, INSTALL, OR USE THE SOFTWARE. 6 | 7 | 1. DEFINITIONS. 8 | (a) .Documentation. means that documentation that is generally provided to You by Eltechs with the Software and which may include end user manuals, installation guides, release notes, and on-line help regarding the use of the Software. 9 | (b) .Eltechs. means .Elbrus Technologies. LLC, a Russian company. 10 | (c) .Intellectual Property Rights. means all intellectual property rights, including, without limitation, patent, copyright, trademark, and trade secret, recognized in any jurisdiction worldwide, whether perfected or not, and any similar and other proprietary rights. 11 | (d) .License. means a license granted under Section 2 (a). 12 | (e) .License Key. means a license key file that enables You to activate and use the Software. 13 | (f) .License Term. means the duration of a License as specified in the Order. 14 | (g) .License Type. means the type of License applicable to the Software, as more fully described in the Order. 15 | (h) "Open Source Software" means code that is provided with the Software and identified as open source code or otherwise as being subject to open source license terms. 16 | (i) .Order. means a purchase order, enterprise license agreement, or other ordering document issued by You to Eltechs or a Eltechs authorized reseller. 17 | (j) .Software. means the Eltechs computer programs to which You acquire a license under an Order. 18 | (k) .Third Party Agent. means a third party delivering information technology services to You pursuant to a written contract with You. 19 | 20 | 2. LICENSE GRANT, USE AND OWNERSHIP 21 | (a) Scope of License. Subject to the terms and conditions of this EULA, Eltechs grants You, during the License Term, a non-exclusive, non-transferable License to use the Software, in executable code form only for Your internal operations in accordance with (i) the Documentation; (ii) the License Type for which You have paid the applicable fees; (iii) other applicable limitations set forth in the Order. The License to the Software is limited to the quantities specified in each applicable Order. 22 | (b) Third Party Use. Under the License granted to You in Section 2 (a) above, You may permit Your Third Party Agents to access, use and/or operate the Software on Your behalf for the sole purpose of delivering services to You, provided that You will be fully responsible for Your Third Party Agents. compliance with terms and conditions of this EULA and any breach of this EULA by a Third Party Agent shall be deemed to be a breach by You. 23 | (c) Permitted Copies. You may make one copy of the Software for archival purposes only. The copy shall: (i) be kept within Your possession or control; (ii) include all titles, trademarks, and copyright and restricted rights notices in the original; and (iii) be subject to this EULA. You may not otherwise copy the Software without Eltechs.s prior written consent. 24 | (d) Support and Maintenance Services; Updates. Eltechs will not provide any support or maintenance services under this EULA. You acknowledge that Eltechs has no express or implied obligation to announce or make available any updates, enhancements, modifications, revisions, or additions to the Software and that this EULA does not give you any rights in or to any of the foregoing. 25 | (e) Open Source Software. Notwithstanding anything herein, Except Section 4, any Open Source Software accompanying the Software is provided under the terms of the open source license agreement or copyright notice accompanying such Open Source Software or in the open_source_licenses.txt file accompanying the Software. 26 | (f) Restrictions. You acknowledge that the Software and the structure, organization and source code of the Software constitute valuable trade secrets of Eltechs. Accordingly, except as expressly permitted in this EULA or as otherwise authorized by Eltechs in writing, You will not and will not permit any third party to: (i) sell, lease, license, distribute, sublicense or otherwise transfer in whole or in part the Software or Documentation to any third party; (ii) decompile, disassemble, reverse engineer, or otherwise attempt to derive source code from the Software, in whole or in part; (iii) copy the Software, except for archival purposes, as set out in Section 2 (c); (iv) create, develop, license, install, use, or deploy any software or services to circumvent, enable, modify or provide access, permissions or rights which violate the technical restrictions of the Software as described in this EULA; (v) translate, modify or create derivative works based upon the Software; (vi) permit any use of or access to the Software by any third party; (vii) remove any product identification, proprietary, copyright or other notices contained in the Software; or (viii) operate the Software on behalf of or for the benefit of any third party, including the operation of any service that is accessed by a third party. 27 | (g) Ownership. The Software and Documentation, all copies and portions thereof, and all improvements, enhancements, modifications and derivative works thereof, and all Intellectual Property Rights therein, are and shall remain the sole and exclusive property of Eltechs and its licensors. Your rights to use the Software and Documentation shall be limited to those expressly granted in this EULA. No other rights with respect to the Software or any related Intellectual Property Rights are implied. You are not authorized to use (and shall not permit any third party to use) the Software, Documentation or any portion thereof except as expressly authorized by this EULA. 28 | 29 | 3. TERM AND TERMINATION 30 | This EULA is effective upon your acceptance of the EULA, or upon your downloading, installing, accessing, and using the Software, even if you have not expressly accepted this EULA. This EULA shall continue in effect until expiration or termination as provided herein. Term-based licenses terminate upon the expiration of the prepaid term, unless you have paid all applicable fees to extend the term. Without prejudice to any other rights, this EULA will terminate automatically without notice to you if you breach or fail to comply with any of the limitations or other requirements described herein, including the payment of any applicable fees, and you agree that in any such case Eltechs may, in addition to any other remedies it may have at law or in equity, remotely disable the Software. You may terminate this EULA at any time by providing written notice of your decision to terminate the EULA to Eltechs and ceasing use of the Software and Documentation. Upon any termination or expiration of the EULA for any reason, you agree to uninstall the Software and destroy the Software, Documentation, all copies thereof, and all license keys that you have obtained and provide written verification of such destruction to Eltechs. 31 | 32 | 4. WARRANTY DISCLAIMER AND LIMITATION OF LIABILITY 33 | (a) WARRANTY DISCLAIMER. THE SOFTWARE AND DOCUMENTATION ARE LICENSED .AS IS,. AND ELTECHS DISCLAIMS ANY AND ALL OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, TIMELINESS, TITLE, OR NON-INFRINGEMENT OF THIRD PARTY RIGHTS, TO THE FULLEST EXTENT AUTHORIZED BY LAW. ELTECHS DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR FREE, THAT DEFECTS OR ERRORS IN THE SOFTWARE WILL BE CORRECTED OR THAT THE PACKAGE WILL BE COMPATIBLE WITH FUTURE ELTECHS PRODUCTS, OR THAT ANY INFORMATION STORED OR TRANSMITTED THROUGH THE SOFTWARE WILL NOT BE LOST, CORRUPTED OR DESTROYED. YOU ASSUME RESPONSIBILITY FOR SELECTING THE SOFTWARE TO ACHIEVE YOUR INTENDED RESULTS, AND FOR THE RESULTS OBTAINED FROM YOUR USE OF THE SOFTWARE. YOU SHALL BEAR THE ENTIRE RISK AS TO THE QUALITY AND THE PERFORMANCE OF THE SOFTWARE. 34 | (b) LIMITATION OF LIABILITY. ELTECHS CUMULATIVE LIABILITY TO YOU OR ANY PARTY RELATED TO YOU FOR ANY LOSS OR DAMAGES ARISING OUT OF OR RELATING TO THIS EULA, OR INSTALLATION OR USE OF THE SOFTWARE SHALL NOT EXCEED THE AMOUNT OF LICENSE FEES PAID TO ELTECHS BY YOU UNDER THIS EULA. THIS LIMITATION APPLIES TO ALL CAUSES OF ACTION OR CLAIMS IN THE AGGREGATE, INCLUDING, WITHOUT LIMITATION, BREACH OF CONTRACT, BREACH OF WARRANTY, INDEMNITY, NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION, AND OTHER TORTS. IN NO EVENT SHALL ELTECHS BE LIABLE TO YOU OR ANY PARTY RELATED TO YOU FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY, OR PUNITIVE DAMAGES OR LOST PROFITS, EVEN IF ELTECHS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 35 | 36 | 5. OTHER PROVISIONS 37 | (a) Governing Law, Injunctive Relief and Legal Costs. 38 | (aa) Choice of Law. This EULA and any dispute arising out of or related to this EULA or the Software ("Dispute") will be governed by Delaware law, without regard to its choice of law principles. For purposes of this EULA, the parties acknowledge and agree that Eltechs is the proponent of this EULA and of the transaction embodied herein. 39 | (bb) Injunctive Relief. Either party may, at its sole discretion, seek preliminary judicial relief in any court of competent jurisdiction (including, but not limited to, preliminary injunctive relief). 40 | (cc) Legal Costs. If it is necessary for either party to retain the services of an attorney or attorneys to enforce the terms of this EULA or to file an action to enforce any of the terms, conditions or rights contained herein, or to defend any action, then the prevailing party in any such action will be entitled to recover from the other party its reasonable fees for attorneys and expert witnesses, plus such court costs and expenses as may be fixed by any court of competent jurisdiction. 41 | (b) Indemnification. You will, at your own expense, indemnify and hold Eltechs, and all officers, directors, and employees thereof, harmless from and against any and all claims, actions, liabilities, losses, damages, judgments, grants, costs, and expenses, including reasonable attorneys. fees, arising out of any use of the Software by you, any party related to you, or any party acting upon your authorization in a manner that is not expressly authorized by this EULA. 42 | (c) Severability. In the event any of the terms and conditions hereof shall contradict with any mandatory or restrictive provisions of the applicable laws at any time and thereby becomes invalid or unenforceable, such invalidity or unenforceability shall not affect the validity and enforceability of the other terms and conditions of this EULA, which shall thereafter be construed in all respects as if such invalid or unenforceable provisions were omitted, provided that no party is, as a result thereof, deprived of the enjoyment of its substantial benefits under this EULA. 43 | (d) Waivers. The waivers, express or implied, by any of the parties to this EULA of any right hereunder or of any failure to perform, or of any breach by any other party or parties shall not constitute or be deemed as a waiver of such provision(s) granting such right or requiring such performance, or of the right of such party to thereafter enforce each and every such provision, or to enforce any other right hereunder. Any specific right or remedy contained in this EULA shall not be exclusive but shall be cumulative upon all allowable under applicable law. 44 | (f) Contact information. If you have any questions about this EULA, or if you want to contact Eltechs for any reason, please email support@eltechs.com or visit our website www.eltechs.com or visit our technical forum forum.eltechs.com. 45 | 46 | --------------------------------------------------------------------------------