Skip to content
Commits on Source (102)
41.0 - 17 Sep, 2021
===================
Changes since 41.rc
- Added/updated/fixed translations:
- Croatian
- Danish
- Dutch
- Hungarian
- Polish
- Russian
- Spanish
- Swedish
All contributors to this release:
Alan Mortensen <alanmortensen.am@gmail.com>
Anders Jonsson <anders.jonsson@norsjovallen.se>
Balázs Úr <balazs@urbalazs.hu>
Felipe Borges <felipeborges@gnome.org>
Goran Vidović <trebelnik2@gmail.com>
Konstantin Nezhbert <zhbert@yandex.ru>
Nathan Follens <nfollens@gnome.org>
Piotr Drąg <piotrdrag@gmail.com>
Rodrigo Lledó <rodhos92@gmail.com>
41.rc - 03 Sep, 2021
======================
Changes since 41.alpha
- Make Boxes use Vnc when SPICE is not available
- transfer-popover: Encapsulate widget setup internally
- Added/updated/fixed translations:
- Basque
- Catalan
- Chinese (China)
- Czech
- Finnish
- French
- Friulian
- Galician
- German
- Indonesian
- Kazakh
- Korean
- Lithuanian
- Occitan
- Persian
- Slovenian
- Swedish
- Turkish
All contributors to this release:
Asier Sarasua Garmendia <asiersarasua@ni.eus>
Aurimas Černius <aurisc4@gmail.com>
Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Burhan KELEŞ <klsburhan@hotmail.com>
Claude Paroz <claude@2xlibre.net>
Danial Behzadi <dani.behzi@ubuntu.com>
Fabio Tomat <f.t.public@gmail.com>
Felipe Borges <felipeborges@gnome.org>
Fran Dieguez <frandieguez@gnome.org>
Jiri Grönroos <jiri.gronroos@iki.fi>
Jordi Mas <jmas@softcatala.org>
Kukuh Syafaat <kukuhsyafaat@gnome.org>
Luna Jernberg <droidbittin@gmail.com>
Marek Černocký <marek@manet.cz>
Matej Urbančič <mateju@src.gnome.org>
Philipp Kiemle <philipp.kiemle@gmail.com>
Quentin PAGÈS <pages_quentin@hotmail.com>
Seong-ho Cho <shcho@gnome.org>
Tao Liu <lyuutau@outlook.com>
41.alpha - 09 Jul, 2021
=======================
Changes since 40.3
- Provide source for svg icons
- Fix run-in-bg VMs for non-Flatpak builds
- Replace uses of "open-menu-symbolic" with view-more-symbolic in docs
- Update recommended downloads to latest releases
- Update the empty-state title and description text
- Remove remaining UI references to remote capabilities
- Override "--help" command line argument
- Introduce script to auto-generate release notes
- Display downloadable entries' URL in tooltip
- Display image filepath in Discovered Sources tooltip
- Add AlmaLinux logo
- Add audio playback support for VNC connections
- Fix wrong margin to scrollable area in troubleshooting logs dialog
- Added/updated/fixed translations:
- Brazilian Portuguese
- Chinese (China)
- Chinese (Taiwan)
- Dutch
- French
- Friulian
- German
- Greek
- Hebrew
- Indonesian
- Italian
- Nepali
- Norwegian Bokmål
- Occitan
- Persian
- Polish
- Portuguese
- Romanian
- Russian
- Spanish
- Ukrainian
All contributors to this release:
Alexey Rubtsov <rushills@gmail.com>
Andika Triwidada <atriwidada@gnome.org>
Andre Klapper <a9016009@gmx.de>
Boyuan Yang <073plan@gmail.com>
Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Danial Behzadi <dani.behzi@ubuntu.com>
Daniel Mustieles <daniel.mustieles@gmail.com>
Efstathios Iosifidis <eiosifidis@gnome.org>
Fabio Tomat <f.t.public@gmail.com>
Federico Bruni <fede@inventati.org>
Felipe Borges <felipeborges@gnome.org>
Florentina Mușat <florentina.musat.28@gmail.com>
Guillaume Bernard <associations@guillaume-bernard.fr>
Hugo Carvalho <hugokarvalho@hotmail.com>
Jakub Steiner <jimmac@gmail.com>
Kjartan Maraas <kmaraas@gnome.org>
Nathan Follens <nfollens@gnome.org>
Olivier Lemasle <o.lemasle@gmail.com>
Pawan Chitrakar <chautari@gmail.com>
Piotr Drąg <piotrdrag@gmail.com>
Quentin PAGÈS <pages_quentin@hotmail.com>
Rafael Fontenelle <rafaelff@gnome.org>
Tim Sabsch <tim@sabsch.com>
Yaron Shahrabani <sh.yaron@gmail.com>
Yuri Chornoivan <yurchor@ukr.net>
40.3 - Jul 09, 2021
===================
......
This diff is collapsed.
#!/usr/bin/python3
import gi, sys, os
gi.require_version ('Ggit', '1.0')
from gi.repository import Gio, Ggit
class ReleaseMaker:
__changes_list = []
__translations_list = []
__contributors_list = []
def __init__ (self, repo_path):
Ggit.init ()
repo_file = Gio.File.new_for_path (repo_path)
self.repo = Ggit.Repository.open (repo_file)
rev_walker = Ggit.RevisionWalker.new (self.repo)
rev_walker.set_sort_mode ((Ggit.SortMode.TIME |
Ggit.SortMode.TOPOLOGICAL))
head = Ggit.Repository.get_head (self.repo)
oid = Ggit.Ref.get_target (head)
rev_walker.push (oid)
while (oid := rev_walker.next ()) is not None:
commit = self.repo.lookup (oid, Ggit.Commit)
message = commit.get_message ()
if message.startswith ("Post-release version bump"):
break;
message_summary = message.partition ("\n")[0]
if not self.__is_translation_commit (message_summary):
self.__changes_list.append (message_summary)
else:
translation_summary = message_summary.split ()
translation_name = " ".join (translation_summary[1:-1])
if translation_name not in self.__translations_list:
self.__translations_list.append (translation_name)
signature = commit.get_author ()
author_signature = ("%s <%s>" % (signature.get_name (),
signature.get_email ()))
if author_signature not in self.__contributors_list:
self.__contributors_list.append (author_signature)
@staticmethod
def __is_translation_commit (message):
return (message.startswith ("Update ") and
message.endswith ("translation"))
def get_last_tag (self):
return self.repo.list_tags ()[0]
def get_changes_list (self):
return self.__changes_list
def get_translations_list (self, sort = True):
if sort:
return sorted (self.__translations_list)
return self.__translations_list
def get_contributors_list (self, sort = True):
if sort:
return sorted (self.__contributors_list)
return self.__contributors_list
if __name__ == "__main__":
if len (sys.argv) != 2:
print ("Usage ./release-notes.py REPOSITORY_PATH")
sys.exit (0)
repo_path = sys.argv[1]
if not os.path.exists (repo_path):
print ("Invalid repository path '%s'" % repo_path)
sys.exit (0)
release_maker = ReleaseMaker (repo_path)
print ("Changes since %s\n" % release_maker.get_last_tag ())
for change_summary in release_maker.get_changes_list ():
print (" - %s" % change_summary)
print (" - Added/updated/fixed translations:")
for translation_name in release_maker.get_translations_list ():
print (" - %s"% translation_name)
print ("\nAll contributors to this release:\n")
for author_signature in release_maker.get_contributors_list ():
print (author_signature)
......@@ -4,8 +4,6 @@
<file>gtk-style.css</file>
<file preprocess="xml-stripblanks">ui/menus.ui</file>
<file preprocess="xml-stripblanks">recommended-downloads.xml</file>
<file>icons/boxes-arrow.svg</file>
<file>icons/boxes-create.png</file>
<file>icons/empty-boxes.png</file>
<file>icons/eye-not-looking-symbolic.svg</file>
<file>icons/eye-open-negative-filled-symbolic.svg</file>
......@@ -42,16 +40,10 @@
<file preprocess="xml-stripblanks">ui/troubleshoot-log.ui</file>
<file preprocess="xml-stripblanks">ui/troubleshoot-view.ui</file>
<file preprocess="xml-stripblanks">ui/unattended-setup-box.ui</file>
<file preprocess="xml-stripblanks">ui/wizard.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-downloads-page.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-downloadable-entry.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-media-entry.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-scrolled.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-source.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-summary.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-toolbar.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-web-view.ui</file>
<file preprocess="xml-stripblanks">ui/wizard-window.ui</file>
<!-- VM Creation Assistant -->
<file preprocess="xml-stripblanks">ui/assistant/installation-summary.ui</file>
<file preprocess="xml-stripblanks">ui/assistant/downloadable-entry.ui</file>
<file preprocess="xml-stripblanks">ui/assistant/media-entry.ui</file>
<file preprocess="xml-stripblanks">ui/assistant/vm-assistant.ui</file>
<file preprocess="xml-stripblanks">ui/assistant/rhel-download-dialog.ui</file>
<file preprocess="xml-stripblanks">ui/assistant/pages/identify-os-page.ui</file>
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="7px" height="30px">
<path style="stroke:none;fill:#3465a4" d="m 0 0 l 7 15 l -7 15 z"/>
</svg>
This diff is collapsed.
This diff is collapsed.
......@@ -38,8 +38,12 @@
</screenshot>
</screenshots>
<releases>
<release version="40.3" date="2021-07-09">
<p>GNOME Boxes 40.3 culminates six months of feature development, bugfixes, and performance improvements.</p>
<release version="41.0" date="2021-09-17">
<p>GNOME Boxes 41.0 culminates six months of feature development, bugfixes, and performance improvements.</p>
</release>
<release version="40.0" date="2021-03-19">
<p>GNOME Boxes 40.0 culminates six months of feature development, bugfixes, and performance improvements.</p>
</release>
</releases>
<kudos>
......
<libosinfo version="0.0.1">
<!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
<os id="http://almalinux.org/almalinux/8">
<logo>https://gitlab.gnome.org/GNOME/gnome-boxes-logos/-/blob/master/logos/almalinux.svg</logo>
</os>
</libosinfo>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardDownloadableEntry" parent="GtkListBoxRow">
<template class="BoxesAssistantDownloadableEntry" parent="GtkListBoxRow">
<property name="visible">True</property>
<child>
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardSummary" parent="GtkGrid">
<template class="BoxesInstallationSummary" parent="GtkGrid">
<property name="visible">True</property>
<property name="row-spacing">10</property>
<property name="column-spacing">20</property>
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardMediaEntry" parent="GtkListBoxRow">
<template class="BoxesAssistantMediaEntry" parent="GtkListBoxRow">
<style>
<class name="entry-row"/>
</style>
......
......@@ -87,7 +87,7 @@ Check your BIOS settings to enable them.</property>
<object class="GtkStack" id="customization_stack">
<property name="visible">True</property>
<child>
<object class="BoxesWizardSummary" id="summary"/>
<object class="BoxesInstallationSummary" id="summary"/>
</child>
<child>
<object class="GtkGrid" id="customization_grid">
......
......@@ -47,8 +47,8 @@
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="icon-name">empty-boxes</property>
<property name="title" translatable="yes">State of the Art Virtualization</property>
<property name="description" translatable="yes">Boxes can be virtual or remote machines. Just hit the &lt;b&gt;+&lt;/b&gt; button to create your first one.</property>
<property name="title" translatable="yes">Welcome to Boxes</property>
<property name="description" translatable="yes">Use the &lt;b&gt;+&lt;/b&gt; button to create your first virtual machine.</property>
</object>
</child>
</object>
......
......@@ -42,14 +42,6 @@
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">&lt;Ctrl&gt;&lt;Shift&gt;N</property>
<property name="title" translatable="yes" context="shortcut window">Connect to a remote machine</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
......
......@@ -7,15 +7,12 @@
<property name="no-show-all">True</property>
<property name="min-content-width">640</property>
<property name="min-content-height">480</property>
<property name="margin-top">10</property>
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-bottom">10</property>
<child>
<object class="GtkTextView" id="view">
<property name="visible">True</property>
<property name="editable">False</property>
<property name="margin">10</property>
</object>
</child>
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardDownloadsPage" parent="GtkStack">
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="border-width">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<child>
<object class="GtkListBox" id="recommended_listbox">
<property name="visible">True</property>
<property name="vexpand">True</property>
<property name="selection-mode">none</property>
<signal name="row-activated" handler="on_listbox_row_activated"/>
</object>
</child>
<child>
<object class="GtkButton" id="show_more_button">
<property name="visible">True</property>
<property name="label" translatable="yes">Show more…</property>
<signal name="clicked" handler="on_show_more_button_clicked"/>
</object>
</child>
</object>
<packing>
<property name="name">recommended</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="expand">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="border-width">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<child>
<object class="GtkListBox" id="listbox">
<property name="visible">True</property>
<property name="selection-mode">none</property>
<signal name="row-activated" handler="on_listbox_row_activated"/>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">search-results</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="opacity">0.5</property>
<property name="spacing">10</property>
<property name="valign">center</property>
<style>
<class name="dim-label"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="resource">/org/gnome/Boxes/icons/empty-boxes.png</property>
<property name="pixel-size">128</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="margin">18</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">No operating systems found</property>
<attributes>
<attribute name="scale" value="2"/>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Try a different search</property>
</object>
</child>
</object>
<packing>
<property name="name">no-results</property>
</packing>
</child>
</template>
</interface>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardScrolled" parent="GtkScrolledWindow">
<property name="visible">True</property>
<property name="hscrollbar-policy">never</property>
<property name="vscrollbar-policy">automatic</property>
<property name="no-show-all">True</property>
<style>
<class name="boxes-menu-scrolled"/>
</style>
<child>
<object class="GtkListBox" id="vbox">
<property name="visible">True</property>
<property name="selection-mode">none</property>
</object>
</child>
</template>
</interface>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.9 -->
<template class="BoxesWizardSource" parent="GtkStack">
<property name="visible">True</property>
<property name="transition-type">slide-left-right</property>
<property name="transition-duration">400</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<!-- main page -->
<child>
<object class="GtkBox" id="main_vbox">
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">0</property>
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">30</property>
<property name="margin-bottom">30</property>
<style>
<class name="boxes-menu"/>
</style>
<child>
<object class="GtkLabel" id="instruction_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Insert operating system installation media or select a source below</property>
<property name="wrap">True</property>
<property name="halign">start</property>
<property name="margin-bottom">30</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<object class="BoxesWizardScrolled" id="media_scrolled">
<property name="visible">True</property>
</object>
</child>
<child>
<object class="BoxesWizardScrolled" id="downloads_scrolled">
<property name="visible">False</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="margin-top">20</property>
<child>
<object class="GtkButton" id="download_an_os_button">
<property name="visible">True</property>
<signal name="clicked" handler="on_download_an_os_button_clicked"/>
<style>
<class name="boxes-menu-row"/>
</style>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">20</property>
<property name="orientation">horizontal</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="halign">start</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Download an OS</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Operating system will be downloaded and installed in a virtual machine.</property>
<property name="xalign">0</property>
<property name="wrap">True</property>
<property name="max-width-chars">50</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="select_file_button">
<property name="visible">True</property>
<signal name="clicked" handler="on_select_file_button_clicked"/>
<style>
<class name="boxes-menu-row"/>
</style>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">20</property>
<property name="orientation">horizontal</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="halign">start</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">Select a file</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Select a bootable image file to install in a virtual machine.</property>
<property name="xalign">0</property>
<property name="wrap">True</property>
<property name="max-width-chars">50</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="trademark_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Any trademarks shown above are used merely for identification of software products you have already obtained and are the property of their respective owners.</property>
<property name="wrap">True</property>
<property name="max-width-chars">50</property>
<property name="margin-top">20</property>
<style>
<class name="boxes-logo-notice-label"/>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="name">main-page</property>
</packing>
</child>
<!-- RHEL web view page -->
<child>
<object class="BoxesWizardWebView" id="rhel_web_view">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="visible">True</property>
</object>
<packing>
<property name="name">rhel-web-view-page</property>
</packing>
</child>
<!-- URL page -->
<child>
<object class="GtkBox" id="url_menubox">
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">0</property>
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">30</property>
<property name="margin-bottom">15</property>
<child>
<object class="GtkBox" id="url_entry_vbox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">20</property>
<child>
<object class="GtkLabel" id="url_description_label">
<property name="visible">True</property>
<property name="margin-top">24</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="wrap">True</property>
<property name="max-width-chars">64</property>
<property name="halign">start</property>
<property name="xalign">0.0</property>
<property name="label" translatable="yes">Enter an address to connect to. Addresses can begin with spice://, rdp://, ssh://, or vnc://.</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="url_entry">
<property name="visible">True</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="margin-bottom">24</property>
<signal name="activate" handler="on_url_entry_activated"/>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">url-page</property>
</packing>
</child>
</template>
</interface>