unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* rust: Crate Dependencies
@ 2016-12-28 14:51 Danny Milosavljevic
  2016-12-29 10:49 ` David Craven
  0 siblings, 1 reply; 7+ messages in thread
From: Danny Milosavljevic @ 2016-12-28 14:51 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1609 bytes --]

Hi,

I'm trying Rust out for a bit and for that I added some Crates. (using David's v2 patches as a base)

Right now I'm stuck at rust-c-vec which I tried to add myself. I get:

starting phase `unpack'
c_vec-1.1.0/.travis.yml
c_vec-1.1.0/Cargo.toml
c_vec-1.1.0/LICENSE-APACHE
c_vec-1.1.0/LICENSE-MIT
c_vec-1.1.0/README.md
c_vec-1.1.0/src/c_vec.rs
phase `unpack' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `configure'
phase `configure' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
error: failed to load source for a dependency on `libc`

I tried it with the following package spec:

(define-public rust-c-vec
 (package
  (name "rust-c-vec")
  (version "1.1.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "c_vec" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "02gkicm59prlhpc2igkvl4gbmclzg6wmancscwdk3z93p04rjqhc"))))
  (build-system cargo-build-system)
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME") ; FIXME fixed manually. It said ()
  (synopsis "Structures to wrap C arrays")
  (description "Structures to wrap C arrays")
  (license (list license:asl2.0 license:expat))))

I attached a Guile module with some of the Crates I am adding...

What does the error message mean? How to fix it?

[-- Attachment #2: rustmods.scm --]
[-- Type: text/x-scheme, Size: 67292 bytes --]

(define-module (wip rustmods)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix utils)
  #:use-module (guix build-system cargo)
  #:use-module (guix gexp)
  #:use-module (gnu packages)
  #:use-module (gnu packages rust)
  #:use-module (gnu packages pkg-config))

(define-public rust-bitflags
 (package
  (name "rust-bitflags")
  (version "0.7.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "bitflags" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0v8hh6wdkpk9my8z8442g4hqrqf05h0qj53dsay6mv18lqvqklda"))))
  (build-system cargo-build-system)
  (home-page
    "https://github.com/rust-lang/bitflags")
  (synopsis
    "A macro to generate structures which behave like bitflags.
")
  (description
    "This package provides a macro to generate structures which behave like bitflags.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-glib-sys
 (package
  (name "rust-glib-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "glib-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1cwjfhyvys3hyzfr326sp1spsnj5drf8p9zixgis233zk7gz45d3"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libglib-2.0")
  (description "FFI bindings to libglib-2.0")
  (license license:expat)))

(define-public rust-pkg-config
 (package
  (name "rust-pkg-config")
  (version "0.3.8")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "pkg-config" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1ypj4nj2z9z27qg06v3g40jyhw685i3l2wi098d21bvyri781vlc"))))
  (build-system cargo-build-system)
  (home-page "https://github.com/alexcrichton/pkg-config-rs") ; FIXME manually fixed; it said ()
  (synopsis
    "A library to run the pkg-config system tool at build time in order to be used in
Cargo build scripts.
")
  (description
    "This package provides a library to run the pkg-config system tool at build time in order to be used in
Cargo build scripts.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-gobject-sys
 (package
  (name "rust-gobject-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gobject-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "13qy4hsh74351969mzc19sx29g1clmh58v75d87pfnsikqi6qdw8"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libgobject-2.0")
  (description "FFI bindings to libgobject-2.0")
  (license license:expat)))

(define-public rust-glib
 (package
  (name "rust-glib")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "glib" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1c8vki446i8lj83r4l4lixxgmcyfwm86agnr46lldib6nrmb1gm4"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the GLib library")
  (description
    "Rust bindings for the GLib library")
  (license license:expat)))

(define-public rust-log
 (package
  (name "rust-log")
  (version "0.3.6")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "log" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0m40hgs3cg57dd5kk1mabfk6gk8z6l1cihar8akx4kmzz1xlk0xb"))))
  (build-system cargo-build-system)
  (home-page "https://github.com/rust-lang/log")
  (synopsis
    "A lightweight logging facade for Rust
")
  (description
    "This package provides a lightweight logging facade for Rust
")
  (license (list license:expat license:asl2.0))))

(define-public rust-tempdir
 (package
  (name "rust-tempdir")
  (version "0.3.5")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "tempdir" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1mij45kgzflkja0h8q9avrik76h5a0b60m9hfd6k9yqxbiplm5w7"))))
  (build-system cargo-build-system)
  (inputs `(("rust-rand" ,rust-rand)))
  (home-page
    "https://github.com/rust-lang/tempdir")
  (synopsis
    "A library for managing a temporary directory and deleting all contents when it's
dropped.
")
  (description
    "This package provides a library for managing a temporary directory and deleting all contents when it's
dropped.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-rustdoc-stripper
 (package
  (name "rust-rustdoc-stripper")
  (version "0.1.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "rustdoc-stripper" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "08ib58jmv9029dr6h0sz58abc37b9ky4fffzplnfvqd2hddw7a73"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-tempdir" ,rust-tempdir)))
  (home-page
    "https://github.com/GuillaumeGomez/rustdoc-stripper")
  (synopsis
    "A tool to manipulate rustdoc comments")
  (description
    "This package provides a tool to manipulate rustdoc comments")
  (license license:asl2.0)))

(define-public rust-gtk-rs-lgpl-docs
 (package
  (name "rust-gtk-rs-lgpl-docs")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gtk-rs-lgpl-docs" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0gkhj4jb2ivl969064jw4mbprnavbp03lvz6i3zqxf851fxqk9bf"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-rustdoc-stripper" ,rust-rustdoc-stripper)))
  (home-page "http://gtk-rs.org/")
  (synopsis "LGPL-licensed docs for Gtk-rs crates")
  (description
    "LGPL-licensed docs for Gtk-rs crates")
  (license license:lgpl2.0)))

(define-public rust-x11
 (package
  (name "rust-x11")
  (version "2.11.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "x11" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0wyp5mjmi2xlygvw7nmcy27wanb26i3r714rg7cfnbcd5hl9lwdy"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis "X11 library bindings for Rust")
  (description "X11 library bindings for Rust")
  (license license:cc0)))

(define-public rust-cairo-sys-rs
 (package
  (name "rust-cairo-sys-rs")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "cairo-sys-rs" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1ximb6jcixp2w0jqp07mczcbxfs8p48xfnfls6ymsj0jpb6daxz3"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-libc" ,rust-libc) ("rust-x11" ,rust-x11)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libcairo")
  (description "FFI bindings to libcairo")
  (license license:expat)))

