OSDN Git Service

[NEW] BUILDCONFLICT and INSTCONFLICT sections are added to ${LOCALBASE}/etc/portsrein...
authorMamoru Sakaue / MwGhennndo <glmwghennndo@users.sourceforge.jp>
Sun, 15 Jul 2018 06:13:57 +0000 (14:13 +0800)
committerMamoru Sakaue / MwGhennndo <glmwghennndo@users.sourceforge.jp>
Sun, 15 Jul 2018 06:13:57 +0000 (14:13 +0800)
 Changes to be committed:
modified:   etc/portsreinstall.conf
modified:   lib/libconf.sh
modified:   lib/libdatabase_build.sh
modified:   lib/libdatabase_query.sh
modified:   lib/libfs.sh
modified:   lib/libmain.sh
modified:   lib/libpkgsys.sh
modified:   man/portsreinstall.8

etc/portsreinstall.conf
lib/libconf.sh
lib/libdatabase_build.sh
lib/libdatabase_query.sh
lib/libfs.sh
lib/libmain.sh
lib/libpkgsys.sh
man/portsreinstall.8

index a964a5b..83c18e3 100644 (file)
@@ -1,7 +1,7 @@
 # =======================================================================
 # Configurations for portsreinstall
-# Format version 1.2.0 (Wed Jun 25 16:00:40 PHT 2018)
-#   Comments updated at Wed Jun 25 16:00:40 PHT 2018.
+# Format version 1.3.0 (Sun Jul 15 14:12:17 PHT 2018)
+#   Comments updated at Sun Jul 15 14:12:17 PHT 2018.
 #   Default settings updated at Mon May 27 21:58:12 JST 2013.
 # Copyright (C) 2010-2018 Mamoru Sakaue, MwGhennndo, All Rights Reserved.
 # =======================================================================
@@ -200,6 +200,35 @@ HOLD_bsdpan=bsdpan-\*
 # CORRESPONDING pkgtools.conf SECTION: (none)
 
 
+# Additional conflict in build
+# SYNTAX: BUILDCONFLICT_TARGET_${id}=${glob_pattern}
+#         BUILDCONFLICT_DEF_${id}=${glob_pattern}
+# EXAMPLE:
+#       BUILDCONFLICT_TARGET_strigidaemon='strigidaemon-0.[0-9]*'
+#       BUILDCONFLICT_DEF_strigidaemon='cppunit-[0-9]*'
+#       BUILDCONFLICT_TARGET_libcaca=graphics/libcaca
+#       BUILDCONFLICT_DEF_libcaca=devel/cppunit
+# DESCRIPTION:
+#        Packages matching BUILDCONFLICT_DEF are added to the conflict
+#       list in the build time of the ports matching BUILDCONFLICT_TARGET.
+# CORRESPONDING pkgtools.conf SECTION: (none)
+
+
+# Additional conflict in installation
+# SYNTAX: INSTCONFLICT_TARGET_${id}=${glob_pattern}
+#         INSTCONFLICT_DEF_${id}=${glob_pattern}
+# EXAMPLE:
+#       INSTCONFLICT_TARGET_perl5devel='perl5-devel-[0-9]*'
+#       INSTCONFLICT_DEF_perl5devel='perl5.24-[0-9]*'
+#       INSTCONFLICT_TARGET_clangdevel=lang/clang-devel
+#       INSTCONFLICT_DEF_clangdevel=lang/clang33
+# DESCRIPTION:
+#        Packages matching INSTCONFLICT_DEF are added to the conflict
+#       list in the installation time of the ports matching
+#       INSTCONFLICT_TARGET.
+# CORRESPONDING pkgtools.conf SECTION: (none)
+
+
 # Arguments for make(1)
 # SYNTAX: MARG_TARGET_${id}=${glob_pattern}
 #         MARG_DEF_${id}=${definitions}
