* [PR PATCH] Check file conflicts in x86_64 build job
@ 2022-04-26 20:55 Chocimier
2022-05-02 14:13 ` [PR REVIEW] " classabbyamp
` (16 more replies)
0 siblings, 17 replies; 18+ messages in thread
From: Chocimier @ 2022-04-26 20:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 419 bytes --]
There is a new pull request by Chocimier against master on the void-packages repository
https://github.com/Chocimier/void-packages-org lint-conflicts
https://github.com/void-linux/void-packages/pull/36876
Check file conflicts in x86_64 build job
Report packages installing same file and not marked with conflicts or replaces.
A patch file from https://github.com/void-linux/void-packages/pull/36876.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-lint-conflicts-36876.patch --]
[-- Type: text/x-diff, Size: 7721 bytes --]
From 8ccedb3d2f633a450eaf35dc42fe38bc19ee65b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Tue, 26 Apr 2022 20:05:50 +0200
Subject: [PATCH 1/3] common/travis: use patched xtools
---
common/travis/fetch-xtools.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/travis/fetch-xtools.sh b/common/travis/fetch-xtools.sh
index 0dd9e6c532c0..2006774a1bc5 100755
--- a/common/travis/fetch-xtools.sh
+++ b/common/travis/fetch-xtools.sh
@@ -4,7 +4,7 @@
TAR=tar
command -v bsdtar >/dev/null && TAR=bsdtar
-URL="https://github.com/leahneukirchen/xtools/archive/master.tar.gz"
+URL="https://github.com/Chocimier/xtools/archive/master.tar.gz"
FILE="xtools.tar.gz"
mkdir -p /tmp/bin
From ba5b1d593e15420f21fca741ec83cdef928e24e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Mon, 25 Apr 2022 23:02:57 +0200
Subject: [PATCH 2/3] common/: add script finding file conflicts
---
common/scripts/lint-conflicts | 187 ++++++++++++++++++++++++++++++++++
1 file changed, 187 insertions(+)
create mode 100755 common/scripts/lint-conflicts
diff --git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts
new file mode 100755
index 000000000000..2fd5c9eea012
--- /dev/null
+++ b/common/scripts/lint-conflicts
@@ -0,0 +1,187 @@
+#!/usr/bin/env bash
+
+# Report packages installing same file and not marked with
+# conflicts or replaces.
+# If file /tmp/templates is present, find conflicts between packages
+# listed there one per line, including their subpackages,
+# and packages indexed in xlocate. The convention is taken from CI.
+# If the file is not present, find conflicts between packages indexed
+# in xlocate.
+
+export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo
+
+declare -A newly_built conflicts_cache providers_cache pairs owners
+repositories="--repository=$HOME/hostdir/binpkgs --repository=$HOME/hostdir/binpkgs/nonfree"
+rv=0
+
+template_exists() {
+ [ -e "srcpkgs/$1/template" ]
+}
+
+partial_check() {
+ [ -s /tmp/templates ]
+}
+
+providers_of() {
+ # print the pkgname and packages that `provides` it
+ local pkgname=$1
+ local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname
+ if [ "${providers_cache[$pkgname]}" = '' ]; then
+ declare -A providers
+ providers[$pkgname]=$pkgname
+ while read -r line; do
+ line=${line%%'('*}
+ provider_pkgver=${line%': '*}
+ provided_pkgver=${line#*': '}
+ provider_pkgname=${provider_pkgver%-*}
+ provided_pkgname=${provided_pkgver%-*}
+ # comes from $(xbps-query -s $pkgname), so $pkgname can be substring
+ if [ "$provided_pkgname" = "$pkgname" ]; then
+ providers[$provider_pkgname]=$provider_pkgname
+ fi
+ done < <(xbps-query $repositories -p provides -R -s "$pkgname")
+ # leading space ensures ${[]} != ''
+ providers_cache[$pkgname]=" ${providers[*]}"
+ fi
+ echo ${providers_cache[$pkgname]}
+}
+
+conflicts_of() {
+ # print list of packages that are _marked_ as confliting with given one
+ local pkgname=$1
+ local in_conflict provider
+ if [ "${conflicts_cache[$pkgname]}" = '' ]; then
+ local -A all
+ while read -r in_conflict; do
+ in_conflict=${in_conflict%'<'*}
+ in_conflict=${in_conflict%'>'*}
+ providers_of "$in_conflict" > /dev/null # executing in same process to fill cache
+ for provider in $(providers_of "$in_conflict"); do
+ all[$provider]=$provider
+ done
+ done < <(xbps-query $repositories -p conflicts,replaces -R "$pkgname")
+ # leading space ensures ${[]} != ''
+ conflicts_cache[$pkgname]=" ${all[*]}"
+ fi
+ echo ${conflicts_cache[$pkgname]}
+}
+
+conflict_between() {
+ # exit successfully if packages are _marked_ as conflicting
+ if [ "$1" = "$2" ]; then
+ return 0 # can't install twice ;)
+ fi
+ conflicts_of "$1" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$1") " in
+ *" $2 "*) return 0
+ esac
+ conflicts_of "$2" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$2") " in
+ *" $1 "*) return 0
+ esac
+ return 1
+}
+
+list_newly_built_files() {
+ # print one line per file in newly build packages
+ # each line contains pkgname and file path
+ local pkg subpkg file
+ while read -r pkg; do
+ for subpkg in $(xsubpkg "$pkg"); do
+ while read -r file; do
+ echo "$subpkg" "$file"
+ done < <(xbps-query $repositories -i -f "$subpkg" | sed s'/ -> .*//')
+ done
+ done < /tmp/templates
+}
+
+list_interesting_files() {
+ # list files potentially contained in more than one package
+ # each line contains pkgname and file path
+ if partial_check; then
+ list_newly_built_files
+ else
+ xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
+ fi
+}
+
+group_by_file_full() {
+ # create associative array `owners` mapping file to list of packages
+ # for packages potentially conflicting with newly built ones
+ local pkgver file pkgname
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(list_interesting_files)
+}
+
+group_by_file_partial() {
+ # create associative array `owners` mapping file to list of packages
+ # for all packages in xlocate
+ local pkgname file pkgver
+ ## newly build packages
+ while read -r pkgname file; do
+ owners[$file]+=" $pkgname"
+ newly_built[$pkgname]=$pkgname
+ done < <(list_newly_built_files)
+ ## rest of repository
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-))
+}
+
+group_by_pair() {
+ # find package pairs owning same file and not marked as conflicting
+ local pkg file a b
+ while read -r pkg file; do
+ for a in ${owners[$file]}; do
+ for b in ${owners[$file]}; do
+ if ! [ "$a" "<" "$b" ]; then
+ continue
+ fi
+ if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then
+ continue
+ fi
+ if ! conflict_between "$a" "$b"; then
+ unset pair_files
+ local -A pair_files
+ eval "${pairs["$a $b"]}"
+ pair_files[$file]="$file"
+ pairs["$a $b"]="${pair_files[@]@A}"
+ fi
+ done
+ done
+ done < <(list_interesting_files)
+}
+
+print_out() {
+ local pair file
+ if [ 0 = "${#pairs[@]}" ]; then
+ echo 1>&2 "No conflicts found"
+ exit 0
+ fi
+ while read -r pair; do
+ rv=1
+ echo "${pair% *} and ${pair#* } conflict for"
+ unset pair_files
+ eval "${pairs[$pair]}"
+ for file in "${pair_files[@]}"; do
+ echo " $file"
+ done | sort
+ done < <(printf '%s\n' "${!pairs[@]}" | sort)
+}
+
+if partial_check; then
+ group_by_file_partial
+else
+ group_by_file_full
+fi
+group_by_pair
+print_out
+
+exit $rv
From a93c62ce18158fc1259e171b6f54dd59c18d58d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Tue, 26 Apr 2022 17:13:30 +0200
Subject: [PATCH 3/3] .github: check file conflicts in x86_64 build job
---
.github/workflows/build.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2ae7a3e728fa..f72d6f6c2c43 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -94,6 +94,12 @@ jobs:
"$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH"
)
+ - name: Check file conflicts
+ if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate
+ run: |
+ xlocate -S &&
+ common/scripts/lint-conflicts
+
- name: Verify repository state
run: |
(
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
2022-05-02 14:13 ` [PR REVIEW] " classabbyamp
2022-05-02 14:13 ` classabbyamp
@ 2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
` (13 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-02 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 191 bytes --]
New review comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r862566012
Comment:
nit/typo: `confliting` -> `conflicting`
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (3 preceding siblings ...)
2022-05-02 14:13 ` classabbyamp
@ 2022-05-02 14:13 ` classabbyamp
2022-05-04 21:02 ` [PR PATCH] [Updated] " Chocimier
` (11 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-02 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 180 bytes --]
New review comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r862566708
Comment:
nit/typo: `build` -> `built`
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
@ 2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
` (15 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-02 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 173 bytes --]
New review comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r862567655
Comment:
same nit/typo (built)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (2 preceding siblings ...)
2022-05-02 14:13 ` classabbyamp
@ 2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
` (12 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-02 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 189 bytes --]
New review comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r862568072
Comment:
this can be switched back now, right?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
2022-05-02 14:13 ` [PR REVIEW] " classabbyamp
@ 2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
` (14 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-02 14:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 196 bytes --]
New review comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r862565817
Comment:
shouldn't this be `-f` (exists and is file)?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR PATCH] [Updated] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (4 preceding siblings ...)
2022-05-02 14:13 ` classabbyamp
@ 2022-05-04 21:02 ` Chocimier
2022-05-04 21:03 ` [PR REVIEW] " Chocimier
` (10 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 424 bytes --]
There is an updated pull request by Chocimier against master on the void-packages repository
https://github.com/Chocimier/void-packages-org lint-conflicts
https://github.com/void-linux/void-packages/pull/36876
Check file conflicts in x86_64 build job
Report packages installing same file and not marked with conflicts or replaces.
A patch file from https://github.com/void-linux/void-packages/pull/36876.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-lint-conflicts-36876.patch --]
[-- Type: text/x-diff, Size: 7201 bytes --]
From e930d3bc7094feb596b98b2ad2d3f582ecf03555 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 1/2] common/: add script finding file conflicts
---
common/scripts/lint-conflicts | 195 ++++++++++++++++++++++++++++++++++
1 file changed, 195 insertions(+)
create mode 100755 common/scripts/lint-conflicts
diff --git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts
new file mode 100755
index 000000000000..10fe7a20b6f9
--- /dev/null
+++ b/common/scripts/lint-conflicts
@@ -0,0 +1,195 @@
+#!/usr/bin/env bash
+
+# Report packages installing same file and not marked with
+# conflicts or replaces.
+# Without argument, find conflicts between packages in local
+# repository at hostdir/binpkgs and packages indexed in xlocate.
+# With single path as argument, read that local repository.
+# With -a flag, find conflicts between packages indexed in xlocate.
+
+if [ "$#" = 0 ]; then
+ binpkgs="$PWD/hostdir/binpkgs"
+elif [ "$1" = -a ]; then
+ all=1
+elif [ -d "$1" ]; then
+ binpkgs="$1"
+else
+ echo "Usage:"
+ echo "$0"
+ echo " check packages in ./hostdir/binpkgs"
+ echo "$0 path/to/hostdir/binpkgs"
+ echo " check packages there"
+ echo "$0 -a"
+ echo " check all packages indexed in xlocate"
+ exit 1
+fi
+
+declare -A newly_built conflicts_cache providers_cache pairs owners
+repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree")
+rv=0
+
+template_exists() {
+ [ -f "srcpkgs/$1/template" ]
+}
+
+partial_check() {
+ [ -z "$all" ]
+}
+
+providers_of() {
+ # print the pkgname and packages that `provides` it
+ local pkgname=$1
+ if [ "${providers_cache[$pkgname]}" = '' ]; then
+ local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname
+ local -A providers
+ providers[$pkgname]=$pkgname
+ while read -r line; do
+ line=${line%%'('*}
+ provider_pkgver=${line%': '*}
+ provided_pkgver=${line#*': '}
+ provider_pkgname=${provider_pkgver%-*}
+ provided_pkgname=${provided_pkgver%-*}
+ # comes from $(xbps-query -s $pkgname), so $pkgname can be substring
+ if [ "$provided_pkgname" = "$pkgname" ]; then
+ providers[$provider_pkgname]=$provider_pkgname
+ fi
+ done < <(xbps-query "${repositories[@]}" -p provides -R -s "$pkgname")
+ # leading space ensures ${[]} != ''
+ providers_cache[$pkgname]=" ${providers[*]}"
+ fi
+ echo ${providers_cache[$pkgname]}
+}
+
+conflicts_of() {
+ # print list of packages that are _marked_ as confliting with given one
+ local pkgname=$1
+ if [ "${conflicts_cache[$pkgname]}" = '' ]; then
+ local in_conflict provider
+ local -A all
+ while read -r in_conflict; do
+ in_conflict=${in_conflict%'<'*}
+ in_conflict=${in_conflict%'>'*}
+ providers_of "$in_conflict" > /dev/null # executing in same process to fill cache
+ for provider in $(providers_of "$in_conflict"); do
+ all[$provider]=$provider
+ done
+ done < <(xbps-query "${repositories[@]}" -p conflicts,replaces -R "$pkgname")
+ # leading space ensures ${[]} != ''
+ conflicts_cache[$pkgname]=" ${all[*]}"
+ fi
+ echo ${conflicts_cache[$pkgname]}
+}
+
+conflict_between() {
+ # exit successfully if packages are _marked_ as conflicting
+ conflicts_of "$1" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$1") " in
+ *" $2 "*) return 0
+ esac
+ conflicts_of "$2" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$2") " in
+ *" $1 "*) return 0
+ esac
+ return 1
+}
+
+list_newly_built_files() {
+ # print one line per file in newly build packages
+ # each line contains pkgname and file path
+ local pkgver pkgname
+ while read -r pkgver; do
+ pkgname=${pkgver%-*}
+ xbps-query "${repositories[@]}" -i -f "$pkgname" | sed s'/ -> .*//;'" s/^/$pkgname /"
+ done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2)
+}
+
+list_interesting_files() {
+ # list files potentially contained in more than one package
+ # each line contains pkgver/pkgname and file path
+ if partial_check; then
+ list_newly_built_files
+ else
+ xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
+ fi
+}
+
+group_by_file_full() {
+ # create associative array `owners` mapping file to list of packages
+ # for packages potentially conflicting with newly built ones
+ local pkgver file pkgname
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(list_interesting_files)
+}
+
+group_by_file_partial() {
+ # create associative array `owners` mapping file to list of packages
+ # for all packages in xlocate
+ local pkgname file
+ ## newly build packages
+ while read -r pkgname file; do
+ owners[$file]+=" $pkgname"
+ newly_built[$pkgname]=$pkgname
+ done < <(list_newly_built_files)
+ ## rest of repository
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-))
+}
+
+group_by_pair() {
+ # find package pairs owning same file and not marked as conflicting
+ local pkg file a b
+ while read -r pkg file; do
+ for a in ${owners[$file]}; do
+ for b in ${owners[$file]}; do
+ if ! [ "$a" "<" "$b" ]; then
+ continue
+ fi
+ if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then
+ continue
+ fi
+ if ! conflict_between "$a" "$b"; then
+ unset pair_files
+ local -A pair_files
+ eval "${pairs["$a $b"]}"
+ pair_files[$file]="$file"
+ pairs["$a $b"]="${pair_files[@]@A}"
+ fi
+ done
+ done
+ done < <(list_interesting_files)
+}
+
+print_out() {
+ local pair file
+ if [ "${#pairs[@]}" = 0 ]; then
+ echo 1>&2 "No conflicts found in" "${repositories[@]#*=}"
+ exit 0
+ fi
+ while read -r pair; do
+ rv=1
+ echo "${pair% *} and ${pair#* } conflict for"
+ unset pair_files
+ eval "${pairs[$pair]}"
+ for file in "${pair_files[@]}"; do
+ echo " $file"
+ done | sort
+ done < <(printf '%s\n' "${!pairs[@]}" | sort)
+}
+
+if partial_check; then
+ group_by_file_partial
+else
+ group_by_file_full
+fi
+group_by_pair
+print_out
+
+exit $rv
From 842f7048fc51cf09ea1ddcd00949ab0851eff1c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 2/2] .github: check file conflicts in x86_64 build job
---
.github/workflows/build.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2ae7a3e728fa..e4619a3f3c4b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -94,6 +94,12 @@ jobs:
"$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH"
)
+ - name: Check file conflicts
+ if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate
+ run: |
+ xlocate -S &&
+ common/scripts/lint-conflicts $HOME/hostdir/binpkgs
+
- name: Verify repository state
run: |
(
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (5 preceding siblings ...)
2022-05-04 21:02 ` [PR PATCH] [Updated] " Chocimier
@ 2022-05-04 21:03 ` Chocimier
2022-05-04 21:03 ` Chocimier
` (9 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 161 bytes --]
New review comment by Chocimier on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r865383885
Comment:
Right, done.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (6 preceding siblings ...)
2022-05-04 21:03 ` [PR REVIEW] " Chocimier
@ 2022-05-04 21:03 ` Chocimier
2022-05-04 21:08 ` Chocimier
` (8 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 156 bytes --]
New review comment by Chocimier on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r865384084
Comment:
changed
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (7 preceding siblings ...)
2022-05-04 21:03 ` Chocimier
@ 2022-05-04 21:08 ` Chocimier
2022-05-04 21:11 ` [PR PATCH] [Updated] " Chocimier
` (7 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:08 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 518 bytes --]
New comment by Chocimier on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#issuecomment-1117940370
Comment:
Changed usage so it takes list of packages from local repository index and not global file. Can be easily used locally without arguments.
Test runs at <https://github.com/Chocimier/void-packages-org/actions/runs/2272244355>, <https://github.com/Chocimier/void-packages-org/actions/runs/2272208791>, <https://github.com/Chocimier/void-packages-org/actions/runs/2272194034>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR PATCH] [Updated] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (8 preceding siblings ...)
2022-05-04 21:08 ` Chocimier
@ 2022-05-04 21:11 ` Chocimier
2022-05-04 21:12 ` Chocimier
` (6 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:11 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 424 bytes --]
There is an updated pull request by Chocimier against master on the void-packages repository
https://github.com/Chocimier/void-packages-org lint-conflicts
https://github.com/void-linux/void-packages/pull/36876
Check file conflicts in x86_64 build job
Report packages installing same file and not marked with conflicts or replaces.
A patch file from https://github.com/void-linux/void-packages/pull/36876.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-lint-conflicts-36876.patch --]
[-- Type: text/x-diff, Size: 7201 bytes --]
From cad98be396422d68a9c742e1c5fefba8f75d0b70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 1/2] common/: add script finding file conflicts
---
common/scripts/lint-conflicts | 195 ++++++++++++++++++++++++++++++++++
1 file changed, 195 insertions(+)
create mode 100755 common/scripts/lint-conflicts
diff --git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts
new file mode 100755
index 000000000000..d31cbe5b54ad
--- /dev/null
+++ b/common/scripts/lint-conflicts
@@ -0,0 +1,195 @@
+#!/usr/bin/env bash
+
+# Report packages installing same file and not marked with
+# conflicts or replaces.
+# Without argument, find conflicts between packages in local
+# repository at hostdir/binpkgs and packages indexed in xlocate.
+# With single path as argument, read that local repository.
+# With -a flag, find conflicts between packages indexed in xlocate.
+
+if [ "$#" = 0 ]; then
+ binpkgs="$PWD/hostdir/binpkgs"
+elif [ "$1" = -a ]; then
+ all=1
+elif [ -d "$1" ]; then
+ binpkgs="$1"
+else
+ echo "Usage:"
+ echo "$0"
+ echo " check packages in ./hostdir/binpkgs"
+ echo "$0 path/to/hostdir/binpkgs"
+ echo " check packages there"
+ echo "$0 -a"
+ echo " check all packages indexed in xlocate"
+ exit 1
+fi
+
+declare -A newly_built conflicts_cache providers_cache pairs owners
+repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree")
+rv=0
+
+template_exists() {
+ [ -f "srcpkgs/$1/template" ]
+}
+
+partial_check() {
+ [ -z "$all" ]
+}
+
+providers_of() {
+ # print the pkgname and packages that `provides` it
+ local pkgname=$1
+ if [ "${providers_cache[$pkgname]}" = '' ]; then
+ local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname
+ local -A providers
+ providers[$pkgname]=$pkgname
+ while read -r line; do
+ line=${line%%'('*}
+ provider_pkgver=${line%': '*}
+ provided_pkgver=${line#*': '}
+ provider_pkgname=${provider_pkgver%-*}
+ provided_pkgname=${provided_pkgver%-*}
+ # comes from $(xbps-query -s $pkgname), so $pkgname can be substring
+ if [ "$provided_pkgname" = "$pkgname" ]; then
+ providers[$provider_pkgname]=$provider_pkgname
+ fi
+ done < <(xbps-query "${repositories[@]}" -p provides -R -s "$pkgname")
+ # leading space ensures ${[]} != ''
+ providers_cache[$pkgname]=" ${providers[*]}"
+ fi
+ echo ${providers_cache[$pkgname]}
+}
+
+conflicts_of() {
+ # print list of packages that are _marked_ as confliting with given one
+ local pkgname=$1
+ if [ "${conflicts_cache[$pkgname]}" = '' ]; then
+ local in_conflict provider
+ local -A all
+ while read -r in_conflict; do
+ in_conflict=${in_conflict%'<'*}
+ in_conflict=${in_conflict%'>'*}
+ providers_of "$in_conflict" > /dev/null # executing in same process to fill cache
+ for provider in $(providers_of "$in_conflict"); do
+ all[$provider]=$provider
+ done
+ done < <(xbps-query "${repositories[@]}" -p conflicts,replaces -R "$pkgname")
+ # leading space ensures ${[]} != ''
+ conflicts_cache[$pkgname]=" ${all[*]}"
+ fi
+ echo ${conflicts_cache[$pkgname]}
+}
+
+conflict_between() {
+ # exit successfully if packages are _marked_ as conflicting
+ conflicts_of "$1" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$1") " in
+ *" $2 "*) return 0
+ esac
+ conflicts_of "$2" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$2") " in
+ *" $1 "*) return 0
+ esac
+ return 1
+}
+
+list_newly_built_files() {
+ # print one line per file in newly built packages
+ # each line contains pkgname and file path
+ local pkgver pkgname
+ while read -r pkgver; do
+ pkgname=${pkgver%-*}
+ xbps-query "${repositories[@]}" -i -f "$pkgname" | sed s'/ -> .*//;'" s/^/$pkgname /"
+ done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2)
+}
+
+list_interesting_files() {
+ # list files potentially contained in more than one package
+ # each line contains pkgver/pkgname and file path
+ if partial_check; then
+ list_newly_built_files
+ else
+ xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
+ fi
+}
+
+group_by_file_full() {
+ # create associative array `owners` mapping file to list of packages
+ # for packages potentially conflicting with newly built ones
+ local pkgver file pkgname
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(list_interesting_files)
+}
+
+group_by_file_partial() {
+ # create associative array `owners` mapping file to list of packages
+ # for all packages in xlocate
+ local pkgname file
+ ## newly built packages
+ while read -r pkgname file; do
+ owners[$file]+=" $pkgname"
+ newly_built[$pkgname]=$pkgname
+ done < <(list_newly_built_files)
+ ## rest of repository
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-))
+}
+
+group_by_pair() {
+ # find package pairs owning same file and not marked as conflicting
+ local pkg file a b
+ while read -r pkg file; do
+ for a in ${owners[$file]}; do
+ for b in ${owners[$file]}; do
+ if ! [ "$a" "<" "$b" ]; then
+ continue
+ fi
+ if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then
+ continue
+ fi
+ if ! conflict_between "$a" "$b"; then
+ unset pair_files
+ local -A pair_files
+ eval "${pairs["$a $b"]}"
+ pair_files[$file]="$file"
+ pairs["$a $b"]="${pair_files[@]@A}"
+ fi
+ done
+ done
+ done < <(list_interesting_files)
+}
+
+print_out() {
+ local pair file
+ if [ "${#pairs[@]}" = 0 ]; then
+ echo 1>&2 "No conflicts found in" "${repositories[@]#*=}"
+ exit 0
+ fi
+ while read -r pair; do
+ rv=1
+ echo "${pair% *} and ${pair#* } conflict for"
+ unset pair_files
+ eval "${pairs[$pair]}"
+ for file in "${pair_files[@]}"; do
+ echo " $file"
+ done | sort
+ done < <(printf '%s\n' "${!pairs[@]}" | sort)
+}
+
+if partial_check; then
+ group_by_file_partial
+else
+ group_by_file_full
+fi
+group_by_pair
+print_out
+
+exit $rv
From fe2c827a526c94235189fb57d5c403b6da1346a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 2/2] .github: check file conflicts in x86_64 build job
---
.github/workflows/build.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2ae7a3e728fa..e4619a3f3c4b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -94,6 +94,12 @@ jobs:
"$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH"
)
+ - name: Check file conflicts
+ if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate
+ run: |
+ xlocate -S &&
+ common/scripts/lint-conflicts $HOME/hostdir/binpkgs
+
- name: Verify repository state
run: |
(
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR PATCH] [Updated] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (9 preceding siblings ...)
2022-05-04 21:11 ` [PR PATCH] [Updated] " Chocimier
@ 2022-05-04 21:12 ` Chocimier
2022-05-04 21:12 ` [PR REVIEW] " Chocimier
` (5 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:12 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 424 bytes --]
There is an updated pull request by Chocimier against master on the void-packages repository
https://github.com/Chocimier/void-packages-org lint-conflicts
https://github.com/void-linux/void-packages/pull/36876
Check file conflicts in x86_64 build job
Report packages installing same file and not marked with conflicts or replaces.
A patch file from https://github.com/void-linux/void-packages/pull/36876.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-lint-conflicts-36876.patch --]
[-- Type: text/x-diff, Size: 7202 bytes --]
From 1f0fcc138a1a04c9c9de0fc861eee069aa40acd7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 1/2] common/: add script finding file conflicts
---
| 195 ++++++++++++++++++++++++++++++++++
1 file changed, 195 insertions(+)
create mode 100755 common/scripts/lint-conflicts
--git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts
new file mode 100755
index 000000000000..bb0e2b2fd6b3
--- /dev/null
+++ b/common/scripts/lint-conflicts
@@ -0,0 +1,195 @@
+#!/usr/bin/env bash
+
+# Report packages installing same file and not marked with
+# conflicts or replaces.
+# Without argument, find conflicts between packages in local
+# repository at hostdir/binpkgs and packages indexed in xlocate.
+# With single path as argument, read that local repository.
+# With -a flag, find conflicts between packages indexed in xlocate.
+
+if [ "$#" = 0 ]; then
+ binpkgs="$PWD/hostdir/binpkgs"
+elif [ "$1" = -a ]; then
+ all=1
+elif [ -d "$1" ]; then
+ binpkgs="$1"
+else
+ echo "Usage:"
+ echo "$0"
+ echo " check packages in ./hostdir/binpkgs"
+ echo "$0 path/to/hostdir/binpkgs"
+ echo " check packages there"
+ echo "$0 -a"
+ echo " check all packages indexed in xlocate"
+ exit 1
+fi
+
+declare -A newly_built conflicts_cache providers_cache pairs owners
+repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree")
+rv=0
+
+template_exists() {
+ [ -f "srcpkgs/$1/template" ]
+}
+
+partial_check() {
+ [ -z "$all" ]
+}
+
+providers_of() {
+ # print the pkgname and packages that `provides` it
+ local pkgname=$1
+ if [ "${providers_cache[$pkgname]}" = '' ]; then
+ local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname
+ local -A providers
+ providers[$pkgname]=$pkgname
+ while read -r line; do
+ line=${line%%'('*}
+ provider_pkgver=${line%': '*}
+ provided_pkgver=${line#*': '}
+ provider_pkgname=${provider_pkgver%-*}
+ provided_pkgname=${provided_pkgver%-*}
+ # comes from $(xbps-query -s $pkgname), so $pkgname can be substring
+ if [ "$provided_pkgname" = "$pkgname" ]; then
+ providers[$provider_pkgname]=$provider_pkgname
+ fi
+ done < <(xbps-query "${repositories[@]}" -p provides -R -s "$pkgname")
+ # leading space ensures ${[]} != ''
+ providers_cache[$pkgname]=" ${providers[*]}"
+ fi
+ echo ${providers_cache[$pkgname]}
+}
+
+conflicts_of() {
+ # print list of packages that are _marked_ as conflicting with given one
+ local pkgname=$1
+ if [ "${conflicts_cache[$pkgname]}" = '' ]; then
+ local in_conflict provider
+ local -A all
+ while read -r in_conflict; do
+ in_conflict=${in_conflict%'<'*}
+ in_conflict=${in_conflict%'>'*}
+ providers_of "$in_conflict" > /dev/null # executing in same process to fill cache
+ for provider in $(providers_of "$in_conflict"); do
+ all[$provider]=$provider
+ done
+ done < <(xbps-query "${repositories[@]}" -p conflicts,replaces -R "$pkgname")
+ # leading space ensures ${[]} != ''
+ conflicts_cache[$pkgname]=" ${all[*]}"
+ fi
+ echo ${conflicts_cache[$pkgname]}
+}
+
+conflict_between() {
+ # exit successfully if packages are _marked_ as conflicting
+ conflicts_of "$1" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$1") " in
+ *" $2 "*) return 0
+ esac
+ conflicts_of "$2" > /dev/null # executing in same process to fill cache
+ case " $(conflicts_of "$2") " in
+ *" $1 "*) return 0
+ esac
+ return 1
+}
+
+list_newly_built_files() {
+ # print one line per file in newly built packages
+ # each line contains pkgname and file path
+ local pkgver pkgname
+ while read -r pkgver; do
+ pkgname=${pkgver%-*}
+ xbps-query "${repositories[@]}" -i -f "$pkgname" | sed s'/ -> .*//;'" s/^/$pkgname /"
+ done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2)
+}
+
+list_interesting_files() {
+ # list files potentially contained in more than one package
+ # each line contains pkgver/pkgname and file path
+ if partial_check; then
+ list_newly_built_files
+ else
+ xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
+ fi
+}
+
+group_by_file_full() {
+ # create associative array `owners` mapping file to list of packages
+ # for packages potentially conflicting with newly built ones
+ local pkgver file pkgname
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(list_interesting_files)
+}
+
+group_by_file_partial() {
+ # create associative array `owners` mapping file to list of packages
+ # for all packages in xlocate
+ local pkgname file
+ ## newly built packages
+ while read -r pkgname file; do
+ owners[$file]+=" $pkgname"
+ newly_built[$pkgname]=$pkgname
+ done < <(list_newly_built_files)
+ ## rest of repository
+ while read -r pkgver file; do
+ pkgname=${pkgver%-*}
+ if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then
+ owners[$file]+=" $pkgname"
+ fi
+ done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-))
+}
+
+group_by_pair() {
+ # find package pairs owning same file and not marked as conflicting
+ local pkg file a b
+ while read -r pkg file; do
+ for a in ${owners[$file]}; do
+ for b in ${owners[$file]}; do
+ if ! [ "$a" "<" "$b" ]; then
+ continue
+ fi
+ if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then
+ continue
+ fi
+ if ! conflict_between "$a" "$b"; then
+ unset pair_files
+ local -A pair_files
+ eval "${pairs["$a $b"]}"
+ pair_files[$file]="$file"
+ pairs["$a $b"]="${pair_files[@]@A}"
+ fi
+ done
+ done
+ done < <(list_interesting_files)
+}
+
+print_out() {
+ local pair file
+ if [ "${#pairs[@]}" = 0 ]; then
+ echo 1>&2 "No conflicts found in" "${repositories[@]#*=}"
+ exit 0
+ fi
+ while read -r pair; do
+ rv=1
+ echo "${pair% *} and ${pair#* } conflict for"
+ unset pair_files
+ eval "${pairs[$pair]}"
+ for file in "${pair_files[@]}"; do
+ echo " $file"
+ done | sort
+ done < <(printf '%s\n' "${!pairs[@]}" | sort)
+}
+
+if partial_check; then
+ group_by_file_partial
+else
+ group_by_file_full
+fi
+group_by_pair
+print_out
+
+exit $rv
From 01301eb55117e3a5cc0dfb58b986bd33f2979686 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Wed, 4 May 2022 21:44:51 +0200
Subject: [PATCH 2/2] .github: check file conflicts in x86_64 build job
---
.github/workflows/build.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2ae7a3e728fa..e4619a3f3c4b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -94,6 +94,12 @@ jobs:
"$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH"
)
+ - name: Check file conflicts
+ if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate
+ run: |
+ xlocate -S &&
+ common/scripts/lint-conflicts $HOME/hostdir/binpkgs
+
- name: Verify repository state
run: |
(
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR REVIEW] Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (10 preceding siblings ...)
2022-05-04 21:12 ` Chocimier
@ 2022-05-04 21:12 ` Chocimier
2022-05-05 0:01 ` classabbyamp
` (4 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-04 21:12 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 160 bytes --]
New review comment by Chocimier on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#discussion_r865390651
Comment:
fixed typos
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (11 preceding siblings ...)
2022-05-04 21:12 ` [PR REVIEW] " Chocimier
@ 2022-05-05 0:01 ` classabbyamp
2022-05-05 1:52 ` 0x5c
` (3 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: classabbyamp @ 2022-05-05 0:01 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 250 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#issuecomment-1118036791
Comment:
those test runs look good to me, maybe annotations could be added à la #36950 (if they make sense to)?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (12 preceding siblings ...)
2022-05-05 0:01 ` classabbyamp
@ 2022-05-05 1:52 ` 0x5c
2022-05-05 16:34 ` Chocimier
` (2 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: 0x5c @ 2022-05-05 1:52 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 310 bytes --]
New comment by 0x5c on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#issuecomment-1118091204
Comment:
> those test runs look good to me, maybe annotations could be added à la #36950 (if they make sense to)?
As an annotation without the `file` and `line` parameters yeah
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (13 preceding siblings ...)
2022-05-05 1:52 ` 0x5c
@ 2022-05-05 16:34 ` Chocimier
2022-05-05 17:10 ` 0x5c
2022-05-05 19:29 ` [PR PATCH] [Merged]: " Chocimier
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-05 16:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 243 bytes --]
New comment by Chocimier on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#issuecomment-1118784376
Comment:
Without `file` message is not turned into comment elsewhere than logs, I do not see advantage then.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (14 preceding siblings ...)
2022-05-05 16:34 ` Chocimier
@ 2022-05-05 17:10 ` 0x5c
2022-05-05 19:29 ` [PR PATCH] [Merged]: " Chocimier
16 siblings, 0 replies; 18+ messages in thread
From: 0x5c @ 2022-05-05 17:10 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
New comment by 0x5c on void-packages repository
https://github.com/void-linux/void-packages/pull/36876#issuecomment-1118845819
Comment:
> Without `file` message is not turned into comment elsewhere than logs, I do not see advantage then.
It gets a special mention in the action run summary page, and arguably the special highlighting in the logs is worth it. The message in the logs could otherwise be printed in red with ANSI sequences since GH actions render those
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PR PATCH] [Merged]: Check file conflicts in x86_64 build job
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
` (15 preceding siblings ...)
2022-05-05 17:10 ` 0x5c
@ 2022-05-05 19:29 ` Chocimier
16 siblings, 0 replies; 18+ messages in thread
From: Chocimier @ 2022-05-05 19:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 253 bytes --]
There's a merged pull request on the void-packages repository
Check file conflicts in x86_64 build job
https://github.com/void-linux/void-packages/pull/36876
Description:
Report packages installing same file and not marked with conflicts or replaces.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2022-05-05 19:29 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-26 20:55 [PR PATCH] Check file conflicts in x86_64 build job Chocimier
2022-05-02 14:13 ` [PR REVIEW] " classabbyamp
2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
2022-05-02 14:13 ` classabbyamp
2022-05-04 21:02 ` [PR PATCH] [Updated] " Chocimier
2022-05-04 21:03 ` [PR REVIEW] " Chocimier
2022-05-04 21:03 ` Chocimier
2022-05-04 21:08 ` Chocimier
2022-05-04 21:11 ` [PR PATCH] [Updated] " Chocimier
2022-05-04 21:12 ` Chocimier
2022-05-04 21:12 ` [PR REVIEW] " Chocimier
2022-05-05 0:01 ` classabbyamp
2022-05-05 1:52 ` 0x5c
2022-05-05 16:34 ` Chocimier
2022-05-05 17:10 ` 0x5c
2022-05-05 19:29 ` [PR PATCH] [Merged]: " Chocimier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).