From a6e0ae4046911023044563bafd0aa8b662bb1de9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 Jan 2017 23:38:07 +0100 Subject: syscalls: 'terminal-columns' swallows ENOSYS. * guix/build/syscalls.scm (terminal-columns): Catch ENOSYS. --- guix/build/syscalls.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 9386c0f5d0..2e37846ff0 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015 Mark H Weaver ;;; @@ -1474,7 +1474,9 @@ always a positive integer." ;; ENOTTY is what we're after but 2012-and-earlier Linux versions ;; would return EINVAL instead in some cases: ;; . - (if (or (= errno ENOTTY) (= errno EINVAL)) + ;; Furthermore, some FUSE file systems like unionfs return ENOSYS for + ;; that ioctl. + (if (memv errno (list ENOTTY EINVAL ENOSYS)) (fall-back) (apply throw args)))))) -- cgit 1.4.1