public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ian Stakenvicius" <axs@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/eudev/
Date: Mon, 25 Jul 2016 16:21:33 +0000 (UTC)	[thread overview]
Message-ID: <1469463687.739172f697490fcb8eff44e3d94ff94b867cfaa2.axs@gentoo> (raw)

commit:     739172f697490fcb8eff44e3d94ff94b867cfaa2
Author:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 25 16:15:27 2016 +0000
Commit:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
CommitDate: Mon Jul 25 16:21:27 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=739172f6

sys-fs/eudev: ensure REPLACING_VERSIONS is processed as a list

REPLACING_VERSIONS is used in eudev ebuilds during pkg_postinst to determine
when udevadm control --reload should be called:
- when it is a new installation of udev
- when it is a re-emerge of the same version (or a revision-only upgrade)

REPLACING_VERSIONS *should* only ever have zero or one values, but it is
theoretically possible for it to have more than that if, for instance, a previous
upgrade failed to complete during qmerge.  If this is the case, and only one of
the multiple versions match the version of the ebuild, then we also abort as we
don't know which one is the "good" one.

Also removed duplicate code that reloads the hwdb (looks like it was a copy-paste
from sys-fs/udev)

Bug: http://bugs.gentoo.org/589530

Package-Manager: portage-2.2.28

 sys-fs/eudev/eudev-1.10-r2.ebuild | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-1.9-r2.ebuild  | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-3.1.2.ebuild   | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-3.1.5.ebuild   | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-3.2.ebuild     | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-4.9999.ebuild  | 51 ++++++++++++++++++++-------------------
 sys-fs/eudev/eudev-9999.ebuild    | 51 ++++++++++++++++++++-------------------
 7 files changed, 182 insertions(+), 175 deletions(-)

