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