diff --git a/autoport b/autoport
index 3aff99d..1b30b01 100755
--- a/autoport
+++ b/autoport
@@ -76,6 +76,32 @@ function cgi_encodevar() {
# REPLY="${encoded}" #+or echo the result (EASIER)... or both... :p
}
+function get_pkg_srcinfo() {
+
+ local pkg local_distromatic pkg_line
+
+ unset src_name src_version src_buildtime src_repository src_epoch src_release
+
+ [ $1 ] && local_distromatic=$1 || exit 1
+ [ $2 ] && pkg=$2 || return 1
+
+ [ -e $local_distromatic/srcpkglist ] || return 2
+
+ pkg_line=`grep "^$pkg " $local_distromatic/srcpkglist`
+ [ "$pkg_line" ] || return 3
+
+ set -- $pkg_line
+
+ src_name=$1
+ src_version=$2
+ src_buildtime=$3
+ src_repository=$4
+ src_epoch=$5
+ src_release=$6
+ src_milestone=`echo $src_release | sed "s|[0-9.]*\(.*\)|\1|"`
+
+}
+
# get_pkg_buildinfo - uses distromatic generated build file for
# getting information on the repository
#
@@ -303,12 +329,18 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
echo "Port repository is $PORT_REPOSITORY"
echo "Release repository is $DEST_REPOSITORY"
+ curl -s ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist -o $DATADIR/$PORT_REPOSITORY/srcpkglist ||
+ echo "Warning: unable to fetch ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist"
curl -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"
- curl -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_CPU -o $DATADIR/$PORT_REPOSITORY/sources-$TARGET_CPU ||
- echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_CPU"
- curl -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$BASE_ARCH.sh ||
- echo "Error: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh"
+# rm -f $DATADIR/$PORT_REPOSITORY/sources-$BASE_ARCH
+# curl -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_CPU -o $DATADIR/$PORT_REPOSITORY/sources-$TARGET_CPU ||
+# echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_CPU"
+ rm -f $DATADIR/$PORT_REPOSITORY/sources-$TARGET_CPU
+# curl -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$BASE_ARCH.sh ||
+# echo "Error: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh"
+ rm -f $DATADIR/$PORT_REPOSITORY/builds-$BASE_ARCH.sh
+
curl -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$TARGET_ARCH.sh ||
echo "Error: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
@@ -317,50 +349,18 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
echo "Error: no jobs allowed in batch mode; aborting."
exit 1
}
- curl -s $BASE_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh -o $DATADIR/$BASE_REPOSITORY/builds-$BASE_ARCH.sh ||
- echo "Error: unable to fetch $BASE_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh"
- curl -s $BASE_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$BASE_REPOSITORY/builds-$TARGET_ARCH.sh ||
- echo "Error: unable to fetch $BASE_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
- get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $BASE_ARCH
+# curl -s $BASE_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh -o $DATADIR/$BASE_REPOSITORY/builds-$BASE_ARCH.sh ||
+# echo "Error: unable to fetch $BASE_REPOSITORY_DISTROMATIC_URL/builds-$BASE_ARCH.sh"
+ rm -f $DATADIR/$BASE_REPOSITORY/builds-$BASE_ARCH.sh
+# curl -s $BASE_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$BASE_REPOSITORY/builds-$TARGET_ARCH.sh ||
+# echo "Error: unable to fetch $BASE_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
+ rm -f $DATADIR/$BASE_REPOSITORY/builds-$TARGET_ARCH.sh
+
+ get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH
port_pkg_list=${pkg_list[*]}
-
- for p in ${port_pkg_list}; do
- get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH $p
- target_pkg_name=$pkg_name
- target_pkg_ver=$pkg_version
- target_pkg_rel=$pkg_release
- [ "$pkg_name" ] || get_pkg_buildinfo $DATADIR/$BASE_REPOSITORY $TARGET_ARCH $p
- if [ "$pkg_name" ]; then
- base_pkg_ver=$pkg_version
- base_pkg_rel=$pkg_release
-
- get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $BASE_ARCH $p
- [ "$pkg_name" ] || {
- echo "Error: internal error, should never be here; aborting."
- exit 1
- }
- port_pkg_ver=$pkg_version
- port_pkg_rel=$pkg_release
-
- if [ "$target_pkg_name" ]; then
- pkg_milestone=`echo $target_pkg_rel | sed "s|[0-9.]*\(.*\)|\1|"`
- if [ "$target_pkg_ver" != "$port_pkg_ver" ]; then
- echo "Package $pkg_name#${port_pkg_ver}-${port_pkg_rel}($TARGET_ARCH) differs from $pkg_name#${target_pkg_ver}-${target_pkg_rel}($BASE_ARCH); port needed."
- JOB=(${JOB[*]} $p)
- elif [ "$target_pkg_rel" != "$port_pkg_rel" ]; then
- echo "Package $pkg_name#${port_pkg_ver}-${port_pkg_rel}($TARGET_ARCH) differs from $pkg_name#${target_pkg_ver}-${target_pkg_rel}($BASE_ARCH); port needed."
- JOB=(${JOB[*]} $p)
- elif [ "$REBUILD_MILESTONE" -a "$pkg_milestone" != "$REBUILD_MILESTONE" ]; then
- echo "Package $pkg_name($TARGET_ARCH) was not built for '$REBUILD_MILESTONE' milestone; rebuild needed."
- JOB=(${JOB[*]} $p)
- else
- [ "$VERBOSE_MODE" ] && echo "Package $pkg_name#${port_pkg_ver}-${port_pkg_rel}($TARGET_ARCH) is up to date."
- fi
- else
- echo "$p#${port_pkg_ver}-${port_pkg_rel}($BASE_ARCH) is in port repository but $p#${base_pkg_ver}-${base_pkg_rel}($TARGET_ARCH) is in base repository; port needed."
- JOB=(${JOB[*]} $p)
- fi
- fi
+ echo "Packages to port: ${needport_list[*]}"
+ for p in ${needport_list[*]}; do
+ JOB=(${JOB[*]} $p)
done
[ -e $DATADIR/autoport-$PORT_REPOSITORY-current ] && \
mv $DATADIR/autoport-$PORT_REPOSITORY-current $DATADIR/autoport-$PORT_REPOSITORY-last
@@ -429,14 +429,8 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
JOB_FAILED=(${JOB_FAILED[*]} $JOB_CURRENT)
continue
fi
- pkg_release=
- pkg_version=
- get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH ${JOB_CURRENT} || \
- get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $BASE_ARCH ${JOB_CURRENT} || \
- get_pkg_buildinfo $DATADIR/$BASE_REPOSITORY $TARGET_ARCH ${JOB_CURRENT} || \
- get_pkg_buildinfo $DATADIR/$BASE_REPOSITORY $BASE_ARCH ${JOB_CURRENT}
- pkg_milestone=`echo $pkg_release | sed "s|[0-9.]*\(.*\)|\1|"`
- pkg_numrelease=`echo $pkg_release | sed "s|\([0-9.]*\).*|\1|"`
+ get_pkg_srcinfo $DATADIR/$PORT_REPOSITORY ${JOB_CURRENT}
+
DONT_PREPARE_THIS=
for p in ${JOB_CMDLINE[*]}; do
[ "$p" = "${JOB_CURRENT}" -o "$DONT_PREPARE_ANY" ] || continue
@@ -495,14 +489,14 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
autoport_log ${JOB_CURRENT} update ok $tmpfile
echo -n "(OK) "
}
- elif [ "$REBUILD_MILESTONE" -a "$pkg_milestone" != "$REBUILD_MILESTONE" ]; then
+ elif [ "$REBUILD_MILESTONE" -a "$src_milestone" != "$REBUILD_MILESTONE" ]; then
echo -n "update"
- [ "$pkg_repository" -a "$pkg_version" -a "$pkg_release" ] || {
+ [ "$src_repository" -a "$src_version" -a "$src_release" ] || {
echo "(FAILED) [can't get repository information for this package]"
continue
}
# FIXME: should be implemented in autodist
- LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 ${pkg_version} ${pkg_numrelease}${REBUILD_MILESTONE} \
+ LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 ${src_version} ${src_numrelease}${REBUILD_MILESTONE} \
--changelog "$REBUILD_MILESTONE milestone rebuild" &>$tmpfile
[ $? -gt 0 ] && {
if [ "$VERBOSE_MODE" ]; then
@@ -528,20 +522,20 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
fi
}
echo -n "port"
- if [ ! "$pkg_repository" -a "$DONT_PREPARE_THIS" != "1" ]; then
+ if [ ! "$src_repository" -a "$DONT_PREPARE_THIS" != "1" ]; then
echo "(FAILED) [can't get repository information for this package]"
autoport_log ${JOB_CURRENT} port failed
continue
fi
- if [ "$DONT_PREPARE_THIS" = "1" -a "$pkg_repository" != "$PORT_REPOSITORY" ]; then
- # if both -np and -r were given send to PORT_REPOSITORY instead of pkg_repository
- pkg_repository=$PORT_REPOSITORY
+ if [ "$DONT_PREPARE_THIS" = "1" -a "$src_repository" != "$PORT_REPOSITORY" ]; then
+ # if both -np and -r were given send to PORT_REPOSITORY instead of src_repository
+ src_repository=$PORT_REPOSITORY
fi
- [ "$PORT_REPOSITORY" != "$DEST_REPOSITORY" ] && pkg_repository="$DEST_REPOSITORY"
+ [ "$PORT_REPOSITORY" != "$DEST_REPOSITORY" ] && src_repository="$DEST_REPOSITORY"
[ ! "$DONT_PREPARE_THIS" -a "$PORT_REPOSITORY" = "$DEST_REPOSITORY" -a ! "$REBUILD_MILESTONE" ] && NOSRPM_OPTS="--nosrpm" || NOSRPM_OPTS="--force"
[ "$VERBOSE_MODE" ] && echo "
-%% COMMAND: LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $pkg_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS"
- LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $pkg_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS &>$tmpfile
+%% COMMAND: LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $src_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS"
+ LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $src_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS &>$tmpfile
[ $? -gt 0 ] && {
if [ "$VERBOSE_MODE" ]; then
echo
@@ -567,7 +561,7 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
autoport_log ${JOB_CURRENT} port ok $tmpfile
if [ "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then
curl -s "$WEBBUILD_URL?REQUEST=message&USER=$WEBBUILD_USER&SECRET=$WEBBUILD_SECRET&USER_EMAIL=$WEBBUILD_EMAIL&\
-MESSAGE=`cgi_encodevar \"ported $JOB_CURRENT to $TARGET_ARCH and sent it to $pkg_repository\"`" >/dev/null
+MESSAGE=`cgi_encodevar \"ported $JOB_CURRENT to $TARGET_ARCH and sent it to $src_repository\"`" >/dev/null
fi
}
echo -n "install"