index 133efb2..1e59aa2 100644 (file)
@@ -207,7 +207,7 @@ conf_manipulate_available_var_defs ()
 {
        (set -e
                tmpfile_unsetvars=${TMPDIR}/conf_manipulate_available_var_defs::unsetvars.sh
-               _CONFVARS='ENV ALT_MOVED HOLD TABOO FREEZE NOPKG REPLACE_FROM REPLACE_TO CONFLICT_TARGET CONFLICT_DEF MARG_TARGET MARG_DEF MENV_TARGET MENV_DEF BEFOREBUILD BEFOREDEINSTALL AFTERINSTALL'
+               _CONFVARS='ENV ALT_MOVED HOLD TABOO FREEZE NOPKG REPLACE_FROM REPLACE_TO CONFLICT_TARGET CONFLICT_DEF BUILDCONFLICT_TARGET BUILDCONFLICT_DEF INSTCONFLICT_TARGET INSTCONFLICT_DEF MARG_TARGET MARG_DEF MENV_TARGET MENV_DEF BEFOREBUILD BEFOREDEINSTALL AFTERINSTALL'
                for item in ${_CONFVARS}
                do
                        misc_get_all_vardefs | grep -e "^${item}_" | cut -d = -f 1 | sed 's/^/unset /'
index cc8bade..1811eaa 100644 (file)
@@ -705,7 +705,7 @@ database_build_inspect_dependencies ()
                                        ! grep -qFx "$origin" "$dbpath_prev/to_be_reconf" 2> /dev/null
                                then
                                        same_as_prevset=yes
-                                       for dbfile in new_version CONFLICT.conf MARG.conf MENV.conf \
+                                       for dbfile in new_version CONFLICT.conf BUILDCONFLICT.conf MARG.conf MENV.conf \
                                                ports_options.default ports_options.current \
                                                rename_requirements.sed.pattern \
                                                requirements.run.direct.orig requirements.run.direct.src \
index 3807be0..36ac294 100644 (file)
@@ -209,6 +209,16 @@ database_query_get_makevar_val ()
        fi
 }
 
+# ============= Get a configured value of a port =============
+database_query_get_config_val ()
+{
+       local origin variable dbdir cache value
+       origin=$1
+       variable=$2
+       dbfile=${DBDIR}/conf/each_port/$origin/$variable.conf
+       cat "$dbfile" 2> /dev/null || :
+}
+
 # ============= Check whether configurations for a port is default =============
 database_query_is_default_conf ()
 {
index 4f21de3..b55fd1e 100644 (file)
@@ -170,7 +170,13 @@ fs_fix_unionfs_image_if_hidden ()
                needlepath_cur=$needlepath_next
        done
        [ -e "$needlepath" ] && return
-       message_echo "ERROR: Failed to recover a lost mandatory file, probably due to the bug of unionfs: $needlepath" >&2
+       if df "$needlepath" | sed 1d | grep -q '^<above>:'
+       then
+               message_echo "ERROR: Failed to recover a lost mandatory file, probably due to the bug of unionfs: $needlepath" >&2
+               message_echo "Reboot, or umount -A in the single user mode may be needed for the troubleshooting." >&2
+       else
+               message_echo "ERROR: Failed to recover a lost mandatory file due to unknown reasons: $needlepath" >&2
+       fi
        exit 1
 }
 
index c36405e..dc4df36 100644 (file)
@@ -12,7 +12,7 @@ main_set_version ()
        MYVERSION=4.0.1
        COMPATIBLE_VERSIONS='^(4\.[0]\.[0-1])$'
        # Template for development versions
-       MYVERSION=4.0.0+toward_4.0.1_20180715020935
+       MYVERSION=4.0.0+toward_4.0.1_20180715141331
        COMPATIBLE_VERSIONS='^(4\.[0]\.[0-1]]|4\.[0]\.[0]+(|\+toward_4\.[0]\.[1]+_[0-9]+))$'
 }
 
@@ -239,6 +239,10 @@ main_parse_conf ()
                conf_build_replacement_patterns_from_REPLACE
                # CONFLICT_*
                conf_parse_vars_for_each_port_glob_with_bound_val CONFLICT TARGET DEF
+               # BUILDCONFLICT_*
+               conf_parse_vars_for_each_port_glob_with_bound_val BUILDCONFLICT TARGET DEF
+               # INSTCONFLICT_*
+               conf_parse_vars_for_each_port_glob_with_bound_val INSTCONFLICT TARGET DEF
                # MARG_*
                conf_parse_vars_for_each_port_glob_with_bound_val MARG TARGET DEF
                # MENV_*
index b730823..ce11453 100644 (file)
@@ -1371,19 +1371,25 @@ pkgsys_eval_installed_pkgs_globs ()
 # ============= Get glob patterns of conflicting packages of a port =============
 pkgsys_get_conflicting_pkgs_patterns ()
 {
-       local mode origin conflicts
+       local mode origin conflicts conflicts_makevar conflicts_config
        mode=$1
        origin=$2
        conflicts=`database_query_get_makevar_val "$origin" CONFLICTS`
        case $mode in
        build )
-               conflicts=$conflicts' '`database_query_get_makevar_val "$origin" CONFLICTS_BUILD`
+               conflicts_makevar=`database_query_get_makevar_val "$origin" CONFLICTS_BUILD`
+               conflicts_config=`database_query_get_config_val "$origin" BUILDCONFLICT`
                ;;
        install )
-               conflicts=$conflicts' '`database_query_get_makevar_val "$origin" CONFLICTS_INSTALL`
+               conflicts_makevar=`database_query_get_makevar_val "$origin" CONFLICTS_INSTALL`
+               conflicts_config=`database_query_get_config_val "$origin" INSTCONFLICT`
+               ;;
+       *)
+               conflicts_makevar=
+               conflicts_config=
                ;;
        esac
-       echo "$conflicts" | tr ' ' '\n' | grep -v '^$' || :
+       echo "$conflicts $conflicts_makevar $conflicts_config" | tr ' ' '\n' | grep -v '^$' | sort -u
 }      
 
 # ============= Get conflicting installed packages of a port =============
index 3333888..f8bfdd7 100644 (file)
@@ -1077,6 +1077,8 @@ Configuration file of \fBportupgrade\fR(1).
 .RS
 [NEW] Option \fB\-x\fR is added.
 .PP
+[NEW] BUILDCONFLICT and INSTCONFLICT sections are added to ${LOCALBASE}/etc/portsreinstall.conf.
+.PP
 [IMPROVED] The (Re)installation scheme is changed to skip ports whose requirements are not installed at their turns .
 .PP
 [IMPROVED] It is changed to detect unflavored ports or ports with old flavor names of flavored ports as obsolete.