summaryrefslogtreecommitdiffstats
path: root/yocto-poky/meta/recipes-extended/mailx/files
diff options
context:
space:
mode:
Diffstat (limited to 'yocto-poky/meta/recipes-extended/mailx/files')
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch59
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch41
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch25
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch71
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch79
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch113
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch31
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch38
-rw-r--r--yocto-poky/meta/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch46
9 files changed, 0 insertions, 503 deletions
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch b/yocto-poky/meta/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
deleted file mode 100644
index 77da33321..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: Luk Claes <luk@debian.org>
-Date: Sat, 4 Jul 2009 10:54:53 +0200
-Subject: Don't reuse weak symbol optopt to fix FTBFS on mips*
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- getopt.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/getopt.c b/getopt.c
-index 83ce628..82e983c 100644
---- a/getopt.c
-+++ b/getopt.c
-@@ -43,7 +43,7 @@ typedef int ssize_t;
- char *optarg;
- int optind = 1;
- int opterr = 1;
--int optopt;
-+int optoptc;
-
- static void
- error(const char *s, int c)
-@@ -69,7 +69,7 @@ error(const char *s, int c)
- *bp++ = *s++;
- while (*msg)
- *bp++ = *msg++;
-- *bp++ = optopt;
-+ *bp++ = optoptc;
- *bp++ = '\n';
- write(2, buf, bp - buf);
- ac_free(buf);
-@@ -101,13 +101,13 @@ getopt(int argc, char *const argv[], const char *optstring)
- }
- curp = &argv[optind][1];
- }
-- optopt = curp[0] & 0377;
-+ optoptc = curp[0] & 0377;
- while (optstring[0]) {
- if (optstring[0] == ':') {
- optstring++;
- continue;
- }
-- if ((optstring[0] & 0377) == optopt) {
-+ if ((optstring[0] & 0377) == optoptc) {
- if (optstring[1] == ':') {
- if (curp[1] != '\0') {
- optarg = (char *)&curp[1];
-@@ -127,7 +127,7 @@ getopt(int argc, char *const argv[], const char *optstring)
- optind++;
- optarg = 0;
- }
-- return optopt;
-+ return optoptc;
- }
- optstring++;
- }
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch b/yocto-poky/meta/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
deleted file mode 100644
index 6bad433ea..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Hilko Bengen <bengen@debian.org>
-Date: Wed, 27 Apr 2011 00:18:42 +0200
-Subject: Patched out SSL2 support since it is no longer supported by OpenSSL.
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- mailx.1 | 2 +-
- openssl.c | 4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/mailx.1 b/mailx.1
-index 417ea04..a02e430 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -3575,7 +3575,7 @@ Only applicable if SSL/TLS support is built using OpenSSL.
- .TP
- .B ssl-method
- Selects a SSL/TLS protocol version;
--valid values are `ssl2', `ssl3', and `tls1'.
-+valid values are `ssl3', and `tls1'.
- If unset, the method is selected automatically,
- if possible.
- .TP
-diff --git a/openssl.c b/openssl.c
-index b4e33fc..44fe4e5 100644
---- a/openssl.c
-+++ b/openssl.c
-@@ -216,9 +216,7 @@ ssl_select_method(const char *uhp)
-
- cp = ssl_method_string(uhp);
- if (cp != NULL) {
-- if (equal(cp, "ssl2"))
-- method = SSLv2_client_method();
-- else if (equal(cp, "ssl3"))
-+ if (equal(cp, "ssl3"))
- method = SSLv3_client_method();
- else if (equal(cp, "tls1"))
- method = TLSv1_client_method();
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch b/yocto-poky/meta/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
deleted file mode 100644
index 13b73ae59..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Hilko Bengen <bengen@debian.org>
-Date: Sat, 14 Apr 2012 20:22:43 +0200
-Subject: Fixed Lintian warning (warning: macro `N' not defined)
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- mailx.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mailx.1 b/mailx.1
-index a02e430..b0723bd 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -3781,7 +3781,7 @@ you could examine the first message by giving the command:
- .sp
- .fi
- which might cause
--.N mailx
-+.I mailx
- to respond with, for example:
- .nf
- .sp
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch b/yocto-poky/meta/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
deleted file mode 100644
index 13b955c4b..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 9984ae5cb0ea0d61df1612b06952a61323c083d9 Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 11:13:38 +0100
-Subject: [PATCH 1/4] outof: Introduce expandaddr flag
-
-Document that address expansion is disabled unless the expandaddr
-binary option is set.
-
-This has been assigned CVE-2014-7844 for BSD mailx, but it is not
-a vulnerability in Heirloom mailx because this feature was documented.
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-CVE: CVE-2014-7844
----
- mailx.1 | 14 ++++++++++++++
- names.c | 3 +++
- 2 files changed, 17 insertions(+)
-
-diff --git a/mailx.1 b/mailx.1
-index 70a7859..22a171b 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -656,6 +656,14 @@ but any reply returned to the machine
- will have the system wide alias expanded
- as all mail goes through sendmail.
- .SS "Recipient address specifications"
-+If the
-+.I expandaddr
-+option is not set (the default), recipient addresses must be names of
-+local mailboxes or Internet mail addresses.
-+.PP
-+If the
-+.I expandaddr
-+option is set, the following rules apply:
- When an address is used to name a recipient
- (in any of To, Cc, or Bcc),
- names of local mail folders
-@@ -2391,6 +2399,12 @@ and exits immediately.
- If this option is set,
- \fImailx\fR starts even with an empty mailbox.
- .TP
-+.B expandaddr
-+Causes
-+.I mailx
-+to expand message recipient addresses, as explained in the section,
-+Recipient address specifications.
-+.TP
- .B flipr
- Exchanges the
- .I Respond
-diff --git a/names.c b/names.c
-index 66e976b..c69560f 100644
---- a/names.c
-+++ b/names.c
-@@ -268,6 +268,9 @@ outof(struct name *names, FILE *fo, struct header *hp)
- FILE *fout, *fin;
- int ispipe;
-
-+ if (value("expandaddr") == NULL)
-+ return names;
-+
- top = names;
- np = names;
- time(&now);
---
-1.9.3
-
-
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch b/yocto-poky/meta/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
deleted file mode 100644
index 8cdbfd8b0..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From e34e2ac67b80497080ebecccec40c3b61456167d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 11:14:06 +0100
-Subject: [PATCH 2/4] unpack: Disable option processing for email addresses
- when calling sendmail
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- extern.h | 2 +-
- names.c | 8 ++++++--
- sendout.c | 2 +-
- 3 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/extern.h b/extern.h
-index 6b85ba0..8873fe8 100644
---- a/extern.h
-+++ b/extern.h
-@@ -396,7 +396,7 @@ struct name *outof(struct name *names, FILE *fo, struct header *hp);
- int is_fileaddr(char *name);
- struct name *usermap(struct name *names);
- struct name *cat(struct name *n1, struct name *n2);
--char **unpack(struct name *np);
-+char **unpack(struct name *smopts, struct name *np);
- struct name *elide(struct name *names);
- int count(struct name *np);
- struct name *delete_alternates(struct name *np);
-diff --git a/names.c b/names.c
-index c69560f..45bbaed 100644
---- a/names.c
-+++ b/names.c
-@@ -549,7 +549,7 @@ cat(struct name *n1, struct name *n2)
- * Return an error if the name list won't fit.
- */
- char **
--unpack(struct name *np)
-+unpack(struct name *smopts, struct name *np)
- {
- char **ap, **top;
- struct name *n;
-@@ -564,7 +564,7 @@ unpack(struct name *np)
- * the terminating 0 pointer. Additional spots may be needed
- * to pass along -f to the host mailer.
- */
-- extra = 2;
-+ extra = 3 + count(smopts);
- extra++;
- metoo = value("metoo") != NULL;
- if (metoo)
-@@ -581,6 +581,10 @@ unpack(struct name *np)
- *ap++ = "-m";
- if (verbose)
- *ap++ = "-v";
-+ for (; smopts != NULL; smopts = smopts->n_flink)
-+ if ((smopts->n_type & GDEL) == 0)
-+ *ap++ = smopts->n_name;
-+ *ap++ = "--";
- for (; n != NULL; n = n->n_flink)
- if ((n->n_type & GDEL) == 0)
- *ap++ = n->n_name;
-diff --git a/sendout.c b/sendout.c
-index 7b7f2eb..c52f15d 100644
---- a/sendout.c
-+++ b/sendout.c
-@@ -835,7 +835,7 @@ start_mta(struct name *to, struct name *mailargs, FILE *input,
- #endif /* HAVE_SOCKETS */
-
- if ((smtp = value("smtp")) == NULL) {
-- args = unpack(cat(mailargs, to));
-+ args = unpack(mailargs, to);
- if (debug || value("debug")) {
- printf(catgets(catd, CATSET, 181,
- "Sendmail arguments:"));
---
-1.9.3
-
-
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch b/yocto-poky/meta/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
deleted file mode 100644
index 5558d8639..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 2bae8ecf04ec2ba6bb9f0af5b80485dd0edb427d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 12:48:25 +0100
-Subject: [PATCH 3/4] fio.c: Unconditionally require wordexp support
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- fio.c | 67 +++++--------------------------------------------------------------
- 1 file changed, 5 insertions(+), 62 deletions(-)
-
-diff --git a/fio.c b/fio.c
-index 65e8f10..1529236 100644
---- a/fio.c
-+++ b/fio.c
-@@ -43,12 +43,15 @@ static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09";
- #endif /* not lint */
-
- #include "rcv.h"
-+
-+#ifndef HAVE_WORDEXP
-+#error wordexp support is required
-+#endif
-+
- #include <sys/stat.h>
- #include <sys/file.h>
- #include <sys/wait.h>
--#ifdef HAVE_WORDEXP
- #include <wordexp.h>
--#endif /* HAVE_WORDEXP */
- #include <unistd.h>
-
- #if defined (USE_NSS)
-@@ -481,7 +484,6 @@ next:
- static char *
- globname(char *name)
- {
--#ifdef HAVE_WORDEXP
- wordexp_t we;
- char *cp;
- sigset_t nset;
-@@ -527,65 +529,6 @@ globname(char *name)
- }
- wordfree(&we);
- return cp;
--#else /* !HAVE_WORDEXP */
-- char xname[PATHSIZE];
-- char cmdbuf[PATHSIZE]; /* also used for file names */
-- int pid, l;
-- char *cp, *shell;
-- int pivec[2];
-- extern int wait_status;
-- struct stat sbuf;
--
-- if (pipe(pivec) < 0) {
-- perror("pipe");
-- return name;
-- }
-- snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name);
-- if ((shell = value("SHELL")) == NULL)
-- shell = SHELL;
-- pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL);
-- if (pid < 0) {
-- close(pivec[0]);
-- close(pivec[1]);
-- return NULL;
-- }
-- close(pivec[1]);
--again:
-- l = read(pivec[0], xname, sizeof xname);
-- if (l < 0) {
-- if (errno == EINTR)
-- goto again;
-- perror("read");
-- close(pivec[0]);
-- return NULL;
-- }
-- close(pivec[0]);
-- if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) {
-- fprintf(stderr, catgets(catd, CATSET, 81,
-- "\"%s\": Expansion failed.\n"), name);
-- return NULL;
-- }
-- if (l == 0) {
-- fprintf(stderr, catgets(catd, CATSET, 82,
-- "\"%s\": No match.\n"), name);
-- return NULL;
-- }
-- if (l == sizeof xname) {
-- fprintf(stderr, catgets(catd, CATSET, 83,
-- "\"%s\": Expansion buffer overflow.\n"), name);
-- return NULL;
-- }
-- xname[l] = 0;
-- for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--)
-- ;
-- cp[1] = '\0';
-- if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) {
-- fprintf(stderr, catgets(catd, CATSET, 84,
-- "\"%s\": Ambiguous.\n"), name);
-- return NULL;
-- }
-- return savestr(xname);
--#endif /* !HAVE_WORDEXP */
- }
-
- /*
---
-1.9.3
-
-
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch b/yocto-poky/meta/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
deleted file mode 100644
index ae14b8acf..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 73fefa0c1ac70043ec84f2d8b8f9f683213f168d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 13:11:32 +0100
-Subject: [PATCH 4/4] globname: Invoke wordexp with WRDE_NOCMD (CVE-2004-2771)
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-CVE: CVE-2004-2771
----
- fio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fio.c b/fio.c
-index 1529236..774a204 100644
---- a/fio.c
-+++ b/fio.c
-@@ -497,7 +497,7 @@ globname(char *name)
- sigemptyset(&nset);
- sigaddset(&nset, SIGCHLD);
- sigprocmask(SIG_BLOCK, &nset, NULL);
-- i = wordexp(name, &we, 0);
-+ i = wordexp(name, &we, WRDE_NOCMD);
- sigprocmask(SIG_UNBLOCK, &nset, NULL);
- switch (i) {
- case 0:
---
-1.9.3
-
-
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch b/yocto-poky/meta/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
deleted file mode 100644
index 2b5991425..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Description: Sendmail is at /usr/sbin/sendmail
- As per Debian Policy §11.6
-Author: Ryan Kavanagh <rak@debian.org>
-Origin: Debian
-Forwarded: no
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: heirloom-mailx-12.5/Makefile
-===================================================================
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-
---- heirloom-mailx-12.5.orig/Makefile 2011-04-26 17:23:22.000000000 -0400
-+++ heirloom-mailx-12.5/Makefile 2015-01-27 13:20:04.733542801 -0500
-@@ -13,7 +13,7 @@
-
- MAILRC = $(SYSCONFDIR)/nail.rc
- MAILSPOOL = /var/mail
--SENDMAIL = /usr/lib/sendmail
-+SENDMAIL = /usr/sbin/sendmail
-
- DESTDIR =
-
-Index: heirloom-mailx-12.5/mailx.1
-===================================================================
---- heirloom-mailx-12.5.orig/mailx.1 2015-01-27 13:18:49.000000000 -0500
-+++ heirloom-mailx-12.5/mailx.1 2015-01-27 13:20:32.382336867 -0500
-@@ -4922,7 +4922,7 @@
- which just acts as a proxy.
- .PP
- \fIMailx\fR immediately contacts the SMTP server (or
--.IR \%/usr/lib/sendmail )
-+.IR \%/usr/sbin/sendmail )
- even when operating in
- .I disconnected
- mode.
diff --git a/yocto-poky/meta/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch b/yocto-poky/meta/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
deleted file mode 100644
index b74fd0472..000000000
--- a/yocto-poky/meta/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-krb5 support is autodetected from sysroot making builds undeterministic
-feel free to improve this to support explicitly enabling/disabling it
-
-Upstream-Status: Pending
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
---- a/makeconfig 2013-07-21 15:06:11.177792334 +0200
-+++ b/makeconfig 2013-07-21 15:07:20.028793994 +0200
-@@ -424,36 +424,6 @@
- }
- !
-
--<$tmp2.c link_check gssapi 'for GSSAPI in libgss' \
-- '#define USE_GSSAPI' '-lgss' ||
-- <$tmp2.c link_check gssapi 'for GSSAPI in libgssapi_krb5' \
-- '#define USE_GSSAPI' '-lgssapi_krb5' ||
-- link_check gssapi 'for GSSAPI in libgssapi_krb5, old-style' \
-- '#define USE_GSSAPI
--#define GSSAPI_OLD_STYLE' '-lgssapi_krb5' <<\! || \
-- link_check gssapi 'for GSSAPI in libgssapi' \
-- '#define USE_GSSAPI
--#define GSSAPI_REG_INCLUDE' '-lgssapi' <<\%
--#include <gssapi/gssapi.h>
--#include <gssapi/gssapi_generic.h>
--
--int main(void)
--{
-- gss_import_name(0, 0, gss_nt_service_name, 0);
-- gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
-- return 0;
--}
--!
--#include <gssapi.h>
--
--int main(void)
--{
-- gss_import_name(0, 0, GSS_C_NT_HOSTBASED_SERVICE, 0);
-- gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
-- return 0;
--}
--%
--
- cat >$tmp2.c <<\!
- #include "config.h"
- #ifdef HAVE_NL_LANGINFO
OpenPOWER on IntegriCloud