[os-prober] Fix separate /usr partitions for usrmove distros (bug #1044760)

Hedayat Vatankhah hedayat at fedoraproject.org
Tue May 6 19:02:00 UTC 2014


commit dea69a97c72c65657d3d15097d81ea7f997626c4
Author: Hedayat Vatankhah <hedayat.fwd at gmail.com>
Date:   Tue May 6 23:31:56 2014 +0430

    Fix separate /usr partitions for usrmove distros (bug #1044760)
    
    - Fix umount error when directory is temporarily busy (bug #903906)

 os-prober-umount-fix.patch |   18 ++++++++++++++++++
 os-prober-usrmovefix.patch |   24 ++++++++++++++++++++----
 os-prober.spec             |    8 +++++++-
 3 files changed, 45 insertions(+), 5 deletions(-)
---
diff --git a/os-prober-umount-fix.patch b/os-prober-umount-fix.patch
new file mode 100644
index 0000000..2f8696f
--- /dev/null
+++ b/os-prober-umount-fix.patch
@@ -0,0 +1,18 @@
+Index: os-prober-1.58/common.sh
+===================================================================
+--- os-prober-1.58.orig/common.sh
++++ os-prober-1.58/common.sh
+@@ -313,3 +313,13 @@ linux_mount_boot () {
+ 
+ 	mountboot="$bootpart $mounted"
+ }
++
++umount_exec=$(which umount)
++umount() {
++	if ! $umount_exec $@; then
++		error "umount error, retrying after 1 sec"
++		sleep 1
++		$umount_exec $@
++	fi
++}
++
diff --git a/os-prober-usrmovefix.patch b/os-prober-usrmovefix.patch
index e03d536..6db9936 100644
--- a/os-prober-usrmovefix.patch
+++ b/os-prober-usrmovefix.patch
@@ -1,12 +1,28 @@
-diff -up os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix os-prober-1.57/os-probes/mounted/common/90linux-distro
---- os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix	2013-01-23 00:39:20.333616357 +0330
-+++ os-prober-1.57/os-probes/mounted/common/90linux-distro	2013-01-23 00:39:51.834222545 +0330
+Index: os-prober-1.58/os-probes/mounted/common/90linux-distro
+===================================================================
+--- os-prober-1.58.orig/os-probes/mounted/common/90linux-distro
++++ os-prober-1.58/os-probes/mounted/common/90linux-distro
 @@ -17,7 +17,7 @@ type="$3"
  # symlinks we need to also check in $dir/usr/lib* for distributions that
  # moved /lib* to /usr and only left symlinks behind.
  # TODO: look for ld-linux.so on arches that have it
 -if (ls "$dir"/lib*/ld*.so* || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
-+if (ls "$dir"/lib*/ld*.so*  && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
++if [ -L "$dir"/lib ] || (ls "$dir"/lib*/ld*.so* || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
  	if [ -e "$dir/etc/debian_version" ]; then
  		short="Debian"
  		long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")"
+@@ -125,9 +125,13 @@ if (ls "$dir"/lib*/ld*.so* || ls "$dir"/
+ 	elif [ -e "$dir/etc/meego-release" ]; then
+ 		short="MeeGo"
+ 		long="$(head -1 "$dir/etc/meego-release")"
+-	else
++	elif (ls "$dir"/lib*/ld*.so*  && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
++		# Don't report 'Linux distribution' if only a /lib symlink is found or if this is 
++		# a partition without /boot (should be /usr partition)
+ 		short="Linux"
+ 		long="unknown Linux distribution"
++	else
++		exit 1
+ 	fi
+ 	
+         label="$(count_next_label "$short")"
diff --git a/os-prober.spec b/os-prober.spec
index 173dab4..3fbf030 100644
--- a/os-prober.spec
+++ b/os-prober.spec
@@ -1,6 +1,6 @@
 Name:           os-prober
 Version:        1.58
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        Probes disks on the system for installed operating systems
 
 Group:          System Environment/Base
@@ -27,6 +27,7 @@ Patch10:        os-prober-factor-out-logger.patch
 # testing in https://bugzilla.redhat.com/show_bug.cgi?id=873207
 # - adamw 2013/07
 #Patch11:        os-prober-factored-logger-efi-fix.patch
+Patch12:        os-prober-umount-fix.patch
 
 Requires:       udev coreutils util-linux
 Requires:       grep /bin/sed /sbin/modprobe
@@ -50,6 +51,7 @@ distributions can be added easily.
 %patch9 -p1 -b .mounted-partitions-fix
 %patch10 -p1 -b .factor-out-logger
 #patch11 -p1 -b .factor-out-logger-efi-fix
+%patch12 -p1 -b .umount-fix
 
 find -type f -exec sed -i -e 's|usr/lib|usr/libexec|g' {} \;
 sed -i -e 's|grub-probe|grub2-probe|g' os-probes/common/50mounted-tests \
@@ -100,6 +102,10 @@ fi
 %{_var}/lib/%{name}
 
 %changelog
+* Tue May 06 2014 Hedayat Vatankhah <hedayat.fwd+rpmchlog at gmail.com> - 1.58-6
+- Fix separate /usr partitions for usrmove distros (bug #1044760)
+- Fix umount error when directory is temporarily busy (bug #903906)
+
 * Thu Apr 24 2014 Hedayat Vatankhah <hedayat.fwd+rpmchlog at gmail.com> - 1.58-5
 - Fixed bug #982009: fix btrfs support
 - Suppress some more debug messages when debug messages are disabled


More information about the scm-commits mailing list