Gentoo Archives: gentoo-portage-dev

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

Replies