Imported Upstream version 4.14.1
[platform/upstream/rpm.git] / scripts / brp-python-hardlink
index f887199..949c9c3 100755 (executable)
@@ -5,15 +5,21 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
        exit 0
 fi
 
-# Hardlink identical *.pyc and *.pyo, originally from PLD's rpm-build-macros
-# Modified to use sha1sum instead of cmp to avoid a diffutils dependency.
-find "$RPM_BUILD_ROOT" -type f -name "*.pyc" | while read pyc ; do
-       pyo="${pyc%c}o"
-       if [ -f "$pyo" ] ; then
-               csha="$(sha1sum -b "$pyc" | cut -d' ' -f 1)" && \
-               osha="$(sha1sum -b "$pyo" | cut -d' ' -f 1)" && \
-               if [ "$csha" = "$osha" ] ; then
-                       ln -f "$pyc" "$pyo"
-               fi
-       fi
+hardlink_if_same() {
+       if cmp -s "$1" "$2" ; then
+               ln -f "$1" "$2"
+               return 0
+       fi
+       return 1
+}
+
+# Hardlink identical *.pyc, *.pyo, and *.opt-[12].pyc.
+# Originally from PLD's rpm-build-macros
+find "$RPM_BUILD_ROOT" -type f -name "*.pyc" -not -name "*.opt-[12].pyc" | while read pyc ; do
+       hardlink_if_same "$pyc" "${pyc%c}o"
+       o1pyc="${pyc%pyc}opt-1.pyc"
+       hardlink_if_same "$pyc" "$o1pyc"
+       o2pyc="${pyc%pyc}opt-2.pyc"
+       hardlink_if_same "$pyc" "$o2pyc" || hardlink_if_same "$o1pyc" "$o2pyc"
 done
+exit 0