How to develop new features for qubes-manager?

151 views
Skip to first unread message

Jeremias E.

unread,
Jan 15, 2016, 12:50:31 PM1/15/16
to qubes-devel
Hello,

I would like to help to implement "VM Description" feature for the qubes-manager in Qubes 4.0.
My problem is, I have no idea where to start, how to execute the qubes manager in a development environment
and which repositories are required for the qubes-manager?

Best regards
  J. Eppler

Marek Marczykowski-Górecki

unread,
Jan 15, 2016, 8:10:37 PM1/15/16
to Jeremias E., qubes-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Fri, Jan 15, 2016 at 09:50:31AM -0800, Jeremias E. wrote:
> Hello,
>
> I would like to help to implement "VM Description"
> <https://github.com/QubesOS/qubes-issues/issues/899> feature for the
> qubes-manager in Qubes 4.0.
> My problem is, I have no idea where to start, how to execute the qubes
> manager in a development environment
> and which repositories are required for the qubes-manager?

Generally take a look here:
https://www.qubes-os.org/doc/development-workflow/

the first step would be setting up qubes-builder (link at the beginning
of above page). You will be able to build individual components then
(for example: "make manager" for Qubes Manager). It will print the path
of the built package, which you can copy to your test environment and
install there.

In case of Qubes Manager, it probably can be the same machine - in the
worst case you'll have broken Qubes Manager, but still working qvm-*
tools. But in case of more crucial components (like core-admin repo), it
is better to have a separate test system. Or at least have a backup
handy. In section "Copying Code to dom0" of that page you have scripts,
which handle that (you'll probably need to adjust VM names and paths
there).

Regarding "VM description", you'll probably need two packages to patch:
1. core-admin (core-modules/000QubesVM.py) - a backend side, to have
that field stored with VM data
2. manager - interface to display and modify it

The backend (core-admin) part would be trivial in R4.0 and change made
in R3.1 code base would not be portable to the new code. But change
in Qubes Manager probably can be trivially migrated to R4.0, even when
made on top of R3.1 code (there is no Qubes Manager for R4.0 yet).
So, I suggest starting with Qubes Manager (for now using some
placeholder, or simply assuming that vm.description property does
exists), then going to the backend part. And actually, having Qubes
Manager part done, I can handle the backend part, which would be really
one-liner change (knowing that code...).

- --
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJWmZiEAAoJENuP0xzK19cskacH/15rqfHnvtAOwJhbJLEcF87n
tMGsdH2pnaLzO7SxHuCKjMPiL5xU6uMB+pP7epCJp17gnn7qTv19/7lKHyG7xIMZ
YlnpJsJRwtfS94vV1vuygK/mrAYC264eSo06SpDXQa9zWBytgEd7xr+V/6/DrhDY
2r3E8+iOlfouH8oMkOUrw9/QLvMfoErAobdIiMM9f2cFVhG4DMnvUmHx0biqeCnJ
vDHZc7vXVwDMguSk4wsjYpLvZ7Gg6zYzK1y0AzZKl87CyWXDxJUWFAKu0ZkISblG
Yn2vk4LXHMecR8xL+9d0bUph7jqcfjOyKnCX55LmAsObg8Aeo3DT3gnBiFr8GPg=
=mzdC
-----END PGP SIGNATURE-----

Jeremias E.

unread,
Feb 24, 2016, 2:27:34 AM2/24/16
to qubes-devel, j.ep...@openmailbox.org
Hello,

I was setting up a separate test-development system.

I created a quick GUI-prototype have a look at the attached files and please give me your feedback.
Feedback from everybody is welcome.

@Marek, I would like to know which tools you are using to develop new features.
Do you use Qt Creator for the GUI?
What IDE/tool do you use for the programming?

Do you have a coding guideline for qubes developer?

Best regards
  J. Eppler


qubes-manager-window-description-box.pdf
qubes-manager-window-description-dialog.pdf

Marek Marczykowski-Górecki

unread,
Feb 24, 2016, 12:23:50 PM2/24/16
to Jeremias E., qubes-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Tue, Feb 23, 2016 at 11:27:33PM -0800, Jeremias E. wrote:
> Hello,
>
> I was setting up a separate test-development system.
>
> I created a quick GUI-prototype have a look at the attached files and
> please give me your feedback.
> Feedback from everybody is welcome.

When that field on main window will be visible? Every time when some VM
is selected? Only when some description is set? I think that would make
selecting VMs below hard...

New tab in VM settings is ok.

Brennan, any opinion? I remember you worked on some major overhaul of
Qubes Manager interface, am I right?

> @Marek, I would like to know which tools you are using to develop new
> features.
> Do you use Qt Creator for the GUI?

Qt designer.

> What IDE/tool do you use for the programming?

Mostly vim... But also PyCharm for some python code.

> Do you have a coding guideline for qubes developer?

Take a look here:
https://www.qubes-os.org/doc/coding-style/

- --
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJWzecJAAoJENuP0xzK19cspg4IAJg3/XMTgXitLpo94j3zIvH8
hsKCNaUT5rQXTB54VIvj+Ng2OGrJkpWdkzjh9hQ0Clr0DHfdo2UUHQrSfd7cXsJe
coeG8WlTjamfy5lEPboEfdIVa5C8DWApK7O5Af+7wYwvjklPGxL3KLX3tLmxDgJb
z6NgNSFCs/Vs9276X0nhV6WyGB69x32HB4crZxaQKmSkMTtCYPF8iolUPQgDXh50
TzcZdSmm8hxuoBgy6rR36rE7/r3306Fda06yKib93vCt3OeeEg54zfCsWHJ9DEkX
3T2vPppjqgfHn3ncNCbOlkLPgDYOZAm+/uswOMBuH/v7GhDJgHHkLW+GzvgwTeA=
=3HWa
-----END PGP SIGNATURE-----

Jeremias E.

unread,
Feb 24, 2016, 1:39:57 PM2/24/16
to qubes-devel, j.ep...@openmailbox.org
Hello,

When that field on main window will be visible? Every time when some VM
is selected? Only when some description is set? I think that would make
selecting VMs below hard...

Everytime you press the arrow (>) at the left, than it slides down. You have to press the arrow (V) again to slide it up. 
The user will have the possibility of opening up more than one description and have full control.
What are your suggestions or ideas?

Best regards
  J. Eppler
Reply all
Reply to author
Forward
0 new messages