# 100 - Unknown error (should not happen)
# Notes (todo/bugs):
-# - builder -u fetches current version first (well that's okay, how you compare versions if you have no old spec?)
# - when Icon: field is present, -5 and -a5 doesn't work
# - builder -R skips installing BR if spec is not present before builder invocation (need to run builder twice)
# - does not respect NoSource: X, and tries to cvs up such files [ example: VirtualBox-bin.spec and its Source0 ]
%pyrequires_eq() %{nil}
%requires_eq() %{nil}
%requires_eq_to() %{nil}
+%requires_ge() %{nil}
%releq_kernel_up(n:) ERROR
%releq_kernel_smp(n:) ERROR
%releq_kernel(n:) ERROR
# create symlinks for tools
if [ "$SYMLINK_TOOLS" != "no" ]; then
- for a in dropin md5 adapter builder {relup,compile,repackage,rsync,pearize}.sh; do
+ for a in dropin md5 adapter builder {relup,compile,repackage,rsync,pearize}.sh pldnotify.awk; do
[ -f $a ] || continue
ln -s ../$a $ASSUMED_NAME
cvsignore_df $a
" $specfile
}
-build_package() {
- update_shell_title "build_package"
- if [ -n "$DEBUG" ]; then
- set -x
- set -v
- fi
-
- cd "$PACKAGE_DIR"
-
+try_upgrade() {
if [ -n "$TRY_UPGRADE" ]; then
local TNOTIFY TNEWVER TOLDVER
update_shell_title "build_package: try_upgrade"
+ cd "$PACKAGE_DIR"
+
if [ -n "$FLOAT_VERSION" ]; then
TNOTIFY=$($APPDIR/pldnotify.awk ${BE_VERBOSE:+-vDEBUG=1} $SPECFILE -n) || exit 1
else
cp -f $SPECFILE $SPECFILE.bak
fi
chmod +w $SPECFILE
- set_release $SPECFILE $PACKAGE_RELEASE 0.1
+ set_release $SPECFILE $PACKAGE_RELEASE 1
set_version $SPECFILE $PACKAGE_VERSION $TNEWVER
parse_spec
- NODIST="yes" get_files $SOURCES $PATCHES
- update_md5 $SOURCES
+ return 1
fi
fi
+ return 0
+}
+
+build_package() {
+ update_shell_title "build_package"
+ if [ -n "$DEBUG" ]; then
+ set -x
+ set -v
+ fi
+
cd "$PACKAGE_DIR"
case "$COMMAND" in
fi
if [ "$RETVAL" -ne "0" ]; then
if [ -n "$TRY_UPGRADE" ]; then
- echo "\n!!! Package with new version cannot be built automagically\n"
+ echo "\nUpgrade package to new version failed."
if [ "$REVERT_BROKEN_UPGRADE" = "yes" ]; then
+ echo "Restoring old spec file."
mv -f $SPECFILE.bak $SPECFILE
fi
+ echo ""
fi
Exit_error err_build_fail
fi
if [ -n "$NOSOURCE0" ] ; then
SOURCES=`echo $SOURCES | xargs | sed -e 's/[^ ]*//'`
fi
- get_files $SOURCES $PATCHES
- check_md5 $SOURCES
+ try_upgrade
+ case $? in
+ 0)
+ get_files $SOURCES $PATCHES
+ check_md5 $SOURCES
+ ;;
+ *)
+ NODIST="yes" get_files $SOURCES $PATCHES
+ update_md5 $SOURCES
+ ;;
+ esac
build_package
if [ "$UPDATE_POLDEK_INDEXES" = "yes" -a "$COMMAND" != "build-prep" ]; then
run_poldek --sdir="${POLDEK_INDEX_DIR}" --mkidxz