]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Add better uname replacement.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 15 Sep 2011 22:10:15 +0000 (00:10 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 15 Sep 2011 22:10:15 +0000 (00:10 +0200)
Supports faking kernel release and supports ARM.

lfs/coreutils
src/scripts/uname [new file with mode: 0644]

index 6e78e3af4934a18a8b6befbc58ca12d97b1670fe..c4aa9db02b1cdef45d6353455d0ab9e205f154f4 100644 (file)
@@ -107,15 +107,13 @@ ifeq "$(ROOT)" ""
        ln -sf test /bin/[
        #ln -sf ../../bin/install /usr/bin
        mv -f /bin/uname /bin/uname.bak
-       echo '#!/bin/bash'                              >  /bin/uname
-       echo '/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g'' >> /bin/uname
+       cp -vf $(DIR_SRC)/src/scripts/uname /bin/uname
        chmod 755 /bin/uname
        dircolors -p > /etc/dircolors
 else
        rm /tools/bin/hostname
        mv -f /tools/bin/uname /tools/bin/uname.bak
-       echo '#!/bin/bash'                                      >  /tools/bin/uname
-       echo '/tools/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g''     >> /tools/bin/uname
+       cp -vf $(DIR_SRC)/src/scripts/uname /tools/bin/uname
        chmod 755 /tools/bin/uname
 endif
        @rm -rf $(DIR_APP)
diff --git a/src/scripts/uname b/src/scripts/uname
new file mode 100644 (file)
index 0000000..b76b530
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+uname=
+for i in /bin/uname.bak /tools/bin/uname.bak; do
+       if [ -x "$i" ]; then
+               uname=${i}
+               break
+       fi
+done
+
+if [ -z "${uname}" ]; then
+       exit 127
+fi
+
+machine=$(${uname} -m)
+kernel=$(${uname} -r)
+output=$(${uname} $@)
+
+# Overwrite kernel version to hack kernel 3.x versions.
+output=$(sed -e "s/${kernel}/${KVER}/g" <<<${output})
+
+case "${machine}" in
+       arm*)
+               echo "${output}" | \
+                       sed -e "s/armv.tej?l?/${MACHINE}/g"
+               ;;
+
+       i?86)
+               echo "${output}" | \
+                       sed -e "s/i.86/${MACHINE}/g"
+               ;;
+esac