Browse Source

Reworked and cleaned up

master
Fincer 8 years ago
parent
commit
052df29573
20 changed files with 1346 additions and 34 deletions
  1. +30
    -34
      Readme.md
  2. +34
    -0
      WINDOWS-BEFORE-INSTALLATION.txt
  3. +61
    -0
      data/linux/arch_linux/PKGBUILD
  4. +11
    -0
      data/linux/arch_linux/openra-bleed-tibsunra2.install
  5. BIN
      data/linux/fedora/nuget-2.8.7-0.fc22.i686.rpm
  6. BIN
      data/linux/fedora/nuget-2.8.7-0.fc22.x86_64.rpm
  7. +452
    -0
      data/linux/openra-installscript.sh
  8. BIN
      data/linux/opensuse/GeoLite2-Country.mmdb.gz
  9. BIN
      data/linux/opensuse/mono-nuget-2.8.5-4.2.noarch.rpm
  10. +123
    -0
      data/linux/opensuse/openra.spec
  11. BIN
      data/linux/opensuse/thirdparty.tar.gz
  12. BIN
      data/linux/ubuntu/libnuget-core-cil_2.8.5+md59+dhx1-1~getdeb1_all.deb
  13. BIN
      data/linux/ubuntu/nuget_2.8.5+md59+dhx1-1~getdeb1_all.deb
  14. +22
    -0
      data/patches/openra-solution.patch
  15. +110
    -0
      data/patches/ra2-csproj.patch
  16. +122
    -0
      data/patches/tibsun_ra2.patch
  17. +220
    -0
      data/windows/install.ps1
  18. BIN
      data/windows/patch.exe
  19. +160
    -0
      linux-install.sh
  20. +1
    -0
      windows-install.bat

+ 30
- 34
Readme.md View File

