!234 compile in android env
From: @chegJH Reviewed-by: @duguhaotian Signed-off-by: @duguhaotian
This commit is contained in:
commit
e7c60ddaca
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
|
||||
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
|
||||
Patch0034: 0034-cgfsng-fix-cgroup-attach-cgroup-creation.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: pkgconfig(libseccomp)
|
||||
@ -214,6 +215,12 @@ make check
|
||||
%{_mandir}/*/man7/%{name}*
|
||||
|
||||
%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
|
||||
- Type:improve
|
||||
- ID:NA
|
||||
|
||||
@ -33,3 +33,4 @@
|
||||
0033-conf-ensure-that-the-idmap-pointer-itself-is-freed.patch
|
||||
0034-cgfsng-fix-cgroup-attach-cgroup-creation.patch
|
||||
0035-adapt-upstream-compiler-settings.patch
|
||||
0036-compile-in-android-env.patch
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user