autoport: check if source is present in target arch, not source, before rebuilding

This commit is contained in:
Silvan Calarco 2014-08-21 13:13:36 +02:00
parent 52f9b3e9e0
commit ea098185e1

View File

@ -4,7 +4,7 @@
# #
# Released under the terms of the GNU GPL release 3 license # Released under the terms of the GNU GPL release 3 license
# #
VERSION=0.9.16 VERSION=0.9.17
BASE_ARCH=i586 BASE_ARCH=i586
BASE_REPOSITORY=devel BASE_REPOSITORY=devel
@ -148,8 +148,7 @@ function get_pkg_buildinfo() {
# } # }
# . $DISTROMATIC_BUILD_FILE # . $DISTROMATIC_BUILD_FILE
for i in ${pkg_list[*]}; do if [ "${pkg_header[0]}" ]; then
if [ "$i" == "${pkg_header[0]}" ]; then
pkg_name=${pkg_header[0]}; pkg_name=${pkg_header[0]};
# Note: pkg_arch reported in builds file is just last arch source was # Note: pkg_arch reported in builds file is just last arch source was
# built for, so we use repository arch instead # built for, so we use repository arch instead
@ -165,7 +164,6 @@ function get_pkg_buildinfo() {
pkg_repository=${pkg_header[9]}; pkg_repository=${pkg_header[9]};
return 0 return 0
fi fi
done
unset pkg_name pkg_arch pkg_version pkg_release \ unset pkg_name pkg_arch pkg_version pkg_release \
pkg_group pkg_license pkg_size pkg_buildtime pkg_altrep pkg_repository pkg_group pkg_license pkg_size pkg_buildtime pkg_altrep pkg_repository
@ -186,7 +184,7 @@ _EOF
function find_source_by_provide() { function find_source_by_provide() {
local pkg=`echo $2 | sed "s|(|\\\\\[|g;s|)|\\\\\]|g;s|:|_|g"` local pkg=`echo $2 | sed "s|(|\\\\\[|g;s|)|\\\\\]|g;s|:|_|g"`
grep "^$pkg:" $DATADIR/$1/sources-$BASE_ARCH | \ grep "^$pkg:" $DATADIR/$1/sources-{$BASE_ARCH,$TARGET_ARCH} | \
awk '{ $1=""; print $0 }' | \ awk '{ $1=""; print $0 }' | \
sed "s|[[:space:]]_| |g" sed "s|[[:space:]]_| |g"
} }
@ -213,9 +211,16 @@ function find_requirements() {
> $tf > $tf
sort -u $tf1 | while read line; do sort -u $tf1 | while read line; do
REQ=`find_source_by_provide $PORT_REPOSITORY ${line}` REQ=`find_source_by_provide $PORT_REPOSITORY ${line}`
[ "$REQ" ] && \ if [ "$REQ" ]; then
echo "${REQ}" >> $tf || \ get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH $REQ
if [ "$pkg_name" ]; then
echo -n "$line(notrebuilding) "
else
echo "${REQ}" >> $tf
fi
else
echo -n "$line(unresolved) " echo -n "$line(unresolved) "
fi
done done
> $tf1 > $tf1
cat $tf | sort -u 2>/dev/null | while read line; do cat $tf | sort -u 2>/dev/null | while read line; do
@ -240,6 +245,8 @@ fetch_repfiles() {
echo "Warning: unable to fetch ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist" echo "Warning: unable to fetch ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist"
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$BASE_ARCH || curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$BASE_ARCH ||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH" echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH"
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$TARGET_ARCH ||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_ARCH"
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$TARGET_ARCH.sh || curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$TARGET_ARCH.sh ||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh" echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
for u in ${AUTOPORT_UNSTAGE_ARCHS}; do for u in ${AUTOPORT_UNSTAGE_ARCHS}; do