Running on Linux?

I'm trying to get EE (the unofficial build) to Run on Ubuntu, but it's not quite clear everything that I need to do.

I see there are a number of libraries to install, does anyone have package names for those?

Comments

  • The windows version seems to work fine in Wine, if you don't want to have to build from source.
  • Here's a kisckstart file for Fedora that installs everything needed and performs a build of EmptyEpsilon.. sorry it's huge having to break it across multiple posts.

    # fedora-live-base.ks
    #
    # Defines the basics for all kickstarts in the fedora-live branch
    # Does not include package selection (other then mandatory)
    # Does not include localization packages or configuration
    #
    # Does includes "default" language configuration (kickstarts including
    # this template can override these settings)

    lang en_US.UTF-8
    keyboard us
    timezone US/Eastern
    auth --useshadow --enablemd5
    selinux --disabled
    firewall --disabled
    xconfig --startxonboot
    part / --size 10240 --fstype ext4
    part /home --size 1536 --fstype ext4
    part /usr/local --size 1536 --fstype ext4
    services --enabled=NetworkManager,sshd --disabled=network

    repo=rawhide&arch=$basearch
    repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
    repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
    #repo --name=updates-testing --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f$releasever&arch=$basearch
    repo --name=rpmfusion --baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/$basearch/os/
    repo --name=rpmfusion-updates --baseurl=http://download1.rpmfusion.org/free/fedora/updates/$releasever/$basearch/
    repo --name=rpmfusion-nonfree --baseurl=http://download1.rpmfusion.org/nonfree/fedora/releases/$releasever/Everything/$basearch/os/
    repo --name=rpmfusion-nonfree-updates --baseurl=http://download1.rpmfusion.org/nonfree/fedora/updates/$releasever/$basearch/
    repo --name=HandBrake --baseurl=http://negativo17.org/repos/HandBrake/fedora-$releasever/$basearch/
    repo --name=GoogleChrome --baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch/


    %packages
    @^minimal
    @base-x
    @standard
    @core
    @fonts
    @multimedia
    @printing with-optional
    @gnome
    #from fedora-live-desktop
    ImageMagick
    -firefox
    -smartmontools
    vim
    vim-X11
    joystick-support
    # end Fedora-live-desktop packages
    # use a small pinyin db for live
    -ibus-pinyin-db-open-phrase
    -ibus-pinyin-db-android
    @admin-tools

    # Explicitly specified here:
    # <notting> walters: because otherwise dependency loops cause yum issues.
    kernel

    # fpaste is very useful for debugging and very small
    fpaste

    #from fedora-live-minimization.ks

    # save some space
    -isdn4k-utils

    # scanning takes quite a bit of space :/
    -xsane
    -xsane-gimp
    -sane-backends
    -sane-backends-drivers-scanners
    -simple-scan
    -libsane*


    #from fedora-livecd-desktop.ks
    -foomatic-db-ppds
    -foomatic
    -hunspell-*
    -words
    -gnome-user-docs
    -krb5-auth-dialog
    -krb5-workstation
    -pam_krb5
    -quota
    -nano
    -minicom
    dos2unix
    -finger
    ftp
    -jwhois
    -mtr
    -pinfo
    -rsh
    telnet
    nfs-utils
    -ypbind
    -yp-tools
    rpcbind
    -acpid
    -ntsysv
    # Drop some system-config things
    -system-config-boot
    -system-config-language
    system-config-network
    -system-config-rootpassword
    -system-config-services
    -policycoreutils-gui
    #We needs our tools!
    lsof
    nmap

    # This is Aff:
    mesa-dri-drivers.i686
    openarena
    sudo

    # More minimization
    -cheese
    -cdparanoia

    #OMG what we do for network drivers.....
    @c-development --optional
    qt5-qtbase-devel


    @system-tools
    icecast

    #for SFML build
    libxcb-devel
    xcb-util-renderutil-devel
    xcb-util-image-devel
    systemd-devel
    libjpeg-devel
    openal-devel
    freetype-devel
    glew-devel
    libsndfile-devel
    ghc-OpenGL-devel
    flac-devel
    libvorbis-devel
    faac


    #for EmptyEpsilon build

    #for ICE build
    openssl-devel
    libmcpp-devel
    bzip2-devel
    libdb-cxx-devel
    lmdb-devel
    libdb-java
    java-1.8.0-openjdk-devel
    npm
    ruby-devel
    php-devel
    python-devel
    expat-devel

    #for Mumble/Murmurd build
    protobuf-devel
    speexdsp-devel
    alsa-lib-devel
    alsa-plugins-*
    alsa-utils
    qt5-qtsvg-devel
    alsa-tools
    boost-devel
    avahi-compat-libdns_sd-devel
    speech-dispatcher-devel
    qt5-qttools-devel
    qt5-qttranslations
    libcap-devel
    xorg-x11-server-devel
    libXi-devel
    libdaemon-devel
    libusb-devel

    protobuf-compiler
    git
    kernel-devel
    ejabberd
    kernel-headers
    #kernel-devel
    dkms
    tigervnc-server
    tigervnc
    vlc
    dhcp-server
    dhcp-client
    @perl
    @fonts
    dvdbackup
    HandBrake-gui
    HandBrake-cli
    google-chrome-stable
    synergy

    %end

  • Part 2


    %post --log=/var/log/post_stage1.log
    # FIXME: it'd be better to get this installed from a package
    #cat >/lib/systemd/system/livesys.service <<EOF
    #[Unit]
    #Description=Configure LiveImage system
    #DefaultDependencies=no
    #Conflicts=shutdown.target
    #Before=multi-user.target
    #After=basic.target rescue.service rescue.target local-fs.target
    #
    #[Service]
    #ExecStart=/usr/bin/livesys
    #Type=oneshot
    #TimeoutSec=0
    #RemainAfterExit=yes

    #EOF
    #ln -s /lib/systemd/system/livesys.service /etc/systemd/system/multi-user.target.wants/livesys.service

    #Some of this shit was being done old school while new school tools rolled over and shagged them.. ugh

    # turn off firstboot for livecd boots
    /sbin/usermod -a -G 18 gdm
    grep 18 /etc/group
    rm /usr/lib/systemd/system/sysinit.target.wants/systemd-firstboot.service
    # don't use prelink on a running live image
    sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :
    # turn off mdmonitor by default
    find /usr/lib/systemd/ -name mdmonitor.service -o -name mdmonitor-takeover.service -o -name crond.service -o -name atd.service -delete
    # don't enable the gnome-settings-daemon packagekit plugin


    cat > /usr/sbin/livesys << EOF
    #!/bin/bash
    #
    # live: Init script for live image
    #
    # chkconfig: 345 00 99
    # description: Init script for live image.

    . /etc/init.d/functions

    #if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ]; then
    # exit 0
    #fi

    if [ -e /.liveimg-configured ] ; then
    echo Livesys already run. Exiting.
    configdone=1
    exit 0
    fi

    exists() {
    which \$1 >/dev/null 2>&1 || return
    \$*
    }

    touch /.liveimg-configured

    # Make sure we don't mangle the hardware clock on shutdown
    ln -sf /dev/null /etc/systemd/system/hwclock-save.service

    livedir="LiveOS"
    for arg in \`cat /proc/cmdline\` ; do
    if [ "\${arg##live_dir=}" != "\${arg}" ]; then
    livedir=\${arg##live_dir=}
    return
    fi
    done

    # enable swaps unless requested otherwise
    swaps=\`blkid -t TYPE=swap -o device\`
    if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then
    for s in \$swaps ; do
    action "Enabling swap partition \$s" swapon \$s
    done
    fi
    if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then
    action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img
    fi

    mountPersistentHome() {
    # support label/uuid
    if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then
    homedev=\`/sbin/blkid -o device -t "\$homedev"\`
    fi

    # if we're given a file rather than a blockdev, loopback it
    if [ "\${homedev##mtd}" != "\${homedev}" ]; then
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
    mountopts="-t jffs2"
    elif [ ! -b "\$homedev" ]; then
    loopdev=\`losetup -f\`
    if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then
    action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live
    fi
    losetup \$loopdev \$homedev
    homedev=\$loopdev
    fi

    # if it's encrypted, we need to unlock it
    if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
    echo
    echo "Setting up encrypted /home device"
    plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome"
    homedev=/dev/mapper/EncHome
    fi

    # and finally do the mount
    mount \$mountopts \$homedev /home
    # if we have /home under what's passed for persistent home, then
    # we should make that the real /home. useful for mtd device on olpc
    if [ -d /home/home ]; then mount --bind /home/home /home ; fi
    [ -x /sbin/restorecon ] && /sbin/restorecon /home
    if [ -d /home/artemis ]; then USERADDARGS="-M" ; fi
    }

    findPersistentHome() {
    for arg in \`cat /proc/cmdline\` ; do
    if [ "\${arg##persistenthome=}" != "\${arg}" ]; then
    homedev=\${arg##persistenthome=}
    return
    fi
    done
    }

    mountPersistentUsrLocal() {
    # support label/uuid
    if [ "\${usrlocaldev##LABEL=}" != "\${usrlocaldev}" -o "\${usrlocaldev##UUID=}" != "\${usrlocaldev}" ]; then
    usrlocaldev=\`/sbin/blkid -o device -t "\$usrlocaldev"\`
    fi

    # if we're given a file rather than a blockdev, loopback it
    if [ "\${usrlocaldev##mtd}" != "\${usrlocaldev}" ]; then
    # mtd devs don't have a block device but get magic-mounted with -t jffs2
    mountopts="-t jffs2"
    elif [ ! -b "\$usrlocaldev" ]; then
    loopdev=\`losetup -f\`
    if [ "\${usrlocaldev##/run/initramfs/live}" != "\${usrlocaldev}" ]; then
    action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live
    fi
    losetup \$loopdev \$usrlocaldev
    usrlocaldev=\$loopdev
    fi

    # if it's encrypted, we need to unlock it
    if [ "\$(/sbin/blkid -s TYPE -o value \$usrlocaldev 2>/dev/null)" = "crypto_LUKS" ]; then
    echo
    echo "Setting up encrypted /usr/local device"
    plymouth ask-for-password --command="cryptsetup luksOpen \$usrlocaldev EncUsrLocal"
    usrlocaldev=/dev/mapper/EncUsrLocal
    fi

    # and finally do the mount
    mount \$mountopts \$usrlocaldev /usr/local
    # if we have /usr/local under what's passed for persistent usr/local, then
    # we should make that the real /usr/local. useful for mtd device on olpc
    if [ -d /usr/local/local ]; then mount --bind /usr/local/local /usr/local ; fi
    [ -x /sbin/restorecon ] && /sbin/restorecon /usr/local
    }

    findPersistentUsrLocal() {
    for arg in \`cat /proc/cmdline\` ; do
    if [ "\${arg##persistentusrlocal=}" != "\${arg}" ]; then
    usrlocaldev=\${arg##persistentusrlocal=}
    return
    fi
    done
    }

    if strstr "\`cat /proc/cmdline\`" persistenthome= ; then
    findPersistentHome
    elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then
    homedev=/run/initramfs/live/\${livedir}/home.img
    fi

    if strstr "\`cat /proc/cmdline\`" persistentusrlocal= ; then
    findPersistentUsrLocal
    elif [ -e /run/initramfs/live/\${livedir}/usrlocal.img ]; then
    usrlocaldev=/run/initramfs/live/\${livedir}/usrlocal.img
    fi

    # if we have a persistent /home, then we want to go ahead and mount it
    if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then
    action "Mounting persistent /home" mountPersistentHome
    fi

    # if we have a persistent /usr/local, then we want to go ahead and mount it
    if ! strstr "\`cat /proc/cmdline\`" nopersistentusrlocal && [ -n "\$usrlocaldev" ] ; then
    action "Mounting persistent /usr/local" mountPersistentUsrLocal
    fi

    # make it so that we don't do writing to the overlay for things which
    # are just tmpdirs/caches
    mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
    mount -t tmpfs tmp /tmp
    mount -t tmpfs vartmp /var/tmp
    [ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1


  • Part 3

    if [ -n "\$configdone" ]; then
    exit 0
    fi

    # add fedora user with no passwd
    passwd -d emptyepsilon > /dev/null
    passwd -d root > /dev/null
    # turn off firstboot for livecd boots
    systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
    systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
    systemctl stop firstboot-text.service 2> /dev/null || :
    systemctl stop firstboot-graphical.service 2> /dev/null || :
    # don't use prelink on a running live image
    sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :

    # turn off mdmonitor by default
    systemctl --no-reload disable mdmonitor.service 2> /dev/null || :
    systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || :
    systemctl stop mdmonitor.service 2> /dev/null || :
    systemctl stop mdmonitor-takeover.service 2> /dev/null || :

    # don't enable the gnome-settings-daemon packagekit plugin
    gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || :

    # don't start cron/at as they tend to spawn things which are
    # disk intensive that are painful on a live image
    systemctl --no-reload disable crond.service 2> /dev/null || :
    systemctl --no-reload disable atd.service 2> /dev/null || :
    systemctl stop crond.service 2> /dev/null || :
    systemctl stop atd.service 2> /dev/null || :

    EOF


    # bah, hal starts way too late
    cat > /usr/sbin/livesys-late << EOF
    #!/bin/bash
    #
    # live: Late init script for live image
    #
    # chkconfig: 345 99 01
    # description: Late init script for live image.

    ./usr/bin/udevadm /etc/init.d/functions

    #if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ] ||
    if [ -e /.liveimg-late-configured ] ; then
    echo livesys-late already run. Exiting
    exit 0
    fi

    exists() {
    which \$1 >/dev/null 2>&1 || return
    \$*
    }

    touch /.liveimg-late-configured

    # read some variables out of /proc/cmdline
    for o in \`cat /proc/cmdline\` ; do
    case \$o in
    ks=*)
    ks="--kickstart=\${o#ks=}"
    ;;
    xdriver=*)
    xdriver="\${o#xdriver=}"
    ;;
    esac
    done

    # if liveinst or textinst is given, start anaconda
    if strstr "\`cat /proc/cmdline\`" liveinst ; then
    plymouth --quit
    /usr/sbin/liveinst \$ks
    fi
    if strstr "\`cat /proc/cmdline\`" textinst ; then
    plymouth --quit
    /usr/sbin/liveinst --text \$ks
    fi

    # configure X, allowing user to override xdriver
    if [ -n "\$xdriver" ]; then
    cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
    Section "Device"
    Identifier "Videocard0"
    Driver "\$xdriver"
    EndSection
    FOE
    fi

    EOF

    chmod 755 /usr/sbin/livesys
    cp /usr/sbin/livesys /etc/rc.d/init.d/livesys
    chmod 755 /etc/rc.d/init.d/livesys
    /sbin/restorecon /usr/sbin/livesys
    /sbin/restorecon /etc/rc.d/init.d/livesys
    /sbin/chkconfig --add livesys

    chmod 755 /usr/sbin/livesys-late
    cp /usr/sbin/livesys-late /etc/rc.d/init.d/livesys-late
    chmod 755 /etc/rc.d/init.d/livesys-late
    /sbin/restorecon /usr/sbin/livesys-late
    /sbin/restorecon /etc/rc.d/init.d/livesys-late
    /sbin/chkconfig --add livesys-late

    echo Beginning source components driver install
    CONFIG+=
    %end
    %post --nochroot --log=/var/log/post_stage1-b.log
    echo Looking for INSTALL_ROOT
    mount|awk '{print $3}'|grep 'image_create.*/install_root'
    #echo -n Enter INSTALL_ROOT:
    INSTALL_ROOT=`mount |awk '{print $3}'|grep '/install_root$'`
    export INSTALL_ROOT;echo INSTALL_ROOT: $INSTALL_ROOT
    cp /etc/resolv.conf ${INSTALL_ROOT}/etc/

    git clone -b master https://github.com/SFML/SFML ${INSTALL_ROOT}/usr/src/SFML
    (cd ${INSTALL_ROOT}/usr/src;git clone -b master https://github.com/daid/EmptyEpsilon;git clone -b master https://github.com/daid/SeriousProton)
    git clone -b master https://github.com/zeroc-ice/ice ${INSTALL_ROOT}/usr/src/ice
    git clone -b master https://github.com/mumble-voip/mumble ${INSTALL_ROOT}/usr/src/mumble
    (cd ${INSTALL_ROOT}/usr/src/mumble;git submodule update --init)
    cp /var/log/post_stage1-b.log ${INSTALL_ROOT}/var/log/
    %end
    %post --interpreter /bin/bash --erroronfail --log=/var/log/post_stage1-c.log
    . /etc/profile
    export HOME=/root
    export PATH=$PATH:/usr/bin
    export CMAKE_INSTALL_PREFIX=/usr
    export INCLUDE_DIR
    export TERM=vt100
    mkdir /usr/src/SFML-build

    (cd /usr/src/SFML-build;/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr -G 'Unix Makefiles' /usr/src/SFML/&&/usr/bin/make &&/usr/bin/make install&&make clean)
    (mkdir /usr/src/EmptyEpsilon/build;cd /usr/src/EmptyEpsilon/build;/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DSERIOUS_PROTON_DIR=/usr/src/SeriousProton/ -G 'Unix Makefiles' /usr/src/EmptyEpsilon/&&/usr/bin/make&&/usr/bin/make install&&cp /usr/src/EmptyEpsilon/logo.svg /usr/share/icons/hicolor/scalable/EmptyEpsilon.0.svg)

    # ICE build (must precede mumble)Really, they couldn't bother to
    # write build instructions?
    (cd /usr/src/ice/;vim -c '%s/^\(prefix[[:space:]]*?=.*\/\)\(opt\)\(\/Ice.*\)$/# &^M\1usr\/share\3/|wq' cpp/config/Make.rules;vim -c '%s/^\(prefix[[:space:]]*?=.*\/\)\(opt\)\(\/Ice.*\)$/# &^M\1usr\/share\3/|wq' python/config/Make.rules;vim -c '%s/^\(prefix[[:space:]]*?=.*\/\)\(opt\)\(\/Ice.*\)$/# &^M\1usr\/share\3/|wq' objective-c/config/Make.rules;vim -c '%s/^\(prefix[[:space:]]*?=.*\/\)\(opt\)\(\/Ice.*\)$/# &^M\1usr\/share\3/|wq' ruby/config/Make.rules;cp ICE_LICENSE cpp/;/usr/bin/make &&/usr/bin/make install&&make clean&&cd /usr/src&&rm -rf ice)
    #[ `ls /usr/share|grep -c 'Ice-'` -ge 1 ]||exit 1
    export ICEDIR=/usr/share/Ice-*
    echo $ICEDIR
    ln -s ${ICEDIR} /usr/share/Ice

    for I in bin lib lib64 include;do
    [ -d ${ICEDIR}/${I} ] && ln -s ${ICEDIR}/${I}/* /usr/${I} && echo Linking ${ICEDIR}/$I contents to /usr/share/${I}
    done
    PATH=$PATH:${ICEDIR}/bin
    export PATH
    #(cd /usr/src/ice/;make clean)
    echo ICE Build Complete, Press enter to continue
    #Mumble/Murmurd build
    (cd /usr/src/mumble;/usr/bin/qmake-qt5 CONFIG+=no-g15 -recursive main.pro&&/usr/bin/make release)
    mkdir -p /usr/lib/mumble/plugins
    install -o root -g root /usr/src/mumble/release/lib* /usr/lib/mumble/
    install -o root -g root /usr/src/mumble/release/plugins/* /usr/lib/mumble/plugins/
    install -o root -g root /usr/src/mumble/release/{murmurd,mumble} /usr/bin/
    touch /etc/murmur.ini
    echo welcometext=Welcom the Terran Stellar Corp Fleet Command Communications >>/etc/murmur.ini
    echo port= >>/etc/murmur.ini
    echo serverpassword=TSCFleetComms >>/etc/murmur.ini
    echo bandwidth= >>/etc/murmur.ini
    echo users= >>/etc/murmur.ini
    echo registerName=TSC Fleet >>/etc/murmur.ini

    rm -rf /usr/src/mumble
    echo INSTALL_ROOT=$INSTALL_ROOT
    echo Press enter to continue
    # read Trash
    cd -

    # Note that running rpm recreates the rpm db files which aren't needed or wanted
    #rm -f /var/lib/rpm/__db*

    # go ahead and pre-make the man -k cache (#455968)
    /usr/bin/mandb -q

    # save a little bit of space at least...
    rm -f /boot/initramfs*
    # make sure there aren't core files lying around
    rm -f /core*

    /sbin/groupadd -g 1000 starships

    echo /sbin/useradd -m -d /home/emptyepsilon -c "EmptyEpsilon" -u 1002 -g 1000 -G 100,10,dialout -p '' emptyepsilon
    /sbin/useradd -m -d /home/emptyepsilon -c "EmptyEpsilon" -u 1002 -g 1000 -G 100,10,dialout -p '' emptyepsilon
    echo Checking for artemis and emptyepsilon users:
    grep -e artemis -e emptyepsilon /etc/{passwd,shadow,group}
    # convince readahead not to collect
    # FIXME: for systemd
    if [ `grep -ci '%starships' /etc/sudoers` -ne 2 ]
    then
    echo '%starships ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers
    fi

    echo -n Press Enter to continue to Stage 2:
    #read Trash
    %end


  • Part 4 (Last one)

    %post --nochroot --log=/var/log/post_stage2.log
    echo Starting Stage 2
    echo Looking for INSTALL_ROOT
    #mount
    INSTALL_ROOT=`mount |awk '{print $3}'|grep '/install_root$'`
    INSTALL_ROOT=`mount |awk '{print $3}'|grep '/install_root$'`
    echo INSTALL_ROOT: $INSTALL_ROOT
    LIVE_ROOT=`mount |awk '{print $3}'|grep '/install_root$'|sed 's/install_root/live_root/'`
    echo LIVE_ROOT: $LIVE_ROOT
    export INSTALL_ROOT LIVE_ROOT

    set
    #echo Liveroot: $LIVE_ROOT
    echo Install_root: $INSTALL_ROOT
    cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL





    echo -n Press Enter to continue to Stage 3:
    #read Trash
    cp /var/log/post_stage2.log ${INSTALL_ROOT}/var/log/
    %end
    %post --log=/var/log/post_stage3.log
    echo Starting Stage 3
    echo chown -R emptyepsilon:starships ~emptyepsilon/
    chown -R emptyepsilon:starships ~emptyepsilon/

    # disable screensaver locking
    cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE
    [org.gnome.desktop.screensaver]
    idle-activation-enabled=false
    lock-enabled=falseP
    FOE
    # and hide the lock screen option
    cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE
    [org.gnome.desktop.lockdown]
    disable-lock-screen=true
    FOE

    # disable updates plugin
    cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE
    [org.gnome.settings-daemon.plugins.updates]
    active=false
    FOE

    cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.power.gschema.override << FOE
    [org.gnome.settings-daemon.plugins.power]
    active=false
    sleep-inactive-ac-timeout=0
    sleep-display-ac-timeout=0
    FOE

    # Setup EmptyEpsilon Desktop Icon
    echo Setting up EmptyEpsilon Desktop Icon

    mkdir -p /usr/share/applications/
    if [ ! -f /usr/share/applications/EmptyEpsilon.desktop ]
    then
    cat >/usr/share/applications/EmptyEpsilon.desktop <<FOE
    [Desktop Entry]
    Version=1.0
    Name=Empty Epsilon Bridge Simulator
    Name[en_US]=Empty Epsilon Bridge Simulator
    Type=Application
    Exec=/usr/local/bin/EmptyEpsilon
    Terminal=false
    Icon=EmptyEpsilon.0
    Comment=Empty Epsilon Bridge Simulator
    Comment[en_US]=Empty Epsilon Bridge Simulator
    FOE
    fi

    #ADDing to /etc/init.d/livesys
    cat >> /usr/sbin/livesys << EOF
    # disable screensaver locking
    cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE
    [org.gnome.desktop.screensaver]
    idle-activation-enabled=false
    lock-enabled=false
    FOE

    # and hide the lock screen option
    cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE
    [org.gnome.desktop.lockdown]
    disable-lock-screen=true
    FOE

    # disable updates plugin
    cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE
    [org.gnome.settings-daemon.plugins.updates]
    active=false
    FOE

    cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.power.gschema.override << FOE
    [org.gnome.settings-daemon.plugins.power]
    active=false
    sleep-inactive-ac-timeout=0
    sleep-display-ac-timeout=0
    FOE

    echo Setting up Desktop Icons

    mkdir -p /usr/share/applications/
    if [ ! -f /usr/share/applications/EmptyEpsilon.desktop ]
    then
    cat >/usr/share/applications/EmptyEpsilon.desktop <<FOE
    [Desktop Entry]
    Name=Empty Epsilon
    Exec=/usr/local/bin/EmptyEpsilon
    Type=Application
    StartupNotify=true
    Icon=EmptyEpsilon.0
    FOE
    fi


    # set up auto-login
    #cat >> /etc/gdm/custom.conf << FOE
    #[daemon]
    #TimedLoginEnable=true
    #TimedLogin=emptyepsilon
    #TimedLoginDelay=60
    #FOE

    chown -R artemis:starships /home/artemis
    chown -R artemisdmx:starships /home/artemisdmx
    chown -R emptyepsilon:starships /home/emptyepsilon

    cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
    [org.gnome.shell]
    favorite-apps=['firefox.desktop', 'Artemis.desktop', 'ArtemisDMX.desktop','EmptyEpsilon.desktop', 'gnome-terminal.desktop']
    FOE

    # rebuild schema cache with any overrides we installed
    glib-compile-schemas /usr/share/glib-2.0/schemas

    EOF

    cp /usr/sbin/livesys /etc/init.d/livesys
    cp /usr/sbin/livesys-late /etc/init.d/livesys-late
    ls -la ~artemis ~artemisdmx ~emptyepsilon
    echo -n Press Enter to continue:
    #read Trash
    pkill -f gradle
    %end
    %post --nochroot
    echo Looking for INSTALL_ROOT
    mount|awk '{print $3}'|grep 'image_create.*/install_root'
    #echo -n Enter INSTALL_ROOT:
    INSTALL_ROOT=`mount |awk '{print $3}'|grep '/install_root$'`
    export INSTALL_ROOT;echo INSTALL_ROOT: $INSTALL_ROOT
    SOURCEDIR=`pgrep -a mkArtemisLiveCD.sh |awk '{for (I=1;I<NF;I++){if ( $I == "-d" ) {print $(I+1) }} }'`
    SOURCEDIR=${SOURCEDIR:-/opt/StarshipBridge/LiveCD}
    LOGDATE=`date +"%Y%m%d_%H%M"`
    LOGDIR=${SOURCEDIR}/logs/${LOGDATE}
    mkdir -p ${LOGDIR}

    for I in 1{,-{b,c}} 2 3;
    do
    if [ -f ${INSTALL_ROOT}/var/log/stage_${I}.log ];
    then
    cp ${INSTALL_ROOT}/var/log/stage_${I}.log ${LOGDIR}/stage_${I}-${LOGDATE}.log
    else
    mv /var/log/stage_${I}.log ${LOGDIR}/stage_${I}-${LOGDATE}.log
    fi
    done
    echo Check Logs for Install details
    ls -la ${LOGDIR}

    sync;
    sync;
    sync;
    sleep 10
    echo -n Complete: Press enter to finish image
    read Trash
    %end
  • It also builds mumble client and murmur server... and include VLC so you could stream your sessions
  • Probably easier to use a PasteBin service or a GitHub Gist for posting long scripts like this.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!