agama/service/.rubocop.yml
Ladislav Slezák f656ef9bcc
Use the DUD repository for installing packages (#2543)
## Problem

- The DUD repository is not used for installing packages into the target
system

## Solution

- Add the local DUD repository into the list of used repositories, use a
higher priority so the provided packages are preferred (even when they
have a lower version than in the other repositories).
- Added `inst.dud_packages.gpg=0` boot option for ignoring GPG problems
with the DUD packages (the other packages are still checked as usually).

## Notes

- Libzypp supports "plaindir" repository type, that is basically a local
directory with RPM files without any metadata. When no metadata is found
in a `dir:/` repository then libzypp automatically switches to the
"plaindir" type and scans the available RPMs there.
- That is easier to handle (no need to create metadata) and it saves
some RAMdisk space (not creating the metadata files). The most important
feature is that the "plaindir" repositories are by definition not GPG
signed so libzypp does not complain about using an unsigned repository.
- So we can remove the `createrepo_c` package from the Live medium and
do not call it.

## Other fixes or improvements

- Fixed parsing the boot options (originally using `inst.foo=x` and
`inst.foo.bar=x` together crashed the installer)
- Deleted the old DUD script (the initial PoC)
- Automatically configure network by dracut when a remote DUD is used
(no need for the explicit `rd.neednet=1` boot option)

## Testing

- Tested manually with a DUD with trivial
[hello-world](https://build.opensuse.org/package/show/home:lslezak:dud-test2/hello-world)
package
- Note: The testing package uses the `Supplements: aaa_base` dependency
to select the package to install, otherwise the package would need to be
selected to install by using CLI.

## Screenshots

The testing package is signed by an unknown GPG key, an error is
reported during installation. When using the `inst.dud_packages.gpg=0`
boot option the error is not displayed and the package is installed
without any problem.


![agama-install-unsigned-package](https://github.com/user-attachments/assets/fa52256b-4dbf-4802-9795-f78a9d3b4054)

After pressing "Continue Anyway" the package is installed into the
system and works as expected and the temporary DUD repository is not
included in the installed system:


![agama-dud-package-installed](https://github.com/user-attachments/assets/8e6bf14a-43fb-4a3a-87d0-c7f40de73023)
2025-07-14 13:51:52 +02:00

38 lines
869 B
YAML

# use the shared Yast defaults
inherit_from:
/usr/share/YaST2/data/devtools/data/rubocop-1.24.1_yast_style.yml
# vendor is not controlled by us and y2dir is often modified old yast code that
# we do not want to rewrite now
AllCops:
Exclude:
- vendor/**/*
- lib/agama/dbus/y2dir/**/*
- agama-yast.gemspec
- package/*.spec
# a D-Bus method definition may take up more line length than usual
Layout/LineLength:
IgnoredPatterns:
- dbus_method
# a D-Bus interface definition may take up more lines than a regular method
Metrics/BlockLength:
IgnoredMethods:
- dbus_interface
# assignment in method calls is used to document some params
Lint/UselessAssignment:
Enabled: false
# be less strict
Metrics/AbcSize:
Max: 32
Metrics/ParameterLists:
Max: 6
Exclude:
- lib/agama/software/repository.rb
Metrics/ClassLength:
Max: 300