[yast-commit] Build failed in Jenkins: yast-yast-registration-master #96
![](https://seccdn.libravatar.org/avatar/a8f23670c313bcfe6a972088c009d1ba.jpg?s=120&d=mm&r=g)
See <https://ci.opensuse.org/job/yast-yast-registration-master/96/display/redirect?page=changes> Changes: [github] Master bsc 1177292 merge (#512) ------------------------------------------ [...truncated 84.18 KB...] [ 33s] selects remote addons matching the product resolvables [ 33s] reports an error when the matching remote addon is not found [ 33s] .installed_products [ 33s] returns installed products [ 33s] .find_base_product [ 33s] in installed system [ 33s] returns installed products [ 33s] at installation [ 33s] returns the selected product if a product is selected [ 33s] returns the product from the installation medium if no product is selected [ 33s] ignores a selected product not marked by the `system-installation()` provides [ 33s] on the online installation medium [ 33s] reads the base product from control.xml [ 33s] .remove_service [ 33s] removes the service and saves the repository configuration [ 33s] raises an exception when saving failes after service removal [ 33s] .service_installed? [ 33s] returns true if the service is installed [ 33s] returns false if the service is not installed [ 33s] .set_repos_state [ 33s] sets the repository state and stores the original state [ 33s] .update_product_renames [ 33s] forwards the product renames to the AddOnProduct module [ 33s] .check_repositories [ 33s] refreshes all repositories with autorefresh enabled [ 33s] returns true if all repositores refresh [ 33s] a repository refresh fails [ 33s] asks the user when a repository refresh fails [ 33s] returns false if user select aborting the migration [ 33s] disables the failed repo if user selects skipping it [ 33s] returns true if user selects skipping the failed repo [ 33s] remembers to re-enable the failed repo after migration [ 33s] .remote_product [ 33s] converts a Hash into OpenStruct [ 33s] includes the version release [ 33s] does not includes the version release if 'version_release' parameter is false [ 33s] .version_without_release [ 33s] product can be found in libzypp stack [ 33s] returns version number without release [ 33s] product cannot be found in libzypp stack [ 33s] returns original version number at least [ 33s] [ 33s] Registration::UI::AddonSelectionRegistrationDialog [ 33s] #initialize [ 33s] sets the development filter to the previous state [ 33s] .run [ 33s] returns response from addon selection according to pressed button [ 33s] returns `:skip` if no addon is selected and user click next [ 33s] returns `:next` if some addons are selected and user click next [ 33s] works in textmode [ 33s] recomputes auto_selection after each widget change [ 33s] a recommended addon is available [ 33s] preselects the recommended addons [ 33s] does not preselect the recommended addons if something is already selected [ 33s] does not preselect the recommended addons if something is already registered [ 33s] when development versions are not filtered [ 33s] sets the filter as not checked in the UI [ 33s] displays development add-ons [ 33s] when development versions are filtered [ 34s] sets the filter as checked in the UI [ 34s] does not display development add-ons that are not registered [ 34s] display registered development add-ons [ 34s] displays recommended development add-ons [ 34s] displays auto-selected development add-ons [ 34s] when there is no development versions to filter [ 34s] shows no filter in the UI [ 34s] #handle_dialog [ 34s] filters development releases [ 34s] [ 34s] Registration::Registration [ 34s] #register [ 34s] registers the system using the provided registration code [ 34s] #register_product [ 34s] it should behave like add_product [ 34s] adds the selected product and returns added zypp services [ 34s] does not add the target system prefix if not at upgrade [ 34s] #upgrade_product [ 34s] it should behave like add_product [ 34s] adds the selected product and returns added zypp services [ 34s] does not add the target system prefix if not at upgrade [ 34s] #update_system [ 34s] updates the system registration with the new target distro [ 34s] #activated_products [ 34s] returns list of activated products [ 34s] #get_addon_list [ 34s] no base product found [ 34s] returns empty list if no base product is found [ 34s] a base product is found [ 34s] downloads available extensions [ 34s] uses version without release for connecting SCC [ 34s] #verify_callback [ 34s] stores the SSL error details [ 34s] logs the exception raised inside [ 34s] #migration_products [ 34s] returns migration products from the server [ 34s] #get_updates_list [ 34s] returns an empty list if no base product is available or selected [ 34s] when the control file defines a self_update_id [ 34s] returns updates list from the server for the self update id [ 34s] when the control file does not define a self_update_id [ 34s] returns updates list from the server for the base product [ 34s] when an exception connecting to the server takes place [ 34s] does not catch the error [ 34s] #synchronize_products [ 34s] synchronizes the local products with the server [ 34s] #downgrade_product [ 34s] downgrades the product registration [ 34s] .is_registered? [ 34s] returns true if the global credentials file exists [ 34s] returns false if the global credentials file does not exist [ 34s] [ 34s] Registration::Releasever [ 34s] #activate [ 34s] exports the new $releasever value in the environment [ 34s] refreshes the repositories containing $releasever in the URL [ 34s] refreshes the repositories containing a complex $releasever in the URL [ 34s] refreshes the repositories containing an expression in the URL [ 34s] skips repository reload if $releasever is not used in any repository [ 34s] .set? [ 34s] returns false if the $releasever has not been set [ 34s] returns true if the $releasever has been set [ 34s] [ 34s] Registration::FinishDialog [ 34s] #run [ 34s] raises RuntimeError if unknown action passed as first parameter [ 34s] first paramater "Info" [ 34s] returns info entry hash with scenarios in "when" key [ 34s] first parameter "Write" [ 34s] do nothing if system is not registered [ 34s] the system is registered [ 34s] creates at target system configuration for suse connect [ 34s] restores the repository setup [ 34s] removes the old NCC credentials [ 34s] [ 34s] Registration::MigrationRepositories [ 34s] .reset [ 34s] resets the selected packages [ 34s] #activate_services [ 34s] activates the specified services for upgrade [ 34s] preselects patches if configured to install them [ 34s] disables update repositories if updates should not be installed [ 34s] keeps module update repositories enabled eventhough updates should not be installed [ 34s] #activate_repositories [ 34s] activates the specified repositories and disables the rest [ 34s] preselects patches if configured to install them [ 34s] does not preselect patches if configured to skip them [ 34s] [ 34s] Registration::EulaReader [ 34s] #current_language [ 34s] returns the current language if there is a license for it [ 34s] returns the country fallback if the current language is missing [ 34s] returns 'en_US' fallback if the current language and country is missing [ 34s] returns 'en' fallback if 'en_US' fallback is missing [ 34s] returns any present translation when no English fallback is found [ 34s] [ 34s] Failures: [ 34s] [ 34s] 1) Yast::InstSccClient the system is already registered returns :abort when closing the status dialog [ 34s] Failure/Error: expect(subject.main).to eq(:abort) [ 34s] [ 34s] NoMethodError: [ 34s] undefined method `get_addon_list' for nil:NilClass [ 34s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 34s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 34s] # ./test/inst_scc_test.rb:33:in `block (3 levels) in <top (required)>' [ 34s] [ 34s] 2) Yast::InstSccClient the system is already registered displays an error when loading the available extensions fails [ 34s] Failure/Error: expect(subject.main).to eq(:abort) [ 34s] [ 34s] NoMethodError: [ 34s] undefined method `get_addon_list' for nil:NilClass [ 34s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 34s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 34s] # ./test/inst_scc_test.rb:49:in `block (3 levels) in <top (required)>' [ 34s] [ 34s] 3) Yast::InstSccClient the system is already registered goes back to initial screen when aborting selection of url [ 34s] Failure/Error: expect(subject.main).to eq(:next) [ 34s] [ 34s] NoMethodError: [ 34s] undefined method `get_addon_list' for nil:NilClass [ 34s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 34s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 34s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 34s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 34s] # ./test/inst_scc_test.rb:62:in `block (3 levels) in <top (required)>' [ 34s] [ 34s] Finished in 5.74 seconds (files took 2.18 seconds to load) [ 34s] 641 examples, 3 failures [ 34s] [ 34s] Failed examples: [ 34s] [ 34s] rspec ./test/inst_scc_test.rb:30 # Yast::InstSccClient the system is already registered returns :abort when closing the status dialog [ 34s] rspec ./test/inst_scc_test.rb:36 # Yast::InstSccClient the system is already registered displays an error when loading the available extensions fails [ 34s] rspec ./test/inst_scc_test.rb:52 # Yast::InstSccClient the system is already registered goes back to initial screen when aborting selection of url [ 34s] [ 34s] rake aborted! [ 34s] Command failed with status (1): [rspec --color --format doc 'test/repo_stat...] [ 34s] [ 34s] Tasks: TOP => test:unit [ 34s] (See full trace by running task with --trace) [ 34s] error: Bad exit status from /var/tmp/rpm-tmp.D0CJiQ (%check) [ 34s] [ 34s] [ 34s] RPM build errors: [ 34s] Bad exit status from /var/tmp/rpm-tmp.D0CJiQ (%check) [ 34s] [ 34s] yast-yui failed "build yast2-registration.spec" at Thu Oct 15 07:16:12 UTC 2020. [ 34s] The buildroot was: /var/tmp/build-root/openSUSE_Factory-x86_64 rm -rf YaST:Head rake aborted! Command failed with status (1): [yes | osc -A 'https://api.opensuse.org/' b...] Tasks: TOP => osc:sr => osc:commit => osc:build (See full trace by running task with --trace) cleaning Result: PID 24442 exited with value 1 Scanning for a pull request... Sending Net::HTTP::Get request to https://api.github.com/repos/yast/yast-registration/pulls... OK Found pull request #512 Adding comment ":x: Public Jenkins [job #96](https://ci.opensuse.org/job/yast-yast-registration-master/96/) failed" to pull request https://github.com/yast/yast-registration/pull/512 Sending Net::HTTP::Post request to https://api.github.com/repos/yast/yast-registration/issues/512/comments... OK Success Build step 'Execute shell' marked build as failure Not sending mail to unregistered user github@theintersect.org
![](https://seccdn.libravatar.org/avatar/a8f23670c313bcfe6a972088c009d1ba.jpg?s=120&d=mm&r=g)
See <https://ci.opensuse.org/job/yast-yast-registration-master/97/display/redirect?page=changes> Changes: [github] AY Addon: Taking the latest version if no version has been defined. T… ------------------------------------------ [...truncated 84.58 KB...] [ 32s] selects remote addons matching the product resolvables [ 32s] reports an error when the matching remote addon is not found [ 32s] .installed_products [ 32s] returns installed products [ 32s] .find_base_product [ 32s] in installed system [ 32s] returns installed products [ 32s] at installation [ 32s] returns the selected product if a product is selected [ 32s] returns the product from the installation medium if no product is selected [ 32s] ignores a selected product not marked by the `system-installation()` provides [ 32s] on the online installation medium [ 32s] reads the base product from control.xml [ 32s] .remove_service [ 32s] removes the service and saves the repository configuration [ 32s] raises an exception when saving failes after service removal [ 32s] .service_installed? [ 32s] returns true if the service is installed [ 32s] returns false if the service is not installed [ 32s] .set_repos_state [ 32s] sets the repository state and stores the original state [ 32s] .update_product_renames [ 32s] forwards the product renames to the AddOnProduct module [ 32s] .check_repositories [ 32s] refreshes all repositories with autorefresh enabled [ 32s] returns true if all repositores refresh [ 32s] a repository refresh fails [ 32s] asks the user when a repository refresh fails [ 32s] returns false if user select aborting the migration [ 32s] disables the failed repo if user selects skipping it [ 32s] returns true if user selects skipping the failed repo [ 32s] remembers to re-enable the failed repo after migration [ 32s] .remote_product [ 32s] converts a Hash into OpenStruct [ 32s] includes the version release [ 32s] does not includes the version release if 'version_release' parameter is false [ 32s] .version_without_release [ 32s] product can be found in libzypp stack [ 32s] returns version number without release [ 32s] product cannot be found in libzypp stack [ 32s] returns original version number at least [ 32s] [ 32s] Registration::UI::AddonSelectionRegistrationDialog [ 32s] #initialize [ 32s] sets the development filter to the previous state [ 32s] .run [ 32s] returns response from addon selection according to pressed button [ 32s] returns `:skip` if no addon is selected and user click next [ 32s] returns `:next` if some addons are selected and user click next [ 32s] works in textmode [ 32s] recomputes auto_selection after each widget change [ 32s] a recommended addon is available [ 32s] preselects the recommended addons [ 32s] does not preselect the recommended addons if something is already selected [ 32s] does not preselect the recommended addons if something is already registered [ 32s] when development versions are not filtered [ 32s] sets the filter as not checked in the UI [ 32s] displays development add-ons [ 32s] when development versions are filtered [ 32s] sets the filter as checked in the UI [ 32s] does not display development add-ons that are not registered [ 32s] display registered development add-ons [ 32s] displays recommended development add-ons [ 32s] displays auto-selected development add-ons [ 32s] when there is no development versions to filter [ 32s] shows no filter in the UI [ 32s] #handle_dialog [ 32s] filters development releases [ 32s] [ 32s] Registration::Registration [ 32s] #register [ 32s] registers the system using the provided registration code [ 32s] #register_product [ 32s] it should behave like add_product [ 32s] adds the selected product and returns added zypp services [ 32s] does not add the target system prefix if not at upgrade [ 32s] #upgrade_product [ 32s] it should behave like add_product [ 32s] adds the selected product and returns added zypp services [ 32s] does not add the target system prefix if not at upgrade [ 32s] #update_system [ 32s] updates the system registration with the new target distro [ 32s] #activated_products [ 32s] returns list of activated products [ 32s] #get_addon_list [ 32s] no base product found [ 32s] returns empty list if no base product is found [ 32s] a base product is found [ 32s] downloads available extensions [ 32s] uses version without release for connecting SCC [ 32s] #verify_callback [ 32s] stores the SSL error details [ 32s] logs the exception raised inside [ 32s] #migration_products [ 32s] returns migration products from the server [ 32s] #get_updates_list [ 32s] returns an empty list if no base product is available or selected [ 32s] when the control file defines a self_update_id [ 32s] returns updates list from the server for the self update id [ 32s] when the control file does not define a self_update_id [ 32s] returns updates list from the server for the base product [ 32s] when an exception connecting to the server takes place [ 32s] does not catch the error [ 32s] #synchronize_products [ 32s] synchronizes the local products with the server [ 32s] #downgrade_product [ 32s] downgrades the product registration [ 32s] .is_registered? [ 32s] returns true if the global credentials file exists [ 32s] returns false if the global credentials file does not exist [ 32s] [ 32s] Registration::Releasever [ 32s] #activate [ 32s] exports the new $releasever value in the environment [ 32s] refreshes the repositories containing $releasever in the URL [ 32s] refreshes the repositories containing a complex $releasever in the URL [ 32s] refreshes the repositories containing an expression in the URL [ 32s] skips repository reload if $releasever is not used in any repository [ 32s] .set? [ 32s] returns false if the $releasever has not been set [ 32s] returns true if the $releasever has been set [ 32s] [ 32s] Registration::FinishDialog [ 32s] #run [ 32s] raises RuntimeError if unknown action passed as first parameter [ 32s] first paramater "Info" [ 32s] returns info entry hash with scenarios in "when" key [ 32s] first parameter "Write" [ 32s] do nothing if system is not registered [ 32s] the system is registered [ 32s] creates at target system configuration for suse connect [ 32s] restores the repository setup [ 32s] removes the old NCC credentials [ 32s] [ 32s] Registration::MigrationRepositories [ 32s] .reset [ 32s] resets the selected packages [ 32s] #activate_services [ 32s] activates the specified services for upgrade [ 32s] preselects patches if configured to install them [ 32s] disables update repositories if updates should not be installed [ 32s] keeps module update repositories enabled eventhough updates should not be installed [ 32s] #activate_repositories [ 32s] activates the specified repositories and disables the rest [ 32s] preselects patches if configured to install them [ 32s] does not preselect patches if configured to skip them [ 32s] [ 32s] Registration::EulaReader [ 32s] #current_language [ 32s] returns the current language if there is a license for it [ 32s] returns the country fallback if the current language is missing [ 32s] returns 'en_US' fallback if the current language and country is missing [ 32s] returns 'en' fallback if 'en_US' fallback is missing [ 32s] returns any present translation when no English fallback is found [ 32s] [ 32s] Failures: [ 32s] [ 32s] 1) Yast::InstSccClient the system is already registered returns :abort when closing the status dialog [ 32s] Failure/Error: expect(subject.main).to eq(:abort) [ 32s] [ 32s] NoMethodError: [ 32s] undefined method `get_addon_list' for nil:NilClass [ 32s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 32s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 32s] # ./test/inst_scc_test.rb:33:in `block (3 levels) in <top (required)>' [ 32s] [ 32s] 2) Yast::InstSccClient the system is already registered displays an error when loading the available extensions fails [ 32s] Failure/Error: expect(subject.main).to eq(:abort) [ 32s] [ 32s] NoMethodError: [ 32s] undefined method `get_addon_list' for nil:NilClass [ 32s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 32s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 32s] # ./test/inst_scc_test.rb:49:in `block (3 levels) in <top (required)>' [ 32s] [ 32s] 3) Yast::InstSccClient the system is already registered goes back to initial screen when aborting selection of url [ 32s] Failure/Error: expect(subject.main).to eq(:next) [ 32s] [ 32s] NoMethodError: [ 32s] undefined method `get_addon_list' for nil:NilClass [ 32s] # ./src/lib/registration/addon.rb:162:in `load_addons' [ 32s] # ./src/lib/registration/addon.rb:46:in `find_all' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:230:in `registration_check' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:273:in `block in workflow_aliases' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:249:in `WS_run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:320:in `block in Run' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `loop' [ 32s] # /usr/share/YaST2/modules/Sequencer.rb:312:in `Run' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:335:in `start_workflow' [ 32s] # ./src/lib/registration/clients/inst_scc.rb:75:in `main' [ 32s] # ./test/inst_scc_test.rb:62:in `block (3 levels) in <top (required)>' [ 32s] [ 32s] Finished in 5.72 seconds (files took 2 seconds to load) [ 32s] 642 examples, 3 failures [ 32s] [ 32s] Failed examples: [ 32s] [ 32s] rspec ./test/inst_scc_test.rb:30 # Yast::InstSccClient the system is already registered returns :abort when closing the status dialog [ 32s] rspec ./test/inst_scc_test.rb:36 # Yast::InstSccClient the system is already registered displays an error when loading the available extensions fails [ 32s] rspec ./test/inst_scc_test.rb:52 # Yast::InstSccClient the system is already registered goes back to initial screen when aborting selection of url [ 32s] [ 32s] rake aborted! [ 32s] Command failed with status (1): [rspec --color --format doc 'test/repo_stat...] [ 32s] [ 32s] Tasks: TOP => test:unit [ 32s] (See full trace by running task with --trace) [ 32s] error: Bad exit status from /var/tmp/rpm-tmp.nvRzNb (%check) [ 32s] [ 32s] [ 32s] RPM build errors: [ 32s] Bad exit status from /var/tmp/rpm-tmp.nvRzNb (%check) [ 32s] [ 32s] yast-yui failed "build yast2-registration.spec" at Tue Oct 20 14:02:15 UTC 2020. [ 32s] The buildroot was: /var/tmp/build-root/openSUSE_Factory-x86_64 rm -rf YaST:Head rake aborted! Command failed with status (1): [yes | osc -A 'https://api.opensuse.org/' b...] Tasks: TOP => osc:sr => osc:commit => osc:build (See full trace by running task with --trace) cleaning Result: PID 594 exited with value 1 Scanning for a pull request... Sending Net::HTTP::Get request to https://api.github.com/repos/yast/yast-registration/pulls... OK Found pull request #513 Adding comment ":x: Public Jenkins [job #97](https://ci.opensuse.org/job/yast-yast-registration-master/97/) failed" to pull request https://github.com/yast/yast-registration/pull/513 Sending Net::HTTP::Post request to https://api.github.com/repos/yast/yast-registration/issues/513/comments... OK Success Build step 'Execute shell' marked build as failure Not sending mail to unregistered user github@theintersect.org
![](https://seccdn.libravatar.org/avatar/a8f23670c313bcfe6a972088c009d1ba.jpg?s=120&d=mm&r=g)
participants (1)
-
admin@opensuse.org