diff options
author | Anton Gerasimov <anton@advancedtelematic.com> | 2016-10-28 14:08:40 +0200 |
---|---|---|
committer | Anton Gerasimov <anton@advancedtelematic.com> | 2016-10-31 18:21:26 +0100 |
commit | e42ce3ea63bcf488c743654e983ea018664dda06 (patch) | |
tree | 090c4ebd999a10332d8213cbdf7cd532d1522e40 /recipes-sota | |
parent | 0939263a7c543e4d2bd667245ce257c2a6d6b9af (diff) | |
download | meta-updater-e42ce3ea63bcf488c743654e983ea018664dda06.tar.gz |
Update rvi-sota-client
Change-Id: I1d5ceb776427298d46ab26dab2c822041dff00e0
Signed-off-by: Anton Gerasimov <anton@advancedtelematic.com>
Diffstat (limited to 'recipes-sota')
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 @@ | |||
1 | From 768202d3223813e71848758ecafcfeab276d9101 Mon Sep 17 00:00:00 2001 | ||
2 | From: Leon Anavi <leon.anavi@konsulko.com> | ||
3 | Date: Sat, 12 Mar 2016 17:52:02 +0200 | ||
4 | Subject: [PATCH] Cast correctly c_char raw pointers for ARM | ||
5 | |||
6 | Fix the build of crate dbus-rs (version 0.1.2) for ARM | ||
7 | with correct casts of c_char raw pointers. | ||
8 | |||
9 | Signed-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 | |||
15 | diff --git a/src/lib.rs b/src/lib.rs | ||
16 | index 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 | |||
95 | diff --git a/src/message.rs b/src/message.rs | ||
96 | index 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 | -- | ||
145 | 2.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] | ||
2 | Description=RVI SOTA Client | ||
3 | |||
4 | [Service] | ||
5 | User=root | ||
6 | ExecStart=/usr/bin/run.sh | ||
7 | |||
8 | [Install] | ||
9 | WantedBy=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 @@ | |||
1 | DESCRIPTION = "SOTA Reference Implementation project - Client" | 1 | DESCRIPTION = "sota-client rust recipe" |
2 | HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client" | 2 | HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client" |
3 | |||
3 | LICENSE = "MPL-2.0" | 4 | LICENSE = "MPL-2.0" |
4 | 5 | ||
5 | inherit cargo systemd | 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea" |
6 | 7 | ||
7 | SRC_URI = "git://github.com/advancedtelematic/rvi_sota_client.git;protocol=https \ | 8 | inherit cargo systemd |
8 | file://rvi-sota-client.service \ | ||
9 | " | ||
10 | SRCREV="825be11b03f89c52e5441b3d26e1cbf63fd313dd" | ||
11 | LIC_FILES_CHKSUM="file://LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea" | ||
12 | 9 | ||
13 | S = "${WORKDIR}/git" | 10 | S = "${WORKDIR}/git" |
14 | 11 | ||
15 | BBCLASSEXTEND = "native" | 12 | SRCREV = "484e98981f5ddbf61a9e4ca6190c9f2c2fcdec4c" |
16 | 13 | PV = "0.2.17.5.g484e989" | |
17 | DEPENDS += "dbus openssl" | 14 | PR = "${SRCPV}" |
18 | RDEPENDS_${PN} += "dbus-lib libcrypto libssl bash" | ||
19 | 15 | ||
20 | SYSTEMD_SERVICE_${PN} = "rvi-sota-client.service" | 16 | BBCLASSEXTEND = "native" |
21 | |||
22 | do_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 | 18 | FILES_${PN} = " \ |
31 | SRC_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 | |||
26 | SRC_URI = " \ | ||
27 | crate://crates.io/aho-corasick/0.5.2 \ | ||
28 | crate://crates.io/time/0.1.35 \ | ||
29 | crate://crates.io/url/1.1.1 \ | ||
30 | crate://crates.io/ws2_32-sys/0.2.1 \ | ||
31 | crate://crates.io/hyper/0.9.4 \ | ||
32 | crate://crates.io/log/0.3.6 \ | ||
33 | crate://crates.io/unicase/1.4.0 \ | ||
34 | crate://crates.io/bitflags/0.5.0 \ | ||
35 | crate://crates.io/bit-set/0.2.0 \ | ||
36 | crate://crates.io/lazy_static/0.1.16 \ | ||
37 | crate://crates.io/rust-crypto/0.2.36 \ | ||
38 | crate://crates.io/typeable/0.1.2 \ | ||
39 | crate://crates.io/pkg-config/0.3.8 \ | ||
40 | crate://crates.io/httparse/1.1.2 \ | ||
41 | crate://crates.io/openssl/0.7.13 \ | ||
42 | crate://crates.io/user32-sys/0.2.0 \ | ||
43 | crate://crates.io/regex/0.1.71 \ | ||
44 | crate://crates.io/unicode-normalization/0.1.2 \ | ||
45 | crate://crates.io/idna/0.1.0 \ | ||
46 | crate://crates.io/unicode-bidi/0.2.3 \ | ||
47 | crate://crates.io/rand/0.3.14 \ | ||
48 | crate://crates.io/gcc/0.3.28 \ | ||
49 | crate://crates.io/chan/0.1.18 \ | ||
50 | crate://crates.io/kernel32-sys/0.2.2 \ | ||
51 | crate://crates.io/winapi/0.2.7 \ | ||
52 | crate://crates.io/crossbeam/0.2.9 \ | ||
53 | crate://crates.io/bitflags/0.4.0 \ | ||
54 | crate://crates.io/thread-id/2.0.0 \ | ||
55 | crate://crates.io/mime/0.2.1 \ | ||
56 | crate://crates.io/thread_local/0.2.6 \ | ||
57 | crate://crates.io/utf8-ranges/0.1.3 \ | ||
58 | crate://crates.io/net2/0.2.23 \ | ||
59 | crate://crates.io/dbus/0.3.3 \ | ||
60 | crate://crates.io/winapi-build/0.1.1 \ | ||
61 | crate://crates.io/chan-signal/0.1.6 \ | ||
62 | crate://crates.io/bit-vec/0.4.3 \ | ||
63 | crate://crates.io/toml/0.1.30 \ | ||
64 | crate://crates.io/quick-error/0.2.2 \ | ||
65 | crate://crates.io/ws/0.5.0 \ | ||
66 | crate://crates.io/traitobject/0.0.1 \ | ||
67 | crate://crates.io/cfg-if/0.1.0 \ | ||
68 | crate://crates.io/matches/0.1.2 \ | ||
69 | crate://crates.io/getopts/0.2.14 \ | ||
70 | crate://crates.io/sha1/0.1.1 \ | ||
71 | crate://crates.io/openssl-sys/0.7.13 \ | ||
72 | crate://crates.io/cookie/0.2.5 \ | ||
73 | crate://crates.io/libressl-pnacl-sys/2.1.6 \ | ||
74 | crate://crates.io/lazy_static/0.2.1 \ | ||
75 | crate://crates.io/language-tags/0.2.2 \ | ||
76 | crate://crates.io/semver/0.1.20 \ | ||
77 | crate://crates.io/unix_socket/0.5.0 \ | ||
78 | crate://crates.io/memchr/0.1.11 \ | ||
79 | crate://crates.io/gdi32-sys/0.2.0 \ | ||
80 | crate://crates.io/nom/1.2.3 \ | ||
81 | crate://crates.io/mio/0.5.1 \ | ||
82 | crate://crates.io/tempdir/0.3.4 \ | ||
83 | crate://crates.io/miow/0.1.2 \ | ||
84 | crate://crates.io/pnacl-build-helper/1.4.10 \ | ||
85 | crate://crates.io/libc/0.2.12 \ | ||
86 | crate://crates.io/nix/0.5.1 \ | ||
87 | crate://crates.io/byteorder/0.5.3 \ | ||
88 | crate://crates.io/rustc_version/0.1.7 \ | ||
89 | crate://crates.io/slab/0.1.3 \ | ||
90 | crate://crates.io/rustc-serialize/0.3.19 \ | ||
91 | crate://crates.io/env_logger/0.3.3 \ | ||
92 | crate://crates.io/vecio/0.1.0 \ | ||
93 | crate://crates.io/rotor/0.6.3 \ | ||
94 | crate://crates.io/openssl-sys-extras/0.7.13 \ | ||
95 | crate://crates.io/regex-syntax/0.3.3 \ | ||
96 | crate://crates.io/bytes/0.3.0 \ | ||
97 | crate://crates.io/void/1.0.2 \ | ||
98 | crate://crates.io/spmc/0.2.1 \ | ||
99 | crate://crates.io/openssl-verify/0.1.0 \ | ||
100 | crate-index://crates.io/6127fc24b0b6fe73fe4d339817fbf000b9a798a2 \ | ||
101 | git://github.com/advancedtelematic/rvi_sota_client \ | ||
34 | " | 102 | " |
35 | 103 | SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4" | |
36 | # 0.1.2 | 104 | SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913" |
37 | SRCREV_dbus-rs = "c2c4c98adcf9949992ac5b0050bf17afe10868c9" | 105 | |
38 | 106 | SYSTEMD_SERVICE_${PN} = "sota_client.service" | |
39 | SRCREV_FORMAT .= "_dbus-rs" | 107 | |
40 | EXTRA_OECARGO_PATHS += "${WORKDIR}/dbus-rs" | 108 | DEPENDS += " openssl " |
41 | 109 | RDEPENDS_${PN} = " libcrypto \ | |
42 | ## rust-openssl | 110 | libssl \ |
43 | SRC_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 \ |
46 | SRCREV_rust-openssl = "d6bc3bb16f2673f610e9310041fc030ea9b90187" | 114 | jq \ |
47 | 115 | " | |
48 | SRCREV_FORMAT .= "_rust-openssl" | 116 | |
49 | EXTRA_OECARGO_PATHS += "${WORKDIR}/rust-openssl" | 117 | do_install() { |
50 | 118 | install -d ${D}${bindir} | |
51 | ## hyper | 119 | install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} |
52 | SRC_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 |
55 | SRCREV_hyper = "4828437551c7f5ed3f54acb1c1bf1fd50a6a3516" | 123 | install -c ${S}/run/sota_client.service ${D}${systemd_unitdir}/system |
56 | 124 | ||
57 | SRCREV_FORMAT .= "_hyper" | 125 | install -d ${D}${sysconfdir} |
58 | EXTRA_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 | } | ||