@ -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. | |||||
------------------------------------------------ |
@ -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 | |||||
} |
@ -0,0 +1,11 @@ | |||||
post_install() { | |||||
xdg-icon-resource forceupdate --theme hicolor &> /dev/null | |||||
} | |||||
post_upgrade() { | |||||
post_install | |||||
} | |||||
post_remove() { | |||||
post_install | |||||
} |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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% |
@ -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; } | |||||
} | |||||
} |
@ -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 |
@ -0,0 +1 @@ | |||||
start cmd.exe /k @powershell -NoProfile -ExecutionPolicy Unrestricted -File .\windows\install.ps1 %* |