all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
blob 675df8052d1105cf7f35c8fee554b27fe0d9e3a7 4836 bytes (raw)
name: gnu/packages/arduino.scm 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
 
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages arduino)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix utils)
  #:use-module (guix download)
  #:use-module (guix packages)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system python)
  #:use-module (guix build-system ant)
  #:use-module (gnu packages)
  #:use-module (gnu packages avr)
  #:use-module (gnu packages flashing-tools)
  #:use-module (gnu packages java)
  #:use-module (gnu packages python))

(define (arduino-installer filename)
  `(lambda* (#:key outputs #:allow-other-keys)
    (let* ((out (assoc-ref outputs "out"))
           (out-share (string-append out "/share/arduino"))
           (out-share-part (string-append out-share "/" ,filename)))
     (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

(define-public arduino-libraries
  (package (inherit arduino-hardware)
    (name "arduino-libraries")
    (inputs `(("arduino-hardware" ,arduino-hardware)))
    (arguments
      (substitute-keyword-arguments
        (package-arguments arduino-hardware)
        ((#:phases phases)
            `(modify-phases ,phases
              (replace 'chdir
                (lambda _
                  (chdir "libraries")))
              (replace 'install ,(arduino-installer "libraries"))))))
    (license license:lgpl2.1))) ; FIXME check apache license etc

debug log:

solving 675df80 ...
found 675df80 in https://yhetil.org/guix/20160816183632.30820-5-dannym@scratchpost.org/
found ae69c04 in https://yhetil.org/guix/20160816183632.30820-4-dannym@scratchpost.org/
found b8d9aba in https://yhetil.org/guix/20160816183632.30820-3-dannym@scratchpost.org/
found fc9712c in https://yhetil.org/guix/20160816183632.30820-2-dannym@scratchpost.org/

applying [1/4] https://yhetil.org/guix/20160816183632.30820-2-dannym@scratchpost.org/
diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm
new file mode 100644
index 0000000..fc9712c


applying [2/4] https://yhetil.org/guix/20160816183632.30820-3-dannym@scratchpost.org/
diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm
index fc9712c..b8d9aba 100644


applying [3/4] https://yhetil.org/guix/20160816183632.30820-4-dannym@scratchpost.org/
diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm
index b8d9aba..ae69c04 100644


applying [4/4] https://yhetil.org/guix/20160816183632.30820-5-dannym@scratchpost.org/
diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm
index ae69c04..675df80 100644

Checking patch gnu/packages/arduino.scm...
Applied patch gnu/packages/arduino.scm cleanly.
Checking patch gnu/packages/arduino.scm...
3:54: new blank line at EOF.
+
Applied patch gnu/packages/arduino.scm cleanly.
Checking patch gnu/packages/arduino.scm...
Applied patch gnu/packages/arduino.scm cleanly.
Checking patch gnu/packages/arduino.scm...
Applied patch gnu/packages/arduino.scm cleanly.
warning: 1 line adds whitespace errors.

index at:
100644 675df8052d1105cf7f35c8fee554b27fe0d9e3a7	gnu/packages/arduino.scm

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.