(define-public rust-c-vec
 (package
  (name "rust-c-vec")
  (version "1.1.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "c_vec" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "02gkicm59prlhpc2igkvl4gbmclzg6wmancscwdk3z93p04rjqhc"))))
  (build-system cargo-build-system)
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME") ; FIXME fixed manually. It said ()
  (synopsis "Structures to wrap C arrays")
  (description "Structures to wrap C arrays")
  (license (list license:asl2.0 license:expat))))

(define-public rust-cairo-rs
 (package
  (name "rust-cairo-rs")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "cairo-rs" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1c48ffvh0sdq0wfh5w0c4lc1l0afyazqbsak8cwk7fkghyp2sgjv"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs)))
  (inputs
    `(("rust-c-vec" ,rust-c-vec)
      ("rust-cairo-sys-rs" ,rust-cairo-sys-rs)
      ("rust-glib" ,rust-glib)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the Cairo library")
  (description
    "Rust bindings for the Cairo library")
  (license license:expat)))

(define-public rust-gio-sys
 (package
  (name "rust-gio-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gio-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0y8w76vc3n390rqwxn8qw6mkg6j6jfb1gb2npxafsh99lh10w2qa"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libgio-2.0")
  (description "FFI bindings to libgio-2.0")
  (license license:expat)))

(define-public rust-gdk-pixbuf-sys
 (package
  (name "rust-gdk-pixbuf-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gdk-pixbuf-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "004msp69wckz38kg7v0h6lr89zv41j143gxmwcnv260yba0r6izh"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-gio-sys" ,rust-gio-sys)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libgdk_pixbuf-2.0")
  (description "FFI bindings to libgdk_pixbuf-2.0")
  (license license:expat)))

(define-public rust-gdk-pixbuf
 (package
  (name "rust-gdk-pixbuf")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gdk-pixbuf" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0fsp3m1vwas9pkmjysxbama5ndmrs0hk0r6567jbl4zga7kvv4zq"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs)))
  (inputs
    `(("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys)
      ("rust-glib" ,rust-glib)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis
    "Rust bindings for the GdkPixbuf library")
  (description
    "Rust bindings for the GdkPixbuf library")
  (license license:expat)))

(define-public rust-gio
 (package
  (name "rust-gio")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gio" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0qwnnjccpmzy4j4hiblkrsbm4gkhayj7siansiv73i09bi292ivk"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-gio-sys" ,rust-gio-sys)
      ("rust-glib" ,rust-glib)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the GLib library")
  (description
    "Rust bindings for the GLib library")
  (license license:expat)))

(define-public rust-pango-sys
 (package
  (name "rust-pango-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "pango-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0x38igza9ain405p0jhs73w4bc80wl39xk6f6x8j0pf3v7vap558"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libpango-1.0")
  (description "FFI bindings to libpango-1.0")
  (license license:expat)))

(define-public rust-pango
 (package
  (name "rust-pango")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "pango" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1php8v30jihsnk97xbwalpik4z3b8bccqbqcbppazs0m57gsy99d"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-glib" ,rust-glib)
      ("rust-libc" ,rust-libc)
      ("rust-pango-sys" ,rust-pango-sys)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the Pango library")
  (description
    "Rust bindings for the Pango library")
  (license license:expat)))

(define-public rust-gdk-sys
 (package
  (name "rust-gdk-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gdk-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "05hpz7f1z6qjzhlr8yb2m2aj0i3zk14ns6jrlqhnars0jsj2wdqg"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-cairo-sys-rs" ,rust-cairo-sys-rs)
      ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys)
      ("rust-gio-sys" ,rust-gio-sys)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)
      ("rust-pango-sys" ,rust-pango-sys)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libgdk-3")
  (description "FFI bindings to libgdk-3")
  (license license:expat)))

(define-public rust-atk-sys
 (package
  (name "rust-atk-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "atk-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "03zqiqzlpwf7g241nwfazm53vka45mvi0y2d32ss0h4cgj9x8gcx"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libatk-1")
  (description "FFI bindings to libatk-1")
  (license license:expat)))

(define-public rust-gtk-sys
 (package
  (name "rust-gtk-sys")
  (version "0.3.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gtk-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0zgirblh3ww07d0kiqhzf58j14mnragzn3mf2sdc3891ld1s1p7c"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-atk-sys" ,rust-atk-sys)
      ("rust-bitflags" ,rust-bitflags)
      ("rust-cairo-sys-rs" ,rust-cairo-sys-rs)
      ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys)
      ("rust-gdk-sys" ,rust-gdk-sys)
      ("rust-gio-sys" ,rust-gio-sys)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-libc" ,rust-libc)
      ("rust-pango-sys" ,rust-pango-sys)))
  (home-page "http://gtk-rs.org/")
  (synopsis "FFI bindings to libgtk-3")
  (description "FFI bindings to libgtk-3")
  (license license:expat)))

(define-public rust-gtk
 (package
  (name "rust-gtk")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gtk" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "064pq7c3j1hjgjnw0iymy553hcgbzd326pmyics94k8a6g9x5iah"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-cairo-rs" ,rust-cairo-rs)
      ("rust-cairo-sys-rs" ,rust-cairo-sys-rs)
      ("rust-gdk" ,rust-gdk)
      ("rust-gdk-pixbuf" ,rust-gdk-pixbuf)
      ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys)
      ("rust-gdk-sys" ,rust-gdk-sys)
      ("rust-gio" ,rust-gio)
      ("rust-gio-sys" ,rust-gio-sys)
      ("rust-glib" ,rust-glib)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-gobject-sys" ,rust-gobject-sys)
      ("rust-gtk-sys" ,rust-gtk-sys)
      ("rust-libc" ,rust-libc)
      ("rust-pango" ,rust-pango)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the GTK+ 3 library")
  (description
    "Rust bindings for the GTK+ 3 library")
  (license license:expat)))
;rust-gtk-examples
;sys
(define-public rust-gdk
 (package
  (name "rust-gdk")
  (version "0.5.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gdk" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1bxgw1cqfbavm3c1kpfy76aabp01ny5yjvnagmxibg1m7ayrc48m"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-cairo-rs" ,rust-cairo-rs)
      ("rust-gdk-pixbuf" ,rust-gdk-pixbuf)
      ("rust-gdk-sys" ,rust-gdk-sys)
      ("rust-gio" ,rust-gio)
      ("rust-glib" ,rust-glib)
      ("rust-glib-sys" ,rust-glib-sys)
      ("rust-libc" ,rust-libc)
      ("rust-pango" ,rust-pango)))
  (home-page "http://gtk-rs.org/")
  (synopsis "Rust bindings for the GDK 3 library")
  (description
    "Rust bindings for the GDK 3 library")
  (license license:expat)))

; FIXME gir
; FIXME rust-gir-files
; FIXME tests
; FIXME docs

(define-public rust-gstreamer
 (package
  (name "rust-gstreamer")
  (version "0.7.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gstreamer" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "06dg76kcpp2hv3bay77mbhkbjs3az2bllq5g0b6fd2q9z0pajjp6"))))
  (build-system cargo-build-system)
  (home-page
    "https://github.com/arturoc/gstreamer1.0-rs")
  (synopsis "Idiomatic bindings for GStreamer")
  (description "Idiomatic bindings for GStreamer")
  (license license:expat)))

(define-public rust-openssl-sys
 (package
  (name "rust-openssl-sys")
  (version "0.9.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "openssl-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1ga6c3x0cvzbkjnqkrlaj7dy117a0xa13anfh91b1rq02y25x16j"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-gdi32-sys" ,rust-gdi32-sys)
      ("rust-libc" ,rust-libc)
      ("rust-user32-sys" ,rust-user32-sys)))
  (home-page "FIXME")
  (synopsis "FFI bindings to OpenSSL")
  (description "FFI bindings to OpenSSL")
  (license license:expat)))

(define-public rust-openssl-probe
 (package
  (name "rust-openssl-probe")
  (version "0.1.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "openssl-probe" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0689h6rhzy6dypqr90lsxnf108nsnh952wsx7ggs70s48b44jvbm"))))
  (build-system cargo-build-system)
  (home-page
    "https://github.com/alexcrichton/openssl-probe")
  (synopsis
    "Tool for helping to find SSL certificate locations on the system for OpenSSL
")
  (description
    "Tool for helping to find SSL certificate locations on the system for OpenSSL
")
  (license (list license:expat license:asl2.0))))

