Hello community, here is the log from the commit of package openQA for openSUSE:Leap:15.2 checked in at 2020-02-26 16:59:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/openQA (Old) and /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Wed Feb 26 16:59:07 2020 rev:82 rq:779035 version:4.6.1582356603.73b75d1a4 Changes: -------- New Changes file: --- /dev/null 2019-12-19 10:12:34.003146842 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA-devel-test.changes 2020-02-26 16:59:08.902842680 +0100 @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Mon Oct 14 09:00:51 UTC 2019 - [email protected] + +- No changelog - see openQA.changes --- /work/SRC/openSUSE:Leap:15.2/openQA/openQA-test.changes 2020-01-15 15:36:29.618988574 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA-test.changes 2020-02-26 16:59:08.954842783 +0100 @@ -2 +2 @@ -Wed Apr 17 14:34:07 UTC 2019 - [email protected] +Mon Oct 14 09:00:51 UTC 2019 - [email protected] @@ -4,1093 +4 @@ -- Update to version 4.6.1555478309.f6dfdd9b: - * Clone only the latest revision of the SLE needles (#2048) - * Revert "openQA.spec: multiline macros for services and dependencies" (#2051) - * Update architecture diagram in accordance with PR 2043 - * Fix the remaining issues of deleting workers - * Get rid of a few warnings that make test results on Travis hard to read - * Be a little more strict about WebSocket server response codes - * There should be no need for AssetPack in the websocket server - * Trust connections from localhost to the websocket server to avoid complex config file requirements - * The websocket server is no longer a dbus service - * Clean up tests and remove a few connection warnings - * The websocket server is no longer a dbus service - * Move ws_send from dbus to HTTP - * Move ws_send_job from dbus to HTTP - * Remove ws_send_all dbus function, which was actually unused - * Remove first dbus function from the websocket server - * Add an HTTP API to the websocket server - * Don't return status 402 on worker deletion failure - * Fix indentation in admin_worker.js - * Make OpenQA::Events::emit_event a non-static member function - * Update AppArmor profile for usrMerge (boo#1132350) - * Add cacheservice as part of openqa-worker.target - * openQA.spec: multiline macros for services and dependencies - -------------------------------------------------------------------- -Sun Apr 14 17:57:10 UTC 2019 - [email protected] - -- Update to version 4.6.1554809752.3a77164a: - * Fix mock session logins to use only public Mojolicious APIs and create users with a proper resultset - * Prevent multiple limit_* tasks from running in parallel - * Allow deleting offline workers via API and web UI - * Don't duplicate settings in iso_create/cancel events - * Adapt product log test - * Add test for re-scheduling product - * Migrate 'iso_create' events to scheduled products - * Show scheduled products from new table in UI - * Test async flag for iso post route - * Move constants for job dependencies to their own file - * Add API route to query scheduled product - * Add async flag to ISO post route and table to keep track - * Cleanup scheduling functions - -------------------------------------------------------------------- -Sun Mar 31 17:49:35 UTC 2019 - [email protected] - -- Update to version 4.6.1553599469.57d6b3ca: - * Properly escape bug titles - * YAML output for job templates and schema validation (#1999) - * Make the websocket server testable as a normal Mojolicious application - * Add a model class to store worker state - * Move more functions into helpers - * Move dbus functions into helpers - * Add controllers to the websocket server application - * Install test distri deps on bootstrap - * Turn websocket server into a real Mojolicious app - * Use Mojo::Promise in enqueue_and_keep_track - * docker: Add IO::Scalar dependency - * doc: Reflect renaming virtio_screen.pm to serial_screen.pm - * worker: Upload serial_terminal.txt for svirt backend - * Unify schema access in OpenQA::WebAPI and fix the issue where the db helper was called on the application - * Use result_p to track Minion job instead of timers - * Improve logging non-scalar error info of GRU/Minion tasks - * Extract common code for saving and deleting needles - * Fix test for dependency graph - * Don't let needle-related tasks fail if the cause is uncritical - * Make needle deletion a Minion job - * Setting to not cancel parallel parents with still-pending children - * Add hints to fix dependencies when using devel - -------------------------------------------------------------------- -Fri Mar 15 05:22:32 UTC 2019 - [email protected] - -- Update to version 4.6.1552567428.80082fe5: - * Test create and delete events for job templates - * Unify schema access with a singleton method - * Use route placeholder types whenever possible for cleaner routes - * Add link to relevant documentation in the job group settings - * Cache result of OpenQA::..::JobGroup::load_properties - * Allow disabling bug carry over on job group level - * Remove dead validation code and replace it with route placeholder types - * Pass affected_rows correctly in openqa_jobtemplate_create - -------------------------------------------------------------------- -Tue Mar 12 21:22:25 UTC 2019 - [email protected] - -- Update to version 4.6.1552406543.b3e49dcb: - * Remove check for $OpenQA::Utils::app - * Move get_bug from Result::Bugs to ResultSet::Bugs - * Add bug to db already on comment create or update - * Add support for links to jira tickets - * Rename tmp_schema to search_path_for_tests, which is a little more descriptive - * Allow monitoring of Gru/Minion with a new public /admin/influxdb/minion API endpoint - * Log job group events via audit log - * Make openqa-webui.service depend on openqa-gru.service - -------------------------------------------------------------------- -Sun Mar 10 13:22:04 UTC 2019 - [email protected] - -- Update to version 4.6.1552078716.6b292c9a: - * Test deleting job from worker's job history - * Move another class into its own .pm file and do not use private functions/methods across modules/classes anymore - * Remove all uses of the enterprise operator and use a more consistent coding style in the affected classes - * Add loading indication when saving needle - -------------------------------------------------------------------- -Fri Mar 08 05:22:22 UTC 2019 - [email protected] - -- Update to version 4.6.1551963862.0a6b30be: - * Prevent deletion of worker when deleting its current job - * Prevent broken rendering of unknown result types - * Add unxz/xz to apparmor profile to fix poo#48743 - * Don't hardcode remote and branch names for saving needles - -------------------------------------------------------------------- -Tue Mar 05 21:22:30 UTC 2019 - [email protected] - -- Update to version 4.6.1551797932.a5aadf24: - * Remove safe_call from OpenQA::Utils since it is no longer needed - * Cover more Gru special cases with tests - * Remove resource allocator from architecture diagram - * Mention the possible race condition in a comment - * Bypass Gru special cases for non-Gru tasks - * Use a completely new task for testing so we can replicate more edge cases in the future - * Be a little more defensive with removing Gru tasks - * Allow pure Minion jobs (without a Gru id) to bypass special case handling - * Do not delete Gru tasks if they are not finished in Minion yet - -------------------------------------------------------------------- -Sat Mar 02 17:37:11 UTC 2019 - [email protected] - -- Update to version 4.6.1551454083.e27d66d8: - * Extend apparmor profile for all Git commands we use - * Correct limit_assets task arguments - * Allow test vars for openqa-clone-custom-git-refs⦠- * Fix updating needle Git repository - * Fix uniform box widths of dependency graph in current Firefox - * Move JSON::Validator and YAML::XS to t_requires - * Drop the `cpanfile` changes - * Add YAML::XS and JSON::Validator dependencies - * worker: Skip announcing stop if isotovideo already exited - * worker: Fix "final status update" - * worker: Refactor _stop_job_kill_and_upload - * worker: Remove extra handling for dead children - * worker: Make API calls when stopping job non-critical - * worker: Treat upload failures as API failures - * Raise an exception if deploying the SQLite database fails and handle an existing database more gracefully - * Do not reset the job queue every time the cache service is restarted - * Test cache service migrations - * Use Mojo::SQLite migrations to handle schema upgrades in the cache service gracefully - * Remove unused imports and IPC objects - * Remove the resource allocator - * Move barrier handling out of the resource allocator - * Move mutex handling out of the resource allocator - * Remove first dbus method and use OpenQA::Schema directly - * Declare the DBIx::Class dependency properly - * Move OpenQA::Resource::Jobs handling from the resource allocator to the webapi - -------------------------------------------------------------------- -Tue Feb 26 21:22:42 UTC 2019 - [email protected] - -- Update to version 4.6.1551101052.7f891940: - * Use well-defined worker config for fullstack test(s) - * Adapt tests to default WORKER_CLASS - * Assign default WORKER_CLASS when posting job - * Assign default WORKER_CLASS when scheduling ISO - -------------------------------------------------------------------- -Sat Feb 23 17:39:53 UTC 2019 - [email protected] - -- Update to version 4.6.1550673294.3fb7464e: - * worker: Log error returned by JSON API - * Render error in all cases in create_artefact - -------------------------------------------------------------------- -Tue Feb 19 14:11:16 UTC 2019 - [email protected] - -- Update to version 4.6.1550584043.5098c32d: - * Log isotovideo startup more detailed - -------------------------------------------------------------------- -Tue Feb 12 21:22:24 UTC 2019 - [email protected] - -- Update to version 4.6.1549966436.c3938033: - * Revert support for ASSET_\d+_URL - * openqa-clone-custom-git-refspec: make use of GROUP var - * Improve error handling when changing priority - -------------------------------------------------------------------- -Sun Feb 10 13:22:09 UTC 2019 - [email protected] - -- Update to version 4.6.1549799415.315b994a: - * Fix modules filter wrong results while using comma - * Show bug reporting links also on text results - * Prevent download tasks for the same asset running in parallel ++++ 900 more lines (skipped) ++++ between /work/SRC/openSUSE:Leap:15.2/openQA/openQA-test.changes ++++ and /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA-test.changes New Changes file: --- /dev/null 2019-12-19 10:12:34.003146842 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA-worker-test.changes 2020-02-26 16:59:08.990842854 +0100 @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Mon Oct 14 09:00:51 UTC 2019 - [email protected] + +- No changelog - see openQA.changes --- /work/SRC/openSUSE:Leap:15.2/openQA/openQA.changes 2020-01-15 15:36:29.666988607 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA.changes 2020-02-26 16:59:09.082843036 +0100 @@ -1,0 +2,1282 @@ +Mon Feb 24 03:03:49 UTC 2020 - [email protected] + +- Update to version 4.6.1582356603.73b75d1a4: + * Dependency cron 200222 + +------------------------------------------------------------------- +Fri Feb 21 19:03:45 UTC 2020 - [email protected] + +- Update to version 4.6.1582309642.4cf93ee9f: + * Add merge key example to inline help + * Add docs for merge keys + * JobTemplates: Add tests with merge keys + * Use YAML::PP for JobTemplates + * worker: Add explicit test for last error of web UI connection + * Avoid redundant code in worker job test + * worker: Handle job duplication failures + * Show warnings when restarting job and assets are missing + * Add function to determine whether a job misses assets + * Move check for hidden asset types into its own function + +------------------------------------------------------------------- +Fri Feb 21 10:39:15 UTC 2020 - [email protected] + +- Update to version 4.6.1582278168.345f257f6: + * Use unique git hash from vars.json for src links when possible + * docs: Add hint about importance of using the same filesystem for cache+pool + * Fix source code remote path for optional .git github links + * Fix missing dependency 'perl(Archive::Extract)' for worker since e86f68b08 + * Silence a warning in 24-worker-overall.t + * docs: Replace dated styling/Mark systemctl command + * Handle the case where there are no screenshots more gracefully (avoiding warnings in tests) + * Redirect to remote code location for source view when using CASEDIR + * Flatten the download conditions a bit + * Do not capture and store all job output as a note + * Log all download errors + * Fail the job instead of throwing an exception + * Add tests for OpenQA::Downloader + * Use OpenQA::Downloader in download_asset task + * Add downloader module and use it for the cache service + * Use preferred explicit rendering in "src" method + * Simplify "src" method showing source code of test modules + * t: Fix and re-enable ui/03-source.t + +------------------------------------------------------------------- +Tue Feb 18 23:34:01 UTC 2020 - [email protected] + +- Update to version 4.6.1582068800.bb5602a1e: + * Simplify bugref counting with map + * Add GRU task "limit_bugs" to cleanup orphaned bugs + * worker: Simplify '->stop' call slightly + * Remove redundant timestamp output in worker log + * Fix custom variables escaping on clone_custom_git_refspec + * Fix random failures in t/api/08-jobtemplates.t + * Tweak Build regexp in ObsRsync + +------------------------------------------------------------------- +Fri Feb 14 10:38:11 UTC 2020 - [email protected] + +- Update to version 4.6.1581660411.10959f77b: + * Dependency cron 200214 + +------------------------------------------------------------------- +Wed Feb 12 02:38:18 UTC 2020 - [email protected] + +- Update to version 4.6.1581352297.ca1cecd07: + * Revert "Have openqa-clone-custom-git-refspec parse PR for test URLs" + * Dependency cron 200210 + +------------------------------------------------------------------- +Sun Feb 09 18:38:37 UTC 2020 - [email protected] + +- Update to version 4.6.1581075098.818ddb190: + * Make test for worker registration error less specific + * Let the current job continue after a fatal registration error + * Simplify error handling of worker registration + +------------------------------------------------------------------- +Fri Feb 07 10:38:26 UTC 2020 - [email protected] + +- Update to version 4.6.1581058621.9523164cd: + * Dependency cron 200207 + * Make help icon after search field fully clickable + * Consistently store gru job output as a note + * Only rebless jobs once + * load_templates: better error handling + * fetchneedles: Fix "no tracking information for the current branch" on self-repair + * Have openqa-clone-custom-git-refspec parse PR for test URLs + * Improve the format of execution time + * Add final linebreak to jobtemplate yaml + * Avoid re-scheduling accepted jobs before first status update + * Make scheduler fullstack test more stable + * Add test for aborting job during setup + * Consider worker no longer immediately offline when ws connection finishes + * Prevent passing the reason 'cancel' as it provides no extra information + * Prevent worker from overriding reason set by web UI + * Dependency cron 200205 + +------------------------------------------------------------------- +Wed Feb 05 02:38:00 UTC 2020 - [email protected] + +- Update to version 4.6.1580827995.3476c9f7b: + * Move webapi templates from "templates/" to "templates/webapi/" + * Avoid undefined $appname/$api_description errors by using the stash + * Fix product log test which might fail when table slightly overflows + * Trigger result cleanup daily instead of hourly + * Use separate timer for enqueuing cleanup tasks + * Reset the editor to the minimum viable YAML if empty + * Use aliases in JobTemplate schema + * Have test_once in clone-custom-git-refspec test report errors correctly + * fetchneedles: Do not fail the script when we are on the correct branch + * openqa-bootstrap: Fix indendation + +------------------------------------------------------------------- +Sun Feb 02 18:38:20 UTC 2020 - [email protected] + +- Update to version 4.6.1580490152.07482738b: + * Fix incorrect exit code in obs_rsync_update_builds_text Gru task + * Limit ObsRsync task retries + * Dependency cron 200131 + * Support 'testsuite: null' in jobtemplates + +------------------------------------------------------------------- +Fri Jan 31 10:38:53 UTC 2020 - [email protected] + +- Update to version 4.6.1580407290.340620ce0: + * Read all keys from ini section of none is defined + * Avoid hardcoded schema version in deployment test + * Fix old database migrations + * Fix old DB migrations by combining them into 76-77 + * Set reason when stale job detection marks job as incomplete + * Pass the worker's reason for stopping a job to the web UI + * Improve test code for job duplication + * Show reason in info panel + * Allow passing a reason when marking a job as done + * Test all DB migrations from version 76 and not just the last 2 + +------------------------------------------------------------------- +Wed Jan 29 02:38:33 UTC 2020 - [email protected] + +- Update to version 4.6.1580150954.a98528363: + * Improve build info in ObsRsync UI (#2694) + * Adjust parsing of project state in ObsRsync Plugin + * t: Add more test strings + * t: Fix typos in full-stack + * Fix "Use of uninitialized value in numeric ne (!=)" in worker + * Fix "Can't use an undefined value as an ARRAY reference" in worker + * openqa-clone-custom-git-refspec: Provide option parsing with help text + * Add retry script for testing with flag STABILITY_TEST + * Slightly simplify JobModules + * Replace references of "TRAVIS" with a generic term or CircleCI in cpanfile and tests + * Treat all previously unstable tests as stable after proof of stability + * t: Extract method for ajax/animation handling + * Stabilize t/ui/14-dashboard-parents.t by relying on "collapsed" only + +------------------------------------------------------------------- +Sun Jan 26 18:37:58 UTC 2020 - [email protected] + +- Update to version 4.6.1579943557.88a382a14: + * Dependency cron 200125 + * Simplify job#done + * Add test in openqa-clone-custom-git-refspec for trailing '/' + * t: Cover all current features of openqa-clone-custom-git-refspec + +------------------------------------------------------------------- +Fri Jan 24 10:38:06 UTC 2020 - [email protected] + +- Update to version 4.6.1579790259.c018d5dc2: + * Workaround api request in ObsRsync Plugin + * Remove dead code + * Use uppercase variables in OpenQA::Utils to make their scope immediately obvious + * Replace compose_job_overview_search_args and param_hash methods with helpers + * Move mark_job_linked function into the correct resultset + * Move job_group_and_parents function into the correct resultset + * Use :DEFAULT instead of importing twice + * Replace global variables in OpenQA::Utils with functions + * Remove unused export + * Do not export variables from OpenQA::Utils anymore + * Add OpenQA::App as a singleton container, replacing $OpenQA::Utils::app + * Move worker specific code from OpenQA::Setup into OpenQA::Worker::App + * Just use Mojolicious as a base class instead of trying to reinvent it + * Parse Snapshot number in ObsRsync plugin + * Add silent reload of dashboard contents for fullscreen mode + * Dependency cron 200123 + * Add dependency to client so asset download via SSL works + * load_templates: fail early if host is unreachable + * Log asset download error to autoinst log file + * Fix asset status test so it works when the cache file does not exist + * Dependency cron 200122 + * Support batches in ObsRsync Plugin (#2653) + * Use new format to store job module details + * Set text mime in ObsRsync download + * Use is_admin_js helper in asset table template + * Show cached assets also when cleanup is ongoing + * Add CLI tool to validate a job template YAML file + * Fix ObsRsync mutex leak on errors + +------------------------------------------------------------------- ++++ 1091 more lines (skipped) ++++ between /work/SRC/openSUSE:Leap:15.2/openQA/openQA.changes ++++ and /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA.changes Old: ---- Dockerfile openQA-4.6.1555478309.f6dfdd9b.obscpio New: ---- openQA-4.6.1582356603.73b75d1a4.obscpio openQA-devel-test.changes openQA-devel-test.spec openQA-worker-test.changes openQA-worker-test.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-devel-test.spec ++++++ # # spec file for package openQA-devel-test # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define short_name openQA-devel Name: %{short_name}-test Version: 4.6.1582356603.73b75d1a4 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later BuildRequires: %{short_name} == %{version} ExcludeArch: i586 %description . %prep # workaround to prevent post/install failing assuming this file for whatever # reason touch %{_sourcedir}/%{short_name} %build # just test requirements by installation %install # disable debug packages in package test to prevent error about missing files %define debug_package %{nil} %changelog ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.GRItod/_old 2020-02-26 16:59:10.058844964 +0100 +++ /var/tmp/diff_new_pack.GRItod/_new 2020-02-26 16:59:10.058844964 +0100 @@ -1,7 +1,7 @@ # # spec file for package openQA-test # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 4.6.1555478309.f6dfdd9b +Version: 4.6.1582356603.73b75d1a4 Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ # # spec file for package openQA-worker-test # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define short_name openQA-worker Name: %{short_name}-test Version: 4.6.1582356603.73b75d1a4 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later BuildRequires: %{short_name} == %{version} ExcludeArch: i586 %description . %prep # workaround to prevent post/install failing assuming this file for whatever # reason touch %{_sourcedir}/%{short_name} %build /usr/share/openqa/script/worker --help %install # disable debug packages in package test to prevent error about missing files %define debug_package %{nil} %changelog ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.GRItod/_old 2020-02-26 16:59:10.106845059 +0100 +++ /var/tmp/diff_new_pack.GRItod/_new 2020-02-26 16:59:10.106845059 +0100 @@ -1,7 +1,7 @@ # # spec file for package openQA # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ # can't use linebreaks here! -%define openqa_services openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service +%define openqa_services openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer %define openqa_worker_services openqa-worker.target openqa-slirpvde.service openqa-vde_switch.service openqa-worker-cacheservice.service openqa-worker-cacheservice-minion.service %if %{undefined tmpfiles_create} %define tmpfiles_create() \ @@ -33,50 +33,59 @@ %else %bcond_with tests %endif +# SLE < 15 does not provide many of the dependencies for the python sub-package +%if 0%{?sle_version} < 150000 && !0%{?is_opensuse} +%bcond_with python_scripts +%else +%bcond_without python_scripts +%endif # runtime requirements that also the testsuite needs -%define t_requires perl(DBD::Pg) perl(DBIx::Class) perl(Config::IniFiles) perl(SQL::Translator) perl(Date::Format) perl(File::Copy::Recursive) perl(DateTime::Format::Pg) perl(Net::OpenID::Consumer) perl(Mojolicious::Plugin::RenderFile) perl(Mojolicious::Plugin::AssetPack) perl(aliased) perl(Config::Tiny) perl(DBIx::Class::DynamicDefault) perl(DBIx::Class::Schema::Config) perl(DBIx::Class::Storage::Statistics) perl(IO::Socket::SSL) perl(Data::Dump) perl(DBIx::Class::OptimisticLocking) perl(Text::Markdown) perl(Net::DBus) perl(JSON::Validator) perl(YAML::XS) perl(IPC::Run) perl(Archive::Extract) perl(CSS::Minifier::XS) perl(JavaScript::Minifier::XS) perl(Time::ParseDate) perl(Sort::Versions) perl(Mojo::RabbitMQ::Client) perl(BSD::Resource) perl(Cpanel::JSON::XS) perl(Pod::POM) perl(Mojo::IOLoop::ReadWriteProcess) perl(Minion) perl(Mojo::Pg) perl(Mojo::SQLite) perl(Minion::Backend::SQLite) +%if %{with python_scripts} +%define python_scripts_requires python3-base python3-requests python3-future +%else +%define python_scripts_requires %{nil} +%endif +%define assetpack_requires perl(Mojolicious::Plugin::AssetPack) >= 1.36, perl(CSS::Minifier::XS) perl(JavaScript::Minifier::XS) +%define common_requires perl(Archive::Extract) perl(Config::IniFiles) perl(Cpanel::JSON::XS) perl(Cwd) perl(Data::Dump) perl(Data::Dumper) perl(Digest::MD5) perl(Getopt::Long) perl(Minion) >= 9.09, perl(Mojolicious) >= 8.24, perl(Try::Tiny) perl(Regexp::Common), perl(Storable) +# runtime requirements for the main package that are not required by other sub-packages +%define main_requires %assetpack_requires git-core perl(Carp::Always) perl(Date::Format) perl(DateTime::Format::Pg) perl(DBD::Pg) >= 3.7.4, perl(DBI) >= 1.632, perl(DBIx::Class) >= 0.082801, perl(DBIx::Class::DeploymentHandler) perl(DBIx::Class::DynamicDefault) perl(DBIx::Class::Schema::Config) perl(DBIx::Class::Storage::Statistics) perl(DBIx::Class::OptimisticLocking) perl(File::Copy::Recursive) perl(Net::OpenID::Consumer) perl(Module::Pluggable) perl(aliased) perl(Config::Tiny) perl(Text::Diff) perl(CommonMark) perl(JSON::Validator) perl(IPC::Run) perl(Time::ParseDate) perl(Sort::Versions) perl(BSD::Resource) perl(Pod::POM) perl(Mojo::Pg) perl(Mojo::RabbitMQ::Client) >= 0.2, perl(SQL::Translator) perl(YAML::PP) >= 0.020 perl(YAML::XS) perl(LWP::UserAgent) perl(Getopt::Long::Descriptive) +%define client_requires curl jq git-core perl(IO::Socket::SSL) >= 2.009, perl(LWP::UserAgent) perl(LWP::Protocol::https) perl(IPC::Run) +%define worker_requires os-autoinst < 5, perl(Mojo::IOLoop::ReadWriteProcess) > 0.19, perl(Minion::Backend::SQLite) perl(Mojo::SQLite) openQA-client optipng +%define build_requires rubygem(sass) %assetpack_requires + +# All requirements needed by the tests executed during build-time. +# Do not require on this in individual sub-packages except for the devel +# package. +%define test_requires %common_requires %main_requires %python_scripts_requires %worker_requires perl(App::cpanminus) perl(Perl::Critic) perl(Perl::Critic::Freenode) perl(Test::Mojo) perl(Test::More) perl(Test::Strict) perl(Test::Fatal) perl(Test::MockModule) perl(Test::Output) perl(Test::Pod) perl(Test::Warnings) perl(Selenium::Remote::Driver) perl(Selenium::Remote::WDKeys) ShellCheck os-autoinst-devel postgresql-server python3-setuptools python3-yamllint curl jq +%ifarch x86_64 +%define qemu qemu qemu-kvm +%else +%define qemu qemu +%endif +%define devel_requires %build_requires %test_requires rsync chromedriver curl postgresql-devel %qemu tar xorg-x11-fonts sudo perl(Devel::Cover) perl(Devel::Cover::Report::Codecov) perl(Perl::Tidy) + Name: openQA -Version: 4.6.1555478309.f6dfdd9b +Version: 4.6.1582356603.73b75d1a4 Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later Group: Development/Tools/Other -Url: http://os-autoinst.github.io/openQA/ +URL: http://os-autoinst.github.io/openQA/ Source0: %{name}-%{version}.tar.xz # a workaround for set_version looking at random files (so we can't name it .tar.xz) # use update-cache to update it Source1: cache.txz Source101: update-cache.sh -Source102: Dockerfile -BuildRequires: %{t_requires} +BuildRequires: %{build_requires} BuildRequires: fdupes -BuildRequires: os-autoinst -BuildRequires: systemd -# critical bug fix -BuildRequires: perl(DBIx::Class) >= 0.082801 -BuildRequires: perl(Minion) >= 9.09 -BuildRequires: perl(Mojo::RabbitMQ::Client) >= 0.2 -BuildRequires: perl(Mojolicious) >= 7.92 -BuildRequires: perl(Mojolicious::Plugin::AssetPack) >= 1.36 -BuildRequires: rubygem(sass) -Requires: dbus-1 -Requires: perl(Minion) >= 9.09 -Requires: perl(Mojo::RabbitMQ::Client) >= 0.2 -# needed for test suite -Requires: git-core +Requires: %{main_requires} Requires: openQA-client = %{version} Requires: openQA-common = %{version} -# needed for saving needles optimized -Requires: optipng -Requires: perl(DBIx::Class) >= 0.082801 -# needed for openid support -Requires: perl(LWP::Protocol::https) -Requires: perl(URI) +Requires: perl(Minion) >= 10.0 # we need to have the same sha1 as expected %requires_eq perl-Mojolicious-Plugin-AssetPack Recommends: %{name}-local-db Requires(post): coreutils -Requires(post): perl(DBIx::Class::DeploymentHandler) Requires(post): perl(SQL::SplitStatement) Recommends: apache2 Recommends: apparmor-profiles @@ -84,27 +93,11 @@ Recommends: logrotate # server needs to run an rsync server if worker caching is used Recommends: rsync -BuildRequires: postgresql-server BuildArch: noarch ExcludeArch: i586 %{?systemd_requires} %if %{with tests} -BuildRequires: chromedriver -BuildRequires: chromium -BuildRequires: glibc-locale -# pick a font so chromium has something to render - doesn't matter so much -BuildRequires: dejavu-fonts -BuildRequires: google-roboto-fonts -BuildRequires: perl-App-cpanminus -BuildRequires: rsync -BuildRequires: perl(DBD::SQLite) -BuildRequires: perl(Perl::Critic) -BuildRequires: perl(Perl::Critic::Freenode) -BuildRequires: perl(Perl::Tidy) -BuildRequires: perl(Selenium::Remote::Driver) >= 1.20 -BuildRequires: perl(Test::Compile) -BuildRequires: perl(Test::MockObject) -BuildRequires: perl(Test::Warnings) +BuildRequires: %{test_requires} %endif %if 0%{?suse_version} >= 1330 Requires(pre): group(nogroup) @@ -129,11 +122,19 @@ combination of hardware configuration, installation options and variant of the operating system. +%package devel +Summary: Development package pulling in all build+test dependencies +Group: Development/Tools/Other +Requires: %{devel_requires} + +%description devel +Development package pulling in all build+test dependencies. + %package common Summary: The openQA common tools for web-frontend and workers Group: Development/Tools/Other -Requires: %{t_requires} -Requires: perl(Mojolicious) >= 7.92 +Requires: %{common_requires} +Requires: perl(Mojolicious) >= 8.24 %description common This package contain shared resources for openQA web-frontend and @@ -142,17 +143,12 @@ %package worker Summary: The openQA worker Group: Development/Tools/Other -Requires: openQA-client = %{version} -Requires: os-autoinst < 5 -Requires: perl(DBD::SQLite) > 1.51 -Requires: perl(Minion::Backend::SQLite) -Requires: perl(Mojo::IOLoop::ReadWriteProcess) > 0.19 -Requires: perl(Mojo::SQLite) -Requires: perl(SQL::SplitStatement) +%define worker_requires_including_uncovered_in_tests %worker_requires perl(SQL::SplitStatement) +Requires: %{worker_requires_including_uncovered_in_tests} # FIXME: use proper Requires(pre/post/preun/...) PreReq: openQA-common = %{version} Requires(post): coreutils -Requires(post): os-autoinst >= 4.4 +Requires(post): os-autoinst >= 4.6 Recommends: qemu # Needed for caching - not required if caching not used... Recommends: rsync @@ -166,22 +162,23 @@ %package client Summary: Client tools for remote openQA management Group: Development/Tools/Other +Requires: %client_requires Requires: openQA-common = %{version} -Requires: perl(Config::IniFiles) -Requires: perl(Cpanel::JSON::XS) -Requires: perl(Data::Dump) -Requires: perl(Getopt::Long) -Requires: perl(IO::Socket::SSL) >= 2.009 -Requires: perl(LWP::UserAgent) -Requires: perl(Mojolicious) -Requires: perl(Regexp::Common) -Requires: perl(Try::Tiny) -Recommends: jq %description client Tools and support files for openQA client script. Client script is a convenient helper for interacting with openQA webui REST API. +%if %{with python_scripts} +%package python-scripts +Summary: Additional scripts in python +Group: Development/Tools/Other +Requires: %python_scripts_requires + +%description python-scripts +Additional scripts for the use of openQA in the python programming language. +%endif + %package local-db Summary: Helper package to ease setup of postgresql DB Group: Development/Tools/Other @@ -211,6 +208,7 @@ %prep %setup -q -a1 +sed -e 's,/bin/env python,/bin/python,' -i script/openqa-label-all %build make %{?_smp_mflags} @@ -218,6 +216,7 @@ %check #for double checking %if %{with tests} +sed -i '/Perl::Tidy/d' cpanfile cpanm --installdeps --with-feature=test . %endif @@ -228,14 +227,22 @@ #make test rm -rf %{buildroot}/DB export LC_ALL=en_US.UTF-8 -./t/test_postgresql %{buildroot}/DB -export TEST_PG="DBI:Pg:dbname=openqa_test;host=%{buildroot}/DB" -OBS_RUN=1 prove -rv || true -pg_ctl -D %{buildroot}/DB stop +# Skip tests not working currently, or flaky, and Selenium tests +# https://progress.opensuse.org/issues/19652 +# 17-labels_carry_over.t: https://progress.opensuse.org/issues/60209 +rm \ + t/17-labels_carry_over.t \ + t/25-cache-service.t \ + t/ui/*.t + +make test-with-database OBS_RUN=1 PROVE_ARGS='-l -r -v' TEST_PG_PATH=%{buildroot}/DB rm -rf %{buildroot}/DB %endif %install +%if !%{with python_scripts} +rm script/openqa-label-all +%endif export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 %make_install @@ -245,10 +252,14 @@ ln -s %{_sysconfdir}/openqa/database.ini %{buildroot}%{_datadir}/openqa%{_sysconfdir}/openqa/database.ini mkdir -p %{buildroot}%{_bindir} ln -s %{_datadir}/openqa/script/client %{buildroot}%{_bindir}/openqa-client -ln -s %{_datadir}/openqa/script/clone_job.pl %{buildroot}%{_bindir}/openqa-clone-job +ln -s %{_datadir}/openqa/script/openqa-clone-job %{buildroot}%{_bindir}/openqa-clone-job ln -s %{_datadir}/openqa/script/dump_templates %{buildroot}%{_bindir}/openqa-dump-templates ln -s %{_datadir}/openqa/script/load_templates %{buildroot}%{_bindir}/openqa-load-templates ln -s %{_datadir}/openqa/script/openqa-clone-custom-git-refspec %{buildroot}%{_bindir}/openqa-clone-custom-git-refspec +ln -s %{_datadir}/openqa/script/openqa-validate-yaml %{buildroot}%{_bindir}/openqa-validate-yaml +%if %{with python_scripts} +ln -s %{_datadir}/openqa/script/openqa-label-all %{buildroot}%{_bindir}/openqa-label-all +%endif cd %{buildroot} grep -rl %{_bindir}/env . | while read file; do @@ -302,6 +313,7 @@ %service_add_pre %{openqa_worker_services} %post +%tmpfiles_create %{_tmpfilesdir}/openqa-webui.conf # install empty log file if [ ! -e %{_localstatedir}/log/openqa ]; then install -D -m 644 -o geekotest /dev/null %{_localstatedir}/log/openqa || : @@ -368,7 +380,6 @@ %{_datadir}/openqa%{_sysconfdir}/openqa/openqa.ini %{_datadir}/openqa%{_sysconfdir}/openqa/database.ini %config %{_sysconfdir}/logrotate.d -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.opensuse.openqa.conf # apache vhost %dir %{_sysconfdir}/apache2 %dir %{_sysconfdir}/apache2/vhosts.d @@ -378,6 +389,8 @@ # apparmor profile %dir %{_sysconfdir}/apparmor.d %config %{_sysconfdir}/apparmor.d/usr.share.openqa.script.openqa +%dir %{_sysconfdir}/apparmor.d/local +%config %{_sysconfdir}/apparmor.d/local/usr.share.openqa.script.openqa # init %dir %{_unitdir} %{_unitdir}/openqa-webui.service @@ -385,6 +398,15 @@ %{_unitdir}/openqa-gru.service %{_unitdir}/openqa-scheduler.service %{_unitdir}/openqa-websockets.service +%{_unitdir}/openqa-enqueue-audit-event-cleanup.service +%{_unitdir}/openqa-enqueue-audit-event-cleanup.timer +%{_unitdir}/openqa-enqueue-asset-cleanup.service +%{_unitdir}/openqa-enqueue-asset-cleanup.timer +%{_unitdir}/openqa-enqueue-result-cleanup.service +%{_unitdir}/openqa-enqueue-result-cleanup.timer +%{_unitdir}/openqa-enqueue-bug-cleanup.service +%{_unitdir}/openqa-enqueue-bug-cleanup.timer +%{_tmpfilesdir}/openqa-webui.conf # web libs %dir %{_datadir}/openqa %{_datadir}/openqa/templates @@ -392,7 +414,6 @@ %{_datadir}/openqa/assets %{_datadir}/openqa/dbicdh %{_datadir}/openqa/script/check_dependencies -%{_datadir}/openqa/script/clean_needles %{_datadir}/openqa/script/create_admin %{_datadir}/openqa/script/fetchneedles %{_datadir}/openqa/script/initdb @@ -421,6 +442,8 @@ %ghost %{_localstatedir}/lib/openqa/db/db.sqlite %ghost %{_localstatedir}/log/openqa +%files devel + %files common %dir %{_datadir}/openqa %{_datadir}/openqa/lib @@ -472,7 +495,10 @@ %{_datadir}/openqa/script/clone_job.pl %{_datadir}/openqa/script/dump_templates %{_datadir}/openqa/script/load_templates +%{_datadir}/openqa/script/openqa-clone-job %{_datadir}/openqa/script/openqa-clone-custom-git-refspec +%{_datadir}/openqa/script/openqa-validate-yaml +%{_datadir}/openqa/script/configure-web-proxy %dir %{_datadir}/openqa/lib %{_datadir}/openqa/lib/OpenQA/Client.pm %{_datadir}/openqa/lib/OpenQA/Client @@ -482,6 +508,13 @@ %{_bindir}/openqa-dump-templates %{_bindir}/openqa-load-templates %{_bindir}/openqa-clone-custom-git-refspec +%{_bindir}/openqa-validate-yaml + +%if %{with python_scripts} +%files python-scripts +%{_datadir}/openqa/script/openqa-label-all +%{_bindir}/openqa-label-all +%endif %files doc %doc docs/* ++++++ _service ++++++ --- /var/tmp/diff_new_pack.GRItod/_old 2020-02-26 16:59:10.126845099 +0100 +++ /var/tmp/diff_new_pack.GRItod/_new 2020-02-26 16:59:10.130845107 +0100 @@ -1,9 +1,10 @@ <?xml version="1.0"?> <services> <service name="obs_scm" mode="disabled"> - <param name="extract">docker/travis_test/Dockerfile</param> <param name="extract">openQA.spec</param> <param name="extract">openQA-test.spec</param> + <param name="extract">openQA-worker-test.spec</param> + <param name="extract">openQA-devel-test.spec</param> <param name="url">git://github.com/os-autoinst/openQA.git</param> <param name="revision">master</param> <param name="versionprefix">4.6</param> ++++++ cache.txz ++++++ Binary files /var/tmp/diff_new_pack.GRItod/_old and /var/tmp/diff_new_pack.GRItod/_new differ ++++++ openQA-4.6.1555478309.f6dfdd9b.obscpio -> openQA-4.6.1582356603.73b75d1a4.obscpio ++++++ /work/SRC/openSUSE:Leap:15.2/openQA/openQA-4.6.1555478309.f6dfdd9b.obscpio /work/SRC/openSUSE:Leap:15.2/.openQA.new.26092/openQA-4.6.1582356603.73b75d1a4.obscpio differ: char 19, line 1 ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.GRItod/_old 2020-02-26 16:59:10.178845202 +0100 +++ /var/tmp/diff_new_pack.GRItod/_new 2020-02-26 16:59:10.182845209 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 4.6.1555478309.f6dfdd9b -mtime: 1555478309 -commit: f6dfdd9b3e8e359f0364cfedfc3c806030f47073 +version: 4.6.1582356603.73b75d1a4 +mtime: 1582356603 +commit: 73b75d1a43aad92debefae87364d7ed91c9a7ca3
