# =======================================================================
# 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.
# =======================================================================
# 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}
{
(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 /'
! 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 \
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 ()
{
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
}
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]+))$'
}
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_*
# ============= 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 =============
.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.