(define-public rust-spin
 (package
  (name "rust-spin")
  (version "0.4.5")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "spin" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0lvyyxg646wl67b41655p2z25s725sw1rsfvpnm8d7vq5dpa45hx"))))
  (build-system cargo-build-system)
  (home-page "FIXME")
  (synopsis
    "Synchronization primitives based on spinning.
They may contain data,
They are usable without `std`
and static initializers are available.
")
  (description
    "Synchronization primitives based on spinning.
They may contain data,
They are usable without `std`
and static initializers are available.
")
  (license license:expat)))

(define-public rust-lazy-static
 (package
  (name "rust-lazy-static")
  (version "0.2.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "lazy_static" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "16z1h7w702sxnscak38jykxlhxq0b5ip4mndlb46pkaqwzi0xgka"))))
  (build-system cargo-build-system)
  (inputs `(("rust-spin" ,rust-spin)))
  (home-page "FIXME")
  (synopsis
    "A macro for declaring lazily evaluated statics in Rust.")
  (description
    "This package provides a macro for declaring lazily evaluated statics in Rust.")
  (license license:expat)))

(define-public rust-openssl
 (package
  (name "rust-openssl")
  (version "0.9.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "openssl" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0p5j0kisv3fmkzqj05589gw1l6scgs03jb7hdwqjhcm2xb3n3ghj"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-hex" ,rust-hex)
      ("rust-tempdir" ,rust-tempdir)
      ("rust-winapi" ,rust-winapi)
      ("rust-ws2-32-sys" ,rust-ws2-32-sys)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-lazy-static" ,rust-lazy-static)
      ("rust-libc" ,rust-libc)
      ("rust-openssl-sys" ,rust-openssl-sys)))
  (home-page "FIXME")
  (synopsis "OpenSSL bindings")
  (description "OpenSSL bindings")
  (license license:asl2.0)))

(define-public rust-postgres
 (package
  (name "rust-postgres")
  (version "0.13.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "postgres" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0wydmyq2id0h417znpzgj4nc9g8b55vch6sl7i6z46mbpris9ih4"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-url" ,rust-url)))
  (inputs
    `(("rust-bit-vec" ,rust-bit-vec)
      ("rust-bufstream" ,rust-bufstream)
      ("rust-chrono" ,rust-chrono)
      ("rust-eui48" ,rust-eui48)
      ("rust-fallible-iterator"
       ,rust-fallible-iterator)
      ("rust-hex" ,rust-hex)
      ("rust-log" ,rust-log)
      ("rust-native-tls" ,rust-native-tls)
      ("rust-openssl" ,rust-openssl)
      ("rust-phf" ,rust-phf)
      ("rust-postgres-protocol"
       ,rust-postgres-protocol)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-schannel" ,rust-schannel)
      ("rust-security-framework"
       ,rust-security-framework)
      ("rust-serde-json" ,rust-serde-json)
      ("rust-time" ,rust-time)
      ("rust-uuid" ,rust-uuid)))
  (home-page "FIXME")
  (synopsis "A native PostgreSQL driver")
  (description
    "This package provides a native PostgreSQL driver")
  (license license:expat)))

(define-public rust-sqlite
 (package
  (name "rust-sqlite")
  (version "0.23.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "sqlite" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0laiyaq58hpb5mxfnjad8dmvs5nvg1yb3lspa4iynrll7xbj74dc"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-temporary" ,rust-temporary)))
  (inputs
    `(("rust-libc" ,rust-libc)
      ("rust-sqlite3-sys" ,rust-sqlite3-sys)))
  (home-page
    "https://github.com/stainless-steel/sqlite")
  (synopsis
    "The package provides an interface to SQLite.")
  (description
    "The package provides an interface to SQLite.")
  (license (list license:asl2.0 license:expat))))

(define-public rust-dbus
 (package
  (name "rust-dbus")
  (version "0.4.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "dbus" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0jqbs7vnaq9s7bh4wjczi575mz1mp6wzv76dy5mg6ybgmi67pv2q"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)
      ("rust-tempdir" ,rust-tempdir)))
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis
    "Bindings to D-Bus, which is a bus commonly used on Linux for inter-process communication.")
  (description
    "Bindings to D-Bus, which is a bus commonly used on Linux for inter-process communication.")
  (license (list license:asl2.0 license:expat))))

(define-public rust-redis
 (package
  (name "rust-redis")
  (version "0.7.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "redis" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1pk57ry23hasjaxl2d8b25yanhhpi51wvsdwr5fydb7r122ks604"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-net2" ,rust-net2)
      ("rust-rand" ,rust-rand)))
  (inputs
    `(("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-sha1" ,rust-sha1)
      ("rust-unix-socket" ,rust-unix-socket)
      ("rust-url" ,rust-url)))
  (home-page
    "https://github.com/mitsuhiko/redis-rs")
  (synopsis "Redis driver for Rust.")
  (description "Redis driver for Rust.")
  (license license:bsd-3)))

(define-public rust-fastcgi
 (package
  (name "rust-fastcgi")
  (version "1.0.0-beta")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "fastcgi" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0z8p79664nyjg8zqa6hklrvlyrddaqg0dhxymm6inybgsxz6092b"))))
  (build-system cargo-build-system)
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis "FastCGI library written in pure Rust")
  (description
    "FastCGI library written in pure Rust")
  (license license:expat)))

(define-public rust-peg
 (package
  (name "rust-peg")
  (version "0.4.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "peg" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0yh1p1b869y1dpjjc53f7mwcw4733mwskfv5r9f3vgqd4jlb1xxj"))))
  (build-system cargo-build-system)
  (inputs `(("rust-quote" ,rust-quote)))
  (home-page "FIXME")
  (synopsis
    "A parser generator built on the Parsing Expression Grammar (PEG) formalism.
")
  (description
    "This package provides a parser generator built on the Parsing Expression Grammar (PEG) formalism.
")
  (license license:expat)))

(define-public rust-rustc-serialize
 (package
  (name "rust-rustc-serialize")
  (version "0.3.22")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "rustc-serialize" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0ywmsdk4l4q68hkw37743cf8kl7dp71p6317h14v82zji734cx93"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-rand" ,rust-rand)))
  (home-page
    "https://github.com/rust-lang/rustc-serialize")
  (synopsis
    "Generic serialization/deserialization support corresponding to the
`derive(RustcEncodable, RustcDecodable)` mode in the compiler. Also includes
support for hex, base64, and json encoding and decoding.
")
  (description
    "Generic serialization/deserialization support corresponding to the
`derive(RustcEncodable, RustcDecodable)` mode in the compiler.  Also includes
support for hex, base64, and json encoding and decoding.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-compiletest-rs
 (package
  (name "rust-compiletest-rs")
  (version "0.2.4")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "compiletest_rs" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1li1anc7rpyly7k5k4yn86v49jni0qxsqyfs1pq14jgfvgq0mmi8"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-log" ,rust-log)
      ("rust-rustc-serialize" ,rust-rustc-serialize)))
  (home-page "FIXME")
  (synopsis
    "The compiletest utility from the Rust compiler as a standalone testing harness")
  (description
    "The compiletest utility from the Rust compiler as a standalone testing harness")
  (license (list license:asl2.0 license:expat))))

(define-public rust-num-bigint
 (package
  (name "rust-num-bigint")
  (version "0.1.35")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-bigint" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0jayfkdm33p4zvcahlv46zdfhlzg053mpw32abf2lz0z8xw47cc8"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-num-integer" ,rust-num-integer)
      ("rust-num-traits" ,rust-num-traits)
      ("rust-rand" ,rust-rand)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-serde" ,rust-serde)))
  (home-page "https://github.com/rust-num/num")
  (synopsis "Big integer implementation for Rust")
  (description
    "Big integer implementation for Rust")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-traits
 (package
  (name "rust-num-traits")
  (version "0.1.36")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-traits" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "07688sp4z40p14lh5ywvrpm4zq8kcxzhjks8sg33jsr5da2l4sm1"))))
  (build-system cargo-build-system)
  (home-page "https://github.com/rust-num/num")
  (synopsis
    "Numeric traits for generic mathematics")
  (description
    "Numeric traits for generic mathematics")
  (license (list license:expat license:asl2.0))))

(define-public rust-quine-mc-cluskey
 (package
  (name "rust-quine-mc-cluskey")
  (version "0.2.4")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "quine-mc_cluskey" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0iazdlwffhrlksb8yhhs1prgwpa68rwjwqm4v26hr9hrswarcn07"))))
  (build-system cargo-build-system)
  (inputs `(("rust-quickcheck" ,rust-quickcheck)))
  (home-page "FIXME")
  (synopsis
    "Rust implementation of the Quine-McCluskey algorithm and Petrick's method")
  (description
    "Rust implementation of the Quine-McCluskey algorithm and Petrick's method")
  (license license:expat)))

