Date: Mon, 16 Jul 2012 09:50:29 +0000 (UTC) From: Doug Barton <dougb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r238528 - user/dougb/portmaster Message-ID: <201207160950.q6G9oTFT026836@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dougb Date: Mon Jul 16 09:50:29 2012 New Revision: 238528 URL: http://svn.freebsd.org/changeset/base/238528 Log: Minor tweaks/fixes ================== * Do not use variables where they are not needed * Do not duplicate the same test * Unset multiple variables with the same command instead of 2 * When deleting empty DISTDIR subdirs use -mindepth 1 so that it will not error out if the directory is totally empty. * Unset more stuff after it is no longer needed * Update some comments to match the current state of the code * Remove some stuff that cannot be reached any longer Performance enhancement ======================= * In read_distinfos*() use while read instead of grep. Avoids the fork and cuts the total time for that feature 25% Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Mon Jul 16 09:38:19 2012 (r238527) +++ user/dougb/portmaster/portmaster Mon Jul 16 09:50:29 2012 (r238528) @@ -41,9 +41,7 @@ if [ -z "$PM_PARENT_PID" ]; then my_environment=`set` # If we are already root, unset this to avoid potential conflict - euid=`ps -o uid= $$` - [ $euid -eq 0 ] && unset PM_SU_CMD PM_SU_VERBOSE - unset euid + [ `ps -o uid= $$` -eq 0 ] && unset PM_SU_CMD PM_SU_VERBOSE fi #=============== Begin functions we always want to have =============== @@ -91,8 +89,8 @@ trap_exit () { echo '' echo "===>>> Build/Install logs available:" for file in $logs; do echo " $file"; done + echo '' fi - [ -n "$logs" ] && echo '' fi else # Signal the parent if a child trap'ed, or read the file if we are @@ -314,8 +312,7 @@ pm_cd_pd () { [ -n "$PM_INDEX_ONLY" ] & builtin cd $pd/$1 2>/dev/null || fail "Cannot cd to port directory: $pd/$1"; } pm_kill () { /bin/kill $* >/dev/null 2>/dev/null; } -pm_make () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l; - unset -v PM_URB_LIST; +pm_make () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l PM_URB_LIST; /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } pm_make_b () { /usr/bin/make $PM_MAKE_ARGS BEFOREPORTMK=bpm $*; } pm_mktemp () { @@ -328,8 +325,7 @@ pm_unlink () { [ -e "$1" ] && /bin/unlin pm_find_s () { $PM_SU_CMD /usr/bin/find $*; } pm_install_s () { $PM_SU_CMD /usr/bin/install -p -o root -g wheel -m 644 $1 $2; } -pm_make_s () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l; - unset -v PM_URB_LIST; +pm_make_s () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } pm_mkdir_s () { $PM_SU_CMD /bin/mkdir -p $1; } pm_pkg_delete_s () { $PM_SU_CMD /usr/sbin/pkg_delete $*; } @@ -1167,11 +1163,12 @@ find_moved_port () { } read_distinfos () { - local pkg iport origin distinfo disc1 f disc2 + local pkg iport origin distinfo s f discard echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for installed ports" echo '' + for pkg in ${pdb}/*; do [ -d $pkg ] || continue iport=${pkg#$pdb/} @@ -1195,10 +1192,11 @@ read_distinfos () { fi if [ -s "$distinfo" ]; then - grep '^SHA256 ' $distinfo | while read disc1 f disc2; do - f=${f#(} ; f=${f%)} - echo $f >> $DI_FILES - done + while read s f discard; do + case "$s" in + SHA256) f=${f#(} ; echo ${f%)} >> $DI_FILES ;; + esac + done < $distinfo fi done @@ -1209,7 +1207,7 @@ read_distinfos () { } read_distinfos_all () { - local origin distinfo disc1 f disc2 + local origin distinfo s f discard echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for all ports" @@ -1232,10 +1230,11 @@ read_distinfos_all () { fi if [ -s "$distinfo" ]; then - grep '^SHA256 ' $distinfo | while read disc1 f disc2; do - f=${f#(} ; f=${f%)} - echo $f >> $DI_FILES - done + while read s f discard; do + case "$s" in + SHA256) f=${f#(} ; echo ${f%)} >> $DI_FILES ;; + esac + done < $distinfo fi done @@ -1280,7 +1279,7 @@ delete_empty_dist_subdirs () { # Get back to somewhere safe so we do not # delete our CWD out from under ourselves pm_cd $DISTDIR || fail "Cannot cd into $DISTDIR" - find $DISTDIR -depth -type d \( -empty -and ! -path \*\.zfs/\* \) -delete + find $DISTDIR -depth -mindepth 1 -type d \( -empty -and ! -path \*\.zfs/\* \) -delete } init_packages_var () { @@ -2834,6 +2833,7 @@ multiport () { echo "===>>> Working on:" echo -e $portlist fi + unset portlist # First Pass if [ -n "$PM_BUILD_ONLY_LIST" ]; then @@ -3207,7 +3207,7 @@ fi [ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ] && upg_port=`iport_from_origin ${portdir}` if [ -e "$pdb/$upg_port/+IGNOREME" ]; then - # Adding to CUR_DEPS means we will not get here in the build unless -G + # Adding to CUR_DEPS means we will not get here in the build if [ -z "$PM_BUILDING" ]; then # Only need to prompt for this once if -ai case "$INTERACTIVE_YES" in @@ -3250,6 +3250,7 @@ else new_port=`parse_index $portdir name` || fail "No entry for $portdir in $PM_INDEX" fi +unset -f no_valid_port if [ -z "$PM_DEPTH" ]; then PM_DEPTH="${upg_port:-$portdir} " @@ -3330,7 +3331,7 @@ if [ -z "$PM_INDEX_ONLY" -a -z "$PM_BUIL pm_make -DBATCH checksum >> $fetchlog 2>&1 rm -f ${TMPDIR}/f-${PM_PARENT_PID}-*-${portdir#*/}.* )& fi - unset master_sites distfiles file DONT_FETCH fetchlog allfiles + unset master_sites distfiles file DONT_FETCH fetchlog elif [ -n "$FETCH_ONLY" ]; then echo "===>>> No distfiles to fetch" fi @@ -3443,6 +3444,7 @@ if [ -n "$pm_package_time" ]; then unset pm_package_time fetch_package () { + # Global: ppd FETCH_ARGS local do_fetch if [ -z "$ppd" ]; then @@ -3644,6 +3646,7 @@ notnewer () { fi ;; esac fi + unset ponly_err ; unset -f notnewer if [ -n "$use_package" ]; then new_port=$latest_pv @@ -3671,7 +3674,7 @@ if [ -z "$use_package" ]; then pm_cd_pd $portdir [ -z "$DONT_PRE_CLEAN" ] && { pm_make clean NOCLEANDEPENDS=ncd || - fail 'make clean failed'; echo ''; } + fail 'make clean failed'; } fl_read=`echo ${TMPDIR}/f-${PM_PARENT_PID}-fetchlog-${portdir#*/}.*` count=0
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207160950.q6G9oTFT026836>