Hi Ludo, On Thu, 14 Dec 2017 09:52:07 +0100 [email protected] (Ludovic Courtès) wrote:
> Hello! > > AIUI this will solve lack of /dev/fuse at startup (among other things), > right? I always wondered why it wasn’t showing up automatically. Yep. (The reason it works in other distros is because there's an executable "systemd-tmpfiles" which does what I do in this patch, before udevd is started) > Rather: > > (define (report-system-error . args) > (let ((errno (system-error-errno args))) > (format (current-error-port) "could not create…: ~a~%" (strerror > errno)))) > > (define-syntax-rule (catch-system-error exp) > (catch 'system-error > (lambda () > exp) > report-system-error)) I'd like this to include the file name in the error message. I rather hate UNIXoid error messages like "mknod: Permission denied" where it doesn't say which arguments mknod had :P > (The term ‘callback’ is never used in Scheme; we just write ‘proc’ or > ‘thunk’.) Oh okay. > Could we read that directly instead of invoking ‘kmod’? Probably, but it would mean that we'd duplicate kmod and take up maintenance of something extraneous. We could do it - but what does it buy us? > What about having a ‘static-device-nodes’ procedure that would parse > that and return a list of <device-node>, where: > > ;; TYPE is 'char or 'block, MAJOR and MINOR are integers. > (define-record-type <device-node> > (device-node name type major minor module) > device-node? > …) > > and then: > > (define create-device-node > (match-lambda > (($ <device-node> name type major minor) > (mknod …)))) > > finally: > > (for-each create-device-node (static-device-nodes)) > > ? The kmod format has entries not only for mknod but also for mkdir (it actually mkdirs the same directory twice sometimes which is why there was another version of this patch...).
