mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2024-12-22 07:00:28 +00:00
abuild: exclude provides for commans with @
the '@' characted serves as a repository separator (eg. pkg@repo) so we should not add a cmd: provides for binaries having this character. This avoids conflicts with for example `who` from coreutils and `who@` from ucspi-tpc6. fixes https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10074
This commit is contained in:
parent
e4896c01b8
commit
645c3c07a7
@ -1299,6 +1299,13 @@ prepare_command_provides() {
|
|||||||
if ! [ -x "$i" ] || ! [ -f "$i" ]; then
|
if ! [ -x "$i" ] || ! [ -f "$i" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
# exclude any provides: lines for commands that has '@' because '@'
|
||||||
|
# is used as seperator between command name and repository. This
|
||||||
|
# avoids potential conflicts
|
||||||
|
# ref: https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10074
|
||||||
|
case "$i" in
|
||||||
|
*@*) continue;;
|
||||||
|
esac
|
||||||
local f=${i##*/}
|
local f=${i##*/}
|
||||||
echo $f >> "$controldir"/.provides-command
|
echo $f >> "$controldir"/.provides-command
|
||||||
done
|
done
|
||||||
|
@ -1056,6 +1056,7 @@ abuild_command_provides_body() {
|
|||||||
mkdir -p "\$pkgdir/usr/bin"
|
mkdir -p "\$pkgdir/usr/bin"
|
||||||
printf "%s\n" '#!/bin/sh' >"\$pkgdir/usr/bin/foo"
|
printf "%s\n" '#!/bin/sh' >"\$pkgdir/usr/bin/foo"
|
||||||
chmod +x "\$pkgdir/usr/bin/foo"
|
chmod +x "\$pkgdir/usr/bin/foo"
|
||||||
|
cp -a "\$pkgdir/usr/bin/foo" "\$pkgdir/usr/bin/foo@"
|
||||||
mkdir -p "\$pkgdir/usr/bin/dir/"
|
mkdir -p "\$pkgdir/usr/bin/dir/"
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@ -1063,6 +1064,7 @@ abuild_command_provides_body() {
|
|||||||
|
|
||||||
atf_check \
|
atf_check \
|
||||||
-o match:"provides = cmd:foo=1.0-r0" \
|
-o match:"provides = cmd:foo=1.0-r0" \
|
||||||
|
-o not-match:"provides = cmd:foo@=1.0-r0" \
|
||||||
-o not-match:"provides = cmd:dir=1.0-r0" \
|
-o not-match:"provides = cmd:dir=1.0-r0" \
|
||||||
grep '^provides = ' pkg/.control.testprovides/.PKGINFO
|
grep '^provides = ' pkg/.control.testprovides/.PKGINFO
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user