(define-public rust-regex-syntax
 (package
  (name "rust-regex-syntax")
  (version "0.3.9")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "regex-syntax" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0ms9hgdhhsxw9w920i7gipydvagf100bb56jbs192rz86ln01v7r"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-quickcheck" ,rust-quickcheck)
      ("rust-rand" ,rust-rand)))
  (home-page "https://github.com/rust-lang/regex")
  (synopsis "A regular expression parser.")
  (description
    "This package provides a regular expression parser.")
  (license (list license:expat license:asl2.0))))

(define-public rust-crates-index
 (package
  (name "rust-crates-index")
  (version "0.5.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "crates-index" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1i5m3d3ls2w310zvqgwaapgnb8i95c52g7lsglh1vi35c3mskymi"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-git2" ,rust-git2)
      ("rust-glob" ,rust-glob)
      ("rust-rustc-serialize" ,rust-rustc-serialize)))
  (home-page "FIXME")
  (synopsis
    "Library for retrieving and interacting with the crates.io index")
  (description
    "Library for retrieving and interacting with the crates.io index")
  (license license:asl2.0)))

(define-public rust-semver-parser
 (package
  (name "rust-semver-parser")
  (version "0.6.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "semver-parser" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1s8s7a7yg8xhgci17y0xhyyncg229byivhpr0wbs3ljdlyjl73p8"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-lazy-static" ,rust-lazy-static)
      ("rust-regex" ,rust-regex)))
  (home-page
    "https://github.com/steveklabnik/semver-parser")
  (synopsis "Parsing of the semver spec
")
  (description "Parsing of the semver spec
")
  (license (list license:expat license:asl2.0))))

(define-public rust-semver
 (package
  (name "rust-semver")
  (version "0.5.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "semver" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1xbiv8l72rmngb3lgbmk3vd4lalcbzxcnrn085c2b75irl7gcbxf"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-crates-index" ,rust-crates-index)
      ("rust-tempdir" ,rust-tempdir)))
  (inputs
    `(("rust-semver-parser" ,rust-semver-parser)))
  (home-page "https://docs.rs/crate/semver/")
  (synopsis
    "Semantic version parsing and comparison.
")
  (description
    "Semantic version parsing and comparison.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-toml
 (package
  (name "rust-toml")
  (version "0.2.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "toml" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1d1cz43bxrx4fd6j2p6myckf81f72bp47akg36y3flxjkhj60svk"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-rustc-serialize" ,rust-rustc-serialize)))
  (inputs
    `(("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-serde" ,rust-serde)))
  (home-page
    "https://github.com/alexcrichton/toml-rs")
  (synopsis
    "A native Rust encoder and decoder of TOML-formatted files and streams. Provides
implementations of the standard Encodable/Decodable traits for TOML data to
facilitate deserializing and serializing Rust structures.
")
  (description
    "This package provides a native Rust encoder and decoder of TOML-formatted files and streams.  Provides
implementations of the standard Encodable/Decodable traits for TOML data to
facilitate deserializing and serializing Rust structures.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-unicode-normalization
 (package
  (name "rust-unicode-normalization")
  (version "0.1.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "unicode-normalization" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0whi4xxqcjfsz6ywyrfd5lhgk1a44c86qwgvfqcmzidshcpklr16"))))
  (build-system cargo-build-system)
  (home-page
    "https://github.com/unicode-rs/unicode-normalization")
  (synopsis
    "This crate provides functions for normalization of
Unicode strings, including Canonical and Compatible
Decomposition and Recomposition, as described in
Unicode Standard Annex #15.
")
  (description
    "This crate provides functions for normalization of
Unicode strings, including Canonical and Compatible
Decomposition and Recomposition, as described in
Unicode Standard Annex #15.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-clippy-lints
 (package
  (name "rust-clippy-lints")
  (version "0.0.103")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "clippy_lints" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "06k5jkavj2kqcbjg5w0zk0bj5sjh93jib89xskas0670pw2yr5nf"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-matches" ,rust-matches)
      ("rust-quine-mc-cluskey" ,rust-quine-mc-cluskey)
      ("rust-regex-syntax" ,rust-regex-syntax)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-semver" ,rust-semver)
      ("rust-toml" ,rust-toml)
      ("rust-unicode-normalization"
       ,rust-unicode-normalization)))
  (home-page "FIXME")
  (synopsis
    "A bunch of helpful lints to avoid common pitfalls in Rust")
  (description
    "This package provides a bunch of helpful lints to avoid common pitfalls in Rust")
  (license license:mpl2.0)))

(define-public rust-clippy
 (package
  (name "rust-clippy")
  (version "0.0.103")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "clippy" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0cpznss2fbb2im0yhmlw0k9cz5av9bd0l71w66d43xnxg7wsnksv"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-clippy-mini-macro-test"
       ,rust-clippy-mini-macro-test)
      ("rust-compiletest-rs" ,rust-compiletest-rs)
      ("rust-lazy-static" ,rust-lazy-static)
      ("rust-regex" ,rust-regex)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-serde" ,rust-serde)))
  (inputs
    `(("rust-clippy-lints" ,rust-clippy-lints)))
  (home-page "FIXME")
  (synopsis
    "A bunch of helpful lints to avoid common pitfalls in Rust")
  (description
    "This package provides a bunch of helpful lints to avoid common pitfalls in Rust")
  (license license:mpl2.0)))

(define-public rust-serde
 (package
  (name "rust-serde")
  (version "0.8.19")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "serde" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1ran2c1l0xb4jm89034c8yjizmawd2288cb8ddz89662f449r8aq"))))
  (build-system cargo-build-system)
  (inputs `(("rust-clippy" ,rust-clippy)))
  (home-page "https://serde.rs")
  (synopsis
    "A generic serialization/deserialization framework")
  (description
    "This package provides a generic serialization/deserialization framework")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-complex
 (package
  (name "rust-num-complex")
  (version "0.1.35")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-complex" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0bzrjfppnnzf9vmkpklhp2dw9sb1lqzydb8r6k83z76i9l2qxizh"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-num-traits" ,rust-num-traits)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-serde" ,rust-serde)))
  (home-page "https://github.com/rust-num/num")
  (synopsis
    "Complex numbers implementation for Rust")
  (description
    "Complex numbers implementation for Rust")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-integer
 (package
  (name "rust-num-integer")
  (version "0.1.32")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-integer" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "14pvaaawl0pgdcgh4dfdd67lz58yxlfl95bry86h28pjnfzxj97v"))))
  (build-system cargo-build-system)
  (inputs `(("rust-num-traits" ,rust-num-traits)))
  (home-page "https://github.com/rust-num/num")
  (synopsis "Integer traits and functions")
  (description "Integer traits and functions")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-iter
 (package
  (name "rust-num-iter")
  (version "0.1.32")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-iter" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0p74nj5c1mc33h9lx4wpmlmggmn5lnkhxv1225g0aix8d6ciqyi8"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-num-integer" ,rust-num-integer)
      ("rust-num-traits" ,rust-num-traits)))
  (home-page "https://github.com/rust-num/num")
  (synopsis
    "External iterators for generic mathematics")
  (description
    "External iterators for generic mathematics")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-rational
(package
  (name "rust-num-rational")
  (version "0.1.35")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num-rational" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1bwaygv64qg7i78yqg0v4d0amfhamj598rpy4yxjz9rlhcxn1zsl"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-num-bigint" ,rust-num-bigint)
      ("rust-num-integer" ,rust-num-integer)
      ("rust-num-traits" ,rust-num-traits)
      ("rust-rustc-serialize" ,rust-rustc-serialize)
      ("rust-serde" ,rust-serde)))
  (home-page "https://github.com/rust-num/num")
  (synopsis
    "Rational numbers implementation for Rust")
  (description
    "Rational numbers implementation for Rust")
  (license (list license:expat license:asl2.0))))

(define-public rust-num
 (package
  (name "rust-num")
  (version "0.1.36")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "081i1r3mdz6jasqd7qwraqqfqa3sdpvdvxl1xq0s7ip714xw1rxx"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-rand" ,rust-rand)))
  (inputs
    `(("rust-num-bigint" ,rust-num-bigint)
      ("rust-num-complex" ,rust-num-complex)
      ("rust-num-integer" ,rust-num-integer)
      ("rust-num-iter" ,rust-num-iter)
      ("rust-num-rational" ,rust-num-rational)
      ("rust-num-traits" ,rust-num-traits)))
  (home-page "https://github.com/rust-num/num")
  (synopsis
    "A collection of numeric types and traits for Rust, including bigint,
complex, rational, range iterators, generic integers, and more!
")
  (description
    "This package provides a collection of numeric types and traits for Rust, including bigint,
complex, rational, range iterators, generic integers, and more!
")
  (license (list license:expat license:asl2.0))))

(define-public rust-num-cpus
 (package
  (name "rust-num-cpus")
  (version "1.2.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "num_cpus" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1wx4iikpcjmm2cq23sd9q6f5ik07bcgymwn0wkja4wb25m7bzajm"))))
  (build-system cargo-build-system)
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis "Get the number of CPUs on a machine.")
  (description
    "Get the number of CPUs on a machine.")
  (license (list license:expat license:asl2.0))))

