From b7e024664db9e62b28dcd5f1902da3f607e4968e Mon Sep 17 00:00:00 2001 From: Scott Little Date: Wed, 28 Mar 2018 16:48:01 -0400 Subject: [PATCH] build-rpms: drop any 'depends on self' from dependency calculations Depends on self creates false loops and results in sub-optimal compile orders. Change-Id: I429b79fed58d0edea20df68a883caafbddf8a07c Story: 2002835 Task: 24519 Signed-off-by: Scott Little --- build-tools/build-rpms-parallel | 7 ++++++- build-tools/build-rpms-serial | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/build-tools/build-rpms-parallel b/build-tools/build-rpms-parallel index 275d0054..ef894971 100755 --- a/build-tools/build-rpms-parallel +++ b/build-tools/build-rpms-parallel @@ -1996,8 +1996,13 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE # Iterate over binary rpms names required by the candidate package for r in $(grep "^$n;" "$SRPM_RPM_DIRECT_REQUIRES_FILE" | sed "s/$n;//" | sed 's/,/ /g'); do + if [ $r == $n ]; then + # Ignore self dependency + continue + fi + # find a required rpm file with the rpm name we seek, AND is newer than the produced rpm file - for rp in $(find $(echo $RPM_DIR | sed "s#/$BUILD_TYPE/#/std/#") -name "$r-[0-9]*.rpm" -cnewer $bp | grep -v '.src.rpm'); do + for rp in $(find $(echo $RPM_DIR | sed "s#/$BUILD_TYPE/#/std/#") -name "$r-[0-9]*.rpm" -newermm $bp | grep -v '.src.rpm'); do if [ "$r" != "$(rpm_get_name $rp)" ]; then # rpm name doesn't match continue diff --git a/build-tools/build-rpms-serial b/build-tools/build-rpms-serial index eef0424f..96e232ce 100755 --- a/build-tools/build-rpms-serial +++ b/build-tools/build-rpms-serial @@ -972,8 +972,13 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE # Iterate over binary rpms names required by the candidate package for r in $(grep "^$n;" "$SRPM_RPM_DIRECT_REQUIRES_FILE" | sed "s/$n;//" | sed 's/,/ /g'); do + if [ $r == $n ]; then + # Ignore self dependency + continue + fi + # find a required rpm file with the rpm name we seek, AND is newer than the produced rpm file - for rp in $(find $(echo $RPM_DIR | sed "s#/$BUILD_TYPE/#/std/#") -name "$r-[0-9]*.rpm" -cnewer $bp | grep -v '.src.rpm'); do + for rp in $(find $(echo $RPM_DIR | sed "s#/$BUILD_TYPE/#/std/#") -name "$r-[0-9]*.rpm" -newermm $bp | grep -v '.src.rpm'); do if [ "$r" != "$(rpm_get_name $rp)" ]; then # rpm name doesn't match continue