GNU bug report logs -
#57590
[PATCH] Adding libldm: Manager for Windows dynamic disks including software RAID. It creates device mapper entries for dynamic disks allowing them to be mounted.
Previous Next
Full log
View this message in rfc822 format
---
gnu/packages/libldm.scm | 70 +++++++++++++++++++++++++++++++++++++++++
gnu/services/libldm.scm | 47 +++++++++++++++++++++++++++
2 files changed, 117 insertions(+)
create mode 100644 gnu/packages/libldm.scm
create mode 100644 gnu/services/libldm.scm
diff --git a/gnu/packages/libldm.scm b/gnu/packages/libldm.scm
new file mode 100644
index 0000000000..38fb5e218e
--- /dev/null
+++ b/gnu/packages/libldm.scm
@@ -0,0 +1,70 @@
+(define-module (gnu packages libldm)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module ((guix licenses)
+ #:prefix license:)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages m4)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages gtk)
+ #:use-module (guix git-download))
+
+(define-public libldm
+ (package
+ (name "libldm")
+ (version "0.2.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mdbooth/libldm.git")
+ (commit (string-append "libldm-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08iz3kq4ci79abpyxwwqmzi3bayyk4s29n8h1jqgdgk5yskwgnrn"))))
+ (build-system gnu-build-system)
+ (inputs (list json-glib
+ glib
+ zlib
+ readline
+ lvm2
+ libgudev))
+ (native-inputs (list which
+ m4
+ libtool
+ autoconf-wrapper
+ automake
+ pkg-config
+ `(,glib "bin")
+ gtk-doc
+ libxml2
+ libxslt
+ docbook-xsl))
+ (arguments
+ '(#:tests? #f
+ #:parallel-build? #t
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-env
+ (lambda _
+ (setenv "CONFIG_SHELL"
+ (which "")) #t))
+ (add-before 'bootstrap 'run-gtkdocize
+ (lambda _
+ (invoke "gtkdocize")))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "autoreconf" "-fiv"))))))
+ (home-page "https://github.com/mdbooth/libldm")
+ (synopsis "Manager for Microsoft Windows dynamic disks")
+ (description
+ "Libldm is a library for managing Microsoft Windows dynamic
disks, which use Microsoft's LDM metadata. It can inspect them, and
also create and remove device-mapper block devices which can be
mounted.")
+ (license license:gpl3)))
diff --git a/gnu/services/libldm.scm b/gnu/services/libldm.scm
new file mode 100644
index 0000000000..00e19540f0
--- /dev/null
+++ b/gnu/services/libldm.scm
@@ -0,0 +1,47 @@
+(define-module (gnu services libldm)
+ #:use-module (guix records)
+ #:use-module (guix gexp)
+ #:use-module (guix diagnostics)
+ #:use-module (guix i18n)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match)
+ #:use-module (guix gexp)
+ #:use-module (gnu services)
+ #:use-module (guix modules)
+ #:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu packages libldm)
+ #:export (libldm-configuration libldm-configuration? libldm-service-type))
+
+(define-record-type* <libldm-configuration>
+ libldm-configuration
+ make-libldm-configuration
+ libldm-configuration?
+ (package
+ libldm-configuration-package
+ (default libldm))
+ (action libldm-configuration-action
+ (default '("create" "all"))))
+
+(define (libldm-shepherd-service config)
+ "Return a <shepherd-service> for libldm with CONFIG"
+ (let* ((libldm (libldm-configuration-package config))
+ (action (libldm-configuration-action config)))
+ (list (shepherd-service (documentation
+ "Run ldmtool to create Windows dynamic
disc device nodes at startup.")
+ (provision '(libldmd))
+ (one-shot? #t)
+ (start #~(make-forkexec-constructor
(append (list (string-append #$libldm
+
"/bin/ldmtool"))
+
'(#$@action))))
+ (stop #~(make-kill-destructor))))))
+
+(define libldm-service-type
+ (service-type (name 'libldm)
+ (extensions (list (service-extension
+ shepherd-root-service-type
+ libldm-shepherd-service)))
+ (default-value (libldm-configuration))
+ (description
+ "Run ldmtool to create device nodes for Windows
dynamic discs so they can be mounted")))
base-commit: 41bce2414a286836b4071d90b660fb457ee76e32
--
2.36.1
This bug report was last modified 2 years and 248 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.