More fixes for editor config compliance
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
[report]
|
||||
omit =
|
||||
*/site-packages/*
|
||||
tests/*.py
|
||||
*/site-packages/*
|
||||
tests/*.py
|
||||
|
4
.ecrc
4
.ecrc
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"Verbose": false,
|
||||
"IgnoreDefaults": false,
|
||||
"Exclude": ["tests/fixtures", "LICENSE"],
|
||||
"SpacesAfterTabs": false,
|
||||
"Exclude": ["tests/fixtures", "LICENSE", "\\.py$", "publish_distro", "bs_copy"],
|
||||
"SpacesAfterTabs": true,
|
||||
"Disable": {
|
||||
"EndOfLine": false,
|
||||
"Indentation": false,
|
||||
|
@@ -27,3 +27,18 @@ indent_style = tab
|
||||
[**.{pl,py}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[staging_templates/create_new_staging]
|
||||
indent_style = tab
|
||||
|
||||
[publish_distro_conf/*.config]
|
||||
indent_style = tab
|
||||
|
||||
[osc-staging-workflow.dot]
|
||||
indent_size = 3
|
||||
|
||||
[factory-package-news/rsyslog/factory-package-news.conf]
|
||||
indent_style = tab
|
||||
|
||||
[data/repos.json]
|
||||
indent_size = 3
|
||||
|
10
.github/workflows/ci-test.yml
vendored
10
.github/workflows/ci-test.yml
vendored
@@ -27,11 +27,11 @@ jobs:
|
||||
- name: Run tests
|
||||
run: docker-compose -f dist/ci/docker-compose.yml run test
|
||||
env:
|
||||
# Specifies how many jobs you would like to run in parallel,
|
||||
# used for partitioning
|
||||
CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
||||
# Use the index from matrix as an environment variable
|
||||
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
||||
# Specifies how many jobs you would like to run in parallel,
|
||||
# used for partitioning
|
||||
CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
||||
# Use the index from matrix as an environment variable
|
||||
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
||||
|
||||
- name: Submit coverage report to Codecov
|
||||
uses: codecov/codecov-action@v1.5.2
|
||||
|
@@ -142,7 +142,7 @@ def test_basic(self):
|
||||
# Keep the workflow in local scope so that ending the test case will destroy it.
|
||||
# Destroying the workflow will also delete all created projects and packages. The
|
||||
# created workflow has a target project, but most of the test assets need to be created
|
||||
# as needed
|
||||
# as needed
|
||||
wf = OBSLocal.FactoryWorkflow()
|
||||
staging = wf.create_staging('A', freeze=True)
|
||||
wf.create_submit_request('devel:wine', 'wine')
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<!doctype html>
|
||||
{% block head %}
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
<meta charset=utf-8>
|
||||
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
<meta charset=utf-8>
|
||||
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
|
||||
<link rel="stylesheet" href="https://static.opensuse.org/themes/bento/css/style.fluid.css" media="screen" />
|
||||
{% endblock %}
|
||||
{% for message in get_flashed_messages() %}
|
||||
|
@@ -74,37 +74,37 @@
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
{% if project.ttm_version %}
|
||||
<a href="https://build.opensuse.org/package/show/{{ project.name }}/000product">{{ project.ttm_version }}</a>
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
{% if project.ttm_version %}
|
||||
<a href="https://build.opensuse.org/package/show/{{ project.name }}/000product">{{ project.ttm_version }}</a>
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% set ttm_testing = project.ttm_status.get('testing') %}
|
||||
{% if ttm_testing %}
|
||||
{% if project.openqa_version %}
|
||||
<a href='https://openqa.opensuse.org/tests/overview?version={{ project.openqa_version }}&groupid={{ project.openqa_id }}'>{{ ttm_testing }}</a>
|
||||
{% else %}
|
||||
{{ ttm_testing }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% set ttm_published = project.ttm_status.get('published', None) %}
|
||||
{% if ttm_published %}
|
||||
<a href="{{ project.download_url }}">{{ ttm_published }}</a>
|
||||
{% set ttm_testing = project.ttm_status.get('testing') %}
|
||||
{% if ttm_testing %}
|
||||
{% if project.openqa_version %}
|
||||
<a href='https://openqa.opensuse.org/tests/overview?version={{ project.openqa_version }}&groupid={{ project.openqa_id }}'>{{ ttm_testing }}</a>
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
{{ ttm_testing }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% set openqa_summary = project.openqa_summary() %}
|
||||
{% for state in openqa_summary.keys() %}
|
||||
{{ state }}: {{ openqa_summary[state]|length }}
|
||||
{% endfor %}
|
||||
{% set ttm_published = project.ttm_status.get('published', None) %}
|
||||
{% if ttm_published %}
|
||||
<a href="{{ project.download_url }}">{{ ttm_published }}</a>
|
||||
{% else %}
|
||||
n.a.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% set openqa_summary = project.openqa_summary() %}
|
||||
{% for state in openqa_summary.keys() %}
|
||||
{{ state }}: {{ openqa_summary[state]|length }}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@@ -15,5 +15,5 @@
|
||||
, <a href="https://build.opensuse.org/project/monitor/{{ project.name }}?unresolvable=1&defaults=0&repo_{{repository}}=1&{{project.all_archs}}">{{ progress['unresolvable'] }} unresolvable</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
n.a.
|
||||
n.a.
|
||||
{% endif %}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"openSUSE:Leap:15.3:Update": {
|
||||
"DISTRI": "opensuse",
|
||||
"FLAVOR": "DVD-Incidents",
|
||||
"VERSION": "15.3",
|
||||
"ARCH": "x86_64"
|
||||
"DISTRI": "opensuse",
|
||||
"FLAVOR": "DVD-Incidents",
|
||||
"VERSION": "15.3",
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"openSUSE:Backports:SLE-15-SP3:Update": {
|
||||
"DISTRI": "opensuse",
|
||||
@@ -12,10 +12,13 @@
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"openSUSE:Leap:15.4:Update": {
|
||||
"DISTRI": "opensuse",
|
||||
"FLAVOR": "DVD-Incidents",
|
||||
"VERSION": "15.4",
|
||||
"ARCH": ["x86_64", "aarch64"]
|
||||
"DISTRI": "opensuse",
|
||||
"FLAVOR": "DVD-Incidents",
|
||||
"VERSION": "15.4",
|
||||
"ARCH": [
|
||||
"x86_64",
|
||||
"aarch64"
|
||||
]
|
||||
},
|
||||
"openSUSE:Backports:SLE-15-SP4:Update": {
|
||||
"DISTRI": "opensuse",
|
||||
|
@@ -1,64 +1,64 @@
|
||||
{
|
||||
"https://openqa.opensuse.org" : {
|
||||
"openSUSE:Leap:15.3:Update" : {
|
||||
"settings" : {
|
||||
"OS_TEST_ISSUES" : "",
|
||||
"FLAVOR" : "DVD-Updates",
|
||||
"DISTRI" : "opensuse",
|
||||
"VERSION" : "15.3",
|
||||
"ARCH" : "x86_64"
|
||||
"https://openqa.opensuse.org": {
|
||||
"openSUSE:Leap:15.3:Update": {
|
||||
"settings": {
|
||||
"OS_TEST_ISSUES": "",
|
||||
"FLAVOR": "DVD-Updates",
|
||||
"DISTRI": "opensuse",
|
||||
"VERSION": "15.3",
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"test" : "kde",
|
||||
"repos" : [
|
||||
"test": "kde",
|
||||
"repos": [
|
||||
"http://download.opensuse.org/update/leap/15.3/oss/",
|
||||
"http://download.opensuse.org/update/leap/15.3/non-oss/",
|
||||
"http://download.opensuse.org/update/leap/15.3/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.3/sle/"
|
||||
]
|
||||
},
|
||||
"openSUSE:Backports:SLE-15-SP3:Update" : {
|
||||
"settings" : {
|
||||
"OS_TEST_ISSUES" : "",
|
||||
"FLAVOR" : "DVD-Backports-Incidents",
|
||||
"DISTRI" : "opensuse",
|
||||
"VERSION" : "15.3",
|
||||
"ARCH" : "x86_64"
|
||||
},
|
||||
"test" : "kde",
|
||||
"repos" : [
|
||||
"http://download.opensuse.org/update/leap/15.3/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.3/sle/"
|
||||
]
|
||||
},
|
||||
"openSUSE:Leap:15.4:Update" : {
|
||||
"settings" : {
|
||||
"OS_TEST_ISSUES" : "",
|
||||
"FLAVOR" : "DVD-Updates",
|
||||
"DISTRI" : "opensuse",
|
||||
"VERSION" : "15.4",
|
||||
"ARCH" : "x86_64"
|
||||
"openSUSE:Backports:SLE-15-SP3:Update": {
|
||||
"settings": {
|
||||
"OS_TEST_ISSUES": "",
|
||||
"FLAVOR": "DVD-Backports-Incidents",
|
||||
"DISTRI": "opensuse",
|
||||
"VERSION": "15.3",
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"test" : "textmode",
|
||||
"repos" : [
|
||||
"test": "kde",
|
||||
"repos": [
|
||||
"http://download.opensuse.org/update/leap/15.3/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.3/sle/"
|
||||
]
|
||||
},
|
||||
"openSUSE:Leap:15.4:Update": {
|
||||
"settings": {
|
||||
"OS_TEST_ISSUES": "",
|
||||
"FLAVOR": "DVD-Updates",
|
||||
"DISTRI": "opensuse",
|
||||
"VERSION": "15.4",
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"test": "textmode",
|
||||
"repos": [
|
||||
"http://download.opensuse.org/update/leap/15.4/oss/",
|
||||
"http://download.opensuse.org/update/leap/15.4/non-oss/",
|
||||
"http://download.opensuse.org/update/leap/15.4/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.4/sle/"
|
||||
]
|
||||
},
|
||||
"openSUSE:Backports:SLE-15-SP4:Update" : {
|
||||
"settings" : {
|
||||
"OS_TEST_ISSUES" : "",
|
||||
"FLAVOR" : "DVD-Backports-Incidents",
|
||||
"DISTRI" : "opensuse",
|
||||
"VERSION" : "15.4",
|
||||
"ARCH" : "x86_64"
|
||||
},
|
||||
"test" : "textmode",
|
||||
"repos" : [
|
||||
"http://download.opensuse.org/update/leap/15.4/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.4/sle/"
|
||||
]
|
||||
}
|
||||
"openSUSE:Backports:SLE-15-SP4:Update": {
|
||||
"settings": {
|
||||
"OS_TEST_ISSUES": "",
|
||||
"FLAVOR": "DVD-Backports-Incidents",
|
||||
"DISTRI": "opensuse",
|
||||
"VERSION": "15.4",
|
||||
"ARCH": "x86_64"
|
||||
},
|
||||
"test": "textmode",
|
||||
"repos": [
|
||||
"http://download.opensuse.org/update/leap/15.4/backports/",
|
||||
"http://download.opensuse.org/update/leap/15.4/sle/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
4
dist/ci/docker-compose-test.sh
vendored
4
dist/ci/docker-compose-test.sh
vendored
@@ -18,7 +18,7 @@ ci_node=$1
|
||||
|
||||
for file in tests/*_tests.py; do
|
||||
if test -n "$ci_node"; then
|
||||
if test "$ci_node" == "Rest"; then
|
||||
if test "$ci_node" == "Rest"; then
|
||||
if grep -q '# CI-Node' $file; then
|
||||
echo "Skipping $file in 'Rest'"
|
||||
continue
|
||||
@@ -27,7 +27,7 @@ for file in tests/*_tests.py; do
|
||||
if ! grep -q "# CI-Node: $ci_node" $file; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if ! test -f /code/.without-coverage; then
|
||||
COVER_ARGS="--cov=. --cov-append --cov-report=xml"
|
||||
|
6
dist/ci/docker-compose.yml
vendored
6
dist/ci/docker-compose.yml
vendored
@@ -20,9 +20,9 @@ services:
|
||||
<<: *obs
|
||||
command: >
|
||||
chroot --userspec=wwwrun / /bin/bash -c "cd /srv/www/obs/api &&
|
||||
RAILS_ENV=production ./bin/rake ts:rebuild &&
|
||||
RAILS_ENV=production ./script/delayed_job.api.rb --queues=staging,quick start &&
|
||||
./bin/bundle exec rails s -e production"
|
||||
RAILS_ENV=production ./bin/rake ts:rebuild &&
|
||||
RAILS_ENV=production ./script/delayed_job.api.rb --queues=staging,quick start &&
|
||||
./bin/bundle exec rails s -e production"
|
||||
depends_on:
|
||||
- db
|
||||
- cache
|
||||
|
10
dist/ci/testenv-tumbleweed/Dockerfile
vendored
10
dist/ci/testenv-tumbleweed/Dockerfile
vendored
@@ -6,11 +6,11 @@ RUN zypper -n ar http://download.opensuse.org/repositories/openSUSE:/Tools/openS
|
||||
RUN zypper --gpg-auto-import-keys ref
|
||||
|
||||
RUN zypper in -y osc python3-pytest python3-httpretty python3-pyxdg python3-PyYAML \
|
||||
python3-pika python3-mock python3-cmdln python3-lxml python3-python-dateutil python3-colorama \
|
||||
python3-influxdb python3-pytest-cov libxml2-tools curl python3-flake8 \
|
||||
shadow vim vim-data strace git sudo patch openSUSE-release openSUSE-release-ftp \
|
||||
perl-Net-SSLeay perl-Text-Diff perl-XML-Simple perl-XML-Parser build \
|
||||
obs-service-download_files obs-service-format_spec_file obs-scm-bridge
|
||||
python3-pika python3-mock python3-cmdln python3-lxml python3-python-dateutil python3-colorama \
|
||||
python3-influxdb python3-pytest-cov libxml2-tools curl python3-flake8 \
|
||||
shadow vim vim-data strace git sudo patch openSUSE-release openSUSE-release-ftp \
|
||||
perl-Net-SSLeay perl-Text-Diff perl-XML-Simple perl-XML-Parser build \
|
||||
obs-service-download_files obs-service-format_spec_file obs-scm-bridge
|
||||
RUN useradd tester -d /code/tests/home
|
||||
|
||||
COPY run_as_tester /usr/bin
|
||||
|
@@ -12,45 +12,52 @@ The generated release spec files are split into 000release-packages to avoid nee
|
||||
The package list generator reads several files. The most important are group*.yml (traditionally only groups.yml) within 000package-groups.
|
||||
|
||||
### supportstatus.txt
|
||||
|
||||
The file lists the packages and their support level. It's only necessary to list packages here that have a different level than the default level specificied in the groups. The format is plain text: <package name> <level> - the level is handed over 1:1 to KIWI file. Currently used values are: unsupported, l2 and l3
|
||||
|
||||
### group*.yml
|
||||
|
||||
The file is a list of package lists and the special hash 'OUTPUT'. OUTPUT contains an entry for every group file that needs to be written out. The group name of it needs to exist as package list as well. OUTPUT also contains flags for the groups.
|
||||
|
||||
We currently support:
|
||||
* default-support
|
||||
Sets the support level in case there is no explicitly entry in [supportstatus.txt](#supportstatustxt), defaults to 'unsupported'
|
||||
* recommends
|
||||
If the solver should take recommends into account when solving the package list, defaults to false.
|
||||
* includes
|
||||
Adds package lists to the group to be solved. Allows to organize different topics into the same group. By default there are no package lists added - the package list with the group name is always there.
|
||||
* excludes
|
||||
Removes all packages from the __solved__ groups listed. Used to build addons to main products.
|
||||
* conflicts
|
||||
Sets package groups not to be part of the same product. Influences the [overlap calculation](#overlap-calculation) only.
|
||||
|
||||
* **default-support**
|
||||
Sets the support level in case there is no explicitly entry in [supportstatus.txt](#supportstatustxt), defaults to 'unsupported'
|
||||
|
||||
* **recommends**
|
||||
If the solver should take recommends into account when solving the package list, defaults to false.
|
||||
|
||||
* **includes**
|
||||
Adds package lists to the group to be solved. Allows to organize different topics into the same group. By default there are no package lists added - the package list with the group name is always there.
|
||||
|
||||
* **excludes**
|
||||
Removes all packages from the __solved__ groups listed. Used to build addons to main products.
|
||||
|
||||
* **conflicts**
|
||||
Sets package groups not to be part of the same product. Influences the [overlap calculation](#overlap-calculation) only.
|
||||
|
||||
Be aware that group names must not contain a '-'.
|
||||
|
||||
You can also adapt the solving on a package level by putting a hash into the package list. Normally the package name is a string, in case it's a hash the key needs to be the package name and the value is a list of following modifiers:
|
||||
|
||||
* recommended
|
||||
Evaluate also 'Recommends' in package to determine dependencies. Otherwise only 'required' are considered. Used mainly for patterns in SLE. It can not be combined with platforms, For architecture specific recommends, use patterns.
|
||||
* suggested
|
||||
Evaluate also 'Suggests' in package to determine dependencies. This implies recommended
|
||||
* architecture (e.g. x86_64,s390x,ppc64le,aarch64)
|
||||
Makes the entry specific to the listed architectures. Will get ignored if used in combination with 'recommended'.
|
||||
* locked
|
||||
Do not put the package into this group. Used to *force* certain packages into other modules
|
||||
* silent
|
||||
Use this package for dependency solving of groups "on top", but do not output the package for this group. Mainly to mark the product to use by adding release packages. Use with care, this breaks dependency chains!
|
||||
* required
|
||||
If the package is missing or is uninstallable, don't leave a comment but put the error as package entry for OBS to create unresolvable error to avoid building a DVD
|
||||
* **recommended**
|
||||
Evaluate also 'Recommends' in package to determine dependencies. Otherwise only 'required' are considered. Used mainly for patterns in SLE. It can not be combined with platforms, For architecture specific recommends, use patterns.
|
||||
* **suggested**
|
||||
Evaluate also 'Suggests' in package to determine dependencies. This implies recommended
|
||||
* **architecture (e.g. x86_64,s390x,ppc64le,aarch64)**
|
||||
Makes the entry specific to the listed architectures. Will get ignored if used in combination with 'recommended'.
|
||||
* **locked**
|
||||
Do not put the package into this group. Used to *force* certain packages into other modules
|
||||
* **silent**
|
||||
Use this package for dependency solving of groups "on top", but do not output the package for this group. Mainly to mark the product to use by adding release packages. Use with care, this breaks dependency chains!
|
||||
* **required**
|
||||
If the package is missing or is uninstallable, don't leave a comment but put the error as package entry for OBS to create unresolvable error to avoid building a DVD
|
||||
|
||||
Note that you can write yaml lists in 2 ways. You can put the modifier lists as multiple lines starting with -, but it's recommended to put them as [M1,M2] behind the package name. See the difference between pkg4 and pkg5 in the example.
|
||||
|
||||
#### Example:
|
||||
#### Example
|
||||
|
||||
```
|
||||
```yaml
|
||||
OUTPUT:
|
||||
- group1:
|
||||
includes:
|
||||
@@ -88,9 +95,11 @@ list2:
|
||||
```
|
||||
|
||||
## Overlap calculation
|
||||
TODO
|
||||
|
||||
TODO
|
||||
|
||||
## Handling in staging workflow
|
||||
|
||||
If 000package-groups contains a file named summary-staging.txt, the bot will trigger a diff mode on staging projects.
|
||||
It will create an equal summary-staging.txt in 000product and create a comment with a human readable diff in the staging
|
||||
project. This comment can be replied to. If the reply starts with 'approve', staging accept will apply the diff to this
|
||||
|
@@ -88,24 +88,24 @@ are:
|
||||
* *accept* Accept all requests assigned to a staging project.
|
||||
|
||||
* *check* Check the status of the different request inside the staging
|
||||
project, including the status in openQA.
|
||||
project, including the status in openQA.
|
||||
|
||||
* *cleanup_rings* Check the status of the different rings in Factory.
|
||||
|
||||
* *rebase* Freeze the packages that are not affected in a staging project.
|
||||
In the past, this command used to be called 'freeze', which is still
|
||||
a valid alias.
|
||||
In the past, this command used to be called 'freeze', which is still
|
||||
a valid alias.
|
||||
|
||||
* *list* Accept all the requests from packages that are not in any
|
||||
ring, detect request that supersede the current ones that are
|
||||
actually tracked in staging projects, and list the remaining
|
||||
requests.
|
||||
ring, detect request that supersede the current ones that are
|
||||
actually tracked in staging projects, and list the remaining
|
||||
requests.
|
||||
|
||||
* *select* Move a request (or a list of requests) to a staging
|
||||
project, or move requests between staging projects.
|
||||
project, or move requests between staging projects.
|
||||
|
||||
* *unselect* Remove a request from a staging project, and publish it
|
||||
again into the backlog.
|
||||
again into the backlog.
|
||||
|
||||
|
||||
List
|
||||
|
@@ -153,7 +153,7 @@ while(<FL>) {
|
||||
$prv = 0;
|
||||
next;
|
||||
}
|
||||
s/ .*//; # no version stuff;
|
||||
s/ .*//; # no version stuff;
|
||||
push @{$whatprovides{$_}}, $pkg;
|
||||
next;
|
||||
}
|
||||
@@ -162,7 +162,7 @@ while(<FL>) {
|
||||
$con = 0;
|
||||
next;
|
||||
}
|
||||
s/ .*//; # no version stuff;
|
||||
s/ .*//; # no version stuff;
|
||||
s/^otherproviders\((.*)\)$/$1/;
|
||||
push @{$con{$pkg}}, $_;
|
||||
next;
|
||||
@@ -172,7 +172,7 @@ while(<FL>) {
|
||||
$obs= 0;
|
||||
next;
|
||||
}
|
||||
s/ .*//; # no version stuff;
|
||||
s/ .*//; # no version stuff;
|
||||
push @{$obs{$pkg}}, $_;
|
||||
next;
|
||||
}
|
||||
@@ -282,7 +282,7 @@ print STDERR "now ".@dirs." directories\n";
|
||||
|
||||
if (@implicit_conflicts) {
|
||||
print STDERR "have implicit conflicts, calculating dir owners\n";
|
||||
my @pdirs; # parent dirs
|
||||
my @pdirs; # parent dirs
|
||||
for (@dirs) {
|
||||
next unless /^(.*\/)(.*?)\/$/;
|
||||
$pdirs[$dirs{$_}] = $dirs{$1};
|
||||
@@ -322,7 +322,7 @@ if (@implicit_conflicts) {
|
||||
}
|
||||
}
|
||||
|
||||
%files = (); # free mem
|
||||
%files = (); # free mem
|
||||
|
||||
# reduce all-dir conflicts and trivial multiarch conflicts
|
||||
print STDERR "reducing trivial conflicts\n";
|
||||
@@ -363,7 +363,7 @@ my %pkgneeded;
|
||||
my %tocheck;
|
||||
my %tocheck_files;
|
||||
for my $f (sort keys %filesc) {
|
||||
my @p = sort(@{$filesc{$f}}); # normalize
|
||||
my @p = sort(@{$filesc{$f}}); # normalize
|
||||
$filesc{$f} = [ @p ];
|
||||
s/\/.*// for @p;
|
||||
$pkgneeded{$_} = 1 for @p;
|
||||
@@ -419,28 +419,28 @@ for my $tc (sort keys %tocheck) {
|
||||
next if $conflicts{"$p1\n$p2"};
|
||||
my @con;
|
||||
for my $f (@{$tocheck_files{$tc}}) {
|
||||
my @pp = grep {s/^(?:\Q$p1\E|\Q$p2\E)\///} map {$_} @{$filesc{$f}};
|
||||
next unless @pp;
|
||||
# ignore if (all directories or all ghosts or all links) and all same mode;
|
||||
my %allm = map {$_ => 1} @pp;
|
||||
my $info = '';
|
||||
if (keys(%allm) == 1) {
|
||||
my $m = (keys(%allm))[0];
|
||||
# all modes/flags are the same
|
||||
# no conflict if all dirs or all ghosts or all links
|
||||
next if $modes_type[$m] == 040000 || $modes_type[$m] == 0120000 || $modes_ghost[$m] == 0100;
|
||||
} else {
|
||||
# don't report mode mismatches for files/symlinks that are not ghosts
|
||||
for my $m (keys %allm) {
|
||||
if (($modes_type[$m] != 0100000 && $modes_type[$m] != 0120000) || $modes_ghost[$m] == 0100) {
|
||||
$info = ' [mode mismatch: '.join(', ', map {beautify_mode($_)} @pp).']';
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
# got one!
|
||||
$f =~ /^(\d+)\/(.*)/;
|
||||
push @con, "$dirs[$1]$2$info" unless "$dirs[$1]$2" =~ m{/etc/uefi/certs/.*crt};
|
||||
my @pp = grep {s/^(?:\Q$p1\E|\Q$p2\E)\///} map {$_} @{$filesc{$f}};
|
||||
next unless @pp;
|
||||
# ignore if (all directories or all ghosts or all links) and all same mode;
|
||||
my %allm = map {$_ => 1} @pp;
|
||||
my $info = '';
|
||||
if (keys(%allm) == 1) {
|
||||
my $m = (keys(%allm))[0];
|
||||
# all modes/flags are the same
|
||||
# no conflict if all dirs or all ghosts or all links
|
||||
next if $modes_type[$m] == 040000 || $modes_type[$m] == 0120000 || $modes_ghost[$m] == 0100;
|
||||
} else {
|
||||
# don't report mode mismatches for files/symlinks that are not ghosts
|
||||
for my $m (keys %allm) {
|
||||
if (($modes_type[$m] != 0100000 && $modes_type[$m] != 0120000) || $modes_ghost[$m] == 0100) {
|
||||
$info = ' [mode mismatch: '.join(', ', map {beautify_mode($_)} @pp).']';
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
# got one!
|
||||
$f =~ /^(\d+)\/(.*)/;
|
||||
push @con, "$dirs[$1]$2$info" unless "$dirs[$1]$2" =~ m{/etc/uefi/certs/.*crt};
|
||||
}
|
||||
next unless @con;
|
||||
my @sp1 = split(' ', $p1);
|
||||
|
@@ -2,5 +2,5 @@
|
||||
omit_hostname = true
|
||||
|
||||
[[outputs.influxdb]]
|
||||
urls = ["http://localhost:8086"]
|
||||
database = "osrt_telegraf"
|
||||
urls = ["http://localhost:8086"]
|
||||
database = "osrt_telegraf"
|
||||
|
@@ -10,7 +10,7 @@ digraph staging {
|
||||
review [ label="Review team", shape=ellipse, style=dashed ];
|
||||
factory [ label="openSUSE Factory" ];
|
||||
staging [ label="Staging project" ];
|
||||
|
||||
|
||||
devel -> review [ label="Developer submits fixes from staging repo" ];
|
||||
devel -> review [ label="Developer submits packages" ];
|
||||
review -> review [ label="Initial grouping of requests" ];
|
||||
|
Reference in New Issue
Block a user