diff --git a/sys-fs/eudev/eudev-1.10-r2.ebuild b/sys-fs/eudev/eudev-1.10-r2.ebuild
index 83d33b8..122087f 100644
--- a/sys-fs/eudev/eudev-1.10-r2.ebuild
+++ b/sys-fs/eudev/eudev-1.10-r2.ebuild
@@ -248,22 +248,41 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	if use rule-generator && use openrc && \
 	[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
@@ -279,22 +298,4 @@ pkg_postinst() {
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-1.9-r2.ebuild b/sys-fs/eudev/eudev-1.9-r2.ebuild
index 23f027b..1f77052 100644
--- a/sys-fs/eudev/eudev-1.9-r2.ebuild
+++ b/sys-fs/eudev/eudev-1.9-r2.ebuild
@@ -250,22 +250,41 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	if use rule-generator && use openrc && \
 	[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
@@ -281,22 +300,4 @@ pkg_postinst() {
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-3.1.2.ebuild b/sys-fs/eudev/eudev-3.1.2.ebuild
index e061076..f17bcba 100644
--- a/sys-fs/eudev/eudev-3.1.2.ebuild
+++ b/sys-fs/eudev/eudev-3.1.2.ebuild
@@ -230,44 +230,45 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	elog
 	elog "For more information on eudev on Gentoo, writing udev rules, and"
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-3.1.5.ebuild b/sys-fs/eudev/eudev-3.1.5.ebuild
index 0cb7025..a36ee54 100644
--- a/sys-fs/eudev/eudev-3.1.5.ebuild
+++ b/sys-fs/eudev/eudev-3.1.5.ebuild
@@ -190,22 +190,41 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	if use rule-generator && \
 	[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
@@ -221,22 +240,4 @@ pkg_postinst() {
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-3.2.ebuild b/sys-fs/eudev/eudev-3.2.ebuild
index 52c351c..e70d954 100644
--- a/sys-fs/eudev/eudev-3.2.ebuild
+++ b/sys-fs/eudev/eudev-3.2.ebuild
@@ -190,22 +190,41 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	if use rule-generator && \
 	[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
@@ -221,22 +240,4 @@ pkg_postinst() {
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-4.9999.ebuild b/sys-fs/eudev/eudev-4.9999.ebuild
index 57d3d76..2d29640 100644
--- a/sys-fs/eudev/eudev-4.9999.ebuild
+++ b/sys-fs/eudev/eudev-4.9999.ebuild
@@ -184,44 +184,45 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	elog
 	elog "For more information on eudev on Gentoo, writing udev rules, and"
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }

diff --git a/sys-fs/eudev/eudev-9999.ebuild b/sys-fs/eudev/eudev-9999.ebuild
index 52c351c..e70d954 100644
--- a/sys-fs/eudev/eudev-9999.ebuild
+++ b/sys-fs/eudev/eudev-9999.ebuild
@@ -190,22 +190,41 @@ pkg_postinst() {
 		ewarn "else losetup may be confused when looking for unused devices."
 	fi
 
+	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+	# https://bugs.gentoo.org/246847
+	# https://bugs.gentoo.org/514174
+	enewgroup input
+
+	# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+	# process it as a list.  We only care about the zero case (new install) or the case where
+	# the same version is being re-emerged.  If there is a second version, allow it to abort.
+	local rv rvres=doitnew
+	for rv in ${REPLACING_VERSIONS} ; do
+		if [[ ${rvres} == doit* ]]; then
+			if [[ ${rv%-r*} == ${PV} ]]; then
+				rvres=doit
+			else
+				rvres=${rv}
+			fi
+		fi
+	done
+
 	if use hwdb && has_version 'sys-apps/hwids[udev]'; then
 		udevadm hwdb --update --root="${ROOT%/}"
 
 		# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
 		# reload database after it has be rebuilt, but only if we are not upgrading
 		# also pass if we are -9999 since who knows what hwdb related changes there might be
-		if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
-		[[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+		if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
 			udevadm control --reload
 		fi
 	fi
-
-	ewarn
-	ewarn "You need to restart eudev as soon as possible to make the"
-	ewarn "upgrade go into effect:"
-	ewarn "\t/etc/init.d/udev --nodeps restart"
+	if [[ ${rvres} != doitnew ]]; then
+		ewarn
+		ewarn "You need to restart eudev as soon as possible to make the"
+		ewarn "upgrade go into effect:"
+		ewarn "\t/etc/init.d/udev --nodeps restart"
+	fi
 
 	if use rule-generator && \
 	[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
@@ -221,22 +240,4 @@ pkg_postinst() {
 	elog "fixing known issues visit:"
 	elog "         https://www.gentoo.org/doc/en/udev-guide.xml"
 	elog
-
-	# https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
-	# https://bugs.gentoo.org/246847
-	# https://bugs.gentoo.org/514174
-	enewgroup input
-
-	# Update hwdb database in case the format is changed by udev version.
-	if has_version 'sys-apps/hwids[udev]'; then
-		udevadm hwdb --update --root="${ROOT%/}"
-		# Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
-		if [[ -z ${REPLACING_VERSIONS} ]]; then
-			# https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
-			if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
-				return 0
-			fi
-			udevadm control --reload
-		fi
-	fi
 }


             reply	other threads:[~2016-07-25 16:21 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-25 16:21 Ian Stakenvicius [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-10-06 18:00 [gentoo-commits] repo/gentoo:master commit in: sys-fs/eudev/ Sam James
2023-08-20 20:09 Mike Gilbert
2023-05-17  1:58 Sam James
2022-12-05 17:24 WANG Xuerui
2022-12-05 17:24 WANG Xuerui
2022-12-05 17:24 WANG Xuerui
2022-10-30  9:35 Sam James
2022-06-16  1:00 Sam James
2022-06-10  2:45 Sam James
2022-06-07  2:02 Sam James
2022-04-29  5:04 Sam James
2022-04-17  8:16 Sam James
2021-12-25  0:02 Mike Gilbert
2021-12-21  2:55 Sam James
2021-12-21  2:55 Sam James
2021-12-21  2:55 Sam James
2021-12-21  2:49 Sam James
2021-12-21  2:49 Sam James
2021-12-21  2:49 Sam James
2021-12-21  2:48 Sam James
2021-12-20  6:47 Sam James
2021-12-20  6:46 Sam James
2021-12-18  5:46 Sam James
2021-12-18  5:43 Sam James
2021-12-18  5:43 Sam James
2021-12-18  5:16 Sam James
2021-12-18  4:40 Sam James
2021-12-18  4:39 Sam James
2021-12-18  4:39 Sam James
2021-12-18  4:39 Sam James
2021-12-18  4:39 Sam James
2021-08-15 19:06 Sam James
2021-07-20 18:31 Sam James
2021-07-20  2:18 Sam James
2021-07-17 21:57 Andreas K. Hüttel
2021-03-26 12:01 Agostino Sarubbo
2021-02-18  7:26 Sam James
2021-02-16 12:30 Sam James
2021-02-14 14:53 Sam James
2021-02-12 13:56 Sam James
2021-02-12 13:47 Sam James
2021-02-12  9:58 Sam James
2021-02-12  9:57 Sam James
2021-02-09 19:41 Anthony G. Basile
2020-02-13 21:40 David Seifert
2019-12-02 11:04 Mikle Kolyada
2019-12-02 11:04 Mikle Kolyada
2019-12-02 11:04 Mikle Kolyada
2019-11-08  3:23 Aaron Bauman
2019-11-04 20:06 Sergei Trofimovich
2019-11-04 20:06 Sergei Trofimovich
2019-11-01 20:09 Matt Turner
2019-11-01 20:09 Matt Turner
2019-11-01 10:34 Mikle Kolyada
2019-10-28 11:27 Agostino Sarubbo
2019-10-28  9:43 Agostino Sarubbo
2019-10-26 20:37 Anthony G. Basile
2019-07-29 17:50 Mike Gilbert
2019-05-20 14:06 Anthony G. Basile
2019-05-04 19:51 Andreas K. Hüttel
2019-04-10  5:13 Jory Pratt
2018-12-01 22:16 Anthony G. Basile
2018-10-26 13:57 Anthony G. Basile
2018-10-26 13:57 Anthony G. Basile
2018-09-18 13:52 Anthony G. Basile
2018-09-15 22:10 Anthony G. Basile
2018-08-18  2:49 Mikle Kolyada
2018-06-20  8:17 Michał Górny
2018-05-11  2:09 Matt Turner
2018-05-09 11:08 Jeroen Roovers
2018-05-09 10:44 Mikle Kolyada
2018-04-04 10:27 Anthony G. Basile
2018-04-04 10:27 Anthony G. Basile
2018-03-29  6:59 Sergei Trofimovich
2018-03-15 14:47 Mikle Kolyada
2018-03-15  1:50 Mart Raudsepp
2018-03-04 16:23 Tobias Klausmann
2018-01-27 22:31 Sergei Trofimovich
2018-01-26 21:12 Mikle Kolyada
2018-01-26 19:54 Thomas Deutschmann
2017-11-23  9:59 Anthony G. Basile
2017-10-19 23:19 Anthony G. Basile
2017-10-19 23:19 Anthony G. Basile
2017-09-05 22:37 Anthony G. Basile
2017-09-03 18:31 Anthony G. Basile
2017-09-02 14:15 Michael Palimaka
2017-07-30  9:23 Michał Górny
2017-05-01 14:48 Anthony G. Basile
2017-05-01 14:48 Anthony G. Basile
2017-04-19 21:25 Anthony G. Basile
2016-12-12  6:58 Anthony G. Basile
2016-12-12  6:58 Anthony G. Basile
2016-08-01  5:50 Benda XU
2016-07-05  0:37 Anthony G. Basile
2016-06-24 13:44 Anthony G. Basile
2016-06-01 22:28 Anthony G. Basile
2016-05-30 14:53 Mike Gilbert
2016-04-09 10:17 Anthony G. Basile
2016-04-09  2:10 Anthony G. Basile
2016-02-24 19:18 Anthony G. Basile
2016-02-24 18:20 Anthony G. Basile
2016-01-24  8:23 Jeroen Roovers
2016-01-11  9:56 Agostino Sarubbo
2016-01-10 11:22 Agostino Sarubbo
2016-01-09  7:00 Agostino Sarubbo
2015-12-26 12:03 Agostino Sarubbo
2015-12-19  6:18 Jeroen Roovers
2015-12-11 10:50 Mikle Kolyada
2015-10-13  6:11 Anthony G. Basile
2015-10-13  6:11 Anthony G. Basile
2015-10-13  0:01 Anthony G. Basile
2015-10-12 11:51 Anthony G. Basile
2015-10-12 11:46 Anthony G. Basile
2015-09-06 12:41 Agostino Sarubbo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1469463687.739172f697490fcb8eff44e3d94ff94b867cfaa2.axs@gentoo \
    --to=axs@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox