This vala script is using stdout and stderr as variables which causes compiled C code to fail because of conflict with global variables from stdlib --- a/ssh/operation.vala +++ b/ssh/operation.vala @@ -84,12 +84,12 @@ public abstract class Operation : GLib.Object { // And off we go to run the program var subprocess = launcher.spawnv(args); - string? stdout = null, stderr = null; + string? gstdout = null, gstderr = null; try { - yield subprocess.communicate_utf8_async(input, cancellable, out stdout, out stderr); - return stdout; + yield subprocess.communicate_utf8_async(input, cancellable, out gstdout, out gstderr); + return gstdout; } catch (GLib.Error e) { - Seahorse.Util.show_error(null, this.prompt_title, stderr); + Seahorse.Util.show_error(null, this.prompt_title, gstderr); throw e; } } @@ -221,10 +221,10 @@ public class PrivateImportOperation : Operation { // Start command to generate public key string cmd = "%s -y -f '%s'".printf(Config.SSH_KEYGEN_PATH, file); - string stdout = yield operation_async(cmd, null, cancellable); + string gstdout = yield operation_async(cmd, null, cancellable); // We'll build the key string from the output - var key_str = new StringBuilder(stdout); + var key_str = new StringBuilder(gstdout); // Only use the first line of the output int pos = int.max(key_str.str.index_of_char('\n'), key_str.str.index_of_char('\r')); @@ -232,7 +232,7 @@ public class PrivateImportOperation : Operation { key_str.erase(pos); // Parse the data so we can get the fingerprint - KeyData? keydata = KeyData.parse_line(stdout); + KeyData? keydata = KeyData.parse_line(gstdout); // Add the comment to the output if (data.comment != null) {