uuid: 'uuid' macro supports more UUID types. * gnu/system/uuid.scm (string->uuid): Turn 'type' into an optional argument. (uuid): Add clauses to allow for an optional 'type' parameter.
system: Serialize the UUID type in the "parameters" file. * gnu/system.scm (read-boot-parameters)[device->sexp]: New procedure. Use it for 'root-device' and 'store-device'. (device->sexp): Serialize the UUID type in addition to its bytevector.
system: Introduce a disjoint UUID type. Conceptually a UUID is just a bytevector. However, there's software out there such as GRUB that relies on the string representation of different UUID types (e.g., the string representation of DCE UUIDs differs from that of ISO-9660 UUIDs, even if they are actually bytevectors of the same length). This new <uuid> record type allows us to preserve information about the type of UUID so we can eventually convert it to a string using the right representation. * gnu/system/uuid.scm (<uuid>): New record type. (bytevector->uuid): New procedure. (uuid): Return calls to 'make-uuid'. (uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?' argument. * gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead of 'bytevector?'. * gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE is 'uuid?'. (read-boot-parameters): Use 'bytevector->uuid' when the store device is a bytevector. (read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'. (device->sexp): New procedure. (operating-system-boot-parameters-file): Use it for 'root-device' and 'store'. (operating-system-bootcfg): Remove conditional in definition of 'root-device'. * gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on DEVICE and take its bytevector. * gnu/system/mapped-devices.scm (open-luks-device): Likewise. * gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the #:volume-uuid argument.
services: file-system: Use 'file-system->spec'. * gnu/services/base.scm (file-system-shepherd-service): Use 'file-system->spec' instead of in-line code.
file-systems: Introduce (gnu system uuid). * gnu/build/file-systems.scm (sub-bytevector) (latin1->string, %fat32-endianness, fat32-uuid->string) (%iso9660-uuid-rx, string->iso9660-uuid) (iso9660-uuid->string, %network-byte-order) (dce-uuid->string, %uuid-rx, string->dce-uuid) (string->ext2-uuid, string->ext3-uuid, string->ext4-uuid) (vhashq, %uuid-parsers, %uuid-printers, string->uuid) (uuid->string): Move to... * gnu/system/uuid.scm: ... here. New file. * gnu/system/file-systems.scm (uuid): Move to the above file. * gnu/system/vm.scm: Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Add uuid.scm.
services: base: Import the closure of (gnu build file-systems). * gnu/services/base.scm (file-system-shepherd-service): Use 'source-module-closure' in the 'with-imported-modules' form.
file-systems: Add UUID type dictionaries. * gnu/build/file-systems.scm (uuid->string): Rename to... (dce-uuid->string): ... this. (string->uuid): Rename to... (string->dce-uuid): ... this. (vhashq): New macro. (%uuid-parsers, %uuid-printers): New variables. (uuid->string, string->uuid): New procedures.
vm: Allow partitions to be initialized with a given UUID. * gnu/build/vm.scm (<partition>)[uuid]: New field. (create-ext-file-system): Add #:uuid and honor it. (create-fat-file-system): Add #:uuid. (format-partition): Add #:uuid and honor it. (initialize-partition): Honor the 'uuid' field of PARTITION.
gnu: mpg123: Update to 1.25.6 [fixes CVE-2017-12797]. * gnu/packages/mp3.scm (mpg123): Update to 1.25.6.
gnu: libchamplain: Update to 0.12.16. * gnu/packages/gnome.scm (libchamplain): Update to 0.12.16.
gnu: gnome-online-accounts: Update to 3.24.3. * gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.24.3.
gnu: emacs: Patch message-mode enriched text translation [security fix]. * gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch: New file. * gnu/packages/emacs.scm (emacs)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it.
gnu: nyacc: Update to 0.82.0. * gnu/packages/mes.scm (nyacc): Update to 0.82.0.
gnu: ruby-activesupport: Update to 5.1.4. * gnu/packages/ruby.scm (ruby-activesupport): Update to 5.1.4.
gnu: icedtea-8: Install the nss.cfg file to JRE. Before this, accessing HTTPS will throw an exception about 'nss.cfg' could not be found. * gnu/packages/java.scm (icedtea-8)[arguments]: Copy 'nss.cfg' from JDK into JRE in the install phase.
gnu: gdb: Update to 8.0.1. * gnu/packages/gdb.scm (gdb): Update to 8.0.1.
download: Adjust main ftp.gnu.org mirror. * guix/download.scm (%mirrors): Add missing "/gnu" in first mirror, although that mirror would work even without it. Use https instead of http.
gnu-maintenance: Return all the latest tarballs, not just one. * guix/gnu-maintenance.scm (latest-gnu-release): Return a list of matching tarballs instead of just the first one. This gives us .tar.gz, .tar.xz, etc.
gnu-maintenance: Correctly compare versions. * guix/gnu-maintenance.scm (latest-gnu-release): Add calls to 'sans-extension'. This fixes version comparison, which could be fooled with the ".tar.gz" extension.
gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to a9468b4.