Jump to content

SoK/2021/StatusReport/Mariam Fahmy: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
 
Line 18: Line 18:
==== February 2021 ====
==== February 2021 ====
* I started by writing a new backend for rpm-ostree, its aim is:
* I started by writing a new backend for rpm-ostree, its aim is:
** getting the list of deployments from the rpm-ostree DBus class and displaying them on qDebug()/terminal. <br>
** Getting the list of deployments which is equivalent to '''''rpm-ostree status''''' from the rpm-ostree DBus class and displaying them on qDebug()/terminal. <br>
** detecting the currently active deployment.<br>
** Detecting the currently active deployment.<br>
** implementing the AbstractBackendUpdater and checking if there are updates available.<br>
** Checking if there is a new deployment update by using QProcess which executes '''''rpm-ostree update --check'''''.<br>
* Writing a new rpm-ostree resource for the currently active deployments which contains its information:
** Implementing the AbstractBackendUpdater so that Discover can be notified if there is an available update.<br>
* Writing a new rpm-ostree resource for the currently active deployment which contains its information:
** Deployment name. <br>
** Deployment name. <br>
** Deployment version. <br>
** Deployment version. <br>
** Deployment BaseCommit. <br>
** Deployment BaseCommit. <br>
** Deployment LayeredPackages. <br>
** Deployment GPCSignature. <br>
** Deployment LocalPackages. <br>
** Deployment origin. <br>
* Writing a new rpm-ostree transaction which downloads the update and perform the update.
* Writing a new rpm-ostree transaction which downloads the update and perform the update, it is equivalent to '''''rpm-ostree update'''
 
''<br>
==== March 2021 ====
==== March 2021 ====
 
* Listing the remote refs of kinoite by using QProcess which executes '''''ostree remote refs kinoite'''''.<br>
=== Work in Progress ===
* Detecting the current refs by using QProcess which executes '''''ostree refs'''''.<br>
* Discover notifier to display when an update is available so the user can start updating.
* Filtering the remote refs list and detecting the most recent available refs.<br>
* List of refs.
* Adding new button in the currently active deployment resource if there is a new available refs that can be switched to.<br>
* Rebasing to a new version.
* Modifying rpm-ostree transaction to support rebasing to a new refs, it is equivalent to '''''rpm-ostree rebase <new refs>'''''


=== Contact Me: ===
=== Contact Me: ===

Latest revision as of 18:58, 7 April 2021

Plasma Discover rpm-ostree backend

Background

Plasma Discover is a KDE software center app that makes it easy to browse, install and remove apps on the Plasma desktop.
I am currently writing a new backend for Discover which supports doing system upgrades using rpm-ostree to support Fedora Kinoite upgrades which is a KDE version of Fedora Silverblue.
OSTree is a tool which manages file system trees, it uses a git like repository that records the changes to any files while package managers know how to install, uninstall and configure different packages but OSTree has no idea about the relationships between files, by adding RPM capabilities on OSTree, it becomes rpm-ostree which is a hybrid image and package system.
The idea behind that is to use a server architecture to keep the operating system installed in the client machine in sync with the latest versions.
Our goal is to perform a backend service for system upgrade using rpm-ostree for Plasma Discover.

Mentors

Aleix Pol and Timothée Ravier.

Links

Work Done

February 2021

  • I started by writing a new backend for rpm-ostree, its aim is:
    • Getting the list of deployments which is equivalent to rpm-ostree status from the rpm-ostree DBus class and displaying them on qDebug()/terminal.
    • Detecting the currently active deployment.
    • Checking if there is a new deployment update by using QProcess which executes rpm-ostree update --check.
    • Implementing the AbstractBackendUpdater so that Discover can be notified if there is an available update.
  • Writing a new rpm-ostree resource for the currently active deployment which contains its information:
    • Deployment name.
    • Deployment version.
    • Deployment BaseCommit.
    • Deployment GPCSignature.
    • Deployment origin.
  • Writing a new rpm-ostree transaction which downloads the update and perform the update, it is equivalent to rpm-ostree update


March 2021

  • Listing the remote refs of kinoite by using QProcess which executes ostree remote refs kinoite.
  • Detecting the current refs by using QProcess which executes ostree refs.
  • Filtering the remote refs list and detecting the most recent available refs.
  • Adding new button in the currently active deployment resource if there is a new available refs that can be switched to.
  • Modifying rpm-ostree transaction to support rebasing to a new refs, it is equivalent to rpm-ostree rebase <new refs>

Contact Me: