From 406beb4d74117e38aeb66443ec57e5796673f44e Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:14:45 +0100 Subject: [PATCH 01/14] Add Virtual Machine view --- src/Views/VirtualMachineView.vala | 58 +++++++++++++++++++++++++++++++ src/meson.build | 1 + 2 files changed, 59 insertions(+) create mode 100644 src/Views/VirtualMachineView.vala diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala new file mode 100644 index 000000000..3fe629da4 --- /dev/null +++ b/src/Views/VirtualMachineView.vala @@ -0,0 +1,58 @@ +/*- + * Copyright 2021 elementary, Inc. (https://elementary.io) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +public class VirtualMachineView : AbstractInstallerView { + public signal void next_step (); + + construct { + var type_image = new Gtk.Image.from_icon_name ("computer", Gtk.IconSize.DIALOG) { + valign = Gtk.Align.END + }; + + var type_label = new Gtk.Label (_("Speed may be limited")) { + valign = Gtk.Align.START + }; + type_label.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); + + var primary_label = new Gtk.Label (_("We have detected that you're using a Virtual Machine. For the best experience and performance, please install %s directly on your device.").printf (Utils.get_pretty_name ())) { + hexpand = true, + max_width_chars = 1, + wrap = true, + xalign = 0 + }; + primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL); + + content_area.column_homogeneous = true; + content_area.margin_end = 12; + content_area.margin_start = 12; + content_area.valign = Gtk.Align.CENTER; + content_area.attach (type_image, 0, 0); + content_area.attach (type_label, 0, 1); + content_area.attach (primary_label, 1, 0, 1, 2); + + var next_button = new Gtk.Button.with_label (_("Accept")); + next_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); + + action_area.add (next_button); + + next_button.clicked.connect (() => { + next_step (); + }); + + show_all (); + } +} diff --git a/src/meson.build b/src/meson.build index 97e0ad460..4aeffb115 100644 --- a/src/meson.build +++ b/src/meson.build @@ -20,6 +20,7 @@ vala_files = [ 'Views/ProgressView.vala', 'Views/TryInstallView.vala', 'Views/SuccessView.vala', + 'Views/VirtualMachineView.vala', 'Widgets/DecryptMenu.vala', 'Widgets/DiskBar.vala', 'Widgets/DiskGrid.vala', From 910db59c6d2ab66cf58381282ae6527b3a76091e Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:15:13 +0100 Subject: [PATCH 02/14] Utils: add method to detect if running in Virtual Machine --- src/Utils.vala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Utils.vala b/src/Utils.vala index 8368ab2cf..57fbaa08d 100644 --- a/src/Utils.vala +++ b/src/Utils.vala @@ -273,4 +273,18 @@ namespace Utils { return hostname; } + + public static bool is_running_in_virtual_machine () { + try { + string contents; + if (FileUtils.get_contents ("/proc/cpuinfo", out contents)) { + var regex = new Regex ("flags\\s*:.*(hypervisor)"); + return regex.match (contents); + } + } catch (Error e) { + warning ("Could not detect if running in Virtual Machine: %s", e.message); + } + + return false; + } } From 780bad54b01ebd7cd3a1433f18c0ef2d2943b8bd Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:15:26 +0100 Subject: [PATCH 03/14] MainWindow: Always show Virtual Machine view in virtual environments --- src/MainWindow.vala | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 89a2d54f7..eb5765615 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -20,6 +20,7 @@ public class Installer.MainWindow : Hdy.Window { private Gtk.Stack stack; + private VirtualMachineView virtual_machine_view; private LanguageView language_view; private KeyboardLayoutView keyboard_layout_view; private TryInstallView try_install_view; @@ -53,8 +54,17 @@ public class Installer.MainWindow : Hdy.Window { margin_top = 12, transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT }; + stack.add (language_view); + if (Utils.is_running_in_virtual_machine ()) { + virtual_machine_view = new VirtualMachineView (); + stack.add (virtual_machine_view); + virtual_machine_view.next_step.connect (() => { + stack.visible_child = language_view; + }); + } + add (stack); language_view.next_step.connect (() => load_keyboard_view ()); From 5c5dafa53ef71d87d5c92b265fd6b4e73ac2a3e9 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:15:39 +0100 Subject: [PATCH 04/14] Translate VirtualMachineView --- po/POTFILES | 1 + 1 file changed, 1 insertion(+) diff --git a/po/POTFILES b/po/POTFILES index ea45bcb8f..e6f2de738 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -18,6 +18,7 @@ src/Views/PartitioningView.vala src/Views/ProgressView.vala src/Views/TryInstallView.vala src/Views/SuccessView.vala +src/Views/VirtualMachineView.vala src/Widgets/DecryptMenu.vala src/Widgets/DiskBar.vala src/Widgets/DiskGrid.vala From 9322868ca031828057cce751cc83e5c5e4fc370e Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:24:14 +0100 Subject: [PATCH 05/14] VirtualMachineView: Change icon --- src/Views/VirtualMachineView.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala index 3fe629da4..1cf1ce5c1 100644 --- a/src/Views/VirtualMachineView.vala +++ b/src/Views/VirtualMachineView.vala @@ -19,7 +19,7 @@ public class VirtualMachineView : AbstractInstallerView { public signal void next_step (); construct { - var type_image = new Gtk.Image.from_icon_name ("computer", Gtk.IconSize.DIALOG) { + var type_image = new Gtk.Image.from_icon_name ("dialog-warning", Gtk.IconSize.DIALOG) { valign = Gtk.Align.END }; From 978fa263818cd31b9ab41bc90ac7d78a4f5dd57f Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:31:22 +0100 Subject: [PATCH 06/14] VirtualMachineView: Change icon --- src/Views/VirtualMachineView.vala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala index 1cf1ce5c1..357af37f7 100644 --- a/src/Views/VirtualMachineView.vala +++ b/src/Views/VirtualMachineView.vala @@ -19,14 +19,14 @@ public class VirtualMachineView : AbstractInstallerView { public signal void next_step (); construct { - var type_image = new Gtk.Image.from_icon_name ("dialog-warning", Gtk.IconSize.DIALOG) { + var image = new Gtk.Image.from_icon_name ("dialog-warning", Gtk.IconSize.DIALOG) { valign = Gtk.Align.END }; - var type_label = new Gtk.Label (_("Speed may be limited")) { + var heading = new Gtk.Label (_("Speed may be limited")) { valign = Gtk.Align.START }; - type_label.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); + heading.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); var primary_label = new Gtk.Label (_("We have detected that you're using a Virtual Machine. For the best experience and performance, please install %s directly on your device.").printf (Utils.get_pretty_name ())) { hexpand = true, @@ -40,8 +40,8 @@ public class VirtualMachineView : AbstractInstallerView { content_area.margin_end = 12; content_area.margin_start = 12; content_area.valign = Gtk.Align.CENTER; - content_area.attach (type_image, 0, 0); - content_area.attach (type_label, 0, 1); + content_area.attach (image, 0, 0); + content_area.attach (heading, 0, 1); content_area.attach (primary_label, 1, 0, 1, 2); var next_button = new Gtk.Button.with_label (_("Accept")); From 30429af008f2bb773489d94d64467b5b3fe04ad6 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:32:26 +0100 Subject: [PATCH 07/14] VirtualMachineView: Add shutdown button --- src/Views/VirtualMachineView.vala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala index 357af37f7..ee416b724 100644 --- a/src/Views/VirtualMachineView.vala +++ b/src/Views/VirtualMachineView.vala @@ -47,7 +47,14 @@ public class VirtualMachineView : AbstractInstallerView { var next_button = new Gtk.Button.with_label (_("Accept")); next_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); + var shutdown_button = new Gtk.Button.with_label (_("Shut Down")); + shutdown_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); + shutdown_button.clicked.connect (Utils.shutdown); + action_area.add (next_button); + action_area.add (shutdown_button); + + shutdown_button.grab_focus (); next_button.clicked.connect (() => { next_step (); From 81fb45d6c2e856944a8491c9533f59e456e20ae8 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:39:27 +0100 Subject: [PATCH 08/14] Remove unnecessary whitespace --- src/MainWindow.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index eb5765615..fce035f32 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -54,7 +54,6 @@ public class Installer.MainWindow : Hdy.Window { margin_top = 12, transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT }; - stack.add (language_view); if (Utils.is_running_in_virtual_machine ()) { From 7acdb6f8372472e79c60ca83b25a7f399467a88e Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Tue, 7 Dec 2021 19:49:25 +0100 Subject: [PATCH 09/14] Redesign based on cassidyjames PR --- src/Views/VirtualMachineView.vala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala index ee416b724..2aab5ed46 100644 --- a/src/Views/VirtualMachineView.vala +++ b/src/Views/VirtualMachineView.vala @@ -19,16 +19,16 @@ public class VirtualMachineView : AbstractInstallerView { public signal void next_step (); construct { - var image = new Gtk.Image.from_icon_name ("dialog-warning", Gtk.IconSize.DIALOG) { + var image = new Gtk.Image.from_icon_name ("utilities-system-monitor", Gtk.IconSize.DIALOG) { valign = Gtk.Align.END }; - var heading = new Gtk.Label (_("Speed may be limited")) { + var heading = new Gtk.Label (_("Virtual Machine")) { valign = Gtk.Align.START }; heading.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); - var primary_label = new Gtk.Label (_("We have detected that you're using a Virtual Machine. For the best experience and performance, please install %s directly on your device.").printf (Utils.get_pretty_name ())) { + var primary_label = new Gtk.Label (_("You appear to be installing in a virtual machine. Some parts of %s may run slowly, freeze, or not function properly in a virtual machine. It's recommended to install on real hardware.").printf (Utils.get_pretty_name ())) { hexpand = true, max_width_chars = 1, wrap = true, @@ -44,15 +44,15 @@ public class VirtualMachineView : AbstractInstallerView { content_area.attach (heading, 0, 1); content_area.attach (primary_label, 1, 0, 1, 2); - var next_button = new Gtk.Button.with_label (_("Accept")); - next_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); - var shutdown_button = new Gtk.Button.with_label (_("Shut Down")); shutdown_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); shutdown_button.clicked.connect (Utils.shutdown); - action_area.add (next_button); + var next_button = new Gtk.Button.with_label (_("Ignore")); + next_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); + action_area.add (shutdown_button); + action_area.add (next_button); shutdown_button.grab_focus (); From 5d900f91f31516e731789d39f36c5c4678fac5c2 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Wed, 8 Dec 2021 19:30:49 +0100 Subject: [PATCH 10/14] Revert changes --- po/POTFILES | 1 - src/MainWindow.vala | 9 ----- src/Utils.vala | 14 ------- src/Views/VirtualMachineView.vala | 65 ------------------------------- src/meson.build | 1 - 5 files changed, 90 deletions(-) delete mode 100644 src/Views/VirtualMachineView.vala diff --git a/po/POTFILES b/po/POTFILES index e6f2de738..ea45bcb8f 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -18,7 +18,6 @@ src/Views/PartitioningView.vala src/Views/ProgressView.vala src/Views/TryInstallView.vala src/Views/SuccessView.vala -src/Views/VirtualMachineView.vala src/Widgets/DecryptMenu.vala src/Widgets/DiskBar.vala src/Widgets/DiskGrid.vala diff --git a/src/MainWindow.vala b/src/MainWindow.vala index fce035f32..89a2d54f7 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -20,7 +20,6 @@ public class Installer.MainWindow : Hdy.Window { private Gtk.Stack stack; - private VirtualMachineView virtual_machine_view; private LanguageView language_view; private KeyboardLayoutView keyboard_layout_view; private TryInstallView try_install_view; @@ -56,14 +55,6 @@ public class Installer.MainWindow : Hdy.Window { }; stack.add (language_view); - if (Utils.is_running_in_virtual_machine ()) { - virtual_machine_view = new VirtualMachineView (); - stack.add (virtual_machine_view); - virtual_machine_view.next_step.connect (() => { - stack.visible_child = language_view; - }); - } - add (stack); language_view.next_step.connect (() => load_keyboard_view ()); diff --git a/src/Utils.vala b/src/Utils.vala index 57fbaa08d..8368ab2cf 100644 --- a/src/Utils.vala +++ b/src/Utils.vala @@ -273,18 +273,4 @@ namespace Utils { return hostname; } - - public static bool is_running_in_virtual_machine () { - try { - string contents; - if (FileUtils.get_contents ("/proc/cpuinfo", out contents)) { - var regex = new Regex ("flags\\s*:.*(hypervisor)"); - return regex.match (contents); - } - } catch (Error e) { - warning ("Could not detect if running in Virtual Machine: %s", e.message); - } - - return false; - } } diff --git a/src/Views/VirtualMachineView.vala b/src/Views/VirtualMachineView.vala deleted file mode 100644 index 2aab5ed46..000000000 --- a/src/Views/VirtualMachineView.vala +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright 2021 elementary, Inc. (https://elementary.io) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -public class VirtualMachineView : AbstractInstallerView { - public signal void next_step (); - - construct { - var image = new Gtk.Image.from_icon_name ("utilities-system-monitor", Gtk.IconSize.DIALOG) { - valign = Gtk.Align.END - }; - - var heading = new Gtk.Label (_("Virtual Machine")) { - valign = Gtk.Align.START - }; - heading.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); - - var primary_label = new Gtk.Label (_("You appear to be installing in a virtual machine. Some parts of %s may run slowly, freeze, or not function properly in a virtual machine. It's recommended to install on real hardware.").printf (Utils.get_pretty_name ())) { - hexpand = true, - max_width_chars = 1, - wrap = true, - xalign = 0 - }; - primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL); - - content_area.column_homogeneous = true; - content_area.margin_end = 12; - content_area.margin_start = 12; - content_area.valign = Gtk.Align.CENTER; - content_area.attach (image, 0, 0); - content_area.attach (heading, 0, 1); - content_area.attach (primary_label, 1, 0, 1, 2); - - var shutdown_button = new Gtk.Button.with_label (_("Shut Down")); - shutdown_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); - shutdown_button.clicked.connect (Utils.shutdown); - - var next_button = new Gtk.Button.with_label (_("Ignore")); - next_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); - - action_area.add (shutdown_button); - action_area.add (next_button); - - shutdown_button.grab_focus (); - - next_button.clicked.connect (() => { - next_step (); - }); - - show_all (); - } -} diff --git a/src/meson.build b/src/meson.build index 4aeffb115..97e0ad460 100644 --- a/src/meson.build +++ b/src/meson.build @@ -20,7 +20,6 @@ vala_files = [ 'Views/ProgressView.vala', 'Views/TryInstallView.vala', 'Views/SuccessView.vala', - 'Views/VirtualMachineView.vala', 'Widgets/DecryptMenu.vala', 'Widgets/DiskBar.vala', 'Widgets/DiskGrid.vala', From 5c69be45d9b9e9452a0335707d5d4bfc2c15bb14 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Wed, 8 Dec 2021 19:56:04 +0100 Subject: [PATCH 11/14] CheckView: Check if running in a VM --- src/Views/CheckView.vala | 69 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 7 deletions(-) diff --git a/src/Views/CheckView.vala b/src/Views/CheckView.vala index b2396faeb..7519aabb5 100644 --- a/src/Views/CheckView.vala +++ b/src/Views/CheckView.vala @@ -31,7 +31,8 @@ public class Installer.CheckView : AbstractInstallerView { public signal void status_changed (bool met_requirements); bool enough_space = true; - bool enough_power = true; + bool minimum_specs = true; + bool vm = false; bool powered = true; int frequency = 0; @@ -43,6 +44,7 @@ public class Installer.CheckView : AbstractInstallerView { NONE, SPACE, SPECS, + VM, POWERED } @@ -62,7 +64,7 @@ public class Installer.CheckView : AbstractInstallerView { ignore_button = new Gtk.Button.with_label (_("Ignore")); ignore_button.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); - ignore_button.clicked.connect (() => next_step ()); + ignore_button.clicked.connect (() => show_next ()); show_all (); } @@ -73,17 +75,19 @@ public class Installer.CheckView : AbstractInstallerView { frequency = get_frequency (); if (frequency < MINIMUM_FREQUENCY && frequency > 0) { - enough_power = false; + minimum_specs = false; } memory = get_mem_info (); if (memory < MINIMUM_MEMORY) { - enough_power = false; + minimum_specs = false; } powered = !get_is_on_battery (); - bool result = enough_space && enough_power && powered; + vm = get_vm (); + + bool result = enough_space && minimum_specs && !vm && powered; if (result == false) { show_next (); } @@ -175,40 +179,76 @@ public class Installer.CheckView : AbstractInstallerView { return upower.on_battery; } + private static bool get_vm () { + File file = File.new_for_path ("/proc/cpuinfo"); + try { + DataInputStream dis = new DataInputStream (file.read ()); + string? line; + while ((line = dis.read_line (null,null)) != null) { + if (line.has_prefix ("flags") && line.contains ("hypervisor")) { + return true; + } + } + } catch (Error e) { + critical (e.message); + } + + return false; + } + private void show_next () { State next_state = State.NONE; switch (current_state) { case State.NONE: if (!enough_space) { next_state = State.SPACE; - } else if (!enough_power) { + } else if (!minimum_specs) { next_state = State.SPECS; + } else if (vm) { + next_state = State.VM; } else if (!powered) { next_state = State.POWERED; } else { + next_step (); return; } break; case State.SPACE: - if (!enough_power) { + if (!minimum_specs) { next_state = State.SPECS; + } else if (vm) { + next_state = State.VM; } else if (!powered) { next_state = State.POWERED; } else { + next_step (); return; } break; case State.SPECS: + if (vm) { + next_state = State.VM; + } else if (!powered) { + next_state = State.POWERED; + } else { + next_step (); + return; + } + + break; + case State.VM: if (!powered) { next_state = State.POWERED; } else { + next_step (); return; } break; case State.POWERED: + next_step (); return; } @@ -240,6 +280,21 @@ public class Installer.CheckView : AbstractInstallerView { stack.set_visible_child (grid); break; + case State.VM: + var grid = new CheckView ( + _("Virtual Machine"), + _("You appear to be installing in a virtual machine. Some parts of %s may run slowly, freeze, or not function properly in a virtual machine. It's recommended to install on real hardware.").printf (Utils.get_pretty_name ()), + "utilities-system-monitor" + ); + + if (ignore_button.parent == null) { + action_area.add (ignore_button); + } + + stack.add (grid); + stack.set_visible_child (grid); + break; + case State.POWERED: var grid = new CheckView ( _("Connect to a Power Source"), From 2cc97f5cf10b359ff930c6489d44cdb432d58559 Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Wed, 8 Dec 2021 20:17:20 +0100 Subject: [PATCH 12/14] CheckView: Add support for multiple conditions --- src/Views/CheckView.vala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Views/CheckView.vala b/src/Views/CheckView.vala index 7519aabb5..3e3c6e69d 100644 --- a/src/Views/CheckView.vala +++ b/src/Views/CheckView.vala @@ -343,6 +343,8 @@ public class Installer.CheckView : AbstractInstallerView { attach (image, 0, 0); attach (title_label, 0, 1); attach (description_label, 1, 0, 1, 2); + + show_all (); } } From ed306164b99df537dbb6c75fd3068be39811c05b Mon Sep 17 00:00:00 2001 From: Marius Meisenzahl Date: Wed, 8 Dec 2021 20:25:45 +0100 Subject: [PATCH 13/14] CheckView: Satisfy linter --- src/Views/CheckView.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Views/CheckView.vala b/src/Views/CheckView.vala index 3e3c6e69d..f71639119 100644 --- a/src/Views/CheckView.vala +++ b/src/Views/CheckView.vala @@ -184,7 +184,7 @@ public class Installer.CheckView : AbstractInstallerView { try { DataInputStream dis = new DataInputStream (file.read ()); string? line; - while ((line = dis.read_line (null,null)) != null) { + while ((line = dis.read_line (null, null)) != null) { if (line.has_prefix ("flags") && line.contains ("hypervisor")) { return true; } From 3b7ceafec427c8de09a35e5fb087e64f7a94261a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Wed, 8 Dec 2021 19:18:03 -0800 Subject: [PATCH 14/14] Update installer.appdata.xml.in --- data/installer.appdata.xml.in | 1 + 1 file changed, 1 insertion(+) diff --git a/data/installer.appdata.xml.in b/data/installer.appdata.xml.in index 1f6f9bb0f..f41af0322 100644 --- a/data/installer.appdata.xml.in +++ b/data/installer.appdata.xml.in @@ -13,6 +13,7 @@

Improvements:

    +
  • Warn about installing in a VM
  • Updated translations