SHA256
1
0
forked from pool/os-prober
os-prober/os-prober-linux-distro-parse-os-release.patch
Andrei Borzenkov 2ebd2e5419 Accepting request 433076 from home:michael-chang:branches:Base:System
- Handle /etc/os-release symlink (bsc#997465)
  * refresh os-prober-linux-distro-parse-os-release.patch

OBS-URL: https://build.opensuse.org/request/show/433076
OBS-URL: https://build.opensuse.org/package/show/Base:System/os-prober?expand=0&rev=69
2016-10-04 11:56:26 +00:00

26 lines
1.3 KiB
Diff

Index: os-prober-1.70/os-probes/mounted/common/90linux-distro
===================================================================
--- os-prober-1.70.orig/os-probes/mounted/common/90linux-distro
+++ os-prober-1.70/os-probes/mounted/common/90linux-distro
@@ -117,6 +117,20 @@ elif [ -e "$dir/etc/lfs-release" ]; then
elif [ -e "$dir/etc/meego-release" ]; then
short="MeeGo"
long="$(head -1 "$dir/etc/meego-release")"
+elif [ -L "$dir/etc/os-release" ]; then
+ RELPATH=$(readlink -f "$dir/etc/os-release")
+ if readlink "$dir/etc/os-release" | grep -q '^/'; then
+ RELPATH="$dir$RELPATH"
+ fi
+ if [ -f "$RELPATH" ]; then
+ short=$(sed -n "/^NAME=/{s@\"\(.*\)\"@\1@;t 1;s@'\(.*\)'@\1@;: 1;s@^[^=]\+=@@;p;b}" "$RELPATH")
+ long="$short $(sed -n "/^VERSION=/{s@\"\(.*\)\"@\1@;t 1;s@'\(.*\)'@\1@;: 1;s@^[^=]\+=@@;p;b}" "$RELPATH")"
+ else
+ exit 1
+ fi
+elif [ -e "$dir/etc/os-release" ]; then
+ short=$(sed -n "/^NAME=/{s@\"\(.*\)\"@\1@;t 1;s@'\(.*\)'@\1@;: 1;s@^[^=]\+=@@;p;b}" $dir/etc/os-release)
+ long="$short $(sed -n "/^VERSION=/{s@\"\(.*\)\"@\1@;t 1;s@'\(.*\)'@\1@;: 1;s@^[^=]\+=@@;p;b}" $dir/etc/os-release)"
# This test is inaccurate, but given separate / and /boot partitions and the
# fact that only some architectures have ld-linux.so, I can't see anything
# better. Make sure this test has a high number so that more accurate tests