-np <patchnumber>,
--nopatch <patchnumber>
- abort instead of applying patch <patchnumber>
+--noinit
+ - do not initialize SPECS_DIR and SOURCES_DIR (set them to .)
--show-bconds - show available conditional builds, which can be used
- with --with and/or --without switches.
--show-bcond-args - show active bconds, from ~/.bcondrc. this is used by ./repackage.sh script.
# http://rpm.org/gitweb?p=rpm.git;a=blob;f=build/parseChangelog.c#l31
# NOTE: changelog date is always in UTC for rpmbuild
# * 1265749244 +0000 Random Hacker <nikt@pld-linux.org> 9370900
- git rev-list --date-order -${log_entries:-20} HEAD | while read sha1; do
+ git rev-list --date-order -${log_entries:-20} HEAD 2>/dev/null | while read sha1; do
local logfmt='%B%n'
git notes list $sha1 > /dev/null 2>&1 && logfmt=%N
git log -n 1 $sha1 --format=format:"* %ad %an <%ae> %h%n${logfmt}%n" --date=raw | sed '/^$/q'
if [ -x /usr/bin/rpm-specdump ]; then
update_shell_title "cache_rpm_dump using rpm-specdump command"
- rpm_dump_cache=$(rpm-specdump $TARGET_SWITCH $BCOND $SPECFILE)
+ rpm_dump_cache=$(rpm-specdump $TARGET_SWITCH $BCOND --define "_specdir $PACKAGE_DIR" --define "_sourcedir $PACKAGE_DIR" $PACKAGE_DIR/$SPECFILE)
else
update_shell_title "cache_rpm_dump using rpmbuild command"
local rpm_dump
remove_build_requires
echo >&2 "Error: problem with remote (${2})"
exit 13 ;;
+ "err_no_checkut" )
+ echo >&2 "Error: cannot checkout $2"
+ exit 14 ;;
"err_not_implemented" )
remove_build_requires
echo >&2 "Error: functionality not yet imlemented"
fi
cd "$REPO_DIR"
- if [ ! -f "$ASSUMED_NAME/$SPECFILE" ]; then
- # XXX: still needed?
- SPECFILE=$(basename $SPECFILE)
- fi
if [ "$NOCVSSPEC" != "yes" ]; then
if [ -z "$DEPTH" ]; then
- if [ -d "$ASSUMED_NAME/.git" ]; then
+ if [ -d "$PACKAGE_DIR/.git" ]; then
git fetch $REMOTE_PLD || Exit_error err_no_spec_in_repo
elif [ "$ADD_PACKAGE_CVS" = "yes" ]; then
- if [ ! -r "$ASSUMED_NAME/$SPECFILE" ]; then
- echo "ERROR: No package to add ($ASSUMED_NAME/$SPECFILE)" >&2
+ if [ ! -r "$PACKAGE_DIR/$SPECFILE" ]; then
+ echo "ERROR: No package to add ($PACKAGE_DIR/$SPECFILE)" >&2
exit 101
fi
Exit_error err_not_implemented
unset GIT_WORK_TREE
git clone -o $REMOTE_PLD ${GIT_SERVER}/${PACKAGES_DIR}/${ASSUMED_NAME}.git || {
# softfail if new package, i.e not yet added to PLD rep
- [ ! -f "$ASSUMED_NAME/$SPECFILE" ] && Exit_error err_no_spec_in_repo
+ [ ! -f "$PACKAGE_DIR/$SPECFILE" ] && Exit_error err_no_spec_in_repo
echo "Warning: package not in CVS - assuming new package"
NOCVSSPEC="yes"
}
)
fi
else
- if [ ! -d "$ASSUMED_NAME/.git" ]; then
- if [ ! -d "$ASSUMED_NAME" ]; then
- mkdir $ASSUMED_NAME
+ if [ ! -d "$PACKAGE_DIR/.git" ]; then
+ if [ ! -d "$PACKAGE_DIR" ]; then
+ install -d $PACKAGE_DIR
fi
git init
git remote add $REMOTE_PLD ${GIT_SERVER}/${PACKAGES_DIR}/${ASSUMED_NAME}.git
fi
# create symlinks for tools
- if [ "$SYMLINK_TOOLS" != "no" -a -d "$ASSUMED_NAME" ]; then
+ if [ "$SYMLINK_TOOLS" != "no" -a -d "$PACKAGE_DIR" ]; then
for a in dropin md5 adapter builder {relup,compile,repackage,rsync,pearize}.sh pldnotify.awk; do
# skip tools that don't exist in top dir
[ -f $a ] || continue
# skip tools that already exist
- [ -f $ASSUMED_NAME/$a ] && continue
- ln -s ../$a $ASSUMED_NAME
+ [ -f $PACKAGE_DIR/$a ] && continue
+ ln -s ../$a $PACKAGE_DIR
cvsignore_df $a
done
fi
fi
if [ -n "$CVSTAG" ]; then
- git checkout "$CVSTAG" -- 2>/dev/null || git checkout -t "${REMOTE_PLD}/$CVSTAG" > /dev/null || exit
- git symbolic-ref -q HEAD > /dev/null &&
- git merge '@{u}'
+ if git rev-parse --verify -q "$CVSTAG"; then
+ git checkout "$CVSTAG" --
+ elif git rev-parse --verify -q "refs/remotes/${REMOTE_PLD}/$CVSTAG"; then
+ git checkout -t "refs/remotes/${REMOTE_PLD}/$CVSTAG" > /dev/null
+ fi
+ if [ $(git rev-parse "$CVSTAG") != $(git rev-parse HEAD) ]; then
+ Exit_error "err_no_checkut" "$CVSTAG"
+ fi
+ git merge --ff-only '@{u}'
+ git symbolic-ref -q HEAD > /dev/null && [ "$NOCVSSPEC" != "yes" ] &&
if [ -n "$CVSDATE" ]; then
git checkout $(git rev-list -n1 --before="'$CVSDATE'" $CVSTAG) || exit 1
fi
fi
- if [ ! -f "$ASSUMED_NAME/$SPECFILE" ]; then
+ if [ ! -f "$PACKAGE_DIR/$SPECFILE" ]; then
Exit_error err_no_spec_in_repo
fi
if [ "$CHMOD" = "yes" -a -n "$SPECFILE" ]; then
- chmod $CHMOD_MODE $ASSUMED_NAME/$SPECFILE
+ chmod $CHMOD_MODE $PACKAGE_DIR/$SPECFILE
fi
unset OPTIONS
- [ -n "$DONT_PRINT_REVISION" ] || grep -E -m 1 "^#.*Revision:.*Date" $ASSUMED_NAME/$SPECFILE
+ [ -n "$DONT_PRINT_REVISION" ] || grep -E -m 1 "^#.*Revision:.*Date" $PACKAGE_DIR/$SPECFILE
set_spec_target
}
cd "$REPO_DIR"
local url="$1"
if [ ! -f "mirrors" ] ; then
- ln -s rpm-build-tools/mirrors .
+ ln -s ../rpm-build-tools/mirrors .
fi
IFS="|"
update_shell_title "${GETLOCAL%% *}: $url"
${GETLOCAL} $url $target
else
- if [ -z "$NOMIRRORS" ]; then
- url=$(find_mirror "$url")
- fi
-
local uri=${url}
# make shorter message for distfiles urls
if [[ "$uri" = ${PROTOCOL}${DISTFILES_SERVER}* ]] || [[ "$uri" = ${PROTOCOL}${ATTICDISTFILES_SERVER}* ]]; then
update_shell_title "${GETLOCAL%% *}: $url_attic"
${GETLOCAL} $url_attic $target
else
- if [ -z "$NOMIRRORS" ]; then
- url_attic=$(find_mirror "$url_attic")
- fi
update_shell_title "${GETURI%% *}: $url_attic"
${GETURI} ${OUTFILEOPT} "$target" "$url_attic" || \
if [ "`echo $url_attic | grep -E 'ftp://'`" ]; then
display_branches() {
echo -n "Available branches: "
- git branch -r | grep "^ ${REMOTE_PLD}" | grep -v ${REMOTE_PLD}/HEAD | sed "s#^ *${REMOTE_PLD}/##" | xargs
+ git branch -r 2>/dev/null | grep "^ ${REMOTE_PLD}" | grep -v ${REMOTE_PLD}/HEAD | sed "s#^ *${REMOTE_PLD}/##" | xargs
}
# checks a given list of packages/files/provides agains current rpmdb.
# ./builder -bs test.spec -r AC-branch -Tp auto-ac- -tt
if [ -n "$TEST_TAG" ]; then
local TAGVER=`make_tagver`
- tag_exist $TAGVER
+ tag_exist $TAGVER || [ $TAGVER = $CVSTAG ] || Exit_error err_tag_exists $TAGVER
# check also tags created in CVS
- tag_exist $(echo $TAGVER | tr '[.@]' '[_#]')
+ local TAGVER_CVS=$(echo $TAGVER | tr '[.@]' '[_#]')
+ local CVSTAG_CVS=$(echo $CVSTAG | tr '[.@]' '[_#]')
+ tag_exist $TAGVER_CVS || [ $TAGVER_CVS = $CVSTAG_CVS ] \
+ || Exit_error err_tag_exists $TAGVER_CVS
# - do not allow to build from HEAD when XX-branch exists
TREE_PREFIX=$(echo "$TAG_PREFIX" | sed -e 's#^auto/\([a-zA-Z]\+\)/.*#\1#g')
- if [ "$TREE_PREFIX" != "$TAG_PREFIX" ]; then
+ if [ "$TAGVER" != "$CVSTAG" -a "$TAGVER_CVS" != "$CVSTAG" -a "$TREE_PREFIX" != "$TAG_PREFIX" ]; then
TAG_BRANCH="${TREE_PREFIX}-branch"
if [ -n "$DEPTH" ]; then
cmd_branches="git ls-remote --heads"