diff --git a/Makefile b/Makefile index adc6c3af42..6b6312263d 100644 --- a/Makefile +++ b/Makefile @@ -373,14 +373,28 @@ install-linux-icons: install-linux-desktop: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/applications" - @$(INSTALL_DATA) packaging/linux/openra.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/ra/g' packaging/linux/openra.desktop.in | sed 's/{MODNAME}/Red Alert/g' > packaging/linux/openra-ra.desktop + @$(INSTALL_DATA) packaging/linux/openra-ra.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/cnc/g' packaging/linux/openra.desktop.in | sed 's/{MODNAME}/Tiberian Dawn/g' > packaging/linux/openra-cnc.desktop + @$(INSTALL_DATA) packaging/linux/openra-cnc.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/d2k/g' packaging/linux/openra.desktop.in | sed 's/{MODNAME}/Dune 2000/g' > packaging/linux/openra-d2k.desktop + @$(INSTALL_DATA) packaging/linux/openra-d2k.desktop "$(DESTDIR)$(datadir)/applications" + @-$(RM) packaging/linux/openra-ra.desktop packaging/linux/openra-cnc.desktop packaging/linux/openra-d2k.desktop install-linux-mime: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/mime/packages/" + + @sed 's/{MOD}/ra/g' packaging/linux/openra-mimeinfo.xml.in | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-mimeinfo.xml @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra.xml" @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/applications" - @$(INSTALL_DATA) packaging/linux/openra-join-servers.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/ra/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Red Alert/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-ra-join-servers.desktop + @$(INSTALL_DATA) packaging/linux/openra-ra-join-servers.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/cnc/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Tiberian Dawn/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-cnc-join-servers.desktop + @$(INSTALL_DATA) packaging/linux/openra-cnc-join-servers.desktop "$(DESTDIR)$(datadir)/applications" + @sed 's/{MOD}/d2k/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Dune 2000/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-d2k-join-servers.desktop + @$(INSTALL_DATA) packaging/linux/openra-d2k-join-servers.desktop "$(DESTDIR)$(datadir)/applications" + @-$(RM) packaging/linux/openra-mimeinfo.xml packaging/linux/openra-ra-join-servers.desktop packaging/linux/openra-cnc-join-servers.desktop packaging/linux/openra-d2k-join-servers.desktop install-linux-appdata: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/appdata/" @@ -391,50 +405,63 @@ install-man-page: man-page @$(INSTALL_DATA) openra.6 "$(DESTDIR)$(mandir)/man6/" install-linux-scripts: - @echo "#!/bin/sh" > openra - @echo 'cd "$(gameinstalldir)"' >> openra -# Note: this relies on the non-standard -f flag implemented by gnu readlink ifeq ($(DEBUG), $(filter $(DEBUG),false no n off 0)) - @echo 'mono OpenRA.Game.exe Engine.LaunchPath="$$(readlink -f $$0)" "$$@"' >> openra + @sed 's/{DEBUG}//' packaging/linux/openra.in | sed 's|{GAME_INSTALL_DIR}|$(gameinstalldir)|' | sed 's|{BIN_DIR}|$(bindir)|' > packaging/linux/openra.debug.in + @sed 's/{DEBUG}//' packaging/linux/openra-server.in | sed 's|{GAME_INSTALL_DIR}|$(gameinstalldir)|' | sed 's|{BIN_DIR}|$(bindir)|' > packaging/linux/openra-server.debug.in else - @echo 'mono --debug OpenRA.Game.exe Engine.LaunchPath="$$(readlink -f $$0)" "$$@"' >> openra -endif - @echo 'if [ $$? != 0 -a $$? != 1 ]' >> openra - @echo 'then' >> openra - @echo 'ZENITY=`which zenity` || echo "OpenRA needs zenity installed to display a graphical error dialog. See ~/.openra. for log files."' >> openra - @echo '$$ZENITY --question --title "OpenRA" --text "OpenRA has encountered a fatal error.\nLog Files are available in ~/.openra." --ok-label "Quit" --cancel-label "View FAQ" || xdg-open https://github.com/OpenRA/OpenRA/wiki/FAQ' >> openra - @echo 'exit 1' >> openra - @echo 'fi' >> openra - - @$(INSTALL_DIR) "$(BIN_INSTALL_DIR)" - @$(INSTALL_PROGRAM) -m +rx openra "$(BIN_INSTALL_DIR)" - @-$(RM) openra - - @echo "#!/bin/sh" > openra-server - @echo 'cd "$(gameinstalldir)"' >> openra-server -ifeq ($(DEBUG), $(filter $(DEBUG),false no n off 0)) - @echo 'mono OpenRA.Server.exe "$$@"' >> openra-server -else - @echo 'mono --debug OpenRA.Server.exe "$$@"' >> openra-server + @sed 's/{DEBUG}/--debug/' packaging/linux/openra.in | sed 's|{GAME_INSTALL_DIR}|$(gameinstalldir)|' | sed 's|{BIN_DIR}|$(bindir)|' > packaging/linux/openra.debug.in + @sed 's/{DEBUG}/--debug/' packaging/linux/openra-server.in | sed 's|{GAME_INSTALL_DIR}|$(gameinstalldir)|' | sed 's|{BIN_DIR}|$(bindir)|' > packaging/linux/openra-server.debug.in endif + @sed 's/{MOD}/ra/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Red Alert/g' > packaging/linux/openra-ra + @sed 's/{MOD}/cnc/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Tiberian Dawn/g' > packaging/linux/openra-cnc + @sed 's/{MOD}/d2k/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Dune 2000/g' > packaging/linux/openra-d2k + @$(INSTALL_DIR) "$(BIN_INSTALL_DIR)" - @$(INSTALL_PROGRAM) -m +rx openra-server "$(BIN_INSTALL_DIR)" - @-$(RM) openra-server + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-ra "$(BIN_INSTALL_DIR)" + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-cnc "$(BIN_INSTALL_DIR)" + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-d2k "$(BIN_INSTALL_DIR)" + @-$(RM) packaging/linux/openra-ra packaging/linux/openra-cnc packaging/linux/openra-d2k packaging/linux/openra.debug.in + + @sed 's/{MOD}/ra/g' packaging/linux/openra-server.debug.in | sed 's/{MODNAME}/Red Alert/g' > packaging/linux/openra-ra-server + @sed 's/{MOD}/cnc/g' packaging/linux/openra-server.debug.in | sed 's/{MODNAME}/Tiberian Dawn/g' > packaging/linux/openra-cnc-server + @sed 's/{MOD}/d2k/g' packaging/linux/openra-server.debug.in | sed 's/{MODNAME}/Dune 2000/g' > packaging/linux/openra-d2k-server + + @$(INSTALL_DIR) "$(BIN_INSTALL_DIR)" + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-ra-server "$(BIN_INSTALL_DIR)" + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-cnc-server "$(BIN_INSTALL_DIR)" + @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-d2k-server "$(BIN_INSTALL_DIR)" + @-$(RM) packaging/linux/openra-ra-server packaging/linux/openra-cnc-server packaging/linux/openra-d2k-server packaging/linux/openra-server.debug.in uninstall: @-$(RM_R) "$(DATA_INSTALL_DIR)" - @-$(RM_F) "$(BIN_INSTALL_DIR)/openra" - @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-server" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-join-servers.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-launch-mod.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-join-servers.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra.png" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-ra" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-ra-server" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-cnc" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-cnc-server" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-d2k" + @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-d2k-server" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-ra.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-cnc.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-d2k.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-ra-join-servers.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-cnc-join-servers.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-d2k-join-servers.desktop" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra-ra.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra-ra.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-ra.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra-ra.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra-ra.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra-cnc.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra-cnc.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-cnc.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra-cnc.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra-cnc.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra-d2k.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra-d2k.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-d2k.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra-d2k.png" + @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra-d2k.png" @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra.xml" @-$(RM_F) "$(DESTDIR)$(datadir)/appdata/openra.appdata.xml" @-$(RM_F) "$(DESTDIR)$(mandir)/man6/openra.6" diff --git a/packaging/linux/deb/buildpackage.sh b/packaging/linux/deb/buildpackage.sh index b8cfeed828..53c4a38b48 100755 --- a/packaging/linux/deb/buildpackage.sh +++ b/packaging/linux/deb/buildpackage.sh @@ -28,8 +28,13 @@ chmod 0644 "${DEB_BUILD_ROOT}/${LIBDIR}/"*/**/*.dll # Binaries go in /usr/games mv "${DEB_BUILD_ROOT}/usr/bin/" "${DEB_BUILD_ROOT}/usr/games/" -sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra" > temp -mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra" +sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra-ra" > temp +mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra-ra" +sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra-cnc" > temp +mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra-cnc" +sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra-d2k" > temp +mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra-d2k" + chmod 0755 "${DEB_BUILD_ROOT}/usr/games/openra"* # Compress the man page diff --git a/packaging/linux/hicolor/128x128/apps/openra-cnc.png b/packaging/linux/hicolor/128x128/apps/openra-cnc.png new file mode 100644 index 0000000000..b20c73c655 Binary files /dev/null and b/packaging/linux/hicolor/128x128/apps/openra-cnc.png differ diff --git a/packaging/linux/hicolor/128x128/apps/openra-d2k.png b/packaging/linux/hicolor/128x128/apps/openra-d2k.png new file mode 100644 index 0000000000..e88a4e0262 Binary files /dev/null and b/packaging/linux/hicolor/128x128/apps/openra-d2k.png differ diff --git a/packaging/linux/hicolor/128x128/apps/openra.png b/packaging/linux/hicolor/128x128/apps/openra-ra.png similarity index 100% rename from packaging/linux/hicolor/128x128/apps/openra.png rename to packaging/linux/hicolor/128x128/apps/openra-ra.png diff --git a/packaging/linux/hicolor/16x16/apps/openra-cnc.png b/packaging/linux/hicolor/16x16/apps/openra-cnc.png new file mode 100644 index 0000000000..86a2dc2603 Binary files /dev/null and b/packaging/linux/hicolor/16x16/apps/openra-cnc.png differ diff --git a/packaging/linux/hicolor/16x16/apps/openra-d2k.png b/packaging/linux/hicolor/16x16/apps/openra-d2k.png new file mode 100644 index 0000000000..0c5e286b52 Binary files /dev/null and b/packaging/linux/hicolor/16x16/apps/openra-d2k.png differ diff --git a/packaging/linux/hicolor/16x16/apps/openra.png b/packaging/linux/hicolor/16x16/apps/openra-ra.png similarity index 100% rename from packaging/linux/hicolor/16x16/apps/openra.png rename to packaging/linux/hicolor/16x16/apps/openra-ra.png diff --git a/packaging/linux/hicolor/32x32/apps/openra-cnc.png b/packaging/linux/hicolor/32x32/apps/openra-cnc.png new file mode 100644 index 0000000000..22b05bd91f Binary files /dev/null and b/packaging/linux/hicolor/32x32/apps/openra-cnc.png differ diff --git a/packaging/linux/hicolor/32x32/apps/openra-d2k.png b/packaging/linux/hicolor/32x32/apps/openra-d2k.png new file mode 100644 index 0000000000..f91a40a3df Binary files /dev/null and b/packaging/linux/hicolor/32x32/apps/openra-d2k.png differ diff --git a/packaging/linux/hicolor/32x32/apps/openra.png b/packaging/linux/hicolor/32x32/apps/openra-ra.png similarity index 100% rename from packaging/linux/hicolor/32x32/apps/openra.png rename to packaging/linux/hicolor/32x32/apps/openra-ra.png diff --git a/packaging/linux/hicolor/48x48/apps/openra-cnc.png b/packaging/linux/hicolor/48x48/apps/openra-cnc.png new file mode 100644 index 0000000000..595ad33c03 Binary files /dev/null and b/packaging/linux/hicolor/48x48/apps/openra-cnc.png differ diff --git a/packaging/linux/hicolor/48x48/apps/openra-d2k.png b/packaging/linux/hicolor/48x48/apps/openra-d2k.png new file mode 100644 index 0000000000..a57d4b5d09 Binary files /dev/null and b/packaging/linux/hicolor/48x48/apps/openra-d2k.png differ diff --git a/packaging/linux/hicolor/48x48/apps/openra.png b/packaging/linux/hicolor/48x48/apps/openra-ra.png similarity index 100% rename from packaging/linux/hicolor/48x48/apps/openra.png rename to packaging/linux/hicolor/48x48/apps/openra-ra.png diff --git a/packaging/linux/hicolor/64x64/apps/openra-cnc.png b/packaging/linux/hicolor/64x64/apps/openra-cnc.png new file mode 100644 index 0000000000..6a7a1706f5 Binary files /dev/null and b/packaging/linux/hicolor/64x64/apps/openra-cnc.png differ diff --git a/packaging/linux/hicolor/64x64/apps/openra-d2k.png b/packaging/linux/hicolor/64x64/apps/openra-d2k.png new file mode 100644 index 0000000000..2a5a309c46 Binary files /dev/null and b/packaging/linux/hicolor/64x64/apps/openra-d2k.png differ diff --git a/packaging/linux/hicolor/64x64/apps/openra.png b/packaging/linux/hicolor/64x64/apps/openra-ra.png similarity index 100% rename from packaging/linux/hicolor/64x64/apps/openra.png rename to packaging/linux/hicolor/64x64/apps/openra-ra.png diff --git a/packaging/linux/hicolor/scalable/apps/openra-cnc.svg b/packaging/linux/hicolor/scalable/apps/openra-cnc.svg new file mode 100644 index 0000000000..0bebfdf12f --- /dev/null +++ b/packaging/linux/hicolor/scalable/apps/openra-cnc.svg @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/linux/hicolor/scalable/apps/openra.svg b/packaging/linux/hicolor/scalable/apps/openra-ra.svg similarity index 100% rename from packaging/linux/hicolor/scalable/apps/openra.svg rename to packaging/linux/hicolor/scalable/apps/openra-ra.svg diff --git a/packaging/linux/openra-join-servers.desktop b/packaging/linux/openra-join-servers.desktop.in similarity index 53% rename from packaging/linux/openra-join-servers.desktop rename to packaging/linux/openra-join-servers.desktop.in index 96b7bc06c5..bf3c544ff9 100755 --- a/packaging/linux/openra-join-servers.desktop +++ b/packaging/linux/openra-join-servers.desktop.in @@ -1,12 +1,13 @@ [Desktop Entry] Type=Application Version=1.0 -Name=OpenRA +Name=OpenRA - {MODNAME} GenericName=Real Time Strategy Game +GenericName[de]=Echtzeit-Strategiespiel Comment=Reimagining of early Westwood Games -Icon=openra -Exec=openra Launch.URI=%U +Icon=openra-{MOD} +Exec=openra-{MOD} Launch.URI=%U Terminal=false NoDisplay=true Categories=Game;StrategyGame; -MimeType=x-scheme-handler/openra; \ No newline at end of file +MimeType=x-scheme-handler/openra-{MOD}-{TAG}; \ No newline at end of file diff --git a/packaging/linux/openra-mimeinfo.xml b/packaging/linux/openra-mimeinfo.xml deleted file mode 100644 index a7b7bb8b0a..0000000000 --- a/packaging/linux/openra-mimeinfo.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - OpenRA connect to server scheme - - - - diff --git a/packaging/linux/openra-mimeinfo.xml.in b/packaging/linux/openra-mimeinfo.xml.in new file mode 100644 index 0000000000..3964390353 --- /dev/null +++ b/packaging/linux/openra-mimeinfo.xml.in @@ -0,0 +1,23 @@ + + + + + + + OpenRA connect to server scheme + + + + + + OpenRA connect to server scheme + + + + + + OpenRA connect to server scheme + + + + diff --git a/packaging/linux/openra-server.in b/packaging/linux/openra-server.in new file mode 100755 index 0000000000..63893307b1 --- /dev/null +++ b/packaging/linux/openra-server.in @@ -0,0 +1,4 @@ +#!/bin/sh +cd "{GAME_INSTALL_DIR}" + +mono {DEBUG} OpenRA.Server.exe Game.Mod={MOD} "$$@" \ No newline at end of file diff --git a/packaging/linux/openra.desktop b/packaging/linux/openra.desktop.in similarity index 77% rename from packaging/linux/openra.desktop rename to packaging/linux/openra.desktop.in index 9ca3c84786..3d17dec974 100644 --- a/packaging/linux/openra.desktop +++ b/packaging/linux/openra.desktop.in @@ -1,11 +1,11 @@ [Desktop Entry] Type=Application Version=1.0 -Name=OpenRA +Name=OpenRA - {MODNAME} GenericName=Real Time Strategy Game GenericName[de]=Echtzeit-Strategiespiel Comment=Reimagining of early Westwood Games -Icon=openra -Exec=openra +Icon=openra-{MOD} +Exec=openra-{MOD} Terminal=false Categories=Game;StrategyGame; diff --git a/packaging/linux/openra.in b/packaging/linux/openra.in new file mode 100755 index 0000000000..f8216adc81 --- /dev/null +++ b/packaging/linux/openra.in @@ -0,0 +1,16 @@ +#!/bin/sh +cd "{GAME_INSTALL_DIR}" + +mono {DEBUG} OpenRA.Game.exe Game.Mod={MOD} Engine.LaunchPath="{BIN_DIR}/openra-{MOD}" "$@" + +# Show a crash dialog if required +if [ $? != 0 ] && [ $? != 1 ] +then + if which zenity > /dev/null + then + zenity --question --title "{MODNAME}" --text "{MODNAME} has encountered a fatal error.\nLog Files are available in ~/.openra." --ok-label "Quit" --cancel-label "View FAQ" || xdg-open https://github.com/OpenRA/OpenRA/wiki/FAQ + else + printf "{MODNAME} has encountered a fatal error.\n -> Log Files are available in ~/.openra\n -> FAQ is available at https://github.com/OpenRA/OpenRA/wiki/FAQ\n" + fi + exit 1 +fi