Offline generation of 4.6.1732121872.463728ed

4.6.1732121872.463728ed
4.6.1732121872.463728ed
4.6.1732121872.463728ed
4.6.1732121872.463728ed

OBS-URL: https://build.opensuse.org/package/show/devel:openQA:tested/openQA?expand=0&rev=1389
This commit is contained in:
Oliver Kurz 2024-11-20 17:15:29 +00:00 committed by Git OBS Bridge
commit 9ef7711737
44 changed files with 12378 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

6
_multibuild Normal file
View File

@ -0,0 +1,6 @@
<multibuild>
<flavor>openQA-devel-test</flavor>
<flavor>openQA-test</flavor>
<flavor>openQA-worker-test</flavor>
<flavor>openQA-client-test</flavor>
</multibuild>

29
_service Normal file
View File

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="disabled">
<param name="extract">dist/rpm/openQA.spec</param>
<param name="extract">dist/rpm/openQA-test.spec</param>
<param name="extract">dist/rpm/openQA-worker-test.spec</param>
<param name="extract">dist/rpm/openQA-devel-test.spec</param>
<param name="extract">dist/rpm/openQA-client-test.spec</param>
<param name="extract">package-lock.json</param>
<param name="url">https://github.com/os-autoinst/openQA.git</param>
<param name="revision">master</param>
<param name="versionprefix">4.6</param>
<param name="versionformat">%ct.%h</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
<param name="changesauthor">okurz@suse.com</param>
</service>
<service name="set_version" mode="disabled"/>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
<service name="node_modules" mode="disabled">
<param name="cpio">node_modules.obscpio</param>
<param name="output">node_modules.spec.inc</param>
<param name="source-offset">1000</param>
</service>
</services>

3
node_modules.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7889934cf6374e67be9c2ee256ae79af1029ed83c2df508ed21e1215be9791fd
size 20254312

146
node_modules.spec.inc Normal file
View File