@ -6,61 +6,41 @@ This Github repository provides a bunch of scripts for installing TS/RA2 on Open
The following operating systems are currently supported: The following operating systems are currently supported:
- Windows 7 - Windows 7
- Ubuntu (14.04 LTS, 14.10, 15.04 LTS, 15.10 & 16.04 LTS)
- Ubuntu (16.04 LTS, 15.10, 15.04 LTS, 14.10, 14.04 LTS)
- Linux Mint (17.3, 17.2 & 17.1) - Linux Mint (17.3, 17.2 & 17.1)
- Debian (8.3.0)
- OpenSUSE (Tumbleweed, 42.1, 13.2)
- Fedora (23, 22)
- Arch Linux - Arch Linux
A lot of people are willing to play Tiberian Sun and Red Alert 2 mods in OpenRA, no matter if they're at unfinished state or not. Personally, I feel the official OpenRA wiki may be really hard to understand for novice people who just want to play these titles and show little interest in cryptic compilation processes. A lot of people are willing to play Tiberian Sun and Red Alert 2 mods in OpenRA, no matter if they're at unfinished state or not. Personally, I feel the official OpenRA wiki may be really hard to understand for novice people who just want to play these titles and show little interest in cryptic compilation processes.
That's why, as not official support is not provided yet, I decided to do something about this TS/RA2 issue/dilemma: I made a bunch of scripts and instructions that should make life for an average user a bit easier and help installation of these two awesome titles (TS/RA2) on OpenRA. That's why, as not official support is not provided yet, I decided to do something about this TS/RA2 issue/dilemma: I made a bunch of scripts and instructions that should make life for an average user a bit easier and help installation of these two awesome titles (TS/RA2) on OpenRA.
**NOTE:** As the development of OpenRA & Red Alert 2 continues, this script will likely become unusable some day.
**Installation instructions** **Installation instructions**
-------------- --------------
**Windows** **Windows**
1) Make sure you have .NET Framework 4.5 installed on your computer 1) Make sure you have .NET Framework 4.5 installed on your computer
( Read *BEFORE-INSTALLATION.txt* for further information)
(Read *WINDOWS-BEFORE-INSTALLATION.txt* for further information)
2) Double click *install.bat*
2) Double click *windows-install.bat*
3) Follow the instructions 3) Follow the instructions
**Ubuntu & Ubuntu Variants (Linux Mint, Lubuntu, Xubuntu, Kubuntu etc.)**
**Linux (All distributions)**
1) Double click install.sh and select "Run in terminal". A new terminal window opens. Type
1) Open terminal window. In terminal, run:
``` ```
bash install.sh
bash linux-install.sh
``` ```
2) Follow the instructions 2) Follow the instructions
**Arch Linux**
1) Open terminal
2) Navigate to the folder where you have openra-bleed-tibsunra2.install, tibsun_ra2.patch & PKGBUILD
3) Run the following commands:
```
updpkgsums
makepkg
```
You may need to install missing dependencies at this point.
4) Install OpenRA by typing
```
sudo pacman -U openra-bleed-tibsunra2-r*.tar.xz
```
5) Once the game is installed, please follow the instructions about how to install Red Alert 2 mix files, given in the end of the installation process.
6) Play the game by typing 'openra' in terminal or using a desktop file.
**Post-installation instructions** **Post-installation instructions**
-------------- --------------
@ -70,14 +50,19 @@ Launch the game and download the required asset files from the web when the game
**To play Red Alert 2** **To play Red Alert 2**
You must install language.mix, multi.mix, ra2.mix and theme.mix into '$HOME/.openra/Content/ra2/' folder. You find these files from original RA2 installation media (CD's):
You must install language.mix, multi.mix, ra2.mix and theme.mix into
\My Documents\OpenRA\Content\ra2\ (Windows)
.openra/Content/ra2/ (linux)
You find these files from original RA2 installation media (CD's):
- theme.mix, multi.mix = RA2 CD Root folder - theme.mix, multi.mix = RA2 CD Root folder
- ra2.mix, language.mix = RA2 CD Root/INSTALL/Game1.CAB (inside that archive file) - ra2.mix, language.mix = RA2 CD Root/INSTALL/Game1.CAB (inside that archive file)
**Multiplayer** **Multiplayer**
It's recommended to use exactly same OpenRA binary for multiplayer usage to minimize possible version differences/conflicts between players. If your friends compiles this package with another operating system, please make sure they use exactly same source files for their OpenRA compilation process.
It's recommended to build OpenRA using exactly same GIT source files for multiplayer usage to minimize possible version differences/conflicts between players. Please make sure all players have exactly same git versions of their in-game mods (RA, CNC, D2K, TS, RA2). Version numbers are formatted like 'git-e0d7445' etc. and can be found in each mod description in the mod selection menu.
**Uninstallation** **Uninstallation**
-------------- --------------
@ -98,11 +83,22 @@ sudo apt-get purge --remove openra-bleed-tibsunra2
in your terminal window. in your terminal window.
**OpenSUSE/Fedora**
Run
```
sudo zypper remove openra-bleed-tibsunra2
```
in your terminal window.
**Arch Linux** **Arch Linux**
Run Run
``` ```
sudo pacman -Rs openra-bleed-tibsunra2 sudo pacman -Rs openra-bleed-tibsunra2
``` ```
in your terminal window.
in your terminal window.

+ 34
- 0
WINDOWS-BEFORE-INSTALLATION.txt View File

@ -0,0 +1,34 @@
DO THIS BEFORE RUNNING INSTALL.BAT
1) Download and install Microsoft .NET Framework 4.5.2. If you already have it, skip this step.
https://www.microsoft.com/en-us/download/confirmation.aspx?id=42643
All .NET 4.X Framework versions:
https://msdn.microsoft.com/en-us/library/5a4x27ek%28v=vs.110%29.aspx
------------------------------------------------
ABOUT INSTALL.BAT
- Automatically compiles OpenRA with Tiberian Sun & Red Alert 2 from the source for you
- This is the file you need to execute if you're looking for installation of OpenRA with Tiberian Sun & Red Alert 2
- Double click to execute it
------------------------------------------------
- Once the install.bat script has compiled the game, there should be many warnings but not a single error
message as output. I got 52 errors if I had only .NET Framework 4.5 installed.
- I got only 13 warnings after I installed Microsoft Windows SDK for Windows 7 and .NET Framework 4
(https://www.microsoft.com/en-us/download/details.aspx?id=8279)
- However, the number of those warning messages didn't affect my gameplay in any way. That's why I'm not sure
if you need to worry about them. I can't really recommend to install 1.7GB of unneeded stuff on your PC
without a very good and valid reason.
- If you feel it important or your game crashes etc., please consider installing that SDK stuff and
re-running the install.bat the game.
------------------------------------------------

+ 61
- 0
data/linux/arch_linux/PKGBUILD View File

@ -0,0 +1,61 @@
# Maintainer: Fincer <fincer89 at hotmail dot com>
pkgname=openra-bleed-tibsunra2
pkgver=r20041.e0d7445
pkgrel=1
pkgdesc="An open-source implementation of the Red Alert engine using .NET/mono and OpenGL (git version)"
arch=("any")
url="http://openra.net"
license=("GPL3")
depends=("mono" "ttf-dejavu" "openal" "libgl" "freetype2" "sdl2" "lua51" "hicolor-icon-theme" "desktop-file-utils" "xdg-utils")
makedepends=("git" "nuget")
provides=("openra" "openra-dedicated-bleed")
conflicts=("openra-bleed" "openra" "openra-dedicated-bleed" "openra-playtest")
install=openra-bleed-tibsunra2.install
source=("$pkgname-src::git+https://github.com/OpenRA/OpenRA.git#branch=bleed"
"git://github.com/OpenRA/ra2.git"
ra2-csproj.patch
openra-solution.patch
tibsun_ra2.patch)
sha1sums=('SKIP'
'SKIP'
'70a45c14874e4454bacb45b5d0c917d452cf4e84'
'c1d7581ce21851648489adf9ba28aa46ef9615d0'
'd0d8f602851a5712dec0fb8c489990f4c54b1782')
pkgver() {
cd "$srcdir/$pkgname-src"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
build() {
# Move Red Alert 2 Github files to the right place:
cd "$srcdir/ra2"
mv ./OpenRA.Mods.RA2 "$srcdir/$pkgname-src/"
mkdir -p "$srcdir/$pkgname-src/mods/ra2/"
mv ./* "$srcdir/$pkgname-src/mods/ra2/"
# Patch OpenRA core files for Tiberian Sun & Red Alert 2
cd "$srcdir/$pkgname-src"
patch -Np1 -i "$srcdir/ra2-csproj.patch"
patch -Np1 --binary -i "$srcdir/openra-solution.patch"
patch -Np1 -i "$srcdir/tibsun_ra2.patch"
mkdir $srcdir/$pkgname-src/mods/ra2/bits/{vehicles,themes}
# Get Red Alert 2 GIT version number
ra2_version=git-$(git ls-remote https://github.com/OpenRA/ra2.git | head -1 | sed "s/HEAD//" | sed 's/^\(.\{7\}\).*/\1/')
sed -i "s/Version: {DEV_VERSION}/Version: $ra2_version/g" $srcdir/$pkgname-src/mods/ra2/mod.yaml
cd "$srcdir/$pkgname-src"
make version
make dependencies
make all [DEBUG=true]
}
package() {
cd "$srcdir/$pkgname-src"
make prefix=/usr DESTDIR="$pkgdir" install-all
make prefix=/usr DESTDIR="$pkgdir" install-linux-shortcuts
}

+ 11
- 0
data/linux/arch_linux/openra-bleed-tibsunra2.install View File

@ -0,0 +1,11 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}

BIN
data/linux/fedora/nuget-2.8.7-0.fc22.i686.rpm View File


BIN
data/linux/fedora/nuget-2.8.7-0.fc22.x86_64.rpm View File


+ 452
- 0
data/linux/openra-installscript.sh View File

@ -0,0 +1,452 @@
#!/bin/bash
# Allow interruption of the script at any time (Ctrl + C)
trap "exit" INT
#*********************************************************************************************************
## VARIABLES USED IN THE SCRIPT
#
# Package name & version
PACKAGE_NAME=openra-bleed-tibsunra2
PACKAGE_VERSION=1
PACKAGE=$PACKAGE_NAME-$PACKAGE_VERSION
# Get our Linux distribution
DISTRO=$(cat /etc/os-release | sed -n '/PRETTY_NAME/p' | grep -o '".*"' | sed -e 's/"//g' -e s/'([^)]*)'/''/g -e 's/ .*//' -e 's/[ \t]*$//')
UBUNTU="Ubuntu"
DEBIAN="Debian"
OPENSUSE="openSUSE"
FEDORA="Fedora"
# Get the current directory
WORKING_DIR=$(pwd)
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
# Find out used Linux distribution
RELEASE=$(lsb_release -d | sed 's/Description:\t//g')
# Check if the used OS is Ubuntu 14.04 LTS/14.10 or Linux Mint
RELEASE_VERSION=$(lsb_release -r | sed 's/[^0-9]*//g')
RELEASE_MINT=$(lsb_release -i 2>/dev/null |grep -c "Mint")
# Check for critical build dependencies (especially for Ubuntu 14.04 LTS/14.10 & Linux Mint)
PKG1_CHECK=$(dpkg-query -W -f='${Status}' libnuget-core-cil 2>/dev/null | grep -c "ok installed")
PKG2_CHECK=$(dpkg-query -W -f='${Status}' mono-devel 2>/dev/null | grep -c "ok installed")
PKG3_CHECK=$(dpkg-query -W -f='${Status}' nuget 2>/dev/null | grep -c "ok installed")
# Do we have any OpenRA packages on the system?
PKG4_CHECK=$(dpkg-query -W -f='${Status}' openra 2>/dev/null | grep -c "ok installed")
PKG5_CHECK=$(dpkg-query -W -f='${Status}' openra-playtest 2>/dev/null | grep -c "ok installed")
PKG6_CHECK=$(dpkg-query -W -f='${Status}' openra-bleed 2>/dev/null | grep -c "ok installed")
elif [[ $DISTRO =~ $OPENSUSE ]]; then
# Find out used OpenSUSE version
RELEASE=$(cat /etc/os-release | sed -n 4p | grep -o '".*"' | sed -e 's/"//g' -e s/'([^)]*)'/''/g -e 's/[ \t]*$//')
# Do we have any OpenRA packages on the system?
PKG1_CHECK=$(rpm -qa openra | wc -l)
PKG2_CHECK=$(rpm -qa openra-playtest | wc -l)
PKG3_CHECK=$(rpm -qa openra-bleed | wc -l)
elif [[ $DISTRO =~ $FEDORA ]]; then
# Find out used Fedora version
RELEASE=$(cat /etc/os-release | sed -n '/PRETTY_NAME/p' | grep -o '".*"' | sed -e 's/"//g' -e s/'([^)]*)'/''/g -e 's/[ \t]*$//')
# Do we have any OpenRA packages on the system?
PKG1_CHECK=$(rpm -qa openra | wc -l)
PKG2_CHECK=$(rpm -qa openra-playtest | wc -l)
PKG3_CHECK=$(rpm -qa openra-bleed | wc -l)
fi
# Check for missing RA2 directories.
RA2_MISSINGDIR1="$HOME/openra-master/$PACKAGE/mods/ra2/bits/vehicles"
RA2_MISSINGDIR2="$HOME/openra-master/$PACKAGE/mods/ra2/bits/themes"
# Check if we already have sudo password in memory (timeout/timestamp check)
SUDO_CHECK=$(sudo -n uptime 2>&1|grep "load"|wc -l)
BASH_CHECK=$(ps | grep `echo $$` | awk '{ print $4 }')
bold_in='\e[1m'
line_in='\e[4m'
dim_in='\e[2m'
green_in='\e[32m'
red_in='\e[91m'
out='\e[0m'
#*********************************************************************************************************
## PRE-CHECK
#
# Check if we're using bash or sh to run the script. If bash, OK. If sh, ask user to run the script with bash.
if [ ! $BASH_CHECK = "bash" ]; then
echo "
Please run this script using bash (/usr/bin/bash).
"
exit 1
fi
# Check if we are root or not. If yes, then terminate the script.
if [[ $UID = 0 ]]; then
echo -e "\nPlease run this script as a regular user. Do not use root or sudo. Some commands used in the script require regular user permissions.\n"
exit 1
fi
#If package dir exists already, delete it.
if [ -d "$HOME/openra-master/" ]; then
rm -rf "$HOME/openra-master"
fi
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
#If deb package exists already, delete it.
if [ -f $HOME/$PACKAGE_NAME*.deb ]; then
rm -f $HOME/$PACKAGE_NAME*.deb
fi
elif [[ $DISTRO =~ $OPENSUSE ]] || [[ $DISTRO =~ $FEDORA ]]; then
if [ -f $HOME/$PACKAGE_NAME*.rpm ]; then
rm -f $HOME/$PACKAGE_NAME*.rpm
fi
fi
# Stop execution if we encounter an error
set -e
#*********************************************************************************************************
## PART 1/7
#
## Installation of OpenRA compilation dependencies and user notification message
echo -e "\n$bold_in***Welcome Comrade*** $out\n"
echo -e "This script compiles and installs OpenRA from source with Tiberian Sun & Red Alert 2.\n
- The script is NOT made by the developers of OpenRA and may contain bugs.
- The script creates an installation package using OpenRA source code and additional Red Alert 2 mod files from Github.\n\nNOTE: As the development of OpenRA & Red Alert 2 continues, this script will likely become unusable some day. Please, feel free to modify it if necessary."
if [[ $DISTRO =~ $UBUNTU ]]; then
echo -e "$line_in\nThe script has been tested on:\n\nDistribution\t\tStatus$out\nUbuntu 16.04 LTS$green_in\tOK$out\nUbuntu 15.10$green_in\t\tOK$out\nUbuntu 15.04 LTS$green_in\tOK$out\nUbuntu 14.10$green_in\t\tOK$out\nUbuntu 14.04 LTS$green_in\tOK$out\nLinux Mint 17.3$green_in\t\tOK$out\nLinux Mint 17.2$green_in\t\tOK$out\nLinux Mint 17.1$green_in\t\tOK$out\nLinux Mint 16$red_in\t\tFailure$out$dim_in (can't find required packages)$out\n"
elif [[ $DISTRO =~ $DEBIAN ]]; then
echo -e "$line_in\nThe script has been tested on:\n\nDistribution\t\tStatus$out\nDebian 8.3 $green_in\t\tOK$out\n"
elif [[ $DISTRO =~ $OPENSUSE ]]; then
echo -e "$line_in\nThe script has been tested on:\n\nDistribution\t\tStatus$out\nOpenSUSE Tumbleweed $green_in\tOK$out\nOpenSUSE Leap 42.1 $green_in\tOK$out\nOpenSUSE 13.2 $green_in\t\tOK$out\nOpenSUSE 13.1 $red_in\t\tFailure$out$dim_in (can't find required packages)$out\n"
elif [[ $DISTRO =~ $FEDORA ]]; then
echo -e "$line_in\nThe script has been tested on:\n\nDistribution\t\tStatus$out\nFedora 23 $green_in\t\tOK$out\nFedora 22 $green_in\t\tOK$out\nOpenSUSE 13.1 $red_in\t\tFailure$out$dim_in (can't find required packages)$out\n"
fi
echo -e "You are using $RELEASE.\n"
read -r -p "Do you want to continue? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
sleep 1
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
echo -e "\nAllright, let's continue. Do you want $bold_in\n\n1.$out manually check which OpenRA build dependencies (packages) will be installed on your system and manually install OpenRA after compilation? $dim_in(manual apt-get + deb packages installation)$bold_in\n2.$out automatically accept the installation of the OpenRA build dependencies during the script execution and automatically install OpenRA after compilation? $dim_in(apt-get with -y option + automatic .deb packages installation)$out\n"
elif [[ $DISTRO =~ $OPENSUSE ]] || [[ $DISTRO =~ $FEDORA ]]; then
echo -e "\nAllright, let's continue. Do you want $bold_in\n\n1.$out manually check which OpenRA build dependencies (packages) will be installed on your system and manually install OpenRA after compilation? $dim_in(manual rpm packages installation)$bold_in\n2.$out automatically accept the installation of the OpenRA build dependencies during the script execution and automatically install OpenRA after compilation? $dim_in(automatic installation of rpm packages)$out\n"
fi
read -r -p "Please type 1 or 2 (Default: 2): " number
sleep 1
if [[ $number -eq 1 ]]; then
METHOD=''
echo -e "\nSelected installation method:$bold_in Manual$out"
else
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]] || [[ $DISTRO =~ $FEDORA ]]; then
METHOD=-y
echo -e "\nSelected installation method:$bold_in Automatic$out"
elif [[ $DISTRO =~ $OPENSUSE ]]; then
METHOD='--non-interactive --no-gpg-checks'
echo -e "\nSelected installation method:$bold_in Automatic$out"
fi
fi
if [ $SUDO_CHECK -eq 0 ]; then
if [ -z $METHOD ]; then
echo -e "\nOpenRA compilation requires that you install some packages first. Your permission for installation is asked (yes/no) everytime it's needed. This script asks for a required root password now, so you don't have to type it multiple times later on while the script is running.\n\nPlease type sudo/root password now.\n"
else
echo -e "\nOpenRA compilation requires that you install some packages first. This script asks for a required root password now, so you don't have to type it multiple times later on while the script is running.\n\nPlease type sudo/root password now.\n"
fi
sudo echo -e "\nRoot password OK."
sleep 1
else
true
fi
## Check if the user is running Ubuntu 14.04 LTS/14.10 or Linux Mint and whether required nuget packages are installed if these Linux versions are being used.
if [[ $DISTRO =~ $UBUNTU ]]; then
if [ $RELEASE_VERSION == 1404 ] || [ $RELEASE_VERSION == 1410 ] || [ $RELEASE_MINT -eq 1 ] ; then
echo -e "\nYou are running Ubuntu 14.04 LTS/14.10 or Linux Mint. We need to check if you have required NuGet packages installed.\nThese packages are not (longer available) from the official repository but they are provided by this package.\n"
read -r -p "Press ENTER to proceed." enter
if [ ${#enter} -eq 0 ]; then
echo -e "$line_in\nChecking NuGet packages$out"
fi
#-----------------------------------------------------------------------------------------------------------------------------------------------------------
## Check existence of 'nuget', 'libnuget-core-lib' & 'mono-devel' packages on Ubuntu 14.04 LTS/14.10/Linux Mint based system.
if [ $PKG2_CHECK -eq 1 ]; then
echo -e "$green_in\nOK$out - 'mono-devel' found."
else
echo -e "$red_in\nWARNING$out - 'mono-devel' not found."
fi
if [ $PKG1_CHECK -eq 1 ]; then
echo -e "$green_in\nOK$out - 'libnuget-core-cil' found."
else
echo -e "$red_in\nWARNING$out - 'libnuget-core-cil' not found."
fi
if [ $PKG3_CHECK -eq 1 ]; then
echo -e "$green_in\nOK$out - 'nuget' found."
else
echo -e "$red_in\nWARNING$out - 'nuget' not found."
fi
if [ ! $PKG2_CHECK -eq 1 ]; then
echo -e "$red_in\nWARNING$out - NuGet requires 'mono-devel' package which was not found.\n\nInstalling 'mono-devel' now."
sleep 5
echo -e "\nUpdating package lists with APT.\n"
sleep 2
sudo apt-get update && \
sudo apt-get $METHOD install mono-devel
fi
if [ ! $PKG1_CHECK -eq 1 ]; then
if [ $number = 1 ]; then
echo
read -r -p "Install 'libnuget-core-cil' now? [y/N] " response2
if [[ $response2 =~ ^([yY][eE][sS]|[yY])$ ]]; then
sudo dpkg -i ./data/linux/ubuntu/libnuget-core-cil_2.8.5+md59+dhx1-1~getdeb1_all.deb
else
echo -e "\nOpenRA installation can't continue. Aborting.\n"
exit 1
fi
else
sudo dpkg -i ./data/linux/ubuntu/libnuget-core-cil_2.8.5+md59+dhx1-1~getdeb1_all.deb
fi
fi
PKG1_RECHECK=$(dpkg-query -W -f='${Status}' libnuget-core-cil 2>/dev/null | grep -c "ok installed")
if [ ! $PKG3_CHECK -eq 1 ]; then
if [ $number = 1 ]; then
echo
read -r -p "Install 'nuget' now? [y/N] " response3
if [[ $response3 =~ ^([yY][eE][sS]|[yY])$ ]]; then
sudo dpkg -i ./data/linux/ubuntu/nuget_2.8.5+md59+dhx1-1~getdeb1_all.deb
else
echo -e "\nOpenRA installation can't continue. Aborting.\n"
exit 1
fi
else
sudo dpkg -i ./data/linux/ubuntu/nuget_2.8.5+md59+dhx1-1~getdeb1_all.deb
fi
fi
PKG3_RECHECK=$(dpkg-query -W -f='${Status}' nuget 2>/dev/null | grep -c "ok installed")
if [ $PKG1_RECHECK -eq 1 ] && [ $PKG3_RECHECK -eq 1 ]; then
echo -e "$green_in\nOK$out - All required NuGet packages are installed."
else
echo -e "$red_in\nWARNING$out - Can't find all required NuGet packages. Aborting.\n"
exit 1
fi
else
true
fi
fi
sleep 2
#-----------------------------------------------------------------------------------------------------------------------------------------------------------
echo -e "$bold_in\n1/7 ***OpenRA build dependencies***\n$out"
sleep 2
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
echo -e "Updating package lists with APT.\n"
sleep 2
sudo apt-get update
fi
echo -e "Installing required OpenRA build dependencies.\n"
sleep 4
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
sudo apt-get $METHOD install git dpkg-dev dh-make mono-devel libfreetype6-dev libopenal-data libopenal1 libsdl2-2.0-0 nuget curl liblua5.1-0-dev zenity xdg-utils build-essential gcc make libfile-fcntllock-perl
mozroots --import --sync && \
sudo apt-key update
elif [[ $DISTRO =~ $OPENSUSE ]]; then
if [[ ! $RELEASE = "openSUSE Leap 42.1" ]] || [[ ! $RELEASE = "openSUSE Tumbleweed" ]]; then
sudo zypper $METHOD install rpm-build git mono-devel libfreetype6 libopenal1 libSDL2-2_0-0 curl lua51 liblua5_1 zenity xdg-utils gcc make
sudo zypper $METHOD install ./data/linux/opensuse/mono-nuget-2.8.5-4.2.noarch.rpm
else
sudo zypper $METHOD install rpm-build git mono-devel libfreetype6 libopenal1 libSDL2-2_0-0 mono-nuget curl lua51 liblua5_1 zenity xdg-utils gcc make
fi
mozroots --import --sync
elif [[ $DISTRO =~ $FEDORA ]]; then
sudo dnf $METHOD install rpm-build git mono-devel freetype-devel openal-soft SDL2 libgdiplus-devel libcurl compat-lua zenity xdg-utils gcc make
cd /etc/yum.repos.d/
if [[ $RELEASE = "Fedora 23" ]]; then
sudo wget http://download.opensuse.org/repositories/games:openra/Fedora_23/games:openra.repo
sudo dnf $METHOD --best --allowerasing install mono-core nuget
elif [[ $RELEASE = "Fedora 22" ]]; then
sudo wget http://download.opensuse.org/repositories/games:openra/Fedora_22/games:openra.repo
sudo dnf $METHOD --best --allowerasing install mono-core
if [[ $(uname -m) = "i686" ]];then
sudo dnf $METHOD install $WORKING_DIR/data/linux/fedora/nuget-2.8.7-0.fc22.i686.rpm
elif [[ $(uname -m) = "x86_64" ]];then
sudo dnf $METHOD install $WORKING_DIR/data/linux/fedora/nuget-2.8.7-0.fc22.x86_64.rpm
fi
fi
cd $WORKING_DIR
mozroots --import --sync
fi
#*********************************************************************************************************
## PART 2/7
#
## Download the latest OpenRA & Red Alert 2 source files from Github, create build directories to the user's home directory.
## Once Red Alert 2 source files have been downloaded, move them to the OpenRA parent source directory.
## Add several missing directories for Red Alert 2.
echo -e "$bold_in\n2/7 ***Downloading OpenRA source code & Red Alert 2 mod files from Github***\n$out"
sleep 2
echo -e "Part 1 (OpenRA source code):\n"
mkdir -p $HOME/openra-master/{$PACKAGE,ra2} && \
git clone -b bleed https://github.com/OpenRA/OpenRA.git $HOME/openra-master/$PACKAGE
echo -e "\nPart 2 (Red Alert 2 mod files):\n"
git clone -b master https://github.com/OpenRA/ra2.git $HOME/openra-master/ra2 && \
mv $HOME/openra-master/ra2/OpenRA.Mods.RA2 $HOME/openra-master/$PACKAGE && \
mv $HOME/openra-master/ra2 $HOME/openra-master/$PACKAGE/mods/
if [ ! -d "$RA2_MISSINGDIR1" ]; then
mkdir "$RA2_MISSINGDIR1"
fi
if [ ! -d "$RA2_MISSINGDIR2" ]; then
mkdir "$RA2_MISSINGDIR2"
fi
cp ./data/patches/*.patch $HOME/openra-master/
#*********************************************************************************************************
## PART 3/7
#
## Patch several OpenRA source files (Makefile and such) for Tiberian Sun & Red Alert 2
echo -e "$bold_in\n3/7 ***Preparing OpenRA source files for Tiberian Sun & Red Alert 2***\n$out"
sleep 2
for i in $HOME/openra-master/*.patch; do patch -d $HOME/openra-master/$PACKAGE -Np1 --binary < $i; done
# Get version number for Red Alert 2 mod (Github)
RA2_VERSION=git-$(git ls-remote https://github.com/OpenRA/ra2.git | head -1 | sed "s/HEAD//" | sed 's/^\(.\{7\}\).*/\1/')
sed -i "s/Version: {DEV_VERSION}/Version: $RA2_VERSION/g" $HOME/openra-master/$PACKAGE/mods/ra2/mod.yaml
#*********************************************************************************************************
## PART 4/7
#
## Compile the game
echo -e "$bold_in\n4/7 ***Starting OpenRA compilation with Tiberian Sun & Red Alert 2***$out"
sleep 2
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
cd $HOME/openra-master/$PACKAGE && \
make version && \
make dependencies && \
make all [DEBUG=false]
echo -e "$bold_in\n5/7 ***Preparing OpenRA deb package. This takes a while. Please wait.***\n$out"
dh_make --createorig -s -y && \
echo -e "\noverride_dh_auto_install:\n\tmake install-all install-linux-shortcuts prefix='$HOME/openra-master/$PACKAGE/debian/$PACKAGE_NAME/usr'\n\tsed -i '2s%.*%cd /usr/lib/openra%' '$HOME/openra-master/$PACKAGE/debian/$PACKAGE_NAME/usr/bin/openra'\noverride_dh_usrlocal:\noverride_dh_auto_test:" >> $HOME/openra-master/$PACKAGE/debian/rules && \
sed -i 's/Depends: ${shlibs:Depends}, ${misc:Depends}/Depends: libopenal1, mono-runtime (>= 2.10), libmono-system-core4.0-cil, libmono-system-drawing4.0-cil, libmono-system-data4.0-cil, libmono-system-numerics4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-xml-linq4.0-cil, libfreetype6, libc6, libasound2, libgl1-mesa-glx, libgl1-mesa-dri, xdg-utils, zenity, libsdl2 | libsdl2-2.0-0, liblua5.1-0/g' $HOME/openra-master/$PACKAGE/debian/control && \
sed -i 's/<insert up to 60 chars description>/A multiplayer re-envisioning of early RTS games by Westwood Studios\nConflicts: openra, openra-playtest, openra-bleed/g' $HOME/openra-master/$PACKAGE/debian/control && \
sed -i 's/ <insert long description, indented with spaces>/ ./g' $HOME/openra-master/$PACKAGE/debian/control && \
dpkg-buildpackage -rfakeroot -b -nc -uc -us
#*********************************************************************************************************
## PART 6/7
#
## Remove temporary OpenRA build files & directories
echo -e "$bold_in\n6/7 ***Compilation process completed. Moving compiled deb package into '$HOME'***\n$out"
sleep 2
mv $HOME/openra-master/$PACKAGE_NAME*.deb $HOME
elif [[ $DISTRO =~ $OPENSUSE ]] || [[ $DISTRO =~ $FEDORA ]]; then
echo -e "$bold_in\n5/7 ***Compiling OpenRA rpm package.***\n$out"
mkdir -p $HOME/openra-master/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
cp ./data/linux/opensuse/openra.spec $HOME/openra-master/rpmbuild/SPECS/
cp ./data/linux/opensuse/{GeoLite2-Country.mmdb.gz,thirdparty.tar.gz} $HOME/openra-master/rpmbuild/SOURCES/
cd $HOME/openra-master
tar -czf $HOME/openra-master/rpmbuild/SOURCES/$PACKAGE.tar.gz ./$PACKAGE
cd $WORKING_DIR
rpmbuild --define "_topdir $HOME/openra-master/rpmbuild" -bb --clean $HOME/openra-master/rpmbuild/SPECS/openra.spec
echo -e "$bold_in\n6/7 ***Compilation process completed. Moving compiled rpm package into '$HOME'***\n$out"
sleep 2
mv $HOME/openra-master/rpmbuild/RPMS/noarch/$PACKAGE_NAME*.rpm $HOME
fi
echo -e "Removing temporary files."
rm -rf $HOME/openra-master
#*********************************************************************************************************
## PART 7/7
#
## Install OpenRA
echo -e "$bold_in\n7/7 ***Starting OpenRA installation process***\n$out"
sleep 2
if [[ $DISTRO =~ $UBUNTU ]] || [[ $DISTRO =~ $DEBIAN ]]; then
if [ $PKG4_CHECK -eq 1 ] || [ $PKG5_CHECK -eq 1 ] || [ $PKG6_CHECK -eq 1 ] ; then
echo -e "\nCan't install '$PACKAGE_NAME' because of conflicting packages.\nPlease remove previously installed openra package from your system and try again.\nBuilt $PACKAGE_NAME deb package can be found in '$HOME'.\n"
else
if [[ $number -eq 1 ]]; then
read -r -p "Install '$PACKAGE_NAME' now? [y/N] " response4
if [[ $response4 =~ ^([yY][eE][sS]|[yY])$ ]]; then
sudo dpkg -i $HOME/$PACKAGE_NAME*.deb
else
echo -e "\nPlease install '$PACKAGE_NAME' manually. You find the compiled package in '$HOME'."
sleep 2
fi
else
sudo dpkg -i $HOME/$PACKAGE_NAME*.deb
fi
fi
elif [[ $DISTRO =~ $OPENSUSE ]] || [[ $DISTRO =~ $FEDORA ]]; then
if [ $PKG1_CHECK -eq 1 ] || [ $PKG2_CHECK -eq 1 ] || [ $PKG3_CHECK -eq 1 ] ; then
echo -e "\nCan't install '$PACKAGE_NAME' because of conflicting packages.\nPlease remove previously installed openra package from your system and try again.\nBuilt $PACKAGE_NAME rpm package can be found in '$HOME'.\n"
else
if [[ $number -eq 1 ]]; then
read -r -p "Install '$PACKAGE_NAME' now? [y/N] " response4
if [[ $response4 =~ ^([yY][eE][sS]|[yY])$ ]]; then
if [[ $DISTRO =~ $FEDORA ]]; then
sudo dnf $METHOD --best --allowerasing install $HOME/$PACKAGE_NAME*.rpm
elif [[ $DISTRO =~ $OPENSUSE ]]; then
sudo zypper $METHOD install $HOME/$PACKAGE_NAME*.rpm
fi
else
echo -e "\nPlease install '$PACKAGE_NAME' manually. You find the compiled package in '$HOME'."
sleep 2
fi
else
if [[ $DISTRO =~ $FEDORA ]]; then
sudo dnf $METHOD --best --allowerasing install $HOME/$PACKAGE_NAME*.rpm
elif [[ $DISTRO =~ $OPENSUSE ]]; then
sudo zypper $METHOD install $HOME/$PACKAGE_NAME*.rpm
fi
fi
fi
fi
#*********************************************************************************************************
else
echo -e "\nAborted.\n"
fi

BIN
data/linux/opensuse/GeoLite2-Country.mmdb.gz View File


BIN
data/linux/opensuse/mono-nuget-2.8.5-4.2.noarch.rpm View File


+ 123
- 0
data/linux/opensuse/openra.spec View File

@ -0,0 +1,123 @@
#
# spec file for package openra
#
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: openra-bleed-tibsunra2
Version: 1
Release: 1
Url: http://www.openra.net
Summary: Recreation of the early Command & Conquer games
License: GPL-3.0
Group: Amusements/Games/Strategy/Real Time
Source: %{name}-%{version}.tar.gz
Source2: thirdparty.tar.gz
Source3: http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
BuildRequires: desktop-file-utils
BuildRequires: git
BuildRequires: hicolor-icon-theme
BuildRequires: shared-mime-info
BuildRequires: pkgconfig(mono)
Requires: SDL2
%if 0%{?suse_version}
BuildRequires: fdupes
BuildRequires: lua51
Requires: lua51
Requires: freetype2
%endif
%if 0%{?fedora_version}
BuildRequires: lua = 5.1
Requires: lua = 5.1
Requires: freetype
%endif
Requires: mono-core
# workaround System.DllNotFoundException: libgdiplus.so - https://bugzilla.xamarin.com/show_bug.cgi?id=34314
Requires: libgdiplus-devel
Requires: openal-soft
Requires: xdg-utils
Requires: zenity
# don't provide the bundled dependencies to other packages
AutoReqProv: off
%description
OpenRA is an Open Source, Real Time Strategy game engine.
Its primary focus is on creating an extendable platform
to recreate games in the style of the early Westwood games.
It ships mods that reimagine Command & Conquer: Tiberian Dawn,
Red Alert as well as Dune 2000 if the original game files are
provided.
%prep
%setup -q -n %{name}-%{version} -a2
make version
%build
mkdir -p ./thirdparty/download
cp %{SOURCE3} ./thirdparty/download
make dependencies
make core
make tools
make docs
%install
make DESTDIR="%{buildroot}" prefix=%{_prefix} install-all
make DESTDIR="%{buildroot}" prefix=%{_prefix} install-linux-shortcuts
make DESTDIR="%{buildroot}" prefix=%{_prefix} install-linux-mime
make DESTDIR="%{buildroot}" prefix=%{_prefix} install-linux-appdata
make DESTDIR="%{buildroot}" prefix=%{_prefix} install-man-page
%if 0%{?suse_version}
%fdupes %{buildroot}%{_prefix}/lib
%endif
%clean
make DESTDIR="%{buildroot}" prefix=%{_prefix} uninstall
%post
%desktop_database_post
%icon_theme_cache_post
%mime_database_post
%postun
%desktop_database_postun
%icon_theme_cache_postun
%mime_database_postun
%files
%defattr(-,root,root)
%doc DOCUMENTATION.md Lua-API.md README.md
%{_bindir}/openra
%{_prefix}/lib/openra/
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/mime/packages/openra.xml
%dir %{_datadir}/appdata/
%{_datadir}/appdata/openra.appdata.xml
%{_mandir}/man6/openra.*
%changelog
* Fri Jan 8 2016 mailaender@opensuse.org
- fix openal depdendency (package was renamed to openal-soft)
* Fri Dec 25 2015 mailaender@opensuse.org
- bundled all binaries again for Fedora 23 and openSUSE 42.1
* Thu Dec 24 2015 mailaender@opensuse.org
- release 20151224
* Sat Sep 19 2015 mailaender@opensuse.org
- release 20150919

BIN
data/linux/opensuse/thirdparty.tar.gz View File


BIN
data/linux/ubuntu/libnuget-core-cil_2.8.5+md59+dhx1-1~getdeb1_all.deb View File


BIN
data/linux/ubuntu/nuget_2.8.5+md59+dhx1-1~getdeb1_all.deb View File


+ 22
- 0
data/patches/openra-solution.patch View File

@ -0,0 +1,22 @@
--- a/OpenRA.sln
+++ b/OpenRA.sln
@@ -17,6 +17,8 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.TS", "OpenRA.Mods.TS\OpenRA.Mods.TS.csproj", "{5457CBF5-4CE4-421E-A8BF-9FD6C9732E1D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.RA2", "OpenRA.Mods.RA2\OpenRA.Mods.RA2.csproj", "{7E1263D2-BA04-48D0-85DB-26C68B782608}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Platforms.Default", "OpenRA.Platforms.Default\OpenRA.Platforms.Default.csproj", "{33D03738-C154-4028-8EA8-63A3C488A651}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.Common", "OpenRA.Mods.Common\OpenRA.Mods.Common.csproj", "{FE6C8CC0-2F07-442A-B29F-17617B3B7FC6}"
@@ -139,6 +141,10 @@
{5457CBF5-4CE4-421E-A8BF-9FD6C9732E1D}.Debug|x86.Build.0 = Debug|x86
{5457CBF5-4CE4-421E-A8BF-9FD6C9732E1D}.Release|x86.ActiveCfg = Release|x86
{5457CBF5-4CE4-421E-A8BF-9FD6C9732E1D}.Release|x86.Build.0 = Release|x86
+ {7E1263D2-BA04-48D0-85DB-26C68B782608}.Debug|x86.ActiveCfg = Debug|x86
+ {7E1263D2-BA04-48D0-85DB-26C68B782608}.Debug|x86.Build.0 = Debug|x86
+ {7E1263D2-BA04-48D0-85DB-26C68B782608}.Release|x86.ActiveCfg = Release|x86
+ {7E1263D2-BA04-48D0-85DB-26C68B782608}.Release|x86.Build.0 = Release|x86
{33D03738-C154-4028-8EA8-63A3C488A651}.Debug|x86.ActiveCfg = Debug|x86
{33D03738-C154-4028-8EA8-63A3C488A651}.Debug|x86.Build.0 = Debug|x86
{33D03738-C154-4028-8EA8-63A3C488A651}.Release|x86.ActiveCfg = Release|x86

+ 110
- 0
data/patches/ra2-csproj.patch View File

@ -0,0 +1,110 @@
--- a/OpenRA.Mods.RA2/OpenRA.Mods.RA2.csproj
+++ b/OpenRA.Mods.RA2/OpenRA.Mods.RA2.csproj
@@ -1,33 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
- <ProjectGuid>{7E1263D2-BA04-48D0-85DB-26C68B782608}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>10.0.0</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{7E1263D2-BA04-48D0-85DB-26C68B782608}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>OpenRA.Mods.RA2</RootNamespace>
<AssemblyName>OpenRA.Mods.RA2</AssemblyName>
- <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
- <OutputPath>..</OutputPath>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
<PlatformTarget>x86</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CustomCommands>
+ <CustomCommands>
+ <Command type="AfterBuild" command="cp ${TargetFile} ../mods/ra2" workingdir="${ProjectDir}" />
+ <Command type="AfterBuild" command="cp ${TargetFile}.mdb ../mods/ra2" workingdir="${ProjectDir}" />
+ </CustomCommands>
+ </CustomCommands>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <DebugType>full</DebugType>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
- <DebugSymbols>True</DebugSymbols>
- <DebugType>Full</DebugType>
- <Optimize>False</Optimize>
- <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
- <DebugSymbols>False</DebugSymbols>
- <DebugType>None</DebugType>
- <Optimize>True</Optimize>
- <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x86</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <Optimize>true</Optimize>
+ <CustomCommands>
+ <CustomCommands>
+ <Command type="AfterBuild" command="cp ${TargetFile} ../mods/ra2" workingdir="${ProjectDir}" />
+ <Command type="AfterBuild" command="cp ${TargetFile}.mdb ../mods/ra2" workingdir="${ProjectDir}" />
+ </CustomCommands>
+ </CustomCommands>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="Eluant">
+ <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ItemGroup>
+ <ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">
+ <Project>{0DFB103F-2962-400F-8C6D-E2C28CCBA633}</Project>
+ <Name>OpenRA.Game</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\OpenRA.Mods.Common\OpenRA.Mods.Common.csproj">
+ <Project>{fe6c8cc0-2f07-442a-b29f-17617b3b7fc6}</Project>
+ <Name>OpenRA.Mods.Common</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Stub.cs" />
+ </ItemGroup>
+ <ItemGroup>
<Reference Include="Microsoft.CSharp">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
@@ -52,8 +93,9 @@
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <ItemGroup>
- <Compile Include="Stub.cs" />
- </ItemGroup>
-</Project>
+ <PropertyGroup>
+ <PostBuildEvent>mkdir "$(SolutionDir)mods/ra2/"
+copy "$(TargetPath)" "$(SolutionDir)mods/ra2/"
+cd "$(SolutionDir)"</PostBuildEvent>
+ </PropertyGroup>
+</Project>
\ No newline at end of file

+ 122
- 0
data/patches/tibsun_ra2.patch View File

@ -0,0 +1,122 @@
--- a/Makefile
+++ b/Makefile
@@ -187,6 +187,15 @@
PROGRAMS += mod_ts
mod_ts: $(mod_ts_TARGET)
+# Red Alert 2
+mod_ra2_SRCS := $(shell find OpenRA.Mods.RA2/ -iname '*.cs')
+mod_ra2_TARGET = mods/ra2/OpenRA.Mods.RA2.dll
+mod_ra2_KIND = library
+mod_ra2_DEPS = $(STD_MOD_DEPS) $(mod_common_TARGET)
+mod_ra2_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(mod_common_TARGET)
+PROGRAMS += mod_ra2
+mod_ra2: $(mod_ra2_TARGET)
+
check-scripts:
@echo
@echo "Checking for Lua syntax errors..."
@@ -222,6 +231,9 @@
@echo "Checking for code style violations in OpenRA.Mods.TS..."
@mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Mods.TS
@echo
+ @echo "Checking for code style violations in OpenRA.Mods.RA2..."
+ @mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Mods.RA2
+ @echo
@echo "Checking for code style violations in OpenRA.Utility..."
@mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Utility
@echo
@@ -256,6 +268,9 @@
@mono --debug OpenRA.Utility.exe ts --check-yaml
@mono --debug OpenRA.Utility.exe ts --check-sequence-sprites
@echo
+ @echo "Testing Red Alert 2 mod MiniYAML..."
+ @mono --debug OpenRA.Utility.exe ra2 --check-yaml
+ @echo
@echo "Testing Dune 2000 mod MiniYAML..."
@mono --debug OpenRA.Utility.exe d2k --check-yaml
@mono --debug OpenRA.Utility.exe d2k --check-sequence-sprites
@@ -324,7 +339,7 @@
package: all-dependencies core tools docs version
-mods: mod_common mod_ra mod_cnc mod_d2k mod_ts
+mods: mod_common mod_ra mod_cnc mod_d2k mod_ts mod_ra2
all: dependencies core tools
@@ -393,6 +408,10 @@
@$(CP_R) mods/d2k "$(DATA_INSTALL_DIR)/mods/"
@$(INSTALL_PROGRAM) $(mod_d2k_TARGET) "$(DATA_INSTALL_DIR)/mods/d2k"
@$(CP_R) mods/modchooser "$(DATA_INSTALL_DIR)/mods/"
+ @$(CP_R) mods/ts "$(DATA_INSTALL_DIR)/mods/"
+ @$(INSTALL_PROGRAM) $(mod_ts_TARGET) "$(DATA_INSTALL_DIR)/mods/ts"
+ @$(CP_R) mods/ra2 "$(DATA_INSTALL_DIR)/mods/"
+ @$(INSTALL_PROGRAM) $(mod_ra2_TARGET) "$(DATA_INSTALL_DIR)/mods/ra2"
@$(INSTALL_DATA) "global mix database.dat" "$(DATA_INSTALL_DIR)/global mix database.dat"
@$(INSTALL_DATA) "GeoLite2-Country.mmdb.gz" "$(DATA_INSTALL_DIR)/GeoLite2-Country.mmdb.gz"
--- a/make.ps1
+++ b/make.ps1
@@ -136,6 +136,8 @@
echo "Testing mods..."
echo "Testing Tiberian Sun mod MiniYAML..."
./OpenRA.Utility.exe ts --check-yaml
+ echo "Testing Red Alert 2 mod MiniYAML..."
+ ./OpenRA.Utility.exe ra2 --check-yaml
echo "Testing Dune 2000 mod MiniYAML..."
./OpenRA.Utility.exe d2k --check-yaml
echo "Testing Tiberian Dawn mod MiniYAML..."
@@ -170,6 +172,8 @@
./OpenRA.Utility.exe cnc --check-code-style OpenRA.Mods.D2k
echo "Checking for code style violations in OpenRA.Mods.TS..."
./OpenRA.Utility.exe cnc --check-code-style OpenRA.Mods.TS
+ echo "Checking for code style violations in OpenRA.Mods.RA2..."
+ ./OpenRA.Utility.exe cnc --check-code-style OpenRA.Mods.RA2
echo "Checking for code style violations in OpenRA.Utility..."
./OpenRA.Utility.exe cnc --check-code-style OpenRA.Utility
echo "Checking for code style violations in OpenRA.Test..."
--- a/mods/all/mod.yaml
+++ b/mods/all/mod.yaml
@@ -20,6 +20,7 @@
./mods/d2k/OpenRA.Mods.D2k.dll
./mods/cnc/OpenRA.Mods.Cnc.dll
./mods/ts/OpenRA.Mods.TS.dll
+ ./mods/ra2/OpenRA.Mods.RA2.dll
ChromeLayout:
--- a/mods/ra2/mod.yaml
+++ b/mods/ra2mod.yaml
@@ -5,7 +5,7 @@
Author: RA2 team
RequiresMods:
- modchooser: {DEV_VERSION}
+
Packages:
~^Content/ra2
@@ -172,7 +172,7 @@
ra2:languages/english.yaml
LoadScreen: LogoStripeLoadScreen
- Image: ra2:uibits/loadscreen.png
+ Image: ./mods/ra2/uibits/loadscreen.png
Text: Carving wooden nickels..., Preparing paratroopers..., Welcoming you to Texas..., Optimizing helium mix..., Receiving thoughts..., Igniting boosters...
ContentInstaller:
--- a/utility.cmd
+++ b/utility.cmd
@@ -16,6 +16,7 @@
if /I "%mod%" EQU "ra" (goto help)
if /I "%mod%" EQU "cnc" (goto help)
if /I "%mod%" EQU "ts" (goto help)
+if /I "%mod%" EQU "ra2" (goto help)
if /I "%mod%" EQU "d2k" (goto help)
echo.
echo Unknown mod: %mod%

+ 220
- 0
data/windows/install.ps1 View File

@ -0,0 +1,220 @@
#------------------------------------------------------
## Prepare the script for possible Ctrl+C termination
while ($true)
{
#------------------------------------------------------
## Initial script messages
"***Welcome Comrade***"
Start-Sleep -s 3
"`nThis script will generate OpenRA with Tiberian Sun & Red Alert 2 for Windows."
Start-Sleep -s 4
"`n- Make sure you have Microsoft .NET Framework 4.5 installed on your computer."
Start-Sleep -s 3
"`n- This script is NOT made by the OpenRA developers and may contain bugs."
Start-Sleep -s 3
"`n- If you worry about what the script is doing, you can always check its code (\data\windows\install.ps1)"
Start-Sleep -s 4
"`n- Press Ctrl+C if you want terminate script execution."
Start-Sleep -s 4
"`n***Starting execution sequence now***"
Start-Sleep -s 3
#------------------------------------------------------
## Remove all old source files if they exist
"`nRemoving all old source files that may exist in the data directory."
Remove-Item .\data\windows\OpenRA-bleed -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item .\data\windows\ra2-master -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item .\data\windows\OpenRA-bleed.zip -Force -ErrorAction SilentlyContinue
Remove-Item .\data\windows\ra2-master.zip -Force -ErrorAction SilentlyContinue
#------------------------------------------------------
## Prepare Github environment for downloading the source
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$client = New-Object System.Net.WebClient
$client.Headers.Add("Authorization","token 1234567890notarealtoken987654321")
$client.Headers.Add("Accept","application/vnd.github.v3.raw")
#------------------------------------------------------
## Download OpenRA-bleed source code
"`nDownloading OpenRA source files from Github. Please Stand By."
$client.DownloadFile("https://github.com/OpenRA/OpenRA/archive/bleed.zip?ref=bleed",".\data\windows\OpenRA-bleed.zip")
#------------------------------------------------------
## Download Red Alert 2 mod files
"`nDownloading Red Alert 2 mod files from Github. Please Stand By."
$client.DownloadFile("https://github.com/OpenRA/ra2/archive/master.zip?ref=master",".\data\windows\ra2-master.zip")
#------------------------------------------------------
## Unzip OpenRA-bleed source files
"`nUnzipping OpenRA source files into \data\windows folder."
$shell_app=new-object -com shell.application
$filename = "OpenRA-bleed.zip"
$zip_file = $shell_app.namespace((Get-Location).Path + "\data\windows" + "\$filename")
$destination = $shell_app.namespace((Get-Location).Path + "\data\windows")
$destination.Copyhere($zip_file.items())
#------------------------------------------------------
## Unzip Red Alert 2 mod files
"`nUnzipping Red Alert 2 mod files into \data\windows folder."
$shell_app=new-object -com shell.application
$filename2 = "ra2-master.zip"
$zip_file2 = $shell_app.namespace((Get-Location).Path + "\data\windows" + "\$filename2")
$destination = $shell_app.namespace((Get-Location).Path + "\data\windows")
$destination.Copyhere($zip_file2.items())
#------------------------------------------------------
## Merge OpenRA source files and Red Alert 2 mod files together
"`nMerging OpenRA source & Red Alert 2 mod files."
move-item ".\data\windows\ra2-master\OpenRA.Mods.RA2" ".\data\windows\OpenRA-bleed\OpenRA.Mods.RA2"
move-item ".\data\windows\ra2-master" ".\data\windows\OpenRA-bleed\mods\ra2"
#------------------------------------------------------
## Get OpenRA Git version number
"`nRetrieving OpenRA & Red Alert 2 Git version numbers."
$web = New-Object System.Net.WebClient
$web.DownloadFile("https://github.com/OpenRA/OpenRA",".\data\windows\openra-github.html")
$flag=0
Get-Content .\data\windows\openra-github.html |
foreach {
Switch -Wildcard ($_){
"*Latest commit*" {$flag=1}
"*time datetime*" {$flag=0}
}
if ($flag -eq 1){
Out-File .\data\windows\openra-html-stripped.txt -InputObject $_ -Append
}
}
(Get-Content .\data\windows\openra-html-stripped.txt)[2] -replace '\s','' | Foreach-Object{ 'git-' + $_ } > .\data\windows\openra-latestcommit.txt
$openra_gitversion = [IO.File]::ReadAllText(".\data\windows\openra-latestcommit.txt").trim("`r`n")
Write-Output "`nOpenRA version: $openra_gitversion"
#------------------------------------------------------
## Get Red Alert 2 Git version number
$web = New-Object System.Net.WebClient
$web.DownloadFile("https://github.com/OpenRA/ra2",".\data\windows\ra2-github.html")
$flag=0
Get-Content .\data\windows\ra2-github.html |
foreach {
Switch -Wildcard ($_){
"*Latest commit*" {$flag=1}
"*time datetime*" {$flag=0}
}
if ($flag -eq 1){
Out-File .\data\windows\ra2-html-stripped.txt -InputObject $_ -Append
}
}
(Get-Content .\data\windows\ra2-html-stripped.txt)[2] -replace '\s','' | Foreach-Object{ 'git-' + $_ } > .\data\windows\ra2-latestcommit.txt
$ra2_gitversion = [IO.File]::ReadAllText(".\data\windows\ra2-latestcommit.txt").trim("`r`n")
Write-Output "RA2 version: $ra2_gitversion"
#------------------------------------------------------
## Prepare OpenRA source code for Tiberian Sun & Red Alert 2
Copy-Item ".\data\patches\*.patch" ".\data\windows"
Start-Sleep -s 3
"`nPatching OpenRA source code for Tiberian Sun & Red Alert 2."
cd .\data\windows
"`nFor each time a patch is being applied, UAC may ask permission for patch.exe."
$patchcount = (Get-Childitem .\ | where {$_.extension -eq ".patch"} | Measure-Object ).Count;
Write-Output "`nExecuting patch.exe $patchcount times now."
Get-ChildItem .\ -include *.patch -recurse | Foreach ($_) {.\patch.exe -d OpenRA-bleed -Np1 --binary -i $_.fullname }
cd ..
cd ..
#------------------------------------------------------
## Push version numbers to mod files
# Red Alert
(Get-Content .\data\windows\Openra-bleed\mods\ra\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\ra\mod.yaml
# Tiberian Dawn
(Get-Content .\data\windows\Openra-bleed\mods\cnc\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\cnc\mod.yaml
# Dune 2K
(Get-Content .\data\windows\Openra-bleed\mods\d2k\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\d2k\mod.yaml
# Tiberian Sun
(Get-Content .\data\windows\Openra-bleed\mods\ts\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\ts\mod.yaml
# Red Alert 2
(Get-Content .\data\windows\Openra-bleed\mods\ra2\mod.yaml) -replace '{DEV_VERSION}',$ra2_gitversion | Set-Content .\data\windows\Openra-bleed\mods\ra2\mod.yaml
# Mod Chooser
(Get-Content .\data\windows\Openra-bleed\mods\modchooser\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\modchooser\mod.yaml
# All
(Get-Content .\data\windows\Openra-bleed\mods\all\mod.yaml) -replace '{DEV_VERSION}',$openra_gitversion | Set-Content .\data\windows\Openra-bleed\mods\all\mod.yaml
#------------------------------------------------------
## Remove temporary files
Remove-Item .\data\windows\*.html
Remove-Item .\data\windows\*.txt
Remove-Item .\data\windows\*.zip
Remove-Item .\data\windows\*.patch
#------------------------------------------------------
## Compile OpenRA with Tiberian Sun & Red Alert 2
"`nCompiling OpenRA with Tiberian Sun & Red Alert 2.`n"
cd .\data\windows\OpenRA-bleed\
.\make.cmd dependencies
.\make.cmd all
cd ..
cd ..
cd ..
move-item ".\data\windows\OpenRA-bleed\" ".\OpenRA-tibsunra2-Windows"
#------------------------------------------------------
## Post-installation messages
"`nCompilation process completed. You find the game inside 'OpenRA-tibsunra2-Windows' folder"
Start-Sleep -s 4
"`nTO PLAY OPENRA: Click OpenRA.exe (maybe you should create a desktop shortcut for it?)"
"`nTO PLAY TIBERIAN SUN: Launch the game and download the required asset files from the web when the game asks you to do so."
"`nTO PLAY RED ALERT 2: you must install language.mix, multi.mix, ra2.mix and theme.mix into \My Documents\OpenRA\Content\ra2\ folder.`nYou find these files from original RA2 installation media (CD's):`n`ntheme.mix, multi.mix = RA2 CD Root folder`nra2.mix, language.mix = RA2 CD Root\INSTALL\Game1.CAB (inside that archive file)"
"`nMULTIPLAYER: It's recommended to build OpenRA using exactly same GIT source files for multiplayer usage to minimize possible version differences/conflicts between players. Please make sure all players have exactly same git versions of their in-game mods (RA, CNC, D2K, TS, RA2). Version numbers are formatted like 'git-e0d7445' etc. and can be found in each mod description in the mod selection menu."
"`nFor this compilation, the version numbers are as follows:"
Write-Output "OpenRA version: $openra_gitversion"
Write-Output "RA2 version: $ra2_gitversion"
"`nUNINSTALLATION: Since the game has been compiled from source and no additional setup programs are provided, all you need to do is to delete the contents of 'OpenRA-bleed-tibsunra2' folder and \My Documents\OpenRA\"
"`nHave fun!"
exit
#------------------------------------------------------
## Termination code for the script (Ctrl + C)
if ($Host.UI.RawUI.KeyAvailable -and (3 -eq [int]$Host.UI.RawUI.ReadKey("AllowCtrlC,IncludeKeyUp,NoEcho").Character))
{
write-host "Installation script terminated by user."
$key = $Host.UI.RawUI.ReadKey("NoEcho, IncludeKeyDown")
if ($key.Character -eq "N") { break; }
}
}

BIN
data/windows/patch.exe View File


+ 160
- 0
linux-install.sh View File

@ -0,0 +1,160 @@
#!/bin/bash
##-------------------------------------------------------------
# Allow interruption of the script at any time (Ctrl + C)
trap "exit" INT
##-------------------------------------------------------------
# Check if we're using bash or sh to run the script. If bash, OK. If sh, ask user to run the script with bash.
BASH_CHECK=$(ps | grep `echo $$` | awk '{ print $4 }')
if [ ! $BASH_CHECK = "bash" ]; then
echo "
Please run this script using bash (/usr/bin/bash).
"
exit 1
fi
##-------------------------------------------------------------
# Check if we are root or not. If yes, then terminate the script.
if [[ $UID = 0 ]]; then
echo -e "\nPlease run this script as a regular user. Do not use root or sudo. Some commands used in the script require regular user permissions.\n"
exit 1
fi
##-------------------------------------------------------------
# Get our current directory
WORKING_DIR=$(pwd)
# Get our Linux distribution
DISTRO=$(cat /etc/os-release | sed -n '/PRETTY_NAME/p' | grep -o '".*"' | sed -e 's/"//g' -e s/'([^)]*)'/''/g -e 's/ .*//' -e 's/[ \t]*$//')
ARCH="Arch"
UBUNTU="Ubuntu"
DEBIAN="Debian"
OPENSUSE="openSUSE"
FEDORA="Fedora"
##-------------------------------------------------------------
#Post-installation instructions
bold_in='\e[1m'
out='\e[0m'
PACKAGEMANAGER_INSTALL=1
PACKAGEMANAGER_REMOVE=1
PACKAGE_NAME=1
INSTALL_NAME=1
function endtext() {
OPENRA_GITVERSION=git-$(git ls-remote https://github.com/OpenRA/OpenRA.git | head -1 | sed "s/HEAD//" | sed 's/^\(.\{7\}\).*/\1/')
RA2_GITVERSION=git-$(git ls-remote https://github.com/OpenRA/ra2.git | head -1 | sed "s/HEAD//" | sed 's/^\(.\{7\}\).*/\1/')
echo -e "\n***OpenRA compilation script completed.\nPlease see further instructions below.***"
sleep 2
echo -e "$bold_in\n***MANUAL INSTALLATION***$out\n\nInstall OpenRA by typing '$PACKAGEMANAGER_INSTALL $HOME/$PACKAGE_NAME' (without quotations) in a terminal window."
sleep 4
echo -e "$bold_in\n***TIBERIAN SUN & RED ALERT 2 - HOWTO***$out\n\nTO PLAY TIBERIAN SUN: Launch the game and download the required asset files from the web when the game asks you to do so.\n\nTO PLAY RED ALERT 2: You must install language.mix, multi.mix, ra2.mix and theme.mix into '$HOME/.openra/Content/ra2/' folder. You find these files from original RA2 installation media (CD's):\n\n-theme.mix, multi.mix = RA2 CD Root folder\n-ra2.mix, language.mix = RA2 CD Root/INSTALL/Game1.CAB (inside that archive file)$bold_in\n\n***LAUNCHING OPENRA***$out\n\nTo launch OpenRA, simply type 'openra' (without quotations) in your terminal or use a desktop shortcut file.$bold_in\n\n***UNINSTALLATION***$out\n\nIf you want to remove OpenRA, just type '$PACKAGEMANAGER_REMOVE $INSTALL_NAME' (without quotations)\n\nYou can find package of $INSTALL_NAME in '$HOME' for further usage.$bold_in\n\n***MULTIPLAYER***$out\n\nIt's recommended to build OpenRA using exactly same GIT source files for multiplayer usage to minimize possible version differences/conflicts between players. Please make sure all players have exactly same git versions of their in-game mods (RA, CNC, D2K, TS, RA2). Version numbers are formatted like 'git-e0d7445' etc. and can be found in each mod description in the mod selection menu.\n\nFor this compilation, the version numbers are as follows:\nOpenRA version: $OPENRA_GITVERSION\nRA2 version: $RA2_GITVERSION\n\nHave fun!\n"
}
##-------------------------------------------------------------
# If we're running Arch Linux, then execute this
if [[ $DISTRO =~ "$ARCH" ]]; then
echo -e "\nYou are about to install OpenRA with Tiberian Sun & Red Alert 2.\n"
read -r -p "Do you want to continue? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
echo -e "\nStarting OpenRA compilation process.\n"
sleep 2
cp ./data/patches/*.patch ./data/linux/arch_linux/
cd ./data/linux/arch_linux
updpkgsums
makepkg -c
mv *.tar.xz $HOME
PACKAGEMANAGER_INSTALL='sudo pacman -U'
PACKAGEMANAGER_REMOVE='sudo pacman -Rs'
INSTALL_NAME=$(sed -n '/pkgname/{p;q;}' ./data/linux/arch_linux/PKGBUILD | sed -n 's/^pkgname=//p')
PACKAGE_NAME=$(find $HOME -maxdepth 1 -type f -iname "$INSTALL_NAME*.tar.xz" | sed -e 's/.*\///')
rm -r */
rm ./*.patch
cd $WORKING_DIR
if [[ $PACKAGE_NAME =~ '^[0-9]+$' ]]; then
exit 1
else
endtext
exit 1
fi
else
echo -e "\nCancelling OpenRA installation.\n"
exit 1
fi
fi
##-------------------------------------------------------------
# If we're running Ubuntu or Linux Mint or Debian, then execute this
if [[ $DISTRO =~ "$UBUNTU" ]] || [[ $DISTRO =~ "$DEBIAN" ]]; then
if [[ $DISTRO =~ "$DEBIAN" ]]; then
if [[ $(dpkg-query -W sudo 2>/dev/null | wc -l) -eq 0 ]]; then
echo -e "\Please install sudo and add your username to sudo group.\nRun the following commands:\nsu root\nadduser <username> sudo\n\nRe-run this script again then.\nExiting now."
exit 1
fi
fi
bash ./data/linux/openra-installscript.sh
PACKAGEMANAGER_INSTALL='sudo dpkg -i'
PACKAGEMANAGER_REMOVE='sudo apt-get purge --remove'
INSTALL_NAME=$(sed -n '/PACKAGE_NAME/{p;q;}' ./data/linux/openra-installscript.sh | sed -n 's/^PACKAGE_NAME=//p')
PACKAGE_NAME=$(find $HOME -maxdepth 1 -type f -iname "$INSTALL_NAME*.deb" | sed -e 's/.*\///')
if [[ $PACKAGE_NAME =~ '^[0-9]+$' ]]; then
exit 1
else
endtext
exit 1
fi
exit 1
fi
##-------------------------------------------------------------
# If we're running OpenSUSE or Fedora, then execute this
if [[ $DISTRO =~ "$FEDORA" ]] || [[ $DISTRO =~ "$OPENSUSE" ]]; then
bash ./data/linux/openra-installscript.sh
if [[ $DISTRO =~ "$OPENSUSE" ]]; then
PACKAGEMANAGER_INSTALL='sudo zypper install'
PACKAGEMANAGER_REMOVE='sudo zypper remove'
elif [[ $DISTRO =~ "$FEDORA" ]]; then
PACKAGEMANAGER_INSTALL='sudo dnf install'
PACKAGEMANAGER_REMOVE='sudo dnf remove'
fi
INSTALL_NAME=$(sed -n '/PACKAGE_NAME/{p;q;}' ./data/linux/openra-installscript.sh | sed -n 's/^PACKAGE_NAME=//p')
PACKAGE_NAME=$(find $HOME -maxdepth 1 -type f -iname "$INSTALL_NAME*.rpm" | sed -e 's/.*\///')
if [[ $PACKAGE_NAME =~ '^[0-9]+$' ]]; then
exit 1
else
endtext
exit 1
fi
exit 1
fi
##-------------------------------------------------------------
# If we don't have any of the supported distributions
if [[ ! $DISTRO =~ "$ARCH" ]] || [[ ! $DISTRO =~ "$UBUNTU" ]] || [[ ! $DISTRO =~ "$DEBIAN" ]] || [[ ! $DISTRO =~ "$OPENSUSE" ]] || [[ ! $DISTRO =~ "$FEDORA" ]]; then
echo "
Your Linux Distribution is not supported. Please consider making a new OpenRA installation script for it.
Supported distributions are: Ubuntu, Linux Mint, Debian, OpenSUSE, Fedora and Arch Linux.
"
exit 1
fi

+ 1
- 0
windows-install.bat View File

@ -0,0 +1 @@
start cmd.exe /k @powershell -NoProfile -ExecutionPolicy Unrestricted -File .\windows\install.ps1 %*

Loading…
Cancel
Save