Commit Graph

138 Commits

Author SHA1 Message Date
Ted John
e2bbd55304 Fix no contributors.md and licence.txt in windows portable builds (#10837) 2020-02-24 23:09:16 +01:00
Ted John
a8b5304786 Remove exe / com wrapper around openrct2.dll for Windows (#10727)
We get repeated reports of people saying the game is incorrectly reported as a virus. It is becoming more inconvenient for players and even myself, because when we attempt to download a build, it is immediately deleted by scanners (including the default for Windows: Windows Defender).

One scanner is not too much of an issue, but the game is flagged by almost half of available scanners as reported by VirusTotal.

So why is it being flagged?

Windows has a very annoying concept, the subsystem for a binary. The console subsystem allows stdin / stdout as you would expect, just like posix. Unfortunately if a user runs a console subsystem binary from the desktop or explorer, the game will be opened under conhost and thus you get a console showing alongside the game window. This is not a good user experience for most players. To resolve this, you can use the windows subsystem, but this will detach stdin and stdout immediately on launch. There are hacks that can be done in code to allocate a new console but I found this to not work very well with stdin or other terminal emulators.

My solution to the problem was to have two binaries: openrct2.exe and openrct2.com. Both are executable but openrct2.exe is windows subsystem, openrct2.com is console subsystem. The desktop shortcut opens openrct2.exe with no console window showing. Typing openrct2 on the command line will execute openrct2.com (as .com has higher PATH precedence than .exe by default) with working stdin and stdout. In order to reduce the size, I have the entire game inside openrct2.dll and then supply two tiny wrapper EXEs that simply route main(...) into the DLL.

These wrapper EXEs are the problem, they are very small and do nothing but call into a DLL, this must match virus signatures too closely and their size probably reduces the data available for the scanner to analyse.

So as I can not find any other way of achieving my goal of a cli and gui version of OpenRCT2, this changes the build to publish openrct2 as a single executable (rather than a DLL + wrapper EXE), and then duplicate the entire ~10MB exe again and flip the subsystem flag. The installer and zip size won't be affected as this extra size will be completely compressed out, but when unpacked will lead to an extra ~10MB on disc. But I think it is a fair compromise.

VirusTotal now reports all artefacts as safe, for now anyway.
2020-02-18 11:35:27 +00:00
Michał Janiszewski
1fff7f17d9 Change ninja options to less verbosity, continue on error (#10652) 2020-02-04 00:06:15 +01:00
Ted John
5dbd3c7c0c Allow tests to work with CRLF test data 2020-02-02 15:47:50 +00:00
Ted John
eab255c4bf Add Linux portable to GitHub CI (#10612) 2020-01-24 11:46:12 +00:00
Ted John
3ba8369f22 Do major clean up of Windows CI workflow (#10581)
- Move many of the post build operations in openrc2.proj to bash scripts, some of which can be shared with the macOS and Linux CIs.
- Improve performance of NSIS stage by grabbing a pre-packaged portable zip from GitHub. This typically saves the CI a minute and is more reliable.
2020-01-19 14:04:59 +00:00
Ted John
ee09ffadf7 Move Windows CI from AppVeyor to GitHub actions (#10573) 2020-01-16 13:17:17 +00:00
Ted John
a66560045f Add macOS to GitHub actions 2020-01-09 17:20:58 +00:00
Matt
5c490b408b Print clang-format version 2019-12-22 21:48:34 +01:00
Gokturk Yuksek
7bf05d4c04 Fix #10308: remove the last remnants of libsdl2-ttf references (#10321)
As per #5702, SDL2_ttf dependency is completely eliminated from
OpenRCT2. However, there are still references to it, which are
redundant and misleading. Clean up the remaining references to
libsdl2-ttf.

Closes: https://github.com/OpenRCT2/OpenRCT2/issues/10308
2019-12-02 07:41:18 +01:00
TheAssassin
0152eaa246 Build versioned AppImages (#10265) 2019-11-19 16:00:51 +01:00
Ted John
73dae03601 Update appveyor_deploy.ps1 2018-10-28 12:57:57 +00:00
Ted John
c3f4260aad Update appveyor_deploy.ps1 2018-10-28 12:32:08 +00:00
Ted John
aae2cf9250 Find correct zip file 2018-10-28 11:47:34 +00:00
Michał Janiszewski
593f9a03ea Upload zipped symbols to backtrace.io 2018-10-28 00:16:08 +02:00
Ted John
5ec03c7a4c Remove unnecessary opinion from comment 2018-10-24 23:36:14 +02:00
Michał Janiszewski
cc3beb9237 Upload symbols from AppVeyor to backtrace.io 2018-10-24 23:36:14 +02:00
Ted John
82107e5666 Merge pull request #7957 from TheAssassin/appimage
Add build scripts to create an AppImage.
2018-10-04 07:50:06 +01:00
Ted John
e46b5c752a Build AppImage for release 2018-09-29 14:11:49 +01:00
Ted John
5ff7a0a4f8 Remove code signing clutter 2018-09-08 21:29:10 +01:00
TheAssassin
0b3ddc85d6 Remove redundant CLI flags 2018-08-29 22:32:47 +02:00
TheAssassin
b189ea27b4 Switch to ninja 2018-08-29 22:23:53 +02:00
TheAssassin
4cc80613cb Remove compatibility hacks 2018-08-29 22:05:57 +02:00
Michał Janiszewski
5b85a944bb Use LD_PRELOAD only on built binaries in 32-bit jobs
This avoids trying to preload the 32-bit library into 64-bit processes.
The exception is ctest which will be tried, but it's easiest to do it this way.
2018-08-29 10:55:44 +02:00
Michał Janiszewski
50d885fc4a Use libSegFault to print stacktraces on Travis 2018-08-29 10:41:09 +02:00