mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-23 01:25:57 +02:00
vm: Use 9p mount tags below 32 chars.
Fixes <https://bugs.gnu.org/30667>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * gnu/system/vm.scm (file-system->mount-tag): Use 'sha1' to compute the tag.
This commit is contained in:
+8
-6
@@ -30,6 +30,8 @@
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (guix base32)
|
||||
|
||||
#:use-module ((gnu build vm)
|
||||
#:select (qemu-command))
|
||||
@@ -544,13 +546,13 @@ of the GNU system as described by OS."
|
||||
|
||||
(define (file-system->mount-tag fs)
|
||||
"Return a 9p mount tag for host file system FS."
|
||||
;; QEMU mount tags cannot contain slashes and cannot start with '_'.
|
||||
;; Compute an identifier that corresponds to the rules.
|
||||
;; QEMU mount tags must be ASCII, at most 31-byte long, cannot contain
|
||||
;; slashes, and cannot start with '_'. Compute an identifier that
|
||||
;; corresponds to the rules.
|
||||
(string-append "TAG"
|
||||
(string-map (match-lambda
|
||||
(#\/ #\_)
|
||||
(chr chr))
|
||||
fs)))
|
||||
(string-drop (bytevector->base32-string
|
||||
(sha1 (string->utf8 fs)))
|
||||
4)))
|
||||
|
||||
(define (mapping->file-system mapping)
|
||||
"Return a 9p file system that realizes MAPPING."
|
||||
|
||||
Reference in New Issue
Block a user