* gnu/packages/arduino.scm (arduino-hardware): New variable.
---
 gnu/packages/arduino.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm
index b8d9aba..ae69c04 100644
--- a/gnu/packages/arduino.scm
+++ b/gnu/packages/arduino.scm
@@ -38,3 +38,56 @@
      (mkdir-p out-share)
      (copy-recursively ,filename out-share-part))))
 
+(define-public arduino-hardware
+  (package
+    (name "arduino-hardware")
+    (version "1.6.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/arduino/Arduino/archive/"; version ".tar.gz"))
+              (sha256
+               (base32
+                "15gbg64i2ac6d0mlnbla567sn26494cvqwf5q53xzf4b5v2rb0jc"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (modules '((guix build utils)))
+              (snippet
+                 '(begin
+                    ;; Delete bundled jar archives.
+                    (for-each delete-file (find-files "." "\\.jar$"))
+                    #t))
+              (patches (search-patches "arduino-hardware-patch-out-__cxa_guard_acquire.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests exist
+       #:phases
+        (modify-phases %standard-phases
+          (delete 'configure)
+          (delete 'build)
+          (add-after 'unpack 'prepare-dependencies
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              ;; this is intended to just prepare arduino inputs where its build system expects them
+              (for-each (lambda (input)
+                          (let* ((key (car input))
+                                 (out-dir (assoc-ref outputs "out"))
+                                 (destination-dir (string-append out-dir "/share/arduino")))
+                            (if (string-prefix? "arduino-" key)
+                              (let* ((basename
+                                       (string-drop key (string-length "arduino-")))
+                                     (target-outdir (assoc-ref inputs key))
+                                     (target-dir (string-append target-outdir "/share/arduino"))
+                                     (target (string-append target-dir "/" basename))
+                                     (destination (string-append destination-dir "/" basename)))
+                                (mkdir-p destination-dir)
+                                (symlink target destination)
+                              #t))))
+                        inputs)
+              #t))
+          (add-before 'build 'chdir
+            (lambda _
+              (chdir "hardware")))
+          (replace 'install ,(arduino-installer "hardware")))))
+    (home-page "https://www.arduino.cc/";)
+    (synopsis "Arduino Hardware Spec Files")
+    (description "arduino-hardware contains Arduino Hardware Spec Files (boards.txt etc).")
+    ;; GPL covers the main body ("app", "core"). LGPL covers the remainder.
+    (license license:lgpl2.1+))) ; FIXME check

Reply via email to