Skip to content

Conversation

@cfconrad
Copy link
Collaborator

No description provided.

lslezak and others added 30 commits January 11, 2024 13:12
After changing the language refresh the repositories
and reload the data to get the pattern descriptions
in the new language.

The selected packages need to be restored after the
reload, the current selection is lost.
## Problem

- After changing the language the pattern descriptions are not
translated (actually they keep the previous locale setting)
- agama-project#859 

## Solution

- After changing the language refresh the repositories and reload the
data to get the pattern descriptions in the new language.
- The selected packages need to be restored after the reload, the
current selection is lost.

## Notes

The pattern groups (e.g. "Graphical Environments", "Base Technologies")
are not translated but they come from libzypp as well. But as they are
not translated also in YaST I guess there is some serious problem, maybe
there is missing translation support for that... I'll check the details
later.

## Testing

- Tested manually

## Screenshots

Switching from English to Spanish, the previously selected patterns are
kept.

The Gnome pattern description is not translated, probably missing
translation or they updated the original text and was not re-translated.
But at least the name is translated.


[patterns.webm](https://github.com/openSUSE/agama/assets/907998/e02569df-4280-40a0-bd73-f9dc2273d201)
Agama-weblate commit: 0ce591346cc32d19fa2733c19b74fb7c20700161
## Problem

See agama-project#987.

## Solution

* The encoding should be included in the locale, although at this point
we always use `UTF-8` (check `localectl list-locales`).
* I adapted the web UI to ignore the encoding (it is only interested in
the language).

## Updating the spec file

I updated the `spec` file according to the latest changes of
cargo_vendor:

```
* cargo_config is no longer created - it's part of the vendor.tar now
    * You can safely remove lines related to cargo_config from your spec file

* multiple cargotoml files can be specified and share a single vendor.tar
    * If multiple cargo.toml files are present update does not work. This is a known
      limitation of the process

* cargo_audit is now part of cargo_vendor, meaning you don't have to configure it separately
```

## Testing

* Manually tested using a branch in OBS.
Agama pushes the limits of ruby-dbus so often it is desirable to test
against a WIP checkout of that library from ../ruby-dbus

WITH_RUBY_DBUS=1 enables that
…gama-project#884)

## Problem

We have some documents

- `rust/agama-cli/doc/backend-for-testing.md`
- `doc/testing_using_container.md` (are they duplicate?)

and a script
- `service/run_tests_in_container.sh ` which is only enough for `rake
test:unit`

but they either don't do what I want (below) or require cop-pasting


## Solution

Make a script that I can use for testing the entire Agama frontend and
backend, in a container

## Testing

- Run the script
- xdg-open https://localhost:9090/agama
- click around
…roject#997)

## Problem

Network configuration provided by kernel boot line is lost

- [*bsc1210541*](https://bugzilla.suse.com/show_bug.cgi?id=1210541)


## Solution

Even NM's runtime configuration is copied to the target at the end of
installation


## Testing

- *Tested manually*
- For some reason, creating a proxy for issues fails.
- This same error has already been detected with other proxies, for
  example for the storage manager interface.
- Anticipating the creation of the proxies fixes the issue.
- Further research is needed to understand what happens at cockpit
  level.
## Problem

The cockpit proxy for the storage issues is not correctly created,
making the storage section to get stucked like "loading".

## Solution

Similar problems have already been detected with other proxies, for
example for the storage manager interface. Anticipating the creation of
the proxies fixes the issue.

Further research is needed to understand what happens at cockpit level.

## Testing

* Tested manually
- Use LUKS2 with PBKDF2 as default.
- Expose the list of available methods (LUKS2 and TPM_FDE so far) in the
  D-Bus API.
ancorgs and others added 24 commits January 18, 2024 09:40
For checking that conditional information is rendered when appropiate.
Even though that page will be reworked in a near future, keeping the
testsuite up-to-date worth more than its cost.
In spite of the InstallationPage needs to be reworked a bit more (and
possibly to include a loading internal state or similar), this commit
introduces minor code improvements that were cheaper to apply right now.

First of all, the TPM reminder is only shown if encryption was set.

Additionally, the reminder is improved to avoid it changing the width
when the user expands it. Done by relaying in CSS minmax function and
CSS container queries. Both with wide support of modern browsers.

This commit also stops centering vertically the page content because
the very same reason: having dinamic components make things moving
top / down depending on their state.

It also moves the TPM id to an enum created in the client/storage for
the encryption methods, following the same approach as network code.
It can be moved to an specific file like it is already done in
client/phase or client/status, though. Something to be defined/polished
in next iterations.

[1] https://developer.mozilla.org/es/docs/Web/CSS/minmax
[2] https://developer.mozilla.org/es/docs/Web/CSS/CSS_container_queries
## Problem

Sometimes, Agama decides to use the encryption method `TPM_FDE` which
results in the system being configured via `fde-tools` to open the
encryption devices automatically during system boot without needing to
enter the password.

That happens if the configuration parameter `encryption.tpm_luks_open`
is set AND the system supports TPM unlocking. If that the case, the
`TPM_FDE` encryption method is used without even asking the user. In any
other case, the encryption method specified at the configuration
parameter `encryption.method` is used.

That's all quite obscure, the users don't know whether TPM-based
unlocking is going to be configured. Not even if it's possible to
configure it or not.

## Solution

This pull request introduces some changes in how the whole thing is
managed.

Now if the system or the distribution being installed don't support
TPM-based decryption, the encryption method `LUKS2` is used and nothing
is shown in the UI.


![tpm_not_available](https://github.com/openSUSE/agama/assets/3638289/f53925cf-8101-4b13-a1ba-e19b6d78907d)

So no big change for the user except the fact that now LUKS2 with PBKDF2
as derivation function is the default for all distributions (it's a
pretty sensible default for distributions based on Grub2 at 2024).

But if the system and the distribution both support to configure
TPM-based opening of the LUKS devices, the user can choose between the
`TPM_FDE` and the `LUKS2` encryption methods via a checkbox shown in the
UI.


![attempt](https://github.com/openSUSE/agama/assets/3638289/ed539bbb-08f8-4761-9834-c3fa05c6b27f)

The default encryption method (and thus, the default value of the
checkbox) is configured per-product at `encryption.method`. If the value
there is `"tpm_fde"` but the system does not support such a method (eg.
there is no TPMv2 chip), Agama will use the default encryption method
(`LUKS2`) as fallback.

Additionally, to make sure the user does not overlook the need to boot
the machine directly to the new system in order to complete the setup,
the following warning has been added to the page at the end of the
installation process.


![finish-tpm-b2](https://github.com/openSUSE/agama/assets/3638289/a410242d-7680-4108-a6f7-013dca905259)

Expanded version:


![finish-tpm-a2](https://github.com/openSUSE/agama/assets/3638289/82b2d1a4-0f2b-4e39-b899-b47e96a4ea57)

Of course, if TPM encryption was not used, the hint is not there.


![finish-no-tpm2](https://github.com/openSUSE/agama/assets/3638289/de385977-08ee-4d3f-b3df-22548a45ebdf)

## Testing

- Tested manually
- New unit tests for the `InstallationFinished` page
- No tests added to the storage page, since it's going to [heavily
change](agama-project#982) soon
Adds a hint for helping to choose the right Agama live ISO from OBS.

---------

Co-authored-by: Nagu <nagukalakuntla@gmail.com>
Problem :

When editing a file system, the form shows a disabled selector for the
mount point field. Using a disabled widget does not make sense in this
case because the mount point will never be editable. The disabled widget
should be replaced by plain text.

Moreover, the selector currently uses a FormSelect component. It should
be replaced by the Select component, similar to the file system type
selector.

Solution :

- Updated the MountPointFormSelector to use Select component Instead of
the previous FormSelect component.

- The select component adds more customizability and some advanced
features as well.

- Updated the mountpoint field to show the mountpath when currentVolume
is defined and prompts the user to choose the mountpoint from the list
of volume templates in case the currentVolume is undefined.

Testing :

Tested manually

Screenshots:

Before:
![Screenshot 2024-01-09
232254](https://github.com/openSUSE/agama/assets/125825782/a68fb82c-977a-447d-a54a-f2b673eb7da1)
![Screenshot 2024-01-09
232710](https://github.com/openSUSE/agama/assets/125825782/a8960c3e-a437-4e03-946f-d8704da13a63)

After:

![image](https://github.com/openSUSE/agama/assets/125825782/21680bfa-da97-4e93-a0b2-692fcf42f71b)


![image](https://github.com/openSUSE/agama/assets/125825782/17ed2255-1ec9-4267-a0bd-6ef531059b81)

---------

Co-authored-by: David Díaz González <dgonzalez@suse.de>
## Problem

The call to the sotware service to check for the availability of a
package is mocked and always returns true, assuming the package is
always available. Of course, the availability of a package depends of
the currently selected product.

## Solution

Perform a D-Bus call to the software service in order to know if a
package is available.

Note: This change exposes a problem in our services. Asking for the
product availability should be done once the software proposal is done,
otherwise the result is not reliable at all, see
agama-project#1005. For example, the TPM
option in the storage settings could not appear until the software
service has finished, see agama-project#995.

## Testing

* Added new unit tests
* Tested manually
A few weeks ago, the [documentation output was reworked a
bit](agama-project#976) to be ready for a near
future in which all the project documentation could be "managed" by a
static site generator. These adjustments implied a few changes that were
not reflected in the README file.
Agama-weblate commit: 7b86d706bb59780a933ea1f4a755f127602ea2a1
Agama-weblate commit: 7b86d706bb59780a933ea1f4a755f127602ea2a1
Updating the web translation files from the agama-weblate repository
Updating the service translation files from the agama-weblate repository
## Problem

Agama does not support VLAN configuration.

## Solution

Add support for VLAN configuration


## Testing

- *Tested manually*
## Problem

Bridge interface wasn't implemented 

## Solution

* Implement bridge interface type with the subset of configuration
parameters needed for wicked migration (see
#66).

## Testing

- *Tested manually*
@cfconrad cfconrad requested a review from jcronenberg January 25, 2024 10:10
@jcronenberg jcronenberg merged commit f59fd8d into jcronenberg:wicked-nm-migration Jan 25, 2024
@cfconrad cfconrad deleted the pr_merge_upstream_master branch January 25, 2024 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.