--- /usr/bin/makepkg 2010-09-04 03:12:11.000000000 +0200 +++ makepkg-np 2010-10-22 10:39:44.000000000 +0200 @@ -58,6 +58,7 @@ DEP_BIN=0 FORCE=0 INFAKEROOT=0 +FREEZEDEPS=0 GENINTEG=0 SKIPINTEG=0 INSTALL=0 @@ -370,7 +371,7 @@ run_pacman() { local cmd printf -v cmd "%q " "$PACMAN" $PACMAN_OPTS "$@" - if (( ! ASROOT )) && [[ $1 != "-T" && $1 != "-Qq" ]]; then + if (( ! ASROOT )) && [[ $1 != "-T" && $1 != "-Q" && $1 != "-Qq" ]]; then if [ "$(type -p sudo)" ]; then cmd="sudo $cmd" else @@ -933,9 +934,15 @@ for it in "${groups[@]}"; do echo "group = $it" >>.PKGINFO done - for it in "${depends[@]}"; do - echo "depend = $it" >>.PKGINFO - done + if (( FREEZEDEPS )); then + for it in "${depends[@]}"; do + echo "depend = $(run_pacman -Q "$it" | sed -e's/ /==/')" >>.PKGINFO + done + else + for it in "${depends[@]}"; do + echo "depend = $it" >>.PKGINFO + done + fi for it in "${optdepends[@]}"; do echo "optdepend = $it" >>.PKGINFO done @@ -1510,6 +1517,7 @@ echo "$(gettext " --asroot Allow makepkg to run as root user")" printf "$(gettext " --config Use an alternate config file (instead of '%s')")\n" "$confdir/makepkg.conf" echo "$(gettext " --holdver Prevent automatic version bumping for development PKGBUILDs")" + echo "$(gettext " --freeze-deps Use the exact current version of dependencies when packaging")" echo "$(gettext " --pkg Only build listed packages from a split package")" echo "$(gettext " --skipinteg Do not fail when integrity checks are missing")" echo "$(gettext " --source Generate a source-only tarball without downloaded sources")" @@ -1546,7 +1554,7 @@ # Parse Command Line Options. OPT_SHORT="AcCdefFghiLmop:rRsV" OPT_LONG="allsource,asroot,ignorearch,clean,cleancache,nodeps" -OPT_LONG="$OPT_LONG,noextract,force,forcever:,geninteg,help,holdver" +OPT_LONG="$OPT_LONG,noextract,force,forcever:,freeze-deps,geninteg,help,holdver" OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,pkg:,rmdeps,repackage,skipinteg" OPT_LONG="$OPT_LONG,source,syncdeps,version,config:" # Pacman Options @@ -1578,6 +1586,7 @@ #hidden opt used by fakeroot call for svn/cvs/etc PKGBUILDs to set pkgver --forcever) shift; FORCE_VER=$1;; -F) INFAKEROOT=1 ;; + --freeze-deps) FREEZEDEPS=1 ;; -g|--geninteg) GENINTEG=1 ;; --holdver) HOLDVER=1 ;; -i|--install) INSTALL=1 ;;