@ -0,0 +1,146 @@
Source1000: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#/@eslint-community-eslint-utils-4.4.1.tgz
Source1001: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#/@eslint-community-regexpp-4.12.1.tgz
Source1002: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz#/@eslint-config-array-0.19.0.tgz
Source1003: https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz#/@eslint-core-0.9.0.tgz
Source1004: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#/@eslint-eslintrc-3.2.0.tgz
Source1005: https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz#/@eslint-js-9.15.0.tgz
Source1006: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz#/@eslint-object-schema-2.1.4.tgz
Source1007: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz#/@eslint-plugin-kit-0.2.3.tgz
Source1008: https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz#/@humanfs-core-0.19.1.tgz
Source1009: https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz#/@humanfs-node-0.16.6.tgz
Source1010: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#/@humanwhocodes-module-importer-1.0.1.tgz
Source1011: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz#/@humanwhocodes-retry-0.3.1.tgz
Source1012: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz#/@humanwhocodes-retry-0.4.1.tgz
Source1013: https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz#/@pkgr-core-0.1.1.tgz
Source1014: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#/@popperjs-core-2.11.8.tgz
Source1015: https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz#/@types-estree-1.0.6.tgz
Source1016: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#/@types-json-schema-7.0.15.tgz
Source1017: https://registry.npmjs.org/ace-builds/-/ace-builds-1.36.5.tgz#/ace-builds-1.36.5.tgz
Source1018: https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz#/acorn-8.14.0.tgz
Source1019: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2.tgz
Source1020: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#/ajv-6.12.6.tgz
Source1021: https://registry.npmjs.org/anser/-/anser-2.3.0.tgz#/anser-2.3.0.tgz
Source1022: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#/ansi-styles-4.3.0.tgz
Source1023: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#/argparse-2.0.1.tgz
Source1024: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#/balanced-match-1.0.2.tgz
Source1025: https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz#/bootstrap-5.3.3.tgz
Source1026: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#/brace-expansion-1.1.11.tgz
Source1027: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#/callsites-3.1.0.tgz
Source1028: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#/chalk-4.1.2.tgz
Source1029: https://registry.npmjs.org/chosen-js/-/chosen-js-1.8.7.tgz#/chosen-js-1.8.7.tgz
Source1030: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#/color-convert-2.0.1.tgz
Source1031: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#/color-name-1.1.4.tgz
Source1032: https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#/commander-7.2.0.tgz
Source1033: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#/concat-map-0.0.1.tgz
Source1034: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#/cross-spawn-7.0.6.tgz
Source1035: https://registry.npmjs.org/d3/-/d3-7.9.0.tgz#/d3-7.9.0.tgz
Source1036: https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#/d3-array-3.2.4.tgz
Source1037: https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#/d3-axis-3.0.0.tgz
Source1038: https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#/d3-brush-3.0.0.tgz
Source1039: https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#/d3-chord-3.0.1.tgz
Source1040: https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#/d3-color-3.1.0.tgz
Source1041: https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz#/d3-contour-4.0.2.tgz
Source1042: https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz#/d3-delaunay-6.0.4.tgz
Source1043: https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#/d3-dispatch-3.0.1.tgz
Source1044: https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#/d3-drag-3.0.0.tgz
Source1045: https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#/d3-dsv-3.0.1.tgz
Source1046: https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#/d3-ease-3.0.1.tgz
Source1047: https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#/d3-fetch-3.0.1.tgz
Source1048: https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#/d3-force-3.0.0.tgz
Source1049: https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#/d3-format-3.1.0.tgz
Source1050: https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#/d3-geo-3.1.1.tgz
Source1051: https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#/d3-hierarchy-3.1.2.tgz
Source1052: https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#/d3-interpolate-3.0.1.tgz
Source1053: https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#/d3-path-3.1.0.tgz
Source1054: https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#/d3-polygon-3.0.1.tgz
Source1055: https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#/d3-quadtree-3.0.1.tgz
Source1056: https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#/d3-random-3.0.1.tgz
Source1057: https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#/d3-scale-4.0.2.tgz
Source1058: https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#/d3-scale-chromatic-3.1.0.tgz
Source1059: https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#/d3-selection-3.0.0.tgz
Source1060: https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#/d3-shape-3.2.0.tgz
Source1061: https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#/d3-time-3.1.0.tgz
Source1062: https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#/d3-time-format-4.1.0.tgz
Source1063: https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#/d3-timer-3.0.1.tgz
Source1064: https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#/d3-transition-3.0.1.tgz
Source1065: https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#/d3-zoom-3.0.0.tgz
Source1066: https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#/dagre-0.8.5.tgz
Source1067: https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#/dagre-d3-0.6.4.tgz
Source1068: https://registry.npmjs.org/datatables.net/-/datatables.net-2.1.8.tgz#/datatables.net-2.1.8.tgz
Source1069: https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.1.8.tgz#/datatables.net-bs5-2.1.8.tgz
Source1070: https://registry.npmjs.org/debug/-/debug-4.3.7.tgz#/debug-4.3.7.tgz
Source1071: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#/deep-is-0.1.4.tgz
Source1072: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.0.1.tgz
Source1073: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#/escape-string-regexp-4.0.0.tgz
Source1074: https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz#/eslint-9.15.0.tgz
Source1075: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#/eslint-config-prettier-9.1.0.tgz
Source1076: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#/eslint-plugin-prettier-5.2.1.tgz
Source1077: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz#/eslint-scope-8.2.0.tgz
Source1078: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#/eslint-visitor-keys-3.4.3.tgz
Source1079: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#/eslint-visitor-keys-4.2.0.tgz
Source1080: https://registry.npmjs.org/espree/-/espree-10.3.0.tgz#/espree-10.3.0.tgz
Source1081: https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#/esquery-1.6.0.tgz
Source1082: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#/esrecurse-4.3.0.tgz
Source1083: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#/estraverse-5.3.0.tgz
Source1084: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#/esutils-2.0.3.tgz
Source1085: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#/fast-deep-equal-3.1.3.tgz
Source1086: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#/fast-diff-1.3.0.tgz
Source1087: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#/fast-json-stable-stringify-2.1.0.tgz
Source1088: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#/fast-levenshtein-2.0.6.tgz
Source1089: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#/file-entry-cache-8.0.0.tgz
Source1090: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#/find-up-5.0.0.tgz
Source1091: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#/flat-cache-4.0.1.tgz
Source1092: https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz#/flatted-3.3.2.tgz
Source1093: https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.2.0.tgz#/fork-awesome-1.2.0.tgz
Source1094: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#/glob-parent-6.0.2.tgz
Source1095: https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#/globals-14.0.0.tgz
Source1096: https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#/graphlib-2.1.8.tgz
Source1097: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#/has-flag-4.0.0.tgz
Source1098: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#/iconv-lite-0.6.3.tgz
Source1099: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#/ignore-5.3.2.tgz
Source1100: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#/import-fresh-3.3.0.tgz
Source1101: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#/imurmurhash-0.1.4.tgz
Source1102: https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#/internmap-2.0.3.tgz
Source1103: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#/is-extglob-2.1.1.tgz
Source1104: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#/is-glob-4.0.3.tgz
Source1105: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#/isexe-2.0.0.tgz
Source1106: https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz#/jquery-3.7.1.tgz
Source1107: https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.3.tgz#/jquery-ujs-1.2.3.tgz
Source1108: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#/js-yaml-4.1.0.tgz
Source1109: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#/json-buffer-3.0.1.tgz
Source1110: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#/json-schema-traverse-0.4.1.tgz
Source1111: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#/json-stable-stringify-without-jsonify-1.0.1.tgz
Source1112: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#/keyv-4.5.4.tgz
Source1113: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#/levn-0.4.1.tgz
Source1114: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#/locate-path-6.0.0.tgz
Source1115: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#/lodash-4.17.21.tgz
Source1116: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#/lodash.merge-4.6.2.tgz
Source1117: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#/minimatch-3.1.2.tgz
Source1118: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#/ms-2.1.3.tgz
Source1119: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#/natural-compare-1.4.0.tgz
Source1120: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#/optionator-0.9.4.tgz
Source1121: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#/p-limit-3.1.0.tgz
Source1122: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#/p-locate-5.0.0.tgz
Source1123: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#/parent-module-1.0.1.tgz
Source1124: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#/path-exists-4.0.0.tgz
Source1125: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#/path-key-3.1.1.tgz
Source1126: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#/prelude-ls-1.2.1.tgz
Source1127: https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz#/prettier-3.3.3.tgz
Source1128: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#/prettier-linter-helpers-1.0.0.tgz
Source1129: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#/punycode-2.3.1.tgz
Source1130: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#/resolve-from-4.0.0.tgz
Source1131: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz#/robust-predicates-3.0.2.tgz
Source1132: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#/rw-1.3.3.tgz
Source1133: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#/safer-buffer-2.1.2.tgz
Source1134: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#/shebang-command-2.0.0.tgz
Source1135: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#/shebang-regex-3.0.0.tgz
Source1136: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#/strip-json-comments-3.1.1.tgz
Source1137: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#/supports-color-7.2.0.tgz
Source1138: https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz#/synckit-0.9.2.tgz
Source1139: https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz#/timeago-1.6.7.tgz
Source1140: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#/tslib-2.8.1.tgz
Source1141: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#/type-check-0.4.0.tgz
Source1142: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#/uri-js-4.4.1.tgz
Source1143: https://registry.npmjs.org/which/-/which-2.0.2.tgz#/which-2.0.2.tgz
Source1144: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#/word-wrap-1.2.5.tgz
Source1145: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#/yocto-queue-0.1.0.tgz

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bed420248f96ccde01e64dfbc820e4af29f4e86634ebcb03cb3ae1c039b30073
size 14647821

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:996d3494cd7b89d8ca1ad914e3575a936649601f022cc9d3f2b8f6011eaccf5e
size 14651405

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:036aa5405b26330879a9f40862aa8ad10cb5f4a848e3ad192e449b92ab16ce99
size 14651917

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dc2889cb79432b217ac14ea11299846273eed6cf03b6944baf541e7f807b81a6
size 14652941

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd1a06beca1aab6155e118e4947d5aaef086ff6125b3f46a93ee1ff56dad4181
size 14653453

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0cecf0c4fd4bc8e4d8663544742259827f0f7081c7bbce413ec391b6d24177cb
size 14659085

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b57237aba72e78cd16f78392f9ca490260ab689ee59e62eeb4b05b5d8ea95a77
size 14662669

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b20ff7494aa257c315bbc262e9b81df83aae7acdfdd7b15a6b20a397e29618a6
size 14659597

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:823254f82713047d780d6be631f38a649760576f85bfb4d140d8d73b40984fb7
size 14662157

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca8c925d7a962fa89178857f506458c9b5e4750f4c6cc2e35b3e45ef6d3d384b
size 14664205

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:597e4779d774a99ff3fe652d6dff982174adb5e0ffe99d204376d3a08503a444
size 14664717

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27cf63fdaabb18ae4af9e40610ea2c4256fd3ec02bfb0dc36283f3dedbec3fec
size 14667277

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55203bc7f4683d5f67dcf622d1221f0d1ff0cef9ad8383b0a1085c0026dae838
size 14668301

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5f6b1d662b20c2946c4ec60aa00f3e5159da2b726044f0b54f96bf3b52417129
size 14668301

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6ad1efd774a1d866b93bb010779af00a0418a7f2aeae5670a92da25b32f8fe5f
size 14688269

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29f572ac0b3c912305f7d3b6b34bc88af85f3931e29d9cbb24b62c340d3cc1d6
size 14710797

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:004877237f3598737a23f6d8fe6ec3d3eb26c2113441efa1c5425d3946d82ea0
size 14710285

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:385fcf8d7bc26ea6c8ecbf24c30c6a9c0181fc23e9723c6326645c4bc413bf6f
size 14705677

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e1a4f183b90fcc741c02f81c2e74e48b968531900797b5c6bbfefe924c79ee3
size 14731789

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c04d396d9eb7d5506e51d02f1a684a937fddd13cb3d025d98132e0784860768b
size 14732813

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:092ce1a94ad167d35ac9fb4043828efc85eb523512e752d0a37f1e206c93d2ef
size 14734349

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ffffdd3352feb61932229a63acb0a6ba37589373fdd5fa0b76d3e66beb8453b4
size 14731789

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7f1e39bdda9ef55da4d360acfc497b715d5556d04b0ec65bcea8a06573787337
size 14732813

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0a3c9cfeef85fb48d1514bf93d72e22ff1f15c7f1cc4e543977a34fb895e65c0
size 14742029

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7a4cc5fd5f88d476ddcbf564d4ea9f3ca7a5c341bf523dbb15c60e4a1f9adbfd
size 14742029

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a8c74e65db430487bf479372fa8ded16c3e9a1d1022a4bf3260faafb0551f652
size 14743565

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4483d02d9db6c63d53e2dcd9d45d78ea3d4c4a7542e5ce92198c6136c38ed471
size 14748173

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:24edad485762f4c228132b8d525a894da7136c067c0e98b02de5b120a26645dc
size 14749197

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1c82d5ab0c87f0e63e50ea3b523ab349958f414eb6b662a0a0a8e24308c0c71b
size 14749197

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:241a86ef8424d2cad517b8258fff7441e9cd6712ba915fafc91a1c0f3c2156f6
size 14752781

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:929fb2b658b1435dc682cc8f2adf1a99e6f5a31eddfd40e773ac00213ede6db5
size 14752269

