summaryrefslogtreecommitdiff
path: root/eclass/linux-build.eclass
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2015-11-22 15:31:52 +0000
committerBertrand Jacquin <bertrand@jacquin.bzh>2015-11-22 18:00:12 +0000
commita5d32e13b1c69d46528627228fb1e3071ddd8b38 (patch)
tree6c1e340d1a50655b3f0eb3d21e87fefbf388fef6 /eclass/linux-build.eclass
parentprofiles/common: Drop more files (diff)
downloadportage-a5d32e13b1c69d46528627228fb1e3071ddd8b38.tar.xz
eclass/linux-build: Restore previous config if possible
Diffstat (limited to 'eclass/linux-build.eclass')
-rw-r--r--eclass/linux-build.eclass35
1 files changed, 34 insertions, 1 deletions
diff --git a/eclass/linux-build.eclass b/eclass/linux-build.eclass
index 755ea36e..396ecc11 100644
--- a/eclass/linux-build.eclass
+++ b/eclass/linux-build.eclass
@@ -67,7 +67,35 @@ _linux-build_configval() {
esac
}
-_linux-build_pkg_setup-build() {
+_linux-build_pkg_setup-build-config() {
+ local _v
+
+ if ! use savedconfig ; then
+ return 0
+ fi
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ return 0
+ fi
+
+ for _v in "${PF}" "${P}" "${PN}" ; do
+ if [[ -e "${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/${CATEGORY}/${_v}" ]] ; then
+ return 0
+ fi
+ done
+
+ for _v in ${REPLACING_VERSIONS} ; do
+ einfo "Restoring previous install configuration"
+ if [[ -e "${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/${CATEGORY}/${PN}-${_v}" ]] ; then
+ einfo "From ${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/${CATEGORY}/${PN}-${_v}"
+ cp "${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/${CATEGORY}/${PN}-${_v}" \
+ "${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/${CATEGORY}/${PF}"
+ eend 0
+ fi
+ done
+}
+
+_linux-build_pkg_setup-build-x509() {
local _v
for _v in "${PF}" "${P}" "${PN}" ; do
@@ -94,6 +122,11 @@ _linux-build_pkg_setup-build() {
done
}
+_linux-build_pkg_setup-build() {
+ _linux-build_pkg_setup-build-config
+ _linux-build_pkg_setup-build-x509
+}
+
linux-build_pkg_setup() {
kernel-2_pkg_setup