bug#27735: [PATCH 1/2] build, vm: Use a slightly less generic label.

2017-07-18 Thread Danny Milosavljevic
Hi T G-R,
Hi Ludo,

On Tue, 18 Jul 2017 14:30:10 +0200
Tobias Geerinckx-Rice  wrote:

> On 18/07/17 12:09, Ludovic Courtès wrote:
> > Can we do ‘string-map’ to replace dash with underscore, just like we did
> > ‘normalize-label’?  

Yes.

> That would have been a better approach. :-)

I disagree that that would be better.  Every map is a source of error and also 
makes it difficult to follow what is going on (i.e. difficult to maintain).

Best is only to use the common intersection of all the valid charsets and not 
map anything to anything else.

We can map it and it's OK but it's not good in the long run.  I've learnt that 
the hard way over many years.

But since we do string-upcase already, it doesn't matter anymore.  Better hope 
we don't break it by accident one day (or right away), though.





bug#27735: [PATCH 1/2] build, vm: Use a slightly less generic label.

2017-07-18 Thread Tobias Geerinckx-Rice
Ludo',

On 18/07/17 12:09, Ludovic Courtès wrote:
> Can we do ‘string-map’ to replace dash with underscore, just like we did
> ‘normalize-label’?

That would have been a better approach. :-)

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


bug#27735: [PATCH 1/2] build, vm: Use a slightly less generic label.

2017-07-17 Thread Tobias Geerinckx-Rice
Danny,

On 17/07/17 19:20, Danny Milosavljevic wrote:
> Dash is invalid.  Otherwise OK!

Good to know (I consider you an expert on file system label esoterica,
mainly so I don't have to be). Thanks!

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


bug#27735: [PATCH 1/2] build, vm: Use a slightly less generic label.

2017-07-17 Thread Danny Milosavljevic
Dash is invalid.  Otherwise OK!





bug#27735: [PATCH 1/2] build, vm: Use a slightly less generic label.

2017-07-17 Thread Tobias Geerinckx-Rice
* gnu/build/vm.scm (initialize-hard-disk): Use "GuixSD-image" as label.
* gnu/system/install.scm (installation-os): Likewise.
* gnu/system/vm.scm (system-disk-image): Likewise.
---

Or GuixSD-bikeshed or whatever.

 gnu/build/vm.scm   | 7 +--
 gnu/system/install.scm | 2 +-
 gnu/system/vm.scm  | 2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index d8c53ef37..e71b1b92e 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -354,7 +354,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 
'system' derivation."
   (error "failed to create GRUB EFI image"
 
 (define* (make-iso9660-image grub config-file os-drv target
- #:key (volume-id "GuixSD") (volume-uuid #f))
+ #:key (volume-id "GuixSD-image") (volume-uuid #f))
   "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as
 Grub configuration and OS-DRV as the stuff in it."
   (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")))
@@ -440,11 +440,14 @@ passing it a directory name where it is mounted."
 
 ;; Create a tiny configuration file telling the embedded grub
 ;; where to load the real thing.
+;; XXX This is quite fragile, and can leave the system in an unusable
+;; state when there's more than one volume with this label present.
+;; Reproducible (not-)UUIDs could reduce the risk but not eliminate it.
 (call-with-output-file grub-config
   (lambda (port)
 (format port
 "insmod part_msdos~@
-search --set=root --label GuixSD~@
+search --set=root --label GuixSD-image~@
 configfile /boot/grub/grub.cfg~%")))
 
 (display "creating EFI firmware image...")
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index f9aa7f673..866440eb4 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -306,7 +306,7 @@ Use Alt-F2 for documentation.
  ;; the appropriate one.
  (cons* (file-system
   (mount-point "/")
-  (device "GuixSD")
+  (device "GuixSD-image")
   (title 'label)
   (type "ext4"))
 
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index dd9be2c6f..6e06781d5 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -345,7 +345,7 @@ to USB sticks meant to be read-only."
 ;; Volume name of the root file system.  Since we don't know which device
 ;; will hold it, we use the volume name to find it (using the UUID would
 ;; be even better, but somewhat less convenient.)
-(normalize-label "GuixSD"))
+(normalize-label "GuixSD-image"))
 
   (define file-systems-to-keep
 (remove (lambda (fs)
-- 
2.13.1