From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id A5670138C9D for ; Sat, 25 Apr 2015 22:36:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3BA4AE07C5; Sat, 25 Apr 2015 22:36:41 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E832FE07C5 for ; Sat, 25 Apr 2015 22:36:40 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E8526340CC4 for ; Sat, 25 Apr 2015 22:36:39 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 66E3D975 for ; Sat, 25 Apr 2015 22:36:36 +0000 (UTC) From: "William Hubbs" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "William Hubbs" Message-ID: <1429997829.a6391f44ee6c68d674ae8425983467b971710d5d.williamh@OpenRC> Subject: [gentoo-commits] proj/openrc:master commit in: init.d/ X-VCS-Repository: proj/openrc X-VCS-Files: init.d/mtab.in X-VCS-Directories: init.d/ X-VCS-Committer: williamh X-VCS-Committer-Name: William Hubbs X-VCS-Revision: a6391f44ee6c68d674ae8425983467b971710d5d X-VCS-Branch: master Date: Sat, 25 Apr 2015 22:36:36 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: fcb2cd03-0cb2-4bd3-8d8e-d0f5f89acbf3 X-Archives-Hash: 6e1eff77063710f0c45cb27c952adfa8 commit: a6391f44ee6c68d674ae8425983467b971710d5d Author: William Hubbs gmail com> AuthorDate: Sat Apr 25 20:37:52 2015 +0000 Commit: William Hubbs gentoo org> CommitDate: Sat Apr 25 21:37:09 2015 +0000 URL: https://gitweb.gentoo.org/proj/openrc.git/commit/?id=a6391f44 mtab: move toward requiring /etc/mtab to be a symbolic link This changes the mtab service in the following way: - If /etc/mtab is a symbolic link, success is returned. - If /etc is not writable, we warn that we could not update /etc/mtab and return success. - If /etc/mtab does not exist, we create a symbolic link from /etc/mtab to /proc/self/mounts. - Otherwise, we warn that updating /etc/mtab as a file is deprecated and continue to update it after outputting instructions to the user for how to move it to a symbolic link. init.d/mtab.in | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/init.d/mtab.in b/init.d/mtab.in index e38d33e..3ac39ed 100644 --- a/init.d/mtab.in +++ b/init.d/mtab.in @@ -12,28 +12,30 @@ depend() start() { - if [ -L /etc/mtab ]; then - return 0 - fi - + [ -L /etc/mtab ] && return 0 + local rc=0 ebegin "Updating /etc/mtab" - vewarn "The support for updating /etc/mtab as a file is" - vewarn "deprecated and will be removed in the future." - vewarn "Please run the following command as root on your system." - vewarn - vewarn "ln -snf /proc/self/mounts /etc/mtab" - if ! echo 2>/dev/null >/etc/mtab; then - ewend 1 "/etc/mtab is not updateable" - return 0 - fi + if ! checkpath -W /etc; then + rc=1 + elif [ ! -e /etc/mtab ]; then + ln -snf /proc/self/mounts /etc/mtab + else + ewarn "The support for updating /etc/mtab as a file is" + ewarn "deprecated and will be removed in the future." + ewarn "Please run the following command as root on your system." + ewarn + ewarn "ln -snf /proc/self/mounts /etc/mtab" + ewarn - # With / as tmpfs we cannot umount -at tmpfs in localmount as that - # makes / readonly and dismounts all tmpfs even if in use which is - # not good. Luckily, umount uses /etc/mtab instead of /proc/mounts - # which allows this hack to work. - grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab + # With / as tmpfs we cannot umount -at tmpfs in localmount as that + # makes / readonly and dismounts all tmpfs even if in use which is + # not good. Luckily, umount uses /etc/mtab instead of /proc/mounts + # which allows this hack to work. + grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab - # Remove stale backups - rm -f /etc/mtab~ /etc/mtab~~ - eend 0 + # Remove stale backups + rm -f /etc/mtab~ /etc/mtab~~ + fi + eend $rc "/etc is not writable; unable to create /etc/mtab" + return 0 }