Signed-off-by: Alexander Berntsen <berna...@gentoo.org>
Suggested-by:  Zac Medico         <zmed...@gentoo.org>
---
Add some output. Use the more backwards compatible OSError instead of
FileNotFoundError.

 pym/_emerge/main.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 5d5e936..f1a9e18 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1100,6 +1100,20 @@ def emerge_main(args=None):
                # loading to allow new repos with non-existent directories
                portage._sync_mode = True
 
+       # Verify that /dev/null exists and is a device file as a cheap early
+       # filter for obviously broken /dev/s.
+       try:
+               if os.stat(os.devnull).st_rdev == 0:
+                       writemsg_level("Failed to validate a sane '/dev'.\n"
+                                 "'/dev/null' is not a device file.\n",
+                                 level=logging.ERROR, noiselevel=-1)
+                       return 1
+       except OSError:
+               writemsg_level("Failed to validate a sane '/dev'.\n"
+                                "'/dev/null' does not exist.\n",
+                                level=logging.ERROR, noiselevel=-1)
+               return 1
+
        # Portage needs to ensure a sane umask for the files it creates.
        os.umask(0o22)
        emerge_config = load_emerge_config(
-- 
2.0.5


Reply via email to