OSDN Git Service

[BUG FIX] Packages for which the flavor mechanism is newly introduced sometimes had...
[portsreinstall/current.git] / lib / libdatabase_build.sh
index 11cde7d..ee25575 100644 (file)
@@ -195,7 +195,7 @@ database_build_setup_initial_node ()
 # ============= Set up a temporary database node for the replaced/moved information of a port =============
 database_build_setup_replace_node ()
 {
-       local origin_orig portoption_before portoption_after origin_trial origin dbpath tmp_msg
+       local origin_orig portoption_before portoption_after origin_trial origin dbpath tmp_msg flavor_orig flavors flavor origin_trial_unflavored origin_unflavored
        origin_orig=$1
        portoption_before=$2
        portoption_after=$3
@@ -261,6 +261,31 @@ database_build_setup_replace_node ()
                else
                        origin=
                fi
+               cat "$tmp_msg" 2> /dev/null || :
+               # If the flavor mechanism is introduced to an initial origin without flavor, apply the default one.
+               if [ -n "$origin" -a -n "$origin_trial" ]
+               then
+                       origin_trial_unflavored=`pkgsys_get_unflavored_origin "$origin_trial"`
+                       origin_unflavored=`pkgsys_get_unflavored_origin "$origin"`
+                       flavor_orig=`pkgsys_get_flavor_from_origin "$origin_trial"`
+                       if [ -z "$flavor_orig" -a "$origin_trial_unflavored" = "$origin_unflavored" ]
+                       then
+                               flavors=`database_build_make "$origin" -V FLAVORS`
+                               if [ -n "$flavors" ]
+                               then
+                                       flavor=`expr "$flavors" : '\([^ ]*\).*'` || :
+                                       if [ -n "$flavor" ]
+                                       then
+                                               database_build_register_obsolete_port "$origin_trial"
+                                               fileedit_add_a_line_if_new "$origin_trial" "${DBDIR}/moved_ports"
+                                               fileedit_rm_a_line "$origin_trial" "${DBDIR}/obsolete_ports"
+                                               origin=`pkgsys_compose_flavored_origin "$origin_trial" "$flavor"`
+                                               message_echo "${DEPTH_INDEX}  ===> Moved to $origin by renaming with the default flavor"
+                                       fi
+                               fi
+                       fi > $tmp_msg
+                       cat "$tmp_msg" >> $dbpath/message
+               fi
                [ "x$origin_orig" = "x$origin" ] || echo "$origin" > $dbpath/origin
                cat "$tmp_msg" 2> /dev/null || :
                touch "$dbpath/complete_as_node"