I've been trying to package Facebook's watchman, but I keep running into a
number of problems, none of which have been obvious to fix.  Can someone
point out what I'm missing?
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 376a801fe2..84b482088e 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -19,16 +19,23 @@
 
 (define-module (gnu packages storage)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix build utils)
+  #:use-module (guix build gnu-build-system)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages authentication)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages commencement)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cryptsetup)
@@ -247,3 +254,43 @@ storage protocols (S3, NFS, and others) through the RADOS gateway.")
                    license:cc-by-sa3.0           ;documentation
                    license:bsd-3                 ;isa-l,jerasure,++
                    license:expat))))             ;civetweb,java bindings
+
+(define-public watchman
+  (package
+    (name "watchman")
+    (version "4.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                      (url "https://github.com/facebook/watchman.git";)
+                      (commit "8e0ba724d85de2c89f48161807e878667b9ed089")))
+              (sha256
+               (base32
+                "0fdaj5pmicm6j17d5q7px800m5rmam1a400x3hv1iiifnmhgnkal"))))
+    (build-system gnu-build-system)
+    (arguments
+      (modify-phases %standard-phases
+        (add-after 'build 'add-python-to-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            ( setenv "PATH" (string-append (assoc-ref inputs "python") "/bin"))))))
+    (inputs
+      `(("python" ,python)
+        ("coreutils" ,coreutils)
+        ("glibc" ,glibc)))
+    (native-inputs
+      `(("automake" ,automake)
+        ("autoconf" ,autoconf)
+        ("coreutils" ,coreutils)
+        ("gcc-toolchain" ,gcc-toolchain)
+        ("glibc" ,glibc)
+        ("libtool" ,libtool)
+        ("pkg-config" ,pkg-config)
+        ("openssl" ,openssl)
+        ("python" ,python)))
+    (propagated-inputs
+      `(("python" ,python)))
+    (synopsis "Watches files and records, or triggers actions, when they change")
+    (description "Watchman exists to watch files and record when they actually change.
+It can also trigger actions (such as rebuilding assets) when matching files change.")
+    (license license:asl2.0)
+    (home-page "https://facebook.github.io/watchman/";)))

Reply via email to