Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphical interface to manage testing repository updates #4550

Closed
strugee opened this issue Nov 27, 2018 · 8 comments · Fixed by QubesOS/qubes-manager#172
Closed

Graphical interface to manage testing repository updates #4550

strugee opened this issue Nov 27, 2018 · 8 comments · Fixed by QubesOS/qubes-manager#172
Labels
C: manager/widget r4.1-dom0-cur-test release notes This issue should be mentioned in the release notes. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. ux User experience
Milestone

Comments

@strugee
Copy link
Contributor

strugee commented Nov 27, 2018

Qubes OS version:

R4.0

Affected component(s):

Qubes Global Settings


Steps to reproduce the behavior:

Look for a way in Qubes Global Settings to enable the testing repositories.

Expected behavior:

There are checkboxes for them.

Actual behavior:

There's only a checkbox for overall dom0 updates.

General notes:

Overall I'm thinking about something that looks vaguely like https://help.ubuntu.com/community/Repositories/Ubuntu#Updates_Tab. I'm interested in contributing patches for this but I wanted to file an issue first to double-check that it'd be accepted.


Related issues:

@marmarek
Copy link
Member

Good idea. I'd look for a tool for Fedora (or other dnf/yum based distro) first. If that exists, the task would be simple - just include it.
Official Fedora documentation mention only command line tools: https://docs.fedoraproject.org/en-US/fedora/f29/system-administrators-guide/package-management/DNF/#sec-Managing_DNF_Repositories

@strugee
Copy link
Contributor Author

strugee commented Nov 27, 2018

I looked last night and didn't find anything new. That Ubuntu tool is only for APT, and the only other package I can think of for Fedora is GNOME Software. I wanted to see if it even includes this functionality but rejected it before I even installed it because it pulls in all sorts of wacky stuff - WebKit, ModemManager, Flatpak, ostree... the list goes on. I don't think we want all that stuff in dom0.

@strugee
Copy link
Contributor Author

strugee commented Nov 27, 2018

Actually, I looked again and found two interfaces we could use - yumex-dnf and dnfdragora. But neither seem optimal because the repository management stuff is integrated in a larger graphical interface. And the package management stuff, at least for installs, won't work because it's dom0.

Here are screenshots of both.

screenshot_2018-11-27_14-51-34
screenshot_2018-11-27_14-55-35

@marmarek
Copy link
Member

https://github.com/timlau/yumex-dnf seems to be dead. As for dnfdragora, it should be possible to either request a feature upstream (and probably implement it...) to open just that dialog, or create a wrapper script to do it.
But on the other hand, this dialog looks pretty simple, so it may be less work to just create it from scratch. As for actual repository configuration, I'd look at dnf API documentation and config_manager dnf plugin code (/usr/lib/python3.6/site-packages/dnf-plugins/config_manager.py).

This all will work if the application will run in dom0. But for separate GUI VM case, it will need some different handling (probably qrexec services for listing, enabling and disabling repositories). Yet another reason for creating separate application instead of using dnfdragora.

@andrewdavidwong andrewdavidwong added T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. C: manager/widget ux User experience labels Nov 28, 2018
@andrewdavidwong andrewdavidwong added this to the Release 4.1 milestone Nov 28, 2018
@strugee
Copy link
Contributor Author

strugee commented Nov 30, 2018

@marmarek I'll start working on some qrexec services to start with, so we don't have to rewrite this later.

@strugee
Copy link
Contributor Author

strugee commented Dec 1, 2018

So, I started tinkering with qrexec (which I've never used before) but I can't figure out a good way to test a dom0 to dom0 call. qrexec-client -d dom0 admin.repos.List just says:

ERROR: when target domain is 'dom0', -c must be specified

and then prints usage. Any idea on how to get around this? Or am I going about it wrong?

@marmarek
Copy link
Member

marmarek commented Dec 1, 2018

Since nowhere else dom0 calls to dom0 right now (besides Admin API, but in that case it talks to qubesd over local socket, not generic qrexec), the qrexec-client tool doesn't support it right now.
The syntax you used is the right one, the tool lack handling it.

For now you can call /etc/qubes-rpc/... scripts directly, it is what the tool would do.

strugee added a commit to strugee/qubes-core-admin that referenced this issue Dec 9, 2018
strugee added a commit to strugee/qubes-core-admin-linux that referenced this issue Dec 9, 2018
strugee added a commit to strugee/qubes-core-admin-linux that referenced this issue Dec 9, 2018
strugee added a commit to strugee/qubes-manager that referenced this issue Apr 8, 2019
strugee added a commit to strugee/qubes-manager that referenced this issue Apr 8, 2019
strugee added a commit to strugee/qubes-manager that referenced this issue Apr 8, 2019
strugee added a commit to strugee/qubes-core-admin-linux that referenced this issue Apr 8, 2019
strugee added a commit to strugee/qubes-core-admin-linux that referenced this issue Apr 8, 2019
marmarek added a commit to marmarek/qubes-core-admin-linux that referenced this issue Aug 28, 2019
Since we have new enough dnf version, native write_raw_configfile() can
be used, instead of external iniparse module.

QubesOS/qubes-issues#4550
marmarek added a commit to marmarek/qubes-manager that referenced this issue Aug 28, 2019
* origin/pr/172:
  Say which repository caused the error in warnings
  Only make qrexec calls when necessary
  Squash more PyLint warnings
  Decode stderr in repo qrexec calls
  Fix error handling
  Fix `self` being undefined when showing warnings
  Only apply repo preferences when "OK" is clicked
  Don't use asserts for error handling
  Check that repo management succeeded
  Remove unnecessary assert
  Squash some PyLint warnings
  Add UI for managing Qubes update repositories
  Fix typo

Fixes QubesOS/qubes-issues#4550
@qubesos-bot
Copy link

Automated announcement from builder-github

The package qubes-manager-4.1.0-1.fc29 has been pushed to the r4.1 testing repository for dom0.
To test this update, please install it with the following command:

sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing

Changes included in this update

@marmarek marmarek added the release notes This issue should be mentioned in the release notes. label Jul 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: manager/widget r4.1-dom0-cur-test release notes This issue should be mentioned in the release notes. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. ux User experience
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants