[bug#33355] gnu: Add apfs-fuse.

Message ID 8476480843b3008eefec00ec40903fda58a0c57c.1542043368.git.leo@famulari.name
State New
Headers show
Series
  • [bug#33355] gnu: Add apfs-fuse.
Related show

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Leo Famulari Nov. 12, 2018, 5:22 p.m. UTC
* gnu/packages/file-systems.scm (apfs-fuse): New variable.
---
 gnu/packages/file-systems.scm | 49 +++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

Comments

Ludovic Courtès Nov. 16, 2018, 10:07 p.m. UTC | #1
Leo Famulari <leo@famulari.name> skribis:

> * gnu/packages/file-systems.scm (apfs-fuse): New variable.

LGTM!  Nitpicking:

> +      (synopsis "Read-only FUSE driver for the APFS filesystem")
> +      (description "Apfs-fuse is a read-only FUSE driver for the Apple File
> +System (@dfn{APFS}).  It is currently in an experimental state — it may not be

Maybe “APFS-FUSE” and “@dfn{Apple File System} (APFS).”.  :-)

Thanks,
Ludo’.
Leo Famulari Nov. 20, 2018, 4:28 a.m. UTC | #2
On Fri, Nov 16, 2018 at 11:07:02PM +0100, Ludovic Courtès wrote:
> Maybe “APFS-FUSE” and “@dfn{Apple File System} (APFS).”.  :-)

Right :)

Pushed as ccada6f932a9a82ffaa55d99df289a6e182bee7d

Patch

diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index f250719bb..9483cf9a0 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -2,6 +2,7 @@ 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@ 
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix utils)
   #:use-module (gnu packages)
@@ -245,3 +247,50 @@  All of this is accomplished without a centralized metadata server.")
     (description
      "This is a file system client based on the FTP File Transfer Protocol.")
     (license license:gpl2+)))
+
+(define-public apfs-fuse
+  (let ((commit "c7036a3030d128bcecefc1eabc47c039ccfdcec9")
+        (revision "0"))
+    (package
+      (name "apfs-fuse")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/sgan81/apfs-fuse")
+                       (recursive? #t) ; for lzfse
+                       (commit commit)))
+         (sha256
+          (base32
+           "1akd4cx1f9cyq6sfk9ybv4chhjwjlnqi8ic4z5ajnd5x0g76nz3r"))
+         (file-name (git-file-name name version))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f ; No test suite
+         #:phases
+         (modify-phases %standard-phases
+           ;; No 'install' target in CMakeLists.txt
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (lib (string-append out "/lib"))
+                      (doc (string-append out "/share/doc/"
+                                          (string-append ,name "-" ,version))))
+                 (install-file "apfs-dump" bin)
+                 (install-file "apfs-dump-quick" bin)
+                 (install-file "apfs-fuse" bin)
+                 (install-file "libapfs.a" lib)
+                 (install-file "../source/LICENSE" doc)
+                 #t))))))
+      (inputs
+       `(("bzip2" ,bzip2)
+         ("fuse" ,fuse)
+         ("zlib" ,zlib)))
+      (synopsis "Read-only FUSE driver for the APFS filesystem")
+      (description "Apfs-fuse is a read-only FUSE driver for the Apple File
+System (@dfn{APFS}).  It is currently in an experimental state — it may not be
+able to read all files, and it does not support all the compression methods in
+APFS.")
+      (home-page "https://github.com/sgan81/apfs-fuse")
+      (license license:gpl2+))))