Snap for 7357013 from b4b786ca611bc01daeab3a9e40db03885840ee20 to sc-d1-release
Change-Id: I92e52f343b4b0993a8ba5c80b3d959b68bff244d
diff --git a/AUTHORS b/AUTHORS
index 121cf6a..3487d44 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2,7 +2,7 @@
M: Li Guifu <bluce.liguifu@huawei.com>
M: Miao Xie <miaoxie@huawei.com>
M: Fang Wei <fangwei1@huawei.com>
-R: Gao Xiang <gaoxiang25@huawei.com>
+R: Gao Xiang <xiang@kernel.org>
R: Chao Yu <yuchao0@huawei.com>
S: Maintained
L: linux-erofs@lists.ozlabs.org
diff --git a/Android.bp b/Android.bp
index 1e048e5..4494013 100644
--- a/Android.bp
+++ b/Android.bp
@@ -44,6 +44,13 @@
],
}
+genrule {
+ name: "erofs-utils-version.h",
+ srcs: ["VERSION"],
+ out: ["erofs-utils-version.h"],
+ cmd: "sed -n '1p' $(in) | tr -d '\n' | sed 's/\\(.*\\)/#define PACKAGE_VERSION \"\\1\"/' > $(out)",
+}
+
cc_defaults {
name: "erofs-utils_defaults",
@@ -53,7 +60,7 @@
"-Wno-ignored-qualifiers",
"-Wno-pointer-arith",
"-Wno-unused-parameter",
- "-DPACKAGE_VERSION=\"1.1\"",
+ "-include erofs-utils-version.h",
"-DHAVE_FALLOCATE",
"-DHAVE_LINUX_TYPES_H",
"-DHAVE_LIBSELINUX",
@@ -68,6 +75,7 @@
include_dirs: [
"external/e2fsprogs/lib/",
],
+ generated_headers: ["erofs-utils-version.h"],
shared_libs: [
"libcutils",
"libext2_uuid",
diff --git a/ChangeLog b/ChangeLog
index 947761a..d8e89d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+erofs-utils (1.2.1-1) unstable; urgency=medium
+
+ * A quick maintenance release includes the following updates:
+ - fix reported build issues due to different configurations;
+ - (mkfs.erofs, AOSP) fix sub-directory prefix for canned fs_config;
+ - update some obsoleted email address;
+
+ -- Gao Xiang <xiang@kernel.org> Sun, 10 Jan 2021 00:00:00 +0800
+
erofs-utils (1.2-1) unstable; urgency=medium
* This release includes the following features and bugfixes:
@@ -10,7 +19,7 @@
- (mkfs.erofs, AOSP) support Android fs_config;
- (experimental, disabled by default) add erofsfuse approach;
- -- Gao Xiang <xiang@kernel.org> Tue, 06 Dec 2020 00:00:00 +0800
+ -- Gao Xiang <xiang@kernel.org> Sun, 06 Dec 2020 00:00:00 +0800
erofs-utils (1.1-1) unstable; urgency=low
diff --git a/METADATA b/METADATA
index 30119a6..a1390e0 100644
--- a/METADATA
+++ b/METADATA
@@ -5,7 +5,7 @@
type: GIT
value: "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git"
}
- version: "v1.2"
+ version: "v1.2.1"
license_type: RESTRICTED
last_upgrade_date {
year: 2020
diff --git a/README b/README
index 0001a67..b57550b 100644
--- a/README
+++ b/README
@@ -149,7 +149,7 @@
Fang Wei <fangwei1@huawei.com>
Cc:
- Gao Xiang <gaoxiang25@huawei.com>
+ Gao Xiang <xiang@kernel.org>
Chao Yu <yuchao0@huawei.com>
Comments
diff --git a/VERSION b/VERSION
index aabe0d1..203a5b8 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-1.2
-2020-12-06
+1.2.1
+2021-01-10
diff --git a/configure.ac b/configure.ac
index d5fdfb8..28926c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,6 +96,7 @@
# Checks for header files.
AC_CHECK_HEADERS(m4_flatten([
dirent.h
+ execinfo.h
fcntl.h
getopt.h
inttypes.h
@@ -147,7 +148,7 @@
#include <unistd.h>])
# Checks for library functions.
-AC_CHECK_FUNCS([fallocate gettimeofday memset realpath strdup strerror strrchr strtoull])
+AC_CHECK_FUNCS([backtrace fallocate gettimeofday memset realpath strdup strerror strrchr strtoull])
# Configure libuuid
AS_IF([test "x$with_uuid" != "xno"], [
diff --git a/fuse/Makefile.am b/fuse/Makefile.am
index f14f6fd..e7757bc 100644
--- a/fuse/Makefile.am
+++ b/fuse/Makefile.am
@@ -5,6 +5,6 @@
bin_PROGRAMS = erofsfuse
erofsfuse_SOURCES = dir.c main.c
erofsfuse_CFLAGS = -Wall -Werror -I$(top_srcdir)/include
-erofsfuse_CFLAGS += -DFUSE_USE_VERSION=26 ${libfuse_CFLAGS}
-erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse_LIBS} ${liblz4_LIBS}
+erofsfuse_CFLAGS += -DFUSE_USE_VERSION=26 ${libfuse_CFLAGS} ${libselinux_CFLAGS}
+erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse_LIBS} ${liblz4_LIBS} ${libselinux_LIBS}
diff --git a/fuse/main.c b/fuse/main.c
index 1e24efe..c162912 100644
--- a/fuse/main.c
+++ b/fuse/main.c
@@ -6,7 +6,6 @@
*/
#include <stdlib.h>
#include <string.h>
-#include <execinfo.h>
#include <signal.h>
#include <libgen.h>
#include <fuse.h>
@@ -168,6 +167,9 @@
return 1;
}
+#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
+#include <execinfo.h>
+
static void signal_handle_sigsegv(int signal)
{
void *array[10];
@@ -187,7 +189,7 @@
erofs_dump("========================================\n");
abort();
}
-
+#endif
int main(int argc, char *argv[])
{
@@ -197,11 +199,13 @@
erofs_init_configure();
fprintf(stderr, "%s %s\n", basename(argv[0]), cfg.c_version);
+#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
if (signal(SIGSEGV, signal_handle_sigsegv) == SIG_ERR) {
fprintf(stderr, "failed to initialize signals\n");
ret = -errno;
goto err;
}
+#endif
/* parse options */
ret = fuse_opt_parse(&args, &fusecfg, option_spec, optional_opt_func);
diff --git a/lib/config.c b/lib/config.c
index 3155112..3ecd481 100644
--- a/lib/config.c
+++ b/lib/config.c
@@ -11,6 +11,7 @@
#include "erofs/internal.h"
struct erofs_configure cfg;
+struct erofs_sb_info sbi;
void erofs_init_configure(void)
{
diff --git a/lib/inode.c b/lib/inode.c
index 3d634fc..d0b4d51 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -22,8 +22,6 @@
#include "erofs/xattr.h"
#include "erofs/exclude.h"
-struct erofs_sb_info sbi;
-
#define S_SHIFT 12
static unsigned char erofs_ftype_by_mode[S_IFMT >> S_SHIFT] = {
[S_IFREG >> S_SHIFT] = EROFS_FT_REG_FILE,
@@ -698,32 +696,42 @@
/* filesystem_config does not preserve file type bits */
mode_t stat_file_type_mask = st->st_mode & S_IFMT;
unsigned int uid = 0, gid = 0, mode = 0;
- char *fspath;
+ const char *fspath;
+ char *decorated = NULL;
inode->capabilities = 0;
- if (cfg.fs_config_file)
- canned_fs_config(erofs_fspath(path),
- S_ISDIR(st->st_mode),
- cfg.target_out_path,
- &uid, &gid, &mode, &inode->capabilities);
- else if (cfg.mount_point) {
- if (asprintf(&fspath, "%s/%s", cfg.mount_point,
+ if (!cfg.fs_config_file && !cfg.mount_point)
+ return 0;
+
+ if (!cfg.mount_point ||
+ /* have to drop the mountpoint for rootdir of canned fsconfig */
+ (cfg.fs_config_file && erofs_fspath(path)[0] == '\0')) {
+ fspath = erofs_fspath(path);
+ } else {
+ if (asprintf(&decorated, "%s/%s", cfg.mount_point,
erofs_fspath(path)) <= 0)
return -ENOMEM;
+ fspath = decorated;
+ }
+ if (cfg.fs_config_file)
+ canned_fs_config(fspath, S_ISDIR(st->st_mode),
+ cfg.target_out_path,
+ &uid, &gid, &mode, &inode->capabilities);
+ else
fs_config(fspath, S_ISDIR(st->st_mode),
cfg.target_out_path,
&uid, &gid, &mode, &inode->capabilities);
- free(fspath);
- }
- st->st_uid = uid;
- st->st_gid = gid;
- st->st_mode = mode | stat_file_type_mask;
erofs_dbg("/%s -> mode = 0x%x, uid = 0x%x, gid = 0x%x, "
"capabilities = 0x%" PRIx64 "\n",
- erofs_fspath(path),
- mode, uid, gid, inode->capabilities);
+ fspath, mode, uid, gid, inode->capabilities);
+
+ if (decorated)
+ free(decorated);
+ st->st_uid = uid;
+ st->st_gid = gid;
+ st->st_mode = mode | stat_file_type_mask;
return 0;
}
#else
diff --git a/lib/super.c b/lib/super.c
index 2d36692..025cefe 100644
--- a/lib/super.c
+++ b/lib/super.c
@@ -11,8 +11,6 @@
#include "erofs/io.h"
#include "erofs/print.h"
-struct erofs_sb_info sbi;
-
static bool check_layout_compatibility(struct erofs_sb_info *sbi,
struct erofs_super_block *dsb)
{
diff --git a/mkfs/main.c b/mkfs/main.c
index c63b274..abd48be 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -24,7 +24,7 @@
#include "erofs/exclude.h"
#ifdef HAVE_LIBUUID
-#include <uuid/uuid.h>
+#include <uuid.h>
#endif
#define EROFS_SUPER_END (EROFS_SUPER_OFFSET + sizeof(struct erofs_super_block))