GNU bug report logs - #27265
[PATCH] file-systems: Use creation time if modification time is unset for ISO9660.

Previous Next

Package: guix-patches;

Reported by: Danny Milosavljevic <dannym <at> scratchpost.org>

Date: Tue, 6 Jun 2017 08:51:02 UTC

Severity: normal

Tags: patch

Done: Danny Milosavljevic <dannym <at> scratchpost.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 27265 in the body.
You can then email your comments to 27265 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#27265; Package guix-patches. (Tue, 06 Jun 2017 08:51:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Danny Milosavljevic <dannym <at> scratchpost.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 06 Jun 2017 08:51:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH] file-systems: Use creation time if modification time is unset
 for ISO9660.
Date: Tue,  6 Jun 2017 10:50:37 +0200
* gnu/build/file-systems.scm (iso9660-superblock-uuid): Modify.
---
 gnu/build/file-systems.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 10be0dc83..7737de3d0 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -268,12 +268,18 @@ as a bytevector, or #f if DEVICE does not contain an iso9660 file system."
 
 (define (iso9660-superblock-uuid sblock)
   "Return the modification time of an iso9660 primary volume descriptor
-SBLOCK as a bytevector."
+SBLOCK as a bytevector.  If that's not set, returns the creation time."
   ;; Drops GMT offset for compatibility with Grub, blkid and /dev/disk/by-uuid.
   ;; Compare Grub: "2014-12-02-19-30-23-00".
   ;; Compare blkid result: "2014-12-02-19-30-23-00".
   ;; Compare /dev/disk/by-uuid entry: "2014-12-02-19-30-23-00".
-  (sub-bytevector sblock 830 16))
+  (let* ((creation-time (sub-bytevector sblock 813 17))
+         (modification-time (sub-bytevector sblock 830 17))
+         (unset-time (make-bytevector 17 0))
+         (time (if (bytevector=? unset-time modification-time)
+                   creation-time
+                   modification-time)))
+    (sub-bytevector time 0 16))) ; strips GMT offset.
 
 (define (iso9660-uuid->string uuid)
   "Given an UUID bytevector, return its timestamp string."




Information forwarded to guix-patches <at> gnu.org:
bug#27265; Package guix-patches. (Tue, 06 Jun 2017 23:20:01 GMT) Full text and rfc822 format available.

Message #8 received at 27265 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 27265 <at> debbugs.gnu.org
Subject: Re: bug#27265: [PATCH] file-systems: Use creation time if
 modification time is unset for ISO9660.
Date: Wed, 07 Jun 2017 01:19:34 +0200
Danny Milosavljevic <dannym <at> scratchpost.org> skribis:

> * gnu/build/file-systems.scm (iso9660-superblock-uuid): Modify.
> ---
>  gnu/build/file-systems.scm | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
> index 10be0dc83..7737de3d0 100644
> --- a/gnu/build/file-systems.scm
> +++ b/gnu/build/file-systems.scm
> @@ -268,12 +268,18 @@ as a bytevector, or #f if DEVICE does not contain an iso9660 file system."
>  
>  (define (iso9660-superblock-uuid sblock)
>    "Return the modification time of an iso9660 primary volume descriptor
> -SBLOCK as a bytevector."
> +SBLOCK as a bytevector.  If that's not set, returns the creation time."
>    ;; Drops GMT offset for compatibility with Grub, blkid and /dev/disk/by-uuid.
>    ;; Compare Grub: "2014-12-02-19-30-23-00".
>    ;; Compare blkid result: "2014-12-02-19-30-23-00".
>    ;; Compare /dev/disk/by-uuid entry: "2014-12-02-19-30-23-00".
> -  (sub-bytevector sblock 830 16))
> +  (let* ((creation-time (sub-bytevector sblock 813 17))
> +         (modification-time (sub-bytevector sblock 830 17))
> +         (unset-time (make-bytevector 17 0))
> +         (time (if (bytevector=? unset-time modification-time)
> +                   creation-time
> +                   modification-time)))
> +    (sub-bytevector time 0 16))) ; strips GMT offset.

LGTM.

I suppose this makes those UUIDs a bit more unique, right?

Thank you,
Ludo’.




Reply sent to Danny Milosavljevic <dannym <at> scratchpost.org>:
You have taken responsibility. (Wed, 07 Jun 2017 06:36:02 GMT) Full text and rfc822 format available.

Notification sent to Danny Milosavljevic <dannym <at> scratchpost.org>:
bug acknowledged by developer. (Wed, 07 Jun 2017 06:36:02 GMT) Full text and rfc822 format available.

Message #13 received at 27265-done <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 27265-done <at> debbugs.gnu.org
Subject: Re: bug#27265: [PATCH] file-systems: Use creation time if
 modification time is unset for ISO9660.
Date: Wed, 7 Jun 2017 08:35:34 +0200
Hi Ludo,

On Wed, 07 Jun 2017 01:19:34 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:

> LGTM.
> 
> I suppose this makes those UUIDs a bit more unique, right?

Yes, and it also aligns with what util-linux libblkid is doing (the same; see probe_iso9660 in util-linux-2.29.2/libblkid/src/superblocks/iso9660.c).

Pushed as c6aee77e297ee9c96412825127a921dbd1d10e92 to master.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 05 Jul 2017 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 71 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.