44
openQA-client-test.spec Normal file
View File

@ -0,0 +1,44 @@
#
# spec file for package openQA-client-test
#
# Copyright (c) 2024 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-client
Name: %{short_name}-test
Version: 4.6.1732121872.463728ed
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
ExcludeArch: %{ix86}
%description
.
%prep
# workaround to prevent post/install failing assuming this file for whatever
# reason
touch %{_sourcedir}/%{short_name}
%build
openqa-client --help
openqa-cli --help
%install
# disable debug packages in package test to prevent error about missing files
%define debug_package %{nil}
%changelog

47
openQA-devel-test.spec Normal file
View File

@ -0,0 +1,47 @@
#
# spec file for package openQA-devel-test
#
# Copyright (c) 2024 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.1732121872.463728ed
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
ExcludeArch: %{ix86}
%ifarch ppc ppc64 ppc64le s390x
# missing chromedriver dependency
ExclusiveArch: do_not_build
%endif
%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

55
openQA-test.spec Normal file
View File

@ -0,0 +1,55 @@
#
# spec file for package openQA-test
#
# Copyright (c) 2024 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
Name: %{short_name}-test
Version: 4.6.1732121872.463728ed
Release: 0
Summary: Test package for openQA
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
BuildRequires: openQA-local-db
%if 0%{?suse_version} > 1500
BuildRequires: user(geekotest)
%endif
ExcludeArch: %{ix86}
%description
.
%prep
# workaround to prevent post/install failing assuming this file for whatever
# reason
touch %{_sourcedir}/%{short_name}
%build
# call one of the components but not openqa itself which would need a valid
# configuration
/usr/share/openqa/script/initdb --help
# verify whether assets can be loaded
perl -I/usr/share/openqa/lib -mOpenQA::Assets \
-e 'OpenQA::Assets::setup(Mojolicious->new(home => Mojo::Home->new("/usr/share/openqa")))'
getent passwd geekotest
%install
# disable debug packages in package test to prevent error about missing files
%define debug_package %{nil}
%changelog

47
openQA-worker-test.spec Normal file
View File

@ -0,0 +1,47 @@
#
# spec file for package openQA-worker-test
#
# Copyright (c) 2024 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.1732121872.463728ed
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
%if 0%{?suse_version} > 1500
BuildRequires: user(_openqa-worker)
%endif
ExcludeArch: %{ix86}
%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
getent passwd _openqa-worker
%install
# disable debug packages in package test to prevent error about missing files
%define debug_package %{nil}
%changelog

11058
openQA.changes Normal file

File diff suppressed because it is too large Load Diff

4
openQA.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: openQA
version: 4.6.1732121872.463728ed
mtime: 1732121872
commit: 463728ed8db939731aeae944800e14b4e47a7e31

822
openQA.spec Normal file
View File

