summaryrefslogtreecommitdiffstats
path: root/recipes-sota/rvi-sota-client
diff options
context:
space:
mode:
authorAnton Gerasimov <anton@advancedtelematic.com>2016-10-28 14:08:40 +0200
committerAnton Gerasimov <anton@advancedtelematic.com>2016-10-31 18:21:26 +0100
commite42ce3ea63bcf488c743654e983ea018664dda06 (patch)
tree090c4ebd999a10332d8213cbdf7cd532d1522e40 /recipes-sota/rvi-sota-client
parent0939263a7c543e4d2bd667245ce257c2a6d6b9af (diff)
downloadmeta-updater-e42ce3ea63bcf488c743654e983ea018664dda06.tar.gz
Update rvi-sota-client
Change-Id: I1d5ceb776427298d46ab26dab2c822041dff00e0 Signed-off-by: Anton Gerasimov <anton@advancedtelematic.com>
Diffstat (limited to 'recipes-sota/rvi-sota-client')
-rw-r--r--recipes-sota/rvi-sota-client/files/dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch146
-rw-r--r--recipes-sota/rvi-sota-client/rvi-sota-client/rvi-sota-client.service9
-rw-r--r--recipes-sota/rvi-sota-client/rvi-sota-client_git.bb166
3 files changed, 118 insertions, 203 deletions
diff --git a/recipes-sota/rvi-sota-client/files/dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch b/recipes-sota/rvi-sota-client/files/dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch
deleted file mode 100644
index 2d3dbed..0000000
--- a/recipes-sota/rvi-sota-client/files/dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch
+++ /dev/null
@@ -1,146 +0,0 @@
1From 768202d3223813e71848758ecafcfeab276d9101 Mon Sep 17 00:00:00 2001
2From: Leon Anavi <leon.anavi@konsulko.com>
3Date: Sat, 12 Mar 2016 17:52:02 +0200
4Subject: [PATCH] Cast correctly c_char raw pointers for ARM
5
6Fix the build of crate dbus-rs (version 0.1.2) for ARM
7with correct casts of c_char raw pointers.
8
9Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
10---
11 src/lib.rs | 18 +++++++++---------
12 src/message.rs | 10 +++++-----
13 2 files changed, 14 insertions(+), 14 deletions(-)
14
15diff --git a/src/lib.rs b/src/lib.rs
16index aac9c0f..8134dc4 100644
17--- a/src/lib.rs
18+++ b/src/lib.rs
19@@ -60,7 +60,7 @@ unsafe impl Send for Error {}
20
21 fn c_str_to_slice(c: & *const libc::c_char) -> Option<&str> {
22 if *c == ptr::null() { None }
23- else { std::str::from_utf8( unsafe { CStr::from_ptr(*c).to_bytes() }).ok() }
24+ else { std::str::from_utf8( unsafe { CStr::from_ptr(*c as *const _).to_bytes() }).ok() }
25 }
26
27 fn to_c_str(n: &str) -> CString { CString::new(n.as_bytes()).unwrap() }
28@@ -72,7 +72,7 @@ impl Error {
29 let m = to_c_str(&message.replace("%","%%"));
30 let mut e = Error::empty();
31
32- unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr(), m.as_ptr()) };
33+ unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr() as *const _, m.as_ptr() as *const _) };
34 e
35 }
36
37@@ -272,21 +272,21 @@ impl Connection {
38 };
39 let r = unsafe {
40 let user_data: *mut libc::c_void = std::mem::transmute(&*self.i);
41- ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr(), &vtable, user_data, e.get_mut())
42+ ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr() as *const _, &vtable, user_data, e.get_mut())
43 };
44 if r == 0 { Err(e) } else { Ok(()) }
45 }
46
47 pub fn unregister_object_path(&self, path: &str) {
48 let p = to_c_str(path);
49- let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr()) };
50+ let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr() as *const _) };
51 if r == 0 { panic!("Out of memory"); }
52 }
53
54 pub fn list_registered_object_paths(&self, path: &str) -> Vec<String> {
55 let p = to_c_str(path);
56 let mut clist: *mut *mut libc::c_char = ptr::null_mut();
57- let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr(), &mut clist) };
58+ let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr() as *const _, &mut clist) };
59 if r == 0 { panic!("Out of memory"); }
60 let mut v = Vec::new();
61 let mut i = 0;
62@@ -306,28 +306,28 @@ impl Connection {
63 pub fn register_name(&self, name: &str, flags: u32) -> Result<RequestNameReply, Error> {
64 let mut e = Error::empty();
65 let n = to_c_str(name);
66- let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr(), flags, e.get_mut()) };
67+ let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr() as *const _, flags, e.get_mut()) };
68 if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
69 }
70
71 pub fn release_name(&self, name: &str) -> Result<ReleaseNameReply, Error> {
72 let mut e = Error::empty();
73 let n = to_c_str(name);
74- let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr(), e.get_mut()) };
75+ let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
76 if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
77 }
78
79 pub fn add_match(&self, rule: &str) -> Result<(), Error> {
80 let mut e = Error::empty();
81 let n = to_c_str(rule);
82- unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr(), e.get_mut()) };
83+ unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
84 if e.name().is_some() { Err(e) } else { Ok(()) }
85 }
86
87 pub fn remove_match(&self, rule: &str) -> Result<(), Error> {
88 let mut e = Error::empty();
89 let n = to_c_str(rule);
90- unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr(), e.get_mut()) };
91+ unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
92 if e.name().is_some() { Err(e) } else { Ok(()) }
93 }
94
95diff --git a/src/message.rs b/src/message.rs
96index 23871f8..e3dd021 100644
97--- a/src/message.rs
98+++ b/src/message.rs
99@@ -126,7 +126,7 @@ fn iter_append_array(i: &mut ffi::DBusMessageIter, a: &[MessageItem], t: TypeSig
100 let mut subiter = new_dbus_message_iter();
101 let atype = to_c_str(&t);
102
103- assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr(), &mut subiter) } != 0);
104+ assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr() as *const _, &mut subiter) } != 0);
105 for item in a.iter() {
106 // assert!(item.type_sig() == t);
107 item.iter_append(&mut subiter);
108@@ -148,7 +148,7 @@ fn iter_append_struct(i: &mut ffi::DBusMessageIter, a: &[MessageItem]) {
109 fn iter_append_variant(i: &mut ffi::DBusMessageIter, a: &MessageItem) {
110 let mut subiter = new_dbus_message_iter();
111 let atype = to_c_str(&format!("{}", a.array_type() as u8 as char));
112- assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr(), &mut subiter) } != 0);
113+ assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr() as *const _, &mut subiter) } != 0);
114 a.iter_append(&mut subiter);
115 assert!(unsafe { ffi::dbus_message_iter_close_container(i, &mut subiter) } != 0);
116 }
117@@ -481,7 +481,7 @@ impl Message {
118 init_dbus();
119 let (d, p, i, m) = (to_c_str(destination), to_c_str(path), to_c_str(iface), to_c_str(method));
120 let ptr = unsafe {
121- ffi::dbus_message_new_method_call(d.as_ptr(), p.as_ptr(), i.as_ptr(), m.as_ptr())
122+ ffi::dbus_message_new_method_call(d.as_ptr() as *const _, p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
123 };
124 if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
125 }
126@@ -490,7 +490,7 @@ impl Message {
127 init_dbus();
128 let (p, i, m) = (to_c_str(path), to_c_str(iface), to_c_str(method));
129 let ptr = unsafe {
130- ffi::dbus_message_new_signal(p.as_ptr(), i.as_ptr(), m.as_ptr())
131+ ffi::dbus_message_new_signal(p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
132 };
133 if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
134 }
135@@ -502,7 +502,7 @@ impl Message {
136
137 pub fn new_error(m: &Message, error_name: &str, error_message: &str) -> Option<Message> {
138 let (en, em) = (to_c_str(error_name), to_c_str(error_message));
139- let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr(), em.as_ptr()) };
140+ let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr() as *const _, em.as_ptr() as *const _) };
141 if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
142 }
143
144--
1452.1.4
146
diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client/rvi-sota-client.service b/recipes-sota/rvi-sota-client/rvi-sota-client/rvi-sota-client.service
deleted file mode 100644
index d99f9d6..0000000
--- a/recipes-sota/rvi-sota-client/rvi-sota-client/rvi-sota-client.service
+++ /dev/null
@@ -1,9 +0,0 @@
1[Unit]
2Description=RVI SOTA Client
3
4[Service]
5User=root
6ExecStart=/usr/bin/run.sh
7
8[Install]
9WantedBy=multi-user.target
diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
index b990272..c6cb0bb 100644
--- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
+++ b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
@@ -1,58 +1,128 @@
1DESCRIPTION = "SOTA Reference Implementation project - Client" 1DESCRIPTION = "sota-client rust recipe"
2HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client" 2HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client"
3
3LICENSE = "MPL-2.0" 4LICENSE = "MPL-2.0"
4 5
5inherit cargo systemd 6LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea"
6 7
7SRC_URI = "git://github.com/advancedtelematic/rvi_sota_client.git;protocol=https \ 8inherit cargo systemd
8 file://rvi-sota-client.service \
9 "
10SRCREV="825be11b03f89c52e5441b3d26e1cbf63fd313dd"
11LIC_FILES_CHKSUM="file://LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea"
12 9
13S = "${WORKDIR}/git" 10S = "${WORKDIR}/git"
14 11
15BBCLASSEXTEND = "native" 12SRCREV = "484e98981f5ddbf61a9e4ca6190c9f2c2fcdec4c"
16 13PV = "0.2.17.5.g484e989"
17DEPENDS += "dbus openssl" 14PR = "${SRCPV}"
18RDEPENDS_${PN} += "dbus-lib libcrypto libssl bash"
19 15
20SYSTEMD_SERVICE_${PN} = "rvi-sota-client.service" 16BBCLASSEXTEND = "native"
21
22do_install_append() {
23 install -m 0755 -p -D ${S}/client.toml ${D}/var/sota/client.toml
24 install -m 0755 -p -D ${S}/docker/run.sh ${D}${bindir}/run.sh
25 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
26 install -p -D ${WORKDIR}/rvi-sota-client.service ${D}${systemd_unitdir}/system/rvi-sota-client.service
27 fi
28}
29 17
30## dbus-rs 18FILES_${PN} = " \
31SRC_URI += "\ 19 /usr/bin/sota_client \
32 git://github.com/diwic/dbus-rs.git;protocol=https;name=dbus-rs;destsuffix=dbus-rs \ 20 /usr/bin/system_info.sh \
33 file://dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch;patchdir=../dbus-rs \ 21 /etc/sota_client.version \
22 /etc/sota_certificates \
23 ${base_libdir}/systemd/system/sota_client.service \
24 "
25
26SRC_URI = " \
27crate://crates.io/aho-corasick/0.5.2 \
28crate://crates.io/time/0.1.35 \
29crate://crates.io/url/1.1.1 \
30crate://crates.io/ws2_32-sys/0.2.1 \
31crate://crates.io/hyper/0.9.4 \
32crate://crates.io/log/0.3.6 \
33crate://crates.io/unicase/1.4.0 \
34crate://crates.io/bitflags/0.5.0 \
35crate://crates.io/bit-set/0.2.0 \
36crate://crates.io/lazy_static/0.1.16 \
37crate://crates.io/rust-crypto/0.2.36 \
38crate://crates.io/typeable/0.1.2 \
39crate://crates.io/pkg-config/0.3.8 \
40crate://crates.io/httparse/1.1.2 \
41crate://crates.io/openssl/0.7.13 \
42crate://crates.io/user32-sys/0.2.0 \
43crate://crates.io/regex/0.1.71 \
44crate://crates.io/unicode-normalization/0.1.2 \
45crate://crates.io/idna/0.1.0 \
46crate://crates.io/unicode-bidi/0.2.3 \
47crate://crates.io/rand/0.3.14 \
48crate://crates.io/gcc/0.3.28 \
49crate://crates.io/chan/0.1.18 \
50crate://crates.io/kernel32-sys/0.2.2 \
51crate://crates.io/winapi/0.2.7 \
52crate://crates.io/crossbeam/0.2.9 \
53crate://crates.io/bitflags/0.4.0 \
54crate://crates.io/thread-id/2.0.0 \
55crate://crates.io/mime/0.2.1 \
56crate://crates.io/thread_local/0.2.6 \
57crate://crates.io/utf8-ranges/0.1.3 \
58crate://crates.io/net2/0.2.23 \
59crate://crates.io/dbus/0.3.3 \
60crate://crates.io/winapi-build/0.1.1 \
61crate://crates.io/chan-signal/0.1.6 \
62crate://crates.io/bit-vec/0.4.3 \
63crate://crates.io/toml/0.1.30 \
64crate://crates.io/quick-error/0.2.2 \
65crate://crates.io/ws/0.5.0 \
66crate://crates.io/traitobject/0.0.1 \
67crate://crates.io/cfg-if/0.1.0 \
68crate://crates.io/matches/0.1.2 \
69crate://crates.io/getopts/0.2.14 \
70crate://crates.io/sha1/0.1.1 \
71crate://crates.io/openssl-sys/0.7.13 \
72crate://crates.io/cookie/0.2.5 \
73crate://crates.io/libressl-pnacl-sys/2.1.6 \
74crate://crates.io/lazy_static/0.2.1 \
75crate://crates.io/language-tags/0.2.2 \
76crate://crates.io/semver/0.1.20 \
77crate://crates.io/unix_socket/0.5.0 \
78crate://crates.io/memchr/0.1.11 \
79crate://crates.io/gdi32-sys/0.2.0 \
80crate://crates.io/nom/1.2.3 \
81crate://crates.io/mio/0.5.1 \
82crate://crates.io/tempdir/0.3.4 \
83crate://crates.io/miow/0.1.2 \
84crate://crates.io/pnacl-build-helper/1.4.10 \
85crate://crates.io/libc/0.2.12 \
86crate://crates.io/nix/0.5.1 \
87crate://crates.io/byteorder/0.5.3 \
88crate://crates.io/rustc_version/0.1.7 \
89crate://crates.io/slab/0.1.3 \
90crate://crates.io/rustc-serialize/0.3.19 \
91crate://crates.io/env_logger/0.3.3 \
92crate://crates.io/vecio/0.1.0 \
93crate://crates.io/rotor/0.6.3 \
94crate://crates.io/openssl-sys-extras/0.7.13 \
95crate://crates.io/regex-syntax/0.3.3 \
96crate://crates.io/bytes/0.3.0 \
97crate://crates.io/void/1.0.2 \
98crate://crates.io/spmc/0.2.1 \
99crate://crates.io/openssl-verify/0.1.0 \
100crate-index://crates.io/6127fc24b0b6fe73fe4d339817fbf000b9a798a2 \
101git://github.com/advancedtelematic/rvi_sota_client \
34" 102"
35 103SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4"
36# 0.1.2 104SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913"
37SRCREV_dbus-rs = "c2c4c98adcf9949992ac5b0050bf17afe10868c9" 105
38 106SYSTEMD_SERVICE_${PN} = "sota_client.service"
39SRCREV_FORMAT .= "_dbus-rs" 107
40EXTRA_OECARGO_PATHS += "${WORKDIR}/dbus-rs" 108DEPENDS += " openssl "
41 109RDEPENDS_${PN} = " libcrypto \
42## rust-openssl 110 libssl \
43SRC_URI += "git://github.com/sfackler/rust-openssl.git;protocol=https;name=rust-openssl;destsuffix=rust-openssl " 111 dbus \
44 112 bash \
45# 0.7.10 113 lshw \
46SRCREV_rust-openssl = "d6bc3bb16f2673f610e9310041fc030ea9b90187" 114 jq \
47 115 "
48SRCREV_FORMAT .= "_rust-openssl" 116
49EXTRA_OECARGO_PATHS += "${WORKDIR}/rust-openssl" 117do_install() {
50 118 install -d ${D}${bindir}
51## hyper 119 install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir}
52SRC_URI += "git://github.com/hyperium/hyper.git;protocol=https;name=hyper;destsuffix=hyper " 120 install -m 0755 run/system_info.sh ${D}${bindir}
53 121
54# 0.9.1 122 install -d ${D}${systemd_unitdir}/system
55SRCREV_hyper = "4828437551c7f5ed3f54acb1c1bf1fd50a6a3516" 123 install -c ${S}/run/sota_client.service ${D}${systemd_unitdir}/system
56 124
57SRCREV_FORMAT .= "_hyper" 125 install -d ${D}${sysconfdir}
58EXTRA_OECARGO_PATHS += "${WORKDIR}/hyper" 126 echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version
127 install -c ${S}/run/sota_certificates ${D}${sysconfdir}
128}