Gentoo Archives: gentoo-portage-dev

From: Alexander Berntsen <bernalex@g.o>
To: gentoo-portage-dev@l.g.o
Subject: [gentoo-portage-dev] [PATCH v2] Add early check for broken /dev/s (bug 538980)
Date: Fri, 13 Feb 2015 18:11:21
Message-Id: 1423851070-17330-1-git-send-email-bernalex@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH] Add early check for broken /dev/s (bug 538980) by Alexander Berntsen
1 Signed-off-by: Alexander Berntsen <bernalex@g.o>
2 Suggested-by: Zac Medico <zmedico@g.o>
3 ---
4 Add some output. Use the more backwards compatible OSError instead of
5 FileNotFoundError.
6
7 pym/_emerge/main.py | 14 ++++++++++++++
8 1 file changed, 14 insertions(+)
9
10 diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
11 index 5d5e936..f1a9e18 100644
12 --- a/pym/_emerge/main.py
13 +++ b/pym/_emerge/main.py
14 @@ -1100,6 +1100,20 @@ def emerge_main(args=None):
15 # loading to allow new repos with non-existent directories
16 portage._sync_mode = True
17
18 + # Verify that /dev/null exists and is a device file as a cheap early
19 + # filter for obviously broken /dev/s.
20 + try:
21 + if os.stat(os.devnull).st_rdev == 0:
22 + writemsg_level("Failed to validate a sane '/dev'.\n"
23 + "'/dev/null' is not a device file.\n",
24 + level=logging.ERROR, noiselevel=-1)
25 + return 1
26 + except OSError:
27 + writemsg_level("Failed to validate a sane '/dev'.\n"
28 + "'/dev/null' does not exist.\n",
29 + level=logging.ERROR, noiselevel=-1)
30 + return 1
31 +
32 # Portage needs to ensure a sane umask for the files it creates.
33 os.umask(0o22)
34 emerge_config = load_emerge_config(
35 --
36 2.0.5

Replies