(define-public rust-rayon
 (package
  (name "rust-rayon")
  (version "0.5.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "rayon" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1aggip719pi3bawh49vsl69yc4ip7yv6w9mdyblh7dz6w02nwsiv"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-compiletest-rs" ,rust-compiletest-rs)
      ("rust-num" ,rust-num)))
  (inputs
    `(("rust-deque" ,rust-deque)
      ("rust-libc" ,rust-libc)
      ("rust-num-cpus" ,rust-num-cpus)
      ("rust-rand" ,rust-rand)))
  (home-page "FIXME")
  (synopsis
    "Simple work-stealing parallelism for Rust")
  (description
    "Simple work-stealing parallelism for Rust")
  (license (list license:asl2.0 license:expat))))

(define-public rust-gcc
 (package
  (name "rust-gcc")
  (version "0.3.40")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "gcc" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0l6rnf3b7vaxhcs7yg9nyv7brqidy2g0xhg8z0a2pvw6jkjvjbc7"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-tempdir" ,rust-tempdir)))
  (inputs `(("rust-rayon" ,rust-rayon)))
  (home-page "FIXME")
  (synopsis
    "A build-time dependency for Cargo build scripts to assist in invoking the native
C compiler to compile native C code into a static archive to be linked into Rust
code.
")
  (description
    "This package provides a build-time dependency for Cargo build scripts to assist in invoking the native
C compiler to compile native C code into a static archive to be linked into Rust
code.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-llvm-sys
 (package
  (name "rust-llvm-sys")
  (version "0.4.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "llvm-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0ja4cz2mpp301nbjbp4lk92rlaayd5aval4x1k6hh9j45957wxak"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-gcc" ,rust-gcc)
      ("rust-semver" ,rust-semver)))
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis "Bindings to LLVM's C API")
  (description "Bindings to LLVM's C API")
  (license license:expat)))

(define-public rust-llvm
 (package
  (name "rust-llvm")
  (version "0.0.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "llvm" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1rvccwwgivhb7qn988chx42wxpxbrcy77ap4kv3j46shlw7azbik"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-libc" ,rust-libc)
      ("rust-llvm-sys" ,rust-llvm-sys)))
  (home-page "FIXME")
  (synopsis "A safe wrapper for LLVM bindings")
  (description
    "This package provides a safe wrapper for LLVM bindings")
  (license license:expat)))

(define-public rust-alsa-sys
 (package
  (name "rust-alsa-sys")
  (version "0.1.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "alsa-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0g31h0ii2z8szjk4aw75szrw6hfkmsz0hrmzgiyksqgif7i88grc"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis
    "Bindings for the ALSA project (Advanced Linux Sound Architecture)")
  (description
    "Bindings for the ALSA project (Advanced Linux Sound Architecture)")
  (license license:expat)))

(define-public rust-alsa
 (package
  (name "rust-alsa")
  (version "0.1.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "alsa" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "103n80bq045ky8cykfcjvkhpaf11izaqx4j54ib8cn4rx3jmxm4d"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-alsa-sys" ,rust-alsa-sys)
      ("rust-bitflags" ,rust-bitflags)
      ("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis
    "Thin but safe wrappers for ALSA (Linux sound API)")
  (description
    "Thin but safe wrappers for ALSA (Linux sound API)")
  (license (list license:asl2.0 license:expat))))

(define-public rust-thread-scoped
 (package
  (name "rust-thread-scoped")
  (version "1.0.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "thread-scoped" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0s5fsl9swn9kqppm0bwbj0m6gh5mkm6w7sy8hkhyy2bd4k77sf0l"))))
  (build-system cargo-build-system)
  (home-page "FIXME")
  (synopsis "Stable std::thread::scoped")
  (description "Stable std::thread::scoped")
  (license (list license:expat license:asl2.0))))

