## 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.  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: 
38 lines
869 B
YAML
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
|