@ -0,0 +1,822 @@
#
# spec file for package openQA
#
# Copyright (c) 2024 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/
#
# can't use linebreaks here!
%define openqa_main_service openqa-webui.service
%define openqa_extra_services 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-git-auto-update.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 openqa-enqueue-git-auto-update.timer
%define openqa_services %{openqa_main_service} %{openqa_extra_services}
%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() \
%{_bindir}/systemd-tmpfiles --create %{?*} || : \
%{nil}
%endif
# Run tests on openSUSE Tumbleweed and supported openSUSE Leap versions
%if 0%{?suse_version} >= 1550 || ( 0%{?is_opensuse} && 0%{?sle_version} >= 150100 )
%ifarch x86_64
%bcond_without tests
%else
%bcond_with tests
%endif
%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
# exclude additional sub packages that would pull in a lot of extra dependencies on SLE
%if 0%{?sle_version} && !0%{?is_opensuse}
%bcond_with devel_package
%bcond_with munin_package
%else
%bcond_without devel_package
%bcond_without munin_package
%endif
# runtime requirements that also the testsuite needs
%if %{with python_scripts}
%define python_scripts_requires python3-base python3-requests openQA-client
%else
%define python_scripts_requires %{nil}
%endif
# The following line is generated from dependencies.yaml
%define assetpack_requires perl(CSS::Minifier::XS) >= 0.01 perl(JavaScript::Minifier::XS) >= 0.11 perl(Mojolicious) perl(Mojolicious::Plugin::AssetPack) >= 1.36 perl(YAML::PP) >= 0.026
# The following line is generated from dependencies.yaml
%define common_requires ntp-daemon perl >= 5.20.0 perl(Carp::Always) >= 0.14.02 perl(Config::IniFiles) perl(Config::Tiny) perl(Cpanel::JSON::XS) >= 4.09 perl(Cwd) perl(Data::Dump) perl(Data::Dumper) perl(Digest::MD5) perl(Filesys::Df) perl(Getopt::Long) perl(Minion) >= 10.25 perl(Mojolicious) >= 9.340.0 perl(Regexp::Common) perl(Storable) perl(Text::Glob) perl(Time::Moment) perl(Try::Tiny)
# runtime requirements for the main package that are not required by other sub-packages
# The following line is generated from dependencies.yaml
%define main_requires %assetpack_requires bsdtar git-core hostname perl(BSD::Resource) perl(Carp) perl(CommonMark) perl(Config::Tiny) 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::OptimisticLocking) perl(DBIx::Class::ResultClass::HashRefInflator) perl(DBIx::Class::Schema::Config) perl(DBIx::Class::Storage::Statistics) perl(Date::Format) perl(DateTime) perl(DateTime::Duration) perl(DateTime::Format::Pg) perl(Exporter) perl(Fcntl) perl(File::Basename) perl(File::Copy) perl(File::Copy::Recursive) perl(File::Path) perl(File::Spec) perl(FindBin) perl(Getopt::Long::Descriptive) perl(IO::Handle) perl(IPC::Run) perl(JSON::Validator) perl(LWP::UserAgent) perl(Module::Load::Conditional) perl(Module::Pluggable) perl(Mojo::Base) perl(Mojo::ByteStream) perl(Mojo::IOLoop) perl(Mojo::JSON) perl(Mojo::Pg) perl(Mojo::RabbitMQ::Client) >= 0.2 perl(Mojo::URL) perl(Mojo::Util) perl(Mojolicious::Commands) perl(Mojolicious::Plugin) perl(Mojolicious::Plugin::OAuth2) perl(Mojolicious::Static) perl(Net::OpenID::Consumer) perl(POSIX) perl(Pod::POM) perl(SQL::Translator) perl(Scalar::Util) perl(Sort::Versions) perl(Text::Diff) perl(Time::HiRes) perl(Time::ParseDate) perl(Time::Piece) perl(Time::Seconds) perl(URI::Escape) perl(YAML::PP) >= 0.026 perl(YAML::XS) perl(aliased) perl(base) perl(constant) perl(diagnostics) perl(strict) perl(warnings)
# The following line is generated from dependencies.yaml
%define client_requires curl git-core jq perl(Getopt::Long::Descriptive) perl(IO::Socket::SSL) >= 2.009 perl(IPC::Run) perl(JSON::Validator) perl(LWP::Protocol::https) perl(LWP::UserAgent) perl(Test::More) perl(YAML::PP) >= 0.020 perl(YAML::XS)
# The following line is generated from dependencies.yaml
%define worker_requires bsdtar openQA-client optipng os-autoinst < 5 perl(Capture::Tiny) perl(File::Map) perl(Minion::Backend::SQLite) >= 5.0.7 perl(Mojo::IOLoop::ReadWriteProcess) >= 0.26 perl(Mojo::SQLite) psmisc sqlite3 >= 3.24.0
# The following line is generated from dependencies.yaml
%define build_requires %assetpack_requires npm rubygem(sass) >= 3.7.4
# All requirements needed by the tests executed during build-time.
# Do not require on this in individual sub-packages except for the devel
# package.
# The following line is generated from dependencies.yaml
%define test_requires %common_requires %main_requires %python_scripts_requires %worker_requires curl jq openssh-common os-autoinst perl(App::cpanminus) perl(Selenium::Remote::Driver) >= 1.23 perl(Selenium::Remote::WDKeys) perl(Test::Exception) perl(Test::Fatal) perl(Test::MockModule) perl(Test::MockObject) perl(Test::Mojo) perl(Test::Most) perl(Test::Output) perl(Test::Pod) perl(Test::Strict) perl(Test::Warnings) >= 0.029 postgresql-server python3-setuptools
%ifarch x86_64
%define qemu qemu qemu-kvm
%else
%define qemu qemu
%endif
# The following line is generated from dependencies.yaml
%define style_check_requires ShellCheck perl(Code::TidyAll) perl(Perl::Critic) perl(Perl::Critic::Freenode) python3-yamllint shfmt
# The following line is generated from dependencies.yaml
%define cover_requires perl(Devel::Cover) perl(Devel::Cover::Report::Codecovbash)
# The following line is generated from dependencies.yaml
%define devel_no_selenium_requires %build_requires %cover_requires %qemu %style_check_requires %test_requires curl perl(Perl::Tidy) postgresql-devel rsync sudo tar xorg-x11-fonts
# The following line is generated from dependencies.yaml
%define devel_requires %devel_no_selenium_requires chromedriver
Name: openQA
Version: 4.6.1732121872.463728ed
Release: 0
Summary: The openQA web-frontend, scheduler and tools
License: GPL-2.0-or-later
URL: http://os-autoinst.github.io/openQA/
Source0: %{name}-%{version}.tar.xz
Source2: node_modules.spec.inc
%include %{_sourcedir}/node_modules.spec.inc
BuildRequires: fdupes
# for install-opensuse in Makefile
%if 0%{?is_opensuse}
BuildRequires: openSUSE-release
%endif
%if 0%{?sle_version} && !0%{?is_opensuse}
BuildRequires: sles-release
%endif
BuildRequires: %{build_requires}
BuildRequires: local-npm-registry
Requires: %{main_requires}
Requires: openQA-client = %{version}
Requires: openQA-common = %{version}
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(SQL::SplitStatement)
Recommends: apache2
Recommends: apparmor-profiles
Recommends: apparmor-utils
Recommends: logrotate
# the plugin is needed if the auth method is set to "oauth2"
Recommends: perl(Mojolicious::Plugin::OAuth2)
# required to decompress .tar.xz compressed disk images/isos
Recommends: perl(IO::Uncompress::UnXz)
# server needs to run an rsync server if worker caching is used
Recommends: rsync
# We cannot use noarch because of the strict perl-Mojolicious-Plugin-AssetPack
# requirement. With noarch it can happen that the rpm built on aarch64 gets
# uploaded to download.opensuse.org, and aarch for some reason has an older
# version of that module. Then when we install on Tumbleweed, it doesn't
# have that older version anymore
#BuildArch: noarch
ExcludeArch: %{ix86}
%{?systemd_requires}
%if %{with tests}
BuildRequires: %{test_requires}
%endif
Requires(pre): group(nogroup)
%if 0%{?suse_version} > 1500
BuildRequires: sysuser-tools
%sysusers_requires
%endif
%description
openQA is a testing framework that allows you to test GUI applications on one
hand and bootloader and kernel on the other. In both cases, it is difficult to
script tests and verify the output. Output can be a popup window or it can be
an error in early boot even before init is executed.
openQA is an automated test tool that makes it possible to test the whole
installation process of an operating system. It uses virtual machines to
reproduce the process, check the output (both serial console and screen) in
every step and send the necessary keystrokes and commands to proceed to the
next. openQA can check whether the system can be installed, whether it works
properly in 'live' mode, whether applications work or whether the system
responds as expected to different installation options and commands.
Even more importantly, openQA can run several combinations of tests for every
revision of the operating system, reporting the errors detected for each
combination of hardware configuration, installation options and variant of the
operating system.
%if %{with devel_package}
%package no-selenium-devel
Summary: Development package pulling in all build+test dependencies except chromedriver for Selenium based tests
Requires: %{devel_no_selenium_requires}
%description no-selenium-devel
Development package pulling in all build+test dependencies except chromedriver for Selenium based tests.
%package devel
Summary: Development package pulling in all build+test dependencies
Requires: %{devel_requires}
%description devel
Development package pulling in all build+test dependencies.
%endif
%package common
Summary: The openQA common tools for web-frontend and workers
Requires: %{common_requires}
Requires: perl(Mojolicious) >= 8.24
%description common
This package contain shared resources for openQA web-frontend and
openQA workers.
%package worker
Summary: The openQA worker
%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.6
Recommends: qemu
# Needed for caching - not required if caching not used...
Recommends: rsync
# Optionally enabled with USE_PNGQUANT=1
Recommends: pngquant
# for Build Service Authentication
Recommends: openssh-common
%if 0%{?suse_version} >= 1330
Requires(pre): group(nogroup)
Requires(pre): group(kvm)
%endif
%description worker
The openQA worker manages test engine (provided by os-autoinst package).
%package client
Summary: Client tools for remote openQA management
Requires: %client_requires
Requires: openQA-common = %{version}
%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
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
Requires: %{name} = %{version}
Requires: postgresql-server
BuildRequires: postgresql-server
Supplements: packageand(%name:postgresql-server)
%description local-db
You only need this package if you have a local postgresql server
next to the webui.
%package single-instance
Summary: Convenience package for a single-instance setup using apache proxy
Provides: %{name}-single-instance-apache
Provides: %{name}-single-instance-apache2
Requires: %{name} = %{version}
Requires: %{name}-local-db
Requires: %{name}-worker = %{version}
Requires: apache2
%description single-instance
Use this package to setup a local instance with all services provided together.
%package single-instance-nginx
Summary: Convenience package for a single-instance setup using nginx proxy
Requires: %{name} = %{version}
Requires: %{name}-local-db
Requires: %{name}-worker = %{version}
Requires: nginx
%description single-instance-nginx
Use this package to setup a local instance with all services provided together.
%package bootstrap
Summary: Automated openQA setup
Requires: curl
Requires: iputils
Requires: procps
%description bootstrap
This can automatically setup openQA - either directly on your system
or within a systemd-nspawn container.
%package doc
Summary: The openQA documentation
%description doc
Documentation material covering installation, configuration, basic test writing, etc.
Covering both openQA and also os-autoinst test engine.
%package auto-update
Summary: Automatically upgrade and reboot the system when required
Requires: %{name}-common
Requires: curl
Requires: rebootmgr
%description auto-update
Use this package to install and enable a systemd service for nightly upgrading
and rebooting the system if devel:openQA packages are stable.
%package continuous-update
Summary: Continuously update packages from devel:openQA
Requires: %{name}-common
Requires: curl
%description continuous-update
Use this package to install and enable a systemd service for continuously
upgrading the system if devel:openQA packages are stable and contain updates. It
is complementary to auto-update which also reboots the system and does updates
regardless of whether devel:openQA contains updates.
%if %{with munin_package}
%package munin
Summary: Munin scripts
Requires: curl
Requires: munin
Requires: munin-node
Requires: perl
%description munin
Use this package to install munin scripts that allow to monitor some openQA
statistics.
%endif
%prep
%setup -q
sed -e 's,/bin/env python,/bin/python,' -i script/openqa-label-all
rm package-lock.json
local-npm-registry %{_sourcedir} install --also=dev --legacy-peer-deps
%build
%make_build
%if 0%{?suse_version} > 1500
%sysusers_generate_pre usr/lib/sysusers.d/%{name}-worker.conf %{name}-worker %{name}-worker.conf
%sysusers_generate_pre usr/lib/sysusers.d/geekotest.conf %{name} geekotest.conf
%endif
%check
#for double checking
%if %{with tests}
sed -i '/Perl::Tidy/d' cpanfile
cpanm -n --mirror http://no.where/ --installdeps --with-feature=test .
%endif
# we don't really need the tidy test
rm -f t/00-tidy.t
%if %{with tests}
rm -rf %{buildroot}/DB
export LC_ALL=en_US.UTF-8
# Skip tests not working currently, or flaky, and Selenium tests
# https://progress.opensuse.org/issues/19652
# 01-test-utilities.t: https://progress.opensuse.org/issues/73162
# 17-labels_carry_over.t: https://progress.opensuse.org/issues/60209
# api/14-plugin_obs_rsync_async.t: https://progress.opensuse.org/issues/68836
# t/43-scheduling-and-worker-scalability.t: https://progress.opensuse.org/issues/96545
rm \
t/01-test-utilities.t \
t/17-labels_carry_over.t \
t/25-cache-service.t \
t/api/14-plugin_obs_rsync_async.t \
t/43-scheduling-and-worker-scalability.t \
t/ui/*.t
# "CI" set with longer timeouts as needed for higher performance variations
# within CI systems, e.g. OBS. See t/lib/OpenQA/Test/TimeLimit.pm
export CI=1
export OPENQA_TEST_TIMEOUT_SCALE_CI=10
# Skip container tests that would need additional requirements, e.g.
# docker-compose. Also, these tests are less relevant (or not relevant) for
# packaging
export CONTAINER_TEST=0
export HELM_TEST=0
# We don't want fatal warnings during package building
export PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS=1
make test PROVE_ARGS='-r -v t' CHECKSTYLE=0 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
%if 0%{?suse_version} <= 1500
# we only use sysusers on Tumbleweed
rm -rf %{buildroot}/%{_sysusersdir}
%endif
mkdir -p %{buildroot}%{_datadir}/openqa%{_sysconfdir}/openqa
ln -s %{_sysconfdir}/openqa/openqa.ini %{buildroot}%{_datadir}/openqa%{_sysconfdir}/openqa/openqa.ini
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/openqa-cli %{buildroot}%{_bindir}/openqa-cli
ln -s %{_datadir}/openqa/script/openqa-clone-job %{buildroot}%{_bindir}/openqa-clone-job
ln -s %{_datadir}/openqa/script/openqa-dump-templates %{buildroot}%{_bindir}/openqa-dump-templates
ln -s %{_datadir}/openqa/script/openqa-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
ln -s %{_datadir}/openqa/script/setup-db %{buildroot}%{_bindir}/openqa-setup-db
%if %{with python_scripts}
ln -s %{_datadir}/openqa/script/openqa-label-all %{buildroot}%{_bindir}/openqa-label-all
%endif
# munin
%if %{with munin_package}
install -d -m 755 %{buildroot}/%{_prefix}/lib/munin/plugins
install -m 755 contrib/munin/plugins/minion %{buildroot}/%{_prefix}/lib/munin/plugins/openqa_minion_
install -d -m 755 %{buildroot}/%{_sysconfdir}/munin/plugin-conf.d
install -m 644 contrib/munin/config/minion.config %{buildroot}/%{_sysconfdir}/munin/plugin-conf.d/openqa-minion
install -m 755 contrib/munin/utils/munin-mail %{buildroot}/%{_datadir}/openqa/script/munin-mail
%endif
cd %{buildroot}
grep -rl %{_bindir}/env . | while read file; do
sed -e 's,%{_bindir}/env perl,%{_bindir}/perl,' -i $file
done
mkdir -p %{buildroot}%{_sbindir}
for i in webui gru worker scheduler websockets slirpvde vde_switch livehandler; do
ln -s ../sbin/service %{buildroot}%{_sbindir}/rcopenqa-$i
done
#
install -D -m 644 /dev/null %{buildroot}%{_localstatedir}/log/openqa
install -m 0644 %{_sourcedir}/openQA.changes %{buildroot}%{_datadir}/openqa/public/Changelog
#
mkdir %{buildroot}%{_localstatedir}/lib/openqa/pool/1
mkdir %{buildroot}%{_localstatedir}/lib/openqa/cache
mkdir %{buildroot}%{_localstatedir}/lib/openqa/webui
mkdir %{buildroot}%{_localstatedir}/lib/openqa/webui/cache
#
%fdupes %{buildroot}/%{_prefix}
%if 0%{?suse_version} > 1500
%pre -f %{name}.pre
%else
%pre
if ! getent passwd geekotest > /dev/null; then
%{_sbindir}/useradd -r -g nogroup -c "openQA user" \
-d %{_localstatedir}/lib/openqa geekotest 2>/dev/null || :
fi
%endif
%service_add_pre %{openqa_services}
%pre common
if [ "$1" = 1 ]; then
# upgrade from openQA -> openQA-common (before -> after package split)
# old data needs to be moved to new locations else cpio fail during package deploying
if [ -d "%{_localstatedir}/lib/openqa/" -a ! -d "%{_localstatedir}/lib/openqa/share" ]; then
echo "### performing migration of openQA data"
mkdir "%{_localstatedir}/lib/openqa/share"
if [ -e "%{_localstatedir}/lib/openqa/factory" ]; then
echo "### moving %{_localstatedir}/lib/openqa/factory to %{_localstatedir}/lib/openqa/share/"
mv "%{_localstatedir}/lib/openqa/factory" "%{_localstatedir}/lib/openqa/share/"
fi
fi
fi
%if 0%{?suse_version} > 1500
%pre worker -f openQA-worker.pre
%else
%pre worker
if ! getent passwd _openqa-worker > /dev/null; then
%{_sbindir}/useradd -r -g nogroup -c "openQA worker" \
-d %{_localstatedir}/lib/empty _openqa-worker 2>/dev/null || :
# might fail for non-kvm workers (qemu package owns the group)
%{_sbindir}/usermod _openqa-worker -a -G kvm || :
fi
%endif
%service_add_pre %{openqa_worker_services}
%pre auto-update
%service_add_pre openqa-auto-update.timer
%pre continuous-update
%service_add_pre openqa-continuous-update.timer
%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 || :
fi
if [ $1 -eq 1 ]; then
echo "### copy and edit %{_sysconfdir}/apache2/vhosts.d/openqa.conf.template if using apache!"
echo "### copy and edit %{_sysconfdir}/nginx/vhosts.d/openqa.conf.template if using nginx!"
echo "### run sudo %{_datadir}/openqa/script/fetchneedles"
else
if [ -d "%{_localstatedir}/lib/openqa/share/testresults" ]; then
# remove the symlink
rm "%{_localstatedir}/lib/openqa/testresults"
mv "%{_localstatedir}/lib/openqa/share/testresults" "%{_localstatedir}/lib/openqa/"
fi
# we don't want to require the scheduler for the webui (so we can stop it independent)
# but it should be enabled together with the webui
if test "$(systemctl is-enabled openqa-webui.service)" = "enabled"; then
systemctl enable openqa-scheduler.service
fi
fi
%service_add_post %{openqa_services}
%post worker
%tmpfiles_create %{_tmpfilesdir}/openqa.conf
%service_add_post %{openqa_worker_services}
%post auto-update
%service_add_post openqa-auto-update.timer
%post continuous-update
%service_add_post openqa-continuous-update.timer
%preun
%service_del_preun %{openqa_services}
%preun worker
%service_del_preun %{openqa_worker_services}
%preun auto-update
# not changing the service which might have triggered this update itself
%service_del_preun openqa-auto-update.timer
%preun continuous-update
# not changing the service which might have triggered this update itself
%service_del_preun openqa-continuous-update.timer
%postun
# reload main service (but do not restart it via service_del_postun to minimize downtimes)
if [ -x /usr/bin/systemctl ] && [ $1 -ge 1 ]; then
/usr/bin/systemctl reload %{openqa_main_service} || :
fi
# restart other services
%service_del_postun %{openqa_extra_services}
%restart_on_update apparmor
%postun worker
# restart worker services on updates; does *not* include services for worker slots unless openqa-worker.target
# is running at the time of the update
%service_del_postun %{openqa_worker_services}
# restart running openqa-worker-auto-restart@.service units without interrupting jobs
# notes: noop if no such units are running; daemon-reload already done by service_del_postun macro;
# "$1 -ge 1" checks for a package upgrade
if [ -x /usr/bin/systemctl ] && [ $1 -ge 1 ]; then
/usr/bin/systemctl reload 'openqa-worker-auto-restart@*.service' || :
fi
%postun auto-update
%service_del_postun openqa-auto-update.timer
%postun continuous-update
%service_del_postun openqa-continuous-update.timer
%post local-db
%service_add_post openqa-setup-db.service
%preun local-db
%service_del_preun openqa-setup-db.service
%postun local-db
%service_del_postun openqa-setup-db.service
%files
%doc README.asciidoc
%{_sbindir}/rcopenqa-gru
%{_sbindir}/rcopenqa-scheduler
%{_sbindir}/rcopenqa-websockets
%{_sbindir}/rcopenqa-webui
%{_sbindir}/rcopenqa-livehandler
%dir %{_sysconfdir}/openqa
%config(noreplace) %attr(-,geekotest,root) %{_sysconfdir}/openqa/openqa.ini
%config(noreplace) %attr(-,geekotest,root) %{_sysconfdir}/openqa/database.ini
%dir %{_datadir}/openqa
%dir %{_datadir}/openqa/etc
%dir %{_datadir}/openqa%{_sysconfdir}/openqa
%{_datadir}/openqa%{_sysconfdir}/openqa/openqa.ini
%{_datadir}/openqa%{_sysconfdir}/openqa/database.ini
%config %{_sysconfdir}/logrotate.d
# apache vhost
%dir %{_sysconfdir}/apache2
%dir %{_sysconfdir}/apache2/vhosts.d
%config %{_sysconfdir}/apache2/vhosts.d/openqa.conf.template
%config(noreplace) %{_sysconfdir}/apache2/vhosts.d/openqa-common.inc
%config %{_sysconfdir}/apache2/vhosts.d/openqa-ssl.conf.template
# nginx vhost
%dir %{_sysconfdir}/nginx
%dir %{_sysconfdir}/nginx/vhosts.d
%config %{_sysconfdir}/nginx/vhosts.d/openqa.conf.template
%config(noreplace) %{_sysconfdir}/nginx/vhosts.d/openqa-locations.inc
%config(noreplace) %{_sysconfdir}/nginx/vhosts.d/openqa-upstreams.inc
# 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
%{_unitdir}/openqa-livehandler.service
%{_unitdir}/openqa-gru.service
%dir %{_unitdir}/openqa-gru.service.requires
%{_unitdir}/openqa-scheduler.service
%dir %{_unitdir}/openqa-scheduler.service.requires
%{_unitdir}/openqa-websockets.service
%dir %{_unitdir}/openqa-websockets.service.requires
%{_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-git-auto-update.service
%{_unitdir}/openqa-enqueue-git-auto-update.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/lib/DBIx/
%{_datadir}/openqa/lib/OpenQA/LiveHandler.pm
%{_datadir}/openqa/lib/OpenQA/Resource/
%{_datadir}/openqa/lib/OpenQA/Scheduler/
%{_datadir}/openqa/lib/OpenQA/Schema/
%{_datadir}/openqa/lib/OpenQA/WebAPI/
%{_datadir}/openqa/lib/OpenQA/WebSockets/
%{_datadir}/openqa/templates
%{_datadir}/openqa/public
%{_datadir}/openqa/assets
%{_datadir}/openqa/dbicdh
%{_datadir}/openqa/node_modules
%{_datadir}/openqa/script/configure-web-proxy
%{_datadir}/openqa/script/create_admin
%{_datadir}/openqa/script/fetchneedles
%{_datadir}/openqa/script/initdb
%{_datadir}/openqa/script/openqa
%{_datadir}/openqa/script/openqa-scheduler
%{_datadir}/openqa/script/openqa-scheduler-daemon
%{_datadir}/openqa/script/openqa-websockets
%{_datadir}/openqa/script/openqa-websockets-daemon
%{_datadir}/openqa/script/openqa-livehandler
%{_datadir}/openqa/script/openqa-livehandler-daemon
%{_datadir}/openqa/script/openqa-enqueue-asset-cleanup
%{_datadir}/openqa/script/openqa-enqueue-audit-event-cleanup
%{_datadir}/openqa/script/openqa-enqueue-bug-cleanup
%{_datadir}/openqa/script/openqa-enqueue-git-auto-update
%{_datadir}/openqa/script/openqa-enqueue-result-cleanup
%{_datadir}/openqa/script/openqa-gru
%{_datadir}/openqa/script/openqa-rollback
%{_datadir}/openqa/script/openqa-webui-daemon
%{_datadir}/openqa/script/upgradedb
%{_datadir}/openqa/script/modify_needle
# TODO: define final user
%defattr(-,geekotest,root)
# attention: never package subdirectories owned by a user other
# than root as that opens a security hole!
%dir %{_localstatedir}/lib/openqa/db
%dir %{_localstatedir}/lib/openqa/images
%dir %{_localstatedir}/lib/openqa/webui
%dir %{_localstatedir}/lib/openqa/webui/cache
%{_localstatedir}/lib/openqa/testresults
%dir %{_localstatedir}/lib/openqa/share/tests
%dir %{_localstatedir}/lib/openqa/share/factory
# iso hdd repo must be geekotest writable to enable *_URL and HDD upload functionality
%dir %{_localstatedir}/lib/openqa/share/factory/iso
%dir %{_localstatedir}/lib/openqa/share/factory/hdd
%dir %{_localstatedir}/lib/openqa/share/factory/repo
%dir %{_localstatedir}/lib/openqa/share/factory/other
%ghost %{_localstatedir}/log/openqa
%if 0%{?suse_version} > 1500
%{_sysusersdir}/geekotest.conf
%endif
%if %{with devel_package}
%files devel
%endif
%files common
%dir %{_datadir}/openqa
%{_datadir}/openqa/lib
%exclude %{_datadir}/openqa/lib/OpenQA/CacheService/
%exclude %{_datadir}/openqa/lib/DBIx/
%exclude %{_datadir}/openqa/lib/OpenQA/Client.pm
%exclude %{_datadir}/openqa/lib/OpenQA/Client
%exclude %{_datadir}/openqa/lib/OpenQA/UserAgent.pm
%exclude %{_datadir}/openqa/lib/OpenQA/LiveHandler.pm
%exclude %{_datadir}/openqa/lib/OpenQA/Resource/
%exclude %{_datadir}/openqa/lib/OpenQA/Scheduler/
%exclude %{_datadir}/openqa/lib/OpenQA/Schema/
%exclude %{_datadir}/openqa/lib/OpenQA/WebAPI/
%exclude %{_datadir}/openqa/lib/OpenQA/WebSockets/
%exclude %{_datadir}/openqa/lib/OpenQA/Worker/
%dir %{_localstatedir}/lib/openqa
%ghost %dir %{_localstatedir}/lib/openqa/share/
%{_localstatedir}/lib/openqa/factory
%{_localstatedir}/lib/openqa/script
%{_localstatedir}/lib/openqa/tests
%{_datadir}/openqa/script/openqa-check-devel-repo
%{_unitdir}/openqa-minion-restart.service
%{_unitdir}/openqa-minion-restart.path
%files worker
%{_datadir}/openqa/lib/OpenQA/CacheService/
%{_datadir}/openqa/lib/OpenQA/Worker/
%{_sbindir}/rcopenqa-slirpvde
%{_sbindir}/rcopenqa-vde_switch
%{_sbindir}/rcopenqa-worker
%config(noreplace) %{_sysconfdir}/openqa/workers.ini
%config(noreplace) %attr(0400,_openqa-worker,root) %{_sysconfdir}/openqa/client.conf
# apparmor profile
%dir %{_sysconfdir}/apparmor.d
%config %{_sysconfdir}/apparmor.d/usr.share.openqa.script.worker
%dir %{_sysconfdir}/apparmor.d/local
%config %{_sysconfdir}/apparmor.d/local/usr.share.openqa.script.worker
# init
%dir %{_unitdir}
%{_systemdgeneratordir}
%{_unitdir}/openqa-worker.target
%{_unitdir}/openqa-worker.slice
%{_unitdir}/openqa-worker@.service
%{_unitdir}/openqa-worker-plain@.service
%{_unitdir}/openqa-worker-cacheservice-minion.service
%{_unitdir}/openqa-worker-cacheservice.service
%{_unitdir}/openqa-worker-no-cleanup@.service
%{_unitdir}/openqa-worker-auto-restart@.service
%{_unitdir}/openqa-reload-worker-auto-restart@.service
%{_unitdir}/openqa-reload-worker-auto-restart@.path
%{_unitdir}/openqa-slirpvde.service
%{_unitdir}/openqa-vde_switch.service
%{_datadir}/openqa/script/openqa-slirpvde
%{_datadir}/openqa/script/openqa-vde_switch
%{_tmpfilesdir}/openqa.conf
%ghost %dir %{_rundir}/openqa
# worker libs
%dir %{_datadir}/openqa
%dir %{_datadir}/openqa/script
%{_datadir}/openqa/script/worker
%{_datadir}/openqa/script/openqa-workercache
%{_datadir}/openqa/script/openqa-workercache-daemon
%{_datadir}/openqa/script/openqa-worker-cacheservice-minion
%dir %{_localstatedir}/lib/openqa/pool
%defattr(-,_openqa-worker,root)
%dir %{_localstatedir}/lib/openqa/cache
# own one pool - to create the others is task of the admin
%dir %{_localstatedir}/lib/openqa/pool/1
%if 0%{?suse_version} > 1500
%{_sysusersdir}/%{name}-worker.conf
%endif
%files client
%dir %{_datadir}/openqa
%dir %{_datadir}/openqa/script
%{_datadir}/openqa/script/client
%{_datadir}/openqa/script/clone_job.pl
%{_datadir}/openqa/script/dump_templates
%{_datadir}/openqa/script/load_templates
%{_datadir}/openqa/script/openqa-dump-templates
%{_datadir}/openqa/script/openqa-load-templates
%{_datadir}/openqa/script/openqa-cli
%{_datadir}/openqa/script/openqa-clone-job
%{_datadir}/openqa/script/openqa-clone-custom-git-refspec
%{_datadir}/openqa/script/openqa-validate-yaml
%dir %{_datadir}/openqa/lib
%{_datadir}/openqa/lib/OpenQA/Client.pm
%{_datadir}/openqa/lib/OpenQA/Client
%{_datadir}/openqa/lib/OpenQA/UserAgent.pm
%{_bindir}/openqa-client
%{_bindir}/openqa-cli
%{_bindir}/openqa-clone-job
%{_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/*
%files local-db
%{_unitdir}/openqa-setup-db.service
%{_unitdir}/openqa-gru.service.requires/postgresql.service
%{_unitdir}/openqa-scheduler.service.requires/postgresql.service
%{_unitdir}/openqa-websockets.service.requires/postgresql.service
%{_datadir}/openqa/script/setup-db
%{_bindir}/openqa-setup-db
%files single-instance
%files single-instance-nginx
%files bootstrap
%{_datadir}/openqa/script/openqa-bootstrap
%{_datadir}/openqa/script/openqa-bootstrap-container
%files auto-update
%dir %{_unitdir}
%{_unitdir}/openqa-auto-update.*
%{_datadir}/openqa/script/openqa-auto-update
%files continuous-update
%dir %{_unitdir}
%{_unitdir}/openqa-continuous-update.*
%{_datadir}/openqa/script/openqa-continuous-update
%if %{with munin_package}
%files munin
%defattr(-,root,root)
%doc contrib/munin/config/minion.config
%dir %{_datadir}/openqa/script
%dir %{_prefix}/lib/munin
%dir %{_prefix}/lib/munin/plugins
%dir %{_sysconfdir}/munin
%dir %{_sysconfdir}/munin/plugin-conf.d
%{_prefix}/lib/munin/plugins/openqa_minion_
%{_datadir}/openqa/script/munin-mail
%config(noreplace) %{_sysconfdir}/munin/plugin-conf.d/openqa-minion
%endif
%changelog