(define-public rust-time
 (package
  (name "rust-time")
  (version "0.1.35")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "time" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1bw977mljs38cdajkpl1g55jz5rj76d8pdxkgbh59pr05bbccziw"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-advapi32-sys" ,rust-advapi32-sys)
      ("rust-log" ,rust-log)))
  (inputs
    `(("rust-kernel32-sys" ,rust-kernel32-sys)
      ("rust-libc" ,rust-libc)
      ("rust-rustc-serialize" ,rust-rustc-serialize)))
  (home-page "https://github.com/rust-lang/time")
  (synopsis
    "Utilities for working with time-related functions in Rust.
")
  (description
    "Utilities for working with time-related functions in Rust.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-fuse
 (package
  (name "rust-fuse")
  (version "0.2.8")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "fuse" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1xh1h1sfzs0pyz92h0wc70c1qv9579sa59ys6iggkkrrxdw89w5d"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-pkg-config" ,rust-pkg-config)))
  (inputs
    `(("rust-libc" ,rust-libc)
      ("rust-log" ,rust-log)
      ("rust-thread-scoped" ,rust-thread-scoped)
      ("rust-time" ,rust-time)))
  (home-page
    "https://github.com/zargony/rust-fuse")
  (synopsis
    "Rust library for filesystems in userspace (FUSE)")
  (description
    "Rust library for filesystems in userspace (FUSE)")
  (license license:expat)))

(define-public rust-ssh
 (package
  (name "rust-ssh")
  (version "0.1.4")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "ssh" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1bb820bykl3yxldpybiz6g21sbl3bsw2lr5g0skd63811gg1dn1d"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-bitflags" ,rust-bitflags)
      ("rust-libc" ,rust-libc)
      ("rust-log" ,rust-log)))
  (home-page "FIXME")
  (synopsis
    "Bindings to libssh, a library to write clients and servers for both version 1 and 2 of the protocol. It can also parse SSH config files and handle ProxyCommand automatically. Only the client part is implemented for now.")
  (description
    "Bindings to libssh, a library to write clients and servers for both version 1 and 2 of the protocol.  It can also parse SSH config files and handle ProxyCommand automatically.  Only the client part is implemented for now.")
  (license (list license:expat license:asl2.0))))

(define-public rust-ftp
 (package
  (name "rust-ftp")
  (version "2.0.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "ftp" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "101fag4zwyspn4p1cskgg5zfb8y0ypjff66y1babaympg1nsfw57"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-chrono" ,rust-chrono)
      ("rust-lazy-static" ,rust-lazy-static)
      ("rust-openssl" ,rust-openssl)
      ("rust-regex" ,rust-regex)))
  (home-page "FIXME")
  (synopsis "FTP client for Rust")
  (description "FTP client for Rust")
  (license (list license:asl2.0 license:expat))))

(define-public rust-curl
 (package
  (name "rust-curl")
  (version "0.4.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "curl" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1b0y27b6vpqffgzm2kxc1s2i6bgdzxk3wn65g2asbcdxrvys3mcg"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-mio" ,rust-mio)))
  (inputs
    `(("rust-curl-sys" ,rust-curl-sys)
      ("rust-libc" ,rust-libc)
      ("rust-openssl-probe" ,rust-openssl-probe)
      ("rust-openssl-sys" ,rust-openssl-sys)
      ("rust-winapi" ,rust-winapi)))
  (home-page "FIXME")
  (synopsis
    "Rust bindings to libcurl for making HTTP requests")
  (description
    "Rust bindings to libcurl for making HTTP requests")
  (license license:expat)))

(define-public rust-memchr
 (package
  (name "rust-memchr")
  (version "0.1.11")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "memchr" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "084d85hjfa3xf5kwdms2mhbkh78m1gl2254cp5swcxj3a7xjkdnq"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-quickcheck" ,rust-quickcheck)))
  (inputs `(("rust-libc" ,rust-libc)))
  (home-page
    "https://github.com/BurntSushi/rust-memchr")
  (synopsis "Safe interface to memchr.")
  (description "Safe interface to memchr.")
  (license (list license:unlicense license:expat))))

(define-public rust-aho-corasick
 (package
  (name "rust-aho-corasick")
  (version "0.5.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "aho-corasick" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0rnvdmlajikq0i4zdy1p3pv699q6apvsxfc7av7byhppllp2r5ya"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-csv" ,rust-csv)
      ("rust-docopt" ,rust-docopt)
      ("rust-memmap" ,rust-memmap)
      ("rust-quickcheck" ,rust-quickcheck)
      ("rust-rand" ,rust-rand)
      ("rust-rustc-serialize" ,rust-rustc-serialize)))
  (inputs `(("rust-memchr" ,rust-memchr)))
  (home-page
    "https://github.com/BurntSushi/aho-corasick")
  (synopsis
    "Fast multiple substring searching with finite state machines.")
  (description
    "Fast multiple substring searching with finite state machines.")
  (license (list license:unlicense license:expat))))

(define-public rust-simd
 (package
  (name "rust-simd")
  (version "0.1.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "simd" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "08vhhz1w5m7amfp1d9lvfyyzl0jqjm82hrr7fb7afv3n5my89db3"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-cfg-if" ,rust-cfg-if)))
  (inputs
    `(("rust-serde" ,rust-serde)
      ("rust-serde-macros" ,rust-serde-macros)))
  (home-page "https://github.com/huonw/simd")
  (synopsis
    "`simd` offers limited cross-platform access to SIMD instructions on
CPUs, as well as raw interfaces to platform-specific instructions.
")
  (description
    "`simd` offers limited cross-platform access to SIMD instructions on
CPUs, as well as raw interfaces to platform-specific instructions.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-thread-local
 (package
  (name "rust-thread-local")
  (version "0.3.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "thread_local" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0z62a0xsrw252i5prz56by3jgdqch19v53idsnp3k6k25jjpq1ah"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-thread-id" ,rust-thread-id)
      ("rust-unreachable" ,rust-unreachable)))
  (home-page "FIXME")
  (synopsis "Per-object thread-local storage")
  (description "Per-object thread-local storage")
  (license (list license:asl2.0 license:expat))))

(define-public rust-utf8-ranges
 (package
  (name "rust-utf8-ranges")
  (version "0.1.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "utf8-ranges" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "03xf604b2v51ag3jgzw92l97xnb10kw9zv948bhc7ja1ik017jm1"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-quickcheck" ,rust-quickcheck)))
  (home-page
    "https://github.com/BurntSushi/utf8-ranges")
  (synopsis
    "Convert ranges of Unicode codepoints to UTF-8 byte ranges.")
  (description
    "Convert ranges of Unicode codepoints to UTF-8 byte ranges.")
  (license (list license:unlicense license:expat))))

