Merge branch 'amove-noerror' into 'master'
abuild: improve amove See merge request alpine/abuild!273
This commit is contained in:
commit
08db6a875c
101
abuild.in
101
abuild.in
|
@ -74,28 +74,28 @@ error() {
|
|||
amove() {
|
||||
[ -n "$subpkgdir" ] || return 1
|
||||
|
||||
# store directory
|
||||
d="$(pwd -L)"
|
||||
|
||||
local olddir="$(pwd -L)"
|
||||
cd "$pkgdir"
|
||||
local pattern f IFS=""
|
||||
|
||||
local ret=0 IFS="" pattern f d
|
||||
for pattern; do
|
||||
for f in ${pattern#/}; do # let shell expand the pattern
|
||||
# strip trailing /
|
||||
f=${f%/}
|
||||
if [ "${f%/*}" != "$f" ]; then
|
||||
mkdir -p "$subpkgdir/${f%/*}"
|
||||
mv -v "$pkgdir/$f" "$subpkgdir/${f%/*}"
|
||||
else
|
||||
mkdir -p "$subpkgdir"
|
||||
mv -v "$pkgdir/$f" "$subpkgdir/"
|
||||
fi
|
||||
# cleanup
|
||||
rmdir -p "$f" 2>/dev/null || rmdir -p "${f%/*}" 2>/dev/null || true
|
||||
for f in ${pattern#"${pattern%%[!/]*}"}; do # let shell expand the pattern
|
||||
[ -L "$f" ] || [ -e "$f" ] || {
|
||||
ret=1
|
||||
continue
|
||||
}
|
||||
# strip all trailing /
|
||||
f=${f%"${f##*[!/]}"}
|
||||
d=${f%/*}
|
||||
[ "$d" = "$f" ] && d=.
|
||||
mkdir -p "$subpkgdir/$d"
|
||||
mv -v "$f" "$subpkgdir/$d"
|
||||
rmdir -p "$d" 2>/dev/null || :
|
||||
done
|
||||
done
|
||||
|
||||
cd "$d"
|
||||
cd "$olddir"
|
||||
return $ret
|
||||
}
|
||||
|
||||
cross_creating() {
|
||||
|
@ -966,11 +966,7 @@ default_lang() {
|
|||
install_if="$pkgname=$pkgver-r$pkgrel lang"
|
||||
depends="$depends_lang"
|
||||
|
||||
local dir
|
||||
for dir in ${langdir:-/usr/share/locale}; do
|
||||
mkdir -p "$subpkgdir"/${dir%/*}
|
||||
mv "$pkgdir"/"$dir" "$subpkgdir"/"$dir" || return 1
|
||||
done
|
||||
amove ${langdir:-/usr/share/locale}
|
||||
}
|
||||
|
||||
lang() {
|
||||
|
@ -987,10 +983,7 @@ default_lang_subpkg() {
|
|||
|
||||
local dir
|
||||
for dir in ${langdir:-/usr/share/locale}; do
|
||||
mkdir -p "$subpkgdir"/$dir
|
||||
mv "$pkgdir"/$dir/$lang* \
|
||||
"$subpkgdir"/$dir/ \
|
||||
|| return 1
|
||||
amove "$dir/$lang*"
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -1962,10 +1955,7 @@ default_doc() {
|
|||
|
||||
local i
|
||||
for i in doc man info html sgml licenses gtk-doc ri help; do
|
||||
if [ -d "$pkgdir/usr/share/$i" ]; then
|
||||
mkdir -p "$subpkgdir/usr/share"
|
||||
mv "$pkgdir/usr/share/$i" "$subpkgdir/usr/share/"
|
||||
fi
|
||||
amove usr/share/"$i" || :
|
||||
done
|
||||
|
||||
# compress man pages
|
||||
|
@ -2002,9 +1992,6 @@ default_doc() {
|
|||
done
|
||||
|
||||
rm -f "$subpkgdir/usr/share/info/dir"
|
||||
|
||||
# remove if empty, ignore error (not empty)
|
||||
rmdir "$pkgdir/usr/share" "$pkgdir/usr" 2>/dev/null || :
|
||||
}
|
||||
|
||||
doc() {
|
||||
|
@ -2065,18 +2052,12 @@ default_dev() {
|
|||
$(find $libdirs -name '*.[cho]' \
|
||||
-o -name '*.prl' 2>/dev/null); do
|
||||
if [ -e "$pkgdir/$i" ] || [ -L "$pkgdir/$i" ]; then
|
||||
d="$subpkgdir/${i%/*}" # dirname $i
|
||||
mkdir -p "$d"
|
||||
mv "$pkgdir/$i" "$d"
|
||||
rmdir "$pkgdir/${i%/*}" 2>/dev/null || :
|
||||
amove "$i"
|
||||
fi
|
||||
done
|
||||
# move *.so links needed when linking the apps to -dev packages
|
||||
for i in lib/*.so usr/lib/*.so; do
|
||||
if [ -L "$i" ]; then
|
||||
mkdir -p "$subpkgdir"/"${i%/*}"
|
||||
mv "$i" "$subpkgdir/$i" || return 1
|
||||
fi
|
||||
[ -L "$i" ] && amove "$i"
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
@ -2107,10 +2088,8 @@ default_static() {
|
|||
[ -d lib/ ] && libdirs="lib/ $libdirs"
|
||||
|
||||
# move *.a static library
|
||||
for i in $(find $libdir -name '*.a'); do
|
||||
mkdir -p "$subpkgdir"/"${i%/*}"
|
||||
mv "$i" "$subpkgdir/$i" || return 1
|
||||
done
|
||||
amove $(find $libdir -name '*.a')
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -2122,14 +2101,8 @@ static() {
|
|||
default_libs() {
|
||||
depends="$depends_libs"
|
||||
pkgdesc="$pkgdesc (libraries)"
|
||||
local dir= file=
|
||||
for dir in lib usr/lib; do
|
||||
for file in "$pkgdir"/$dir/lib*.so.[0-9]*; do
|
||||
[ -f "$file" ] || continue
|
||||
mkdir -p "$subpkgdir"/$dir
|
||||
mv "$file" "$subpkgdir"/$dir/
|
||||
done
|
||||
done
|
||||
|
||||
amove 'lib/lib*.so.[0-9]*' 'usr/lib/lib*.so.[0-9]*'
|
||||
}
|
||||
|
||||
libs() {
|
||||
|
@ -2141,14 +2114,8 @@ default_openrc() {
|
|||
depends="$depends_openrc"
|
||||
pkgdesc="$pkgdesc (OpenRC init scripts)"
|
||||
install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
|
||||
local dir file
|
||||
for dir in conf.d init.d; do
|
||||
if [ -d "$pkgdir/etc/$dir" ]; then
|
||||
mkdir -p "$subpkgdir"/etc
|
||||
mv "$pkgdir/etc/$dir" "$subpkgdir"/etc/
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
|
||||
amove etc/conf.d etc/init.d || :
|
||||
}
|
||||
|
||||
openrc() {
|
||||
|
@ -2159,6 +2126,7 @@ default_devhelp() {
|
|||
depends=""
|
||||
pkgdesc="$pkgname - devhelp files"
|
||||
install_if="$pkgname=$pkgver-r$pkgrel devhelp"
|
||||
|
||||
amove usr/share/devhelp
|
||||
}
|
||||
|
||||
|
@ -2197,15 +2165,12 @@ default_fishcomp() {
|
|||
install_if="$pkgname=$pkgver-r$pkgrel fish"
|
||||
|
||||
cd "$pkgdir" || return 0
|
||||
amove usr/share/fish/vendor_completions.d || :
|
||||
|
||||
if [ -d usr/share/fish/vendor_completions.d ]; then
|
||||
amove usr/share/fish/vendor_completions.d
|
||||
fi
|
||||
|
||||
if [ -d usr/share/fish/completions ]; then
|
||||
amove usr/share/fish/completions &&
|
||||
warning "fish completions for programs should be in /usr/share/fish/vendor_completions.d"
|
||||
amove usr/share/fish/completions
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
fishcomp() {
|
||||
|
|
|
@ -87,7 +87,7 @@ abuild_simple_pkg_without_deps_body() {
|
|||
init_keys
|
||||
cp -r "$testrepo"/pkg1 .
|
||||
cd pkg1
|
||||
atf_check -s exit:0 \
|
||||
atf_check -s exit:0 -o ignore \
|
||||
-e not-match:"WARNING" \
|
||||
-e not-match:"fatal" \
|
||||
abuild
|
||||
|
@ -503,7 +503,7 @@ abuild_large_doc_subpackage_body() {
|
|||
init_keys
|
||||
cp -ra "$testrepo"/large-doc-subpkg .
|
||||
cd large-doc-subpkg
|
||||
atf_check -s exit:0 \
|
||||
atf_check -s exit:0 -o ignore \
|
||||
-e match:"-doc subpackage is unusually large" \
|
||||
abuild all
|
||||
}
|
||||
|
@ -512,7 +512,7 @@ abuild_bigdocs_body() {
|
|||
init_keys
|
||||
cp -ra "$testrepo"/large-doc-subpkg .
|
||||
cd large-doc-subpkg
|
||||
options=bigdocs atf_check -s exit:0 \
|
||||
options=bigdocs atf_check -s exit:0 -o ignore \
|
||||
-e not-match:"-doc subpackage is unusually large" \
|
||||
abuild all
|
||||
}
|
||||
|
@ -688,6 +688,7 @@ abuild_amove_body() {
|
|||
\$pkgname-etc:_etc
|
||||
\$pkgname-bin:_bin
|
||||
\$pkgname-sbin:_sbin
|
||||
\$pkgname-root:_root
|
||||
\$pkgname-var:_var
|
||||
\$pkgname-usr:_usr
|
||||
\$pkgname-space:_space"
|
||||
|
@ -702,26 +703,35 @@ abuild_amove_body() {
|
|||
"\$pkgdir"/etc/\$pkgname.conf \
|
||||
"\$pkgdir"/bin/hello \
|
||||
"\$pkgdir"/sbin/shello \
|
||||
"\$pkgdir"/root \
|
||||
"\$pkgdir"/sbin/space' ' \
|
||||
"\$pkgdir"/var/lib/\$pkgname/testfile \
|
||||
"\$pkgdir"/usr/share/a \
|
||||
"\$pkgdir"/usr/share/b
|
||||
ln -s dangling "\$pkgdir"/symlink
|
||||
}
|
||||
_file() {
|
||||
amove etc/file
|
||||
}
|
||||
_etc() {
|
||||
# leading and trailing /
|
||||
amove /etc/
|
||||
amove ///etc/
|
||||
}
|
||||
_bin() {
|
||||
# trailing /
|
||||
amove bin/
|
||||
amove bin///
|
||||
}
|
||||
_sbin() {
|
||||
# no /
|
||||
# no leading and trailing /
|
||||
amove sbin/shello
|
||||
}
|
||||
_root() {
|
||||
# no /
|
||||
amove root
|
||||
|
||||
# symlink without existing target
|
||||
amove symlink
|
||||
}
|
||||
_var() {
|
||||
# leading /
|
||||
amove /var/lib
|
||||
|
@ -729,6 +739,8 @@ abuild_amove_body() {
|
|||
_usr() {
|
||||
# glob *
|
||||
amove usr/share/*
|
||||
amove no-glob-match/* && return 1
|
||||
return 0
|
||||
}
|
||||
_space() {
|
||||
# with space
|
||||
|
@ -742,12 +754,14 @@ abuild_amove_body() {
|
|||
test-amove-etc/etc/test-amove.conf \
|
||||
test-amove-bin/bin/hello \
|
||||
test-amove-sbin/sbin/shello \
|
||||
test-amove-root/root \
|
||||
test-amove-root/symlink \
|
||||
test-amove-var/var/lib/test-amove/testfile \
|
||||
test-amove-usr/usr/share/a \
|
||||
test-amove-usr/usr/share/b \
|
||||
test-amove-space/sbin/space' ' \
|
||||
; do \
|
||||
test -f pkg/"$i" || atf_fail "$i failed"
|
||||
[ -L pkg/"$i" ] || [ -e pkg/"$i" ] || atf_fail "$i failed"
|
||||
done
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue