changes for compile in andorid env
Signed-off-by: chegJH <hejunjie10@huawei.com>
This commit is contained in:
parent
2439cfa36d
commit
07039681d8
200
0036-compile-in-android-env.patch
Normal file
200
0036-compile-in-android-env.patch
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
From 2de0b4dddb98fa70874eb96a4a9dc33c12037db4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: chegJH <hejunjie10@huawei.com>
|
||||||
|
Date: Tue, 15 Feb 2022 16:13:56 +0800
|
||||||
|
Subject: [PATCH] changes for compile in android env
|
||||||
|
|
||||||
|
Signed-off-by: chegJH <hejunjie10@huawei.com>
|
||||||
|
---
|
||||||
|
configure.ac | 3 ++-
|
||||||
|
src/lxc/Makefile.am | 3 ++-
|
||||||
|
src/lxc/commands_utils.c | 8 +++++++-
|
||||||
|
src/lxc/confile.c | 6 +++---
|
||||||
|
src/lxc/json/read-file.c | 2 +-
|
||||||
|
src/lxc/log.c | 2 +-
|
||||||
|
src/lxc/lxclock.c | 1 +
|
||||||
|
src/lxc/syscall_wrappers.h | 2 +-
|
||||||
|
src/lxc/utils.c | 21 +++++++--------------
|
||||||
|
9 files changed, 25 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index d1d793b..7766638 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -771,7 +771,8 @@ AX_CHECK_LINK_FLAG([-z relro], [LDFLAGS="$LDFLAGS -z relro"],,[])
|
||||||
|
AX_CHECK_LINK_FLAG([-z now], [LDFLAGS="$LDFLAGS -z now"],,[])
|
||||||
|
AX_CHECK_LINK_FLAG([-z noexecstack], [LDFLAGS="$LDFLAGS -z noexecstack"],,[])
|
||||||
|
|
||||||
|
-CFLAGS="$CFLAGS -Wvla -std=gnu11 -D_FORTIFY_SOURCE=2 -Wall -fPIC -fPIE -pie"
|
||||||
|
+CFLAGS="$CFLAGS -Wvla -std=gnu11 -D_FORTIFY_SOURCE=2 -Wall -fPIC -fPIE"
|
||||||
|
+LDFLAGS="$LDFLAGS -pie"
|
||||||
|
if test "x$enable_werror" = "xyes"; then
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
fi
|
||||||
|
diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
|
||||||
|
index dc49c7e..2686e24 100644
|
||||||
|
--- a/src/lxc/Makefile.am
|
||||||
|
+++ b/src/lxc/Makefile.am
|
||||||
|
@@ -361,7 +361,8 @@ LDADD = liblxc.la \
|
||||||
|
@OPENSSL_LIBS@ \
|
||||||
|
@SECCOMP_LIBS@ \
|
||||||
|
@SELINUX_LIBS@ \
|
||||||
|
- @DLOG_LIBS@
|
||||||
|
+ @DLOG_LIBS@ \
|
||||||
|
+ @YAJL_LIBS@
|
||||||
|
|
||||||
|
if ENABLE_TOOLS
|
||||||
|
lxc_attach_SOURCES = tools/lxc_attach.c \
|
||||||
|
diff --git a/src/lxc/commands_utils.c b/src/lxc/commands_utils.c
|
||||||
|
index 7dfefa5..54ba26e 100644
|
||||||
|
--- a/src/lxc/commands_utils.c
|
||||||
|
+++ b/src/lxc/commands_utils.c
|
||||||
|
@@ -141,9 +141,15 @@ int lxc_make_abstract_socket_name(char *path, size_t pathlen,
|
||||||
|
char *generate_named_unix_sock_dir(const char *name)
|
||||||
|
{
|
||||||
|
__do_free char *exec_sock_dir = NULL;
|
||||||
|
+ __do_free char *rundir = NULL;
|
||||||
|
|
||||||
|
- if (asprintf(&exec_sock_dir, "/var/run/lxc/%s", name) < 0)
|
||||||
|
+ rundir = get_rundir();
|
||||||
|
+ if (!rundir)
|
||||||
|
+ rundir = strdup("/var/run");
|
||||||
|
+
|
||||||
|
+ if (asprintf(&exec_sock_dir, "%s/lxc/%s", rundir, name) < 0) {
|
||||||
|
return log_error_errno(NULL, errno, "Failed to allocate memory");
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return move_ptr(exec_sock_dir);
|
||||||
|
}
|
||||||
|
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
|
||||||
|
index e298ce9..cc53148 100644
|
||||||
|
--- a/src/lxc/confile.c
|
||||||
|
+++ b/src/lxc/confile.c
|
||||||
|
@@ -6239,21 +6239,21 @@ static int set_config_init_args(const char *key, const char *value,
|
||||||
|
struct lxc_conf *lxc_conf, void *data)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
- char *tmp = NULL;
|
||||||
|
+ char **tmp = NULL;
|
||||||
|
char *new_value = NULL;
|
||||||
|
|
||||||
|
ret = set_config_string_item(&new_value, value);
|
||||||
|
if (ret || !new_value)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
- tmp = realloc(lxc_conf->init_argv, (lxc_conf->init_argc + 1) * sizeof(char *));
|
||||||
|
+ tmp = (char **)realloc(lxc_conf->init_argv, (lxc_conf->init_argc + 1) * sizeof(char *));
|
||||||
|
if (!tmp) {
|
||||||
|
ERROR("Out of memory");
|
||||||
|
free(new_value);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- lxc_conf->init_argv = (char **)tmp;
|
||||||
|
+ lxc_conf->init_argv = tmp;
|
||||||
|
|
||||||
|
lxc_conf->init_argv[lxc_conf->init_argc] = new_value;
|
||||||
|
lxc_conf->init_argc++;
|
||||||
|
diff --git a/src/lxc/json/read-file.c b/src/lxc/json/read-file.c
|
||||||
|
index 70e73e5..34ebeed 100644
|
||||||
|
--- a/src/lxc/json/read-file.c
|
||||||
|
+++ b/src/lxc/json/read-file.c
|
||||||
|
@@ -76,7 +76,7 @@ char *read_file(const char *path, size_t *length)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- fd = open(rpath, O_RDONLY | O_CLOEXEC, 0640);
|
||||||
|
+ fd = open(rpath, O_RDONLY | O_CLOEXEC);
|
||||||
|
if (fd < 0) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
diff --git a/src/lxc/log.c b/src/lxc/log.c
|
||||||
|
index 79caa2c..a04f78e 100644
|
||||||
|
--- a/src/lxc/log.c
|
||||||
|
+++ b/src/lxc/log.c
|
||||||
|
@@ -71,7 +71,7 @@ static int isulad_open_fifo(const char *file_path)
|
||||||
|
#define LOG_FIFO_SIZE (1024 * 1024)
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
- fd = lxc_unpriv(open(file_path, O_RDWR | O_NONBLOCK | O_CLOEXEC, 0640));
|
||||||
|
+ fd = lxc_unpriv(open(file_path, O_RDWR | O_NONBLOCK | O_CLOEXEC));
|
||||||
|
if (fd == -1) {
|
||||||
|
fprintf(stderr, "Open fifo %s failed: %s\n", file_path, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/lxc/lxclock.c b/src/lxc/lxclock.c
|
||||||
|
index bb0dca0..d65c614 100644
|
||||||
|
--- a/src/lxc/lxclock.c
|
||||||
|
+++ b/src/lxc/lxclock.c
|
||||||
|
@@ -179,6 +179,7 @@ struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name)
|
||||||
|
l->u.f.fd = -1;
|
||||||
|
|
||||||
|
on_error:
|
||||||
|
+ fprintf(stderr, "Failed to create lock for %s, path %s\n", name, lxcpath);
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h
|
||||||
|
index 1cef215..1c8e652 100644
|
||||||
|
--- a/src/lxc/syscall_wrappers.h
|
||||||
|
+++ b/src/lxc/syscall_wrappers.h
|
||||||
|
@@ -62,7 +62,7 @@ extern int memfd_create(const char *name, unsigned int flags);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_PIVOT_ROOT
|
||||||
|
-static int pivot_root(const char *new_root, const char *put_old)
|
||||||
|
+static inline int pivot_root(const char *new_root, const char *put_old)
|
||||||
|
{
|
||||||
|
return syscall(__NR_pivot_root, new_root, put_old);
|
||||||
|
}
|
||||||
|
diff --git a/src/lxc/utils.c b/src/lxc/utils.c
|
||||||
|
index 95c00cf..b39b6a8 100644
|
||||||
|
--- a/src/lxc/utils.c
|
||||||
|
+++ b/src/lxc/utils.c
|
||||||
|
@@ -2081,7 +2081,10 @@ void lxc_write_error_message(int errfd, const char *format, ...)
|
||||||
|
return;
|
||||||
|
|
||||||
|
va_start(argp, format);
|
||||||
|
+#pragma GCC diagnostic push
|
||||||
|
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||||
|
ret = vsnprintf(errbuf, BUFSIZ, format, argp);
|
||||||
|
+#pragma GCC diagnostic pop
|
||||||
|
va_end(argp);
|
||||||
|
if (ret < 0 || ret >= BUFSIZ)
|
||||||
|
SYSERROR("Failed to call vsnprintf");
|
||||||
|
@@ -2210,30 +2213,20 @@ out:
|
||||||
|
// isulad: set env home in container
|
||||||
|
int lxc_setup_env_home(uid_t uid)
|
||||||
|
{
|
||||||
|
-#define __PASSWD_FILE__ "/etc/passwd"
|
||||||
|
char *homedir = "/"; // default home dir is /
|
||||||
|
- FILE *stream = NULL;
|
||||||
|
struct passwd pw, *pwbufp = NULL;
|
||||||
|
char buf[BUFSIZ];
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
- stream = fopen_cloexec(__PASSWD_FILE__, "r");
|
||||||
|
- if (stream == NULL) {
|
||||||
|
- SYSWARN("Failed to open %s", __PASSWD_FILE__);
|
||||||
|
+ ret = getpwuid_r(uid, &pw, buf, sizeof(buf), &pwbufp);
|
||||||
|
+ if ((ret == 0) && (pwbufp != NULL) && (pwbufp->pw_uid == uid)) {
|
||||||
|
+ homedir = pwbufp->pw_dir;
|
||||||
|
goto set_env;
|
||||||
|
}
|
||||||
|
|
||||||
|
- while (fgetpwent_r(stream, &pw, buf, sizeof(buf), &pwbufp) == 0 && pwbufp != NULL) {
|
||||||
|
- if (pwbufp->pw_uid == uid) {
|
||||||
|
- homedir = pwbufp->pw_dir;
|
||||||
|
- goto set_env;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
WARN("User invalid, can not find user '%u'", uid);
|
||||||
|
|
||||||
|
set_env:
|
||||||
|
- if (stream)
|
||||||
|
- fclose(stream);
|
||||||
|
-
|
||||||
|
// if we didn't configure HOME, set it based on uid
|
||||||
|
if (setenv("HOME", homedir, 0) < 0) {
|
||||||
|
SYSERROR("Unable to set env 'HOME'");
|
||||||
|
--
|
||||||
|
2.32.0 (Apple Git-132)
|
||||||
|
|
||||||
9
lxc.spec
9
lxc.spec
@ -1,4 +1,4 @@
|
|||||||
%global _release 2021122701
|
%global _release 2022021501
|
||||||
|
|
||||||
Name: lxc
|
Name: lxc
|
||||||
Version: 4.0.3
|
Version: 4.0.3
|
||||||
@ -43,6 +43,7 @@ Patch0032: 0032-disable-lxc_keep-with-oci-image.patch
|
|||||||
Patch0033: 0033-conf-ensure-that-the-idmap-pointer-itself-is-freed.patch
|
Patch0033: 0033-conf-ensure-that-the-idmap-pointer-itself-is-freed.patch
|
||||||
Patch0034: 0034-cgfsng-fix-cgroup-attach-cgroup-creation.patch
|
Patch0034: 0034-cgfsng-fix-cgroup-attach-cgroup-creation.patch
|
||||||
Patch0035: 0035-adapt-upstream-compiler-settings.patch
|
Patch0035: 0035-adapt-upstream-compiler-settings.patch
|
||||||
|
Patch0036: 0036-compile-in-android-env.patch
|
||||||
|
|
||||||
BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath
|
BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath
|
||||||
BuildRequires: pkgconfig(libseccomp)
|
BuildRequires: pkgconfig(libseccomp)
|
||||||
@ -214,6 +215,12 @@ make check
|
|||||||
%{_mandir}/*/man7/%{name}*
|
%{_mandir}/*/man7/%{name}*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Feb 15 2022 chegJH <hejunjie10@huawei.com> - 4.0.3-2022021501
|
||||||
|
- Type:improve
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:changes for compile in android env
|
||||||
|
|
||||||
* Mon Dec 27 2021 haozi007 <liuhao27@huawei.com> - 4.0.3-2021122701
|
* Mon Dec 27 2021 haozi007 <liuhao27@huawei.com> - 4.0.3-2021122701
|
||||||
- Type:improve
|
- Type:improve
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
@ -33,3 +33,4 @@
|
|||||||
0033-conf-ensure-that-the-idmap-pointer-itself-is-freed.patch
|
0033-conf-ensure-that-the-idmap-pointer-itself-is-freed.patch
|
||||||
0034-cgfsng-fix-cgroup-attach-cgroup-creation.patch
|
0034-cgfsng-fix-cgroup-attach-cgroup-creation.patch
|
||||||
0035-adapt-upstream-compiler-settings.patch
|
0035-adapt-upstream-compiler-settings.patch
|
||||||
|
0036-compile-in-android-env.patch
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user