(define-public rust-regex
 (package
  (name "rust-regex")
  (version "0.1.80")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "regex" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0bs036h3vzc6pj5jj4vc909s9rppq7b808ic99qn0y6gm3karm2g"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-lazy-static" ,rust-lazy-static)
      ("rust-quickcheck" ,rust-quickcheck)
      ("rust-rand" ,rust-rand)))
  (inputs
    `(("rust-aho-corasick" ,rust-aho-corasick)
      ("rust-memchr" ,rust-memchr)
      ("rust-regex-syntax" ,rust-regex-syntax)
      ("rust-simd" ,rust-simd)
      ("rust-thread-local" ,rust-thread-local)
      ("rust-utf8-ranges" ,rust-utf8-ranges)))
  (home-page "https://github.com/rust-lang/regex")
  (synopsis
    "An implementation of regular expressions for Rust. This implementation uses
finite automata and guarantees linear time matching on all inputs.
")
  (description
    "An implementation of regular expressions for Rust.  This implementation uses
finite automata and guarantees linear time matching on all inputs.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-env-logger
 (package
  (name "rust-env-logger")
  (version "0.3.5")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "env_logger" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0bvcjgkw4s3k1rd7glpflgc8s9a393zjd6jfdgvs8gjvwj0dgaqm"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-log" ,rust-log)
      ("rust-regex" ,rust-regex)))
  (home-page "https://github.com/rust-lang/log")
  (synopsis
    "An logging implementation for `log` which is configured via an environment
variable.
")
  (description
    "An logging implementation for `log` which is configured via an environment
variable.
")
  (license (list license:expat license:asl2.0))))

(define-public rust-quickcheck
 (package
  (name "rust-quickcheck")
  (version "0.4.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "quickcheck" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "01hligcv1h4pvc8ykch65qjzi7jgcq2s462v69j27slc84fl3hh2"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-env-logger" ,rust-env-logger)
      ("rust-log" ,rust-log)
      ("rust-rand" ,rust-rand)))
  (home-page
    "https://github.com/BurntSushi/quickcheck")
  (synopsis
    "Automatic property based testing with shrinking.")
  (description
    "Automatic property based testing with shrinking.")
  (license (list license:unlicense license:expat))))

(define-public rust-byteorder
 (package
  (name "rust-byteorder")
  (version "0.5.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "byteorder" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0ma8pkyz1jbglr29m1yzlc9ghmv6672nvsrn7zd0yn5jqs60xh8g"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-quickcheck" ,rust-quickcheck)
      ("rust-rand" ,rust-rand)))
  (home-page
    "https://github.com/BurntSushi/byteorder")
  (synopsis
    "Library for reading/writing numbers in big-endian and little-endian.")
  (description
    "Library for reading/writing numbers in big-endian and little-endian.")
  (license (list license:unlicense license:expat))))

(define-public rust-bmp
 (package
  (name "rust-bmp")
  (version "0.2.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "bmp" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0xlscgqv246w8sw8r2bz5zlmzca1f9nhxjm1y50m5cdkvi6yi02d"))))
  (build-system cargo-build-system)
  (inputs `(("rust-byteorder" ,rust-byteorder)))
  (home-page
    "https://github.com/sondrele/rust-bmp")
  (synopsis
    "Small library for reading and writing BMP images in Rust.")
  (description
    "Small library for reading and writing BMP images in Rust.")
  (license license:expat)))

(define-public rust-fs2
 (package
  (name "rust-fs2")
  (version "0.4.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "fs2" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1hdzi393wxibimcwsh146l8irn2gyyqi6j0a3hwr93bv668pjyr3"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-tempdir" ,rust-tempdir)))
  (inputs
    `(("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis
    "Cross-platform file locks and file duplication.")
  (description
    "Cross-platform file locks and file duplication.")
  (license (list license:expat license:asl2.0))))

(define-public rust-memmap
 (package
  (name "rust-memmap")
  (version "0.5.0")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "memmap" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1lmbkx92xlqb5yqh4cj2k4qfrm3x4jkbs04i84nfl60wyfdfap06"))))
  (build-system cargo-build-system)
  (native-inputs `(("rust-tempdir" ,rust-tempdir)))
  (inputs
    `(("rust-fs2" ,rust-fs2)
      ("rust-libc" ,rust-libc)))
  (home-page "FIXME")
  (synopsis
    "Cross-platform Rust API for memory-mapped file IO")
  (description
    "Cross-platform Rust API for memory-mapped file IO")
  (license (list license:expat license:asl2.0))))

(define-public rust-framebuffer
 (package
  (name "rust-framebuffer")
  (version "0.1.4")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "framebuffer" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0jjy3pabnz4zzsp2875a8crdbwym3qw57gjjh8vw1rgby7a1x62k"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-bmp" ,rust-bmp) ("rust-rand" ,rust-rand)))
  (inputs
    `(("rust-libc" ,rust-libc)
      ("rust-memmap" ,rust-memmap)))
  (home-page "FIXME")
  (synopsis
    "Basic framebuffer abstraction. Handles the necessary ioctls and mmaps the framebuffer device.
")
  (description
    "Basic framebuffer abstraction.  Handles the necessary ioctls and mmaps the framebuffer device.
")
  (license #f) ; FIXME WTFPL
))

(define-public rust-lapack-sys
 (package
  (name "rust-lapack-sys")
  (version "0.11.4")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "lapack-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "11hp9jsx8xs4i49c9rcsdg85xp3awjz4bfw3pv9fl9adzg4k89ix"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-accelerate-src" ,rust-accelerate-src)
      ("rust-libc" ,rust-libc)
      ("rust-netlib-src" ,rust-netlib-src)
      ("rust-openblas-src" ,rust-openblas-src)))
  (home-page
    "https://github.com/stainless-steel/lapack-sys")
  (synopsis
    "The package provides bindings to the Linear Algebra PACKage.")
  (description
    "The package provides bindings to the Linear Algebra PACKage.")
  (license (list license:asl2.0 license:expat))))

(define-public rust-lapack
 (package
  (name "rust-lapack")
  (version "0.11.1")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "lapack" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0b4vxzrj79gybyjp70l6ydq59aj0l30fymdza2b6h21896c89pzg"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-lapack-sys" ,rust-lapack-sys)
      ("rust-libc" ,rust-libc)
      ("rust-num-complex" ,rust-num-complex)))
  (home-page
    "https://github.com/stainless-steel/lapack")
  (synopsis
    "The package provides an interface to the Linear Algebra PACKage.")
  (description
    "The package provides an interface to the Linear Algebra PACKage.")
  (license (list license:asl2.0 license:expat))))

