Port Mesa wrapper script from Autopatcher, patch openssl (#52)

* Add logic to patch `libcrypto`/`libssl` if `PATCHOPENSSL` is set

* Convert `File.Move` to `File.Copy`, add log for patching OpenSSL
pull/55/head
Noah Snelson 3 years ago committed by GitHub
parent 84bf3bb637
commit 5d8b7d9b3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -70,6 +70,10 @@ internal static class MainClass
log.Info("On AppImage configuration.");
#endif
#if PATCHOPENSSL
log.Info("On configuration for patching OpenSSL 1.0.0.");
#endif
try
{
Application gtkLauncher = new Application(Eto.Platforms.Gtk);

@ -481,7 +481,28 @@ public static class Profile
log.Info("Linux specific formatting finished.");
#if NOAPPIMAGE
// TODO: figure out a way to use patchelf to have users not rely on deprecated insecure ssl deps.
#if PATCHOPENSSL
log.Info("Patching openssl 1.0.0...");
Process patchLibcryptoProcess = new Process();
ProcessStartInfo patchLibcryptoStartInfo = new ProcessStartInfo {
UseShellExecute = false,
WorkingDirectory = tempPath,
FileName = "patchelf",
Arguments = $"\"{tempPath}/{exe}\" --replace-needed \"libcrypto.so.1.0.0\" \"libcurl.so\" --replace-needed \"libssl.so.1.0.0\" \"libcurl.so\""
};
patchLibcryptoProcess.StartInfo = patchLibcryptoStartInfo;
patchLibcryptoProcess.Start();
patchLibcryptoProcess.WaitForExit();
log.Info("Patched openssl.");
#endif
File.Move($"{tempPath}/{exe}", $"{tempPath}/.runner-unwrapped");
File.Copy($"{Core.PatchDataPath}/data/mesa-wrapper.sh", $"{tempPath}/runner");
#else
// Copy AppImage template to here
HelperMethods.DirectoryCopy($"{Core.PatchDataPath}/data/AM2R.AppDir", $"{tempPath}/AM2R.AppDir/");

Loading…
Cancel
Save