(define-public rust-cmake
 (package
  (name "rust-cmake")
  (version "0.1.19")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "cmake" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "0am8c8ns1h6b1a5x9z2r1m3rszvya5nccl2pzszzjv5aiiaydgcf"))))
  (build-system cargo-build-system)
  (inputs `(("rust-gcc" ,rust-gcc)))
  (home-page
    "https://github.com/alexcrichton/cmake-rs")
  (synopsis
    "A build dependency for running `cmake` to build a native library
")
  (description
    "This package provides a build dependency for running `cmake` to build a native library
")
  (license (list license:expat license:asl2.0))))

(define-public rust-servo-freetype-sys
 (package
  (name "rust-servo-freetype-sys")
  (version "4.0.3")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "servo-freetype-sys" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "06qd0qh26nwhs6js06s9apk1c8xira22qmn6h818q4c55qn06clj"))))
  (build-system cargo-build-system)
  (native-inputs
    `(("rust-cmake" ,rust-cmake)
      ("rust-pkg-config" ,rust-pkg-config)))
  (home-page "http://www.freetype.org/")
  (synopsis
    "FreeType is a freely available software library to render fonts.")
  (description
    "FreeType is a freely available software library to render fonts.")
  (license (list #f #f))))

(define-public rust-freetype
 (package
  (name "rust-freetype")
  (version "0.1.2")
  (source
    (origin
      (method url-fetch)
      (uri (crate-uri "freetype" version))
      (file-name
        (string-append name "-" version ".tar.gz"))
      (sha256
        (base32
          "1ldc6gx2k14f6f9hs95ilymd4jbm4wbcnmjw977n4mqqmwz5d2ba"))))
  (build-system cargo-build-system)
  (inputs
    `(("rust-libc" ,rust-libc)
      ("rust-servo-freetype-sys"
       ,rust-servo-freetype-sys)))
  (home-page "FIXME")
  (synopsis "Bindings for Freetype used by Servo")
  (description
    "Bindings for Freetype used by Servo")
  (license (list #f #f))))

; FIXME add https://github.com/citybound/citybound

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-28 14:51 rust: Crate Dependencies Danny Milosavljevic
@ 2016-12-29 10:49 ` David Craven
  2016-12-29 11:12   ` Danny Milosavljevic
  0 siblings, 1 reply; 7+ messages in thread
From: David Craven @ 2016-12-29 10:49 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

> What does the error message mean? How to fix it?

Hard to tell from that description. Using the recursive importer is
not supported - use at your own risk ;) There is a reason why it's not
in master... While Makefiles and the C standard are defined, the rust
language and the Cargo.toml files are a moving target. It matters very
much which versions of rustc and cargo are used, for a moderately
complex crate the output of the recursive importer is going to be
completely unusable.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-29 10:49 ` David Craven
@ 2016-12-29 11:12   ` Danny Milosavljevic
  2016-12-29 11:35     ` David Craven
  2016-12-29 12:33     ` ng0
  0 siblings, 2 replies; 7+ messages in thread
From: Danny Milosavljevic @ 2016-12-29 11:12 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

Hi David,

On Thu, 29 Dec 2016 11:49:19 +0100
David Craven <david@craven.ch> wrote:

> It matters very
> much which versions of rustc and cargo are used

I used the versions in your v2 patch. I also tried ng0's update which didn't improve things.

How does rustc find the (Rust) dependencies when building a package in cargo-build-system? There doesn't seem to be a RUST* or CARGO* environment variable or anything when I do "guix environment rust-c-vec --fallback". (Note that I picked rust-c-vec to fix first because it has only rust-libc as dependency)

I read that there are actual Rust binary libraries, seldomly used, and everything-included-only-as-source otherwise. How do I specify which it is?

Or is that not implemented yet?

I tried specifying the latter as native-inputs - which doesn't seems to work either...

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-29 11:12   ` Danny Milosavljevic
@ 2016-12-29 11:35     ` David Craven
  2016-12-29 12:33     ` ng0
  1 sibling, 0 replies; 7+ messages in thread
From: David Craven @ 2016-12-29 11:35 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

Hi Danny,

> How does rustc find the (Rust) dependencies when building a package in cargo-build-system?

You should be able to override the default rust or cargo version by
passing #:rustc or/and #:cargo as arguments to the build-system. See
guix/build-system/cargo.scm.

> I read that there are actual Rust binary libraries, seldomly used, and everything-included-only-as-source otherwise. How do I specify which it is?

By actual Rust binary library I assume you mean a library with a C ABI
that can be dynamically linked against, written in rust.

A library like that should or would contain a Cargo.lock file nailing
down all the crate versions required, making sure that the project can
be built using the same rustc and cargo versions.

With a Cargo.lock file present the only remaining issue is figuring
out whether it can be built with the rustc release or if it requires
features from beta/nightly.

I don't know a specific example of one, but I also read that it is
possible. I think that the cargo install should take care of
installing such a library, but I don't think it's implemented yet.

HTH!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-29 11:12   ` Danny Milosavljevic
  2016-12-29 11:35     ` David Craven
@ 2016-12-29 12:33     ` ng0
  2016-12-29 17:35       ` David Craven
  1 sibling, 1 reply; 7+ messages in thread
From: ng0 @ 2016-12-29 12:33 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

Danny Milosavljevic <dannym@scratchpost.org> writes:

> Hi David,
>
> On Thu, 29 Dec 2016 11:49:19 +0100
> David Craven <david@craven.ch> wrote:
>
>> It matters very
>> much which versions of rustc and cargo are used
>
> I used the versions in your v2 patch. I also tried ng0's update which didn't improve things.

Same here for libc crate after the update, but I guess that's
because cargo is currently packaged and used from the bootstrap
rust, which is dated one version before the actual rustc you can
use now, so 0.13.0 cargo and 0.14.0 rustc.
I hope packaging cargo on its own will add the support for
namespaces.

>
> How does rustc find the (Rust) dependencies when building a package in cargo-build-system? There doesn't seem to be a RUST* or CARGO* environment variable or anything when I do "guix environment rust-c-vec --fallback". (Note that I picked rust-c-vec to fix first because it has only rust-libc as dependency)
>
> I read that there are actual Rust binary libraries, seldomly used, and everything-included-only-as-source otherwise. How do I specify which it is?
>
> Or is that not implemented yet?
>
> I tried specifying the latter as native-inputs - which doesn't seems to work either...
>
>

-- 
♥Ⓐ  ng0
PGP keys and more: https://n0is.noblogs.org/ http://ng0.chaosnet.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-29 12:33     ` ng0
@ 2016-12-29 17:35       ` David Craven
  2016-12-29 20:10         ` ng0
  0 siblings, 1 reply; 7+ messages in thread
From: David Craven @ 2016-12-29 17:35 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

> Same here for libc crate after the update, but I guess that's
> because cargo is currently packaged and used from the bootstrap
> rust, which is dated one version before the actual rustc you can
> use now, so 0.13.0 cargo and 0.14.0 rustc.

I submitted some experimental patches to the ML which fix this.

Since you have I assume a web application that is written in rust, and
you want to deploy it using guixsd, I think that vendoring the
dependencies like the example cargo package is what you should do. The
goal of using guixsd is fixing the deployment problem. If you vendor
your dependencies and deploy your application like the example cargo
package you should get an environment that is controlled 100% by your
company. Would be awesome to see some real commercial webapps deployed
using guixsd!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: rust: Crate Dependencies
  2016-12-29 17:35       ` David Craven
@ 2016-12-29 20:10         ` ng0
  0 siblings, 0 replies; 7+ messages in thread
From: ng0 @ 2016-12-29 20:10 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> writes:

>> Same here for libc crate after the update, but I guess that's
>> because cargo is currently packaged and used from the bootstrap
>> rust, which is dated one version before the actual rustc you can
>> use now, so 0.13.0 cargo and 0.14.0 rustc.
>
> I submitted some experimental patches to the ML which fix this.

Thanks, I will try them out next week.

> Since you have I assume a web application that is written in rust, and
> you want to deploy it using guixsd, I think that vendoring the
> dependencies like the example cargo package is what you should do. The
> goal of using guixsd is fixing the deployment problem. If you vendor
> your dependencies and deploy your application like the example cargo
> package you should get an environment that is controlled 100% by your
> company. Would be awesome to see some real commercial webapps deployed
> using guixsd!

I don't really get the "vendoring" term, but I will when I look
at the cargo package and its source.
To give context to my packaging, it is for the current secushare
(see secushare.org or its .onion) prototype. This is not a web
application (I understand web application as something which runs
just in the browser), it's an extendable application using GNUnet
and PSYC2, more or less a social network (and more).

If I remember correctly, we do not bundle and everything which
might currently be bundled is because of rusts limitations in
some parts. And even then, this is nothing intended to be
packaged publicly at the present state ("prototype"), but what I
do work on this will get integrated into GuixSD (secushare+gnunet
live-system).
-- 
♥Ⓐ  ng0
PGP keys and more: https://n0is.noblogs.org/ http://ng0.chaosnet.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-12-29 20:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-28 14:51 rust: Crate Dependencies Danny Milosavljevic
2016-12-29 10:49 ` David Craven
2016-12-29 11:12   ` Danny Milosavljevic
2016-12-29 11:35     ` David Craven
2016-12-29 12:33     ` ng0
2016-12-29 17:35       ` David Craven
2016-12-29 20:10         ` ng0

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).