diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | include/common.h | 3 | ||||
-rw-r--r-- | include/compat.h (renamed from include/util/compat.h) | 0 | ||||
-rw-r--r-- | include/fstree.h | 2 | ||||
-rw-r--r-- | lib/compat/Makemodule.am | 4 | ||||
-rw-r--r-- | lib/compat/getline.c (renamed from lib/util/getline.c) | 4 | ||||
-rw-r--r-- | lib/compat/getsubopt.c (renamed from lib/util/getsubopt.c) | 4 | ||||
-rw-r--r-- | lib/compat/strndup.c (renamed from lib/util/strndup.c) | 4 | ||||
-rw-r--r-- | lib/sqfs/id_table.c | 2 | ||||
-rw-r--r-- | lib/sqfs/readdir.c | 2 | ||||
-rw-r--r-- | lib/sqfs/write_inode.c | 2 | ||||
-rw-r--r-- | lib/util/Makemodule.am | 8 | ||||
-rw-r--r-- | mkfs/Makemodule.am | 4 | ||||
-rw-r--r-- | tar/Makemodule.am | 5 | ||||
-rw-r--r-- | tests/Makemodule.am | 4 | ||||
-rw-r--r-- | unpack/Makemodule.am | 2 | ||||
-rw-r--r-- | unpack/restore_fstree.c | 4 |
18 files changed, 32 insertions, 26 deletions
diff --git a/Makefile.am b/Makefile.am index 2f65420..6502a26 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,6 +24,7 @@ include doc/Makemodule.am include lib/fstree/Makemodule.am include lib/common/Makemodule.am include lib/tar/Makemodule.am +include lib/compat/Makemodule.am include tar/Makemodule.am include mkfs/Makemodule.am include unpack/Makemodule.am @@ -104,6 +104,9 @@ The following components exist: package. It uses `libutil.la` internally. - `libcommon.a` built from files in `lib/common` contains a bunch of commonly used code shared across the utilities. + - `libcompat.a` built from files in `lib/compat` contains minimal + implementations of POSIX or GNU functions that are not available on some + platforms. The headers in `include` are stuffed with comments on functions an data structures. diff --git a/include/common.h b/include/common.h index 684b047..f7e139f 100644 --- a/include/common.h +++ b/include/common.h @@ -26,9 +26,8 @@ #include "sqfs/dir.h" #include "sqfs/io.h" -#include "util/compat.h" #include "util/util.h" - +#include "compat.h" #include "fstree.h" #include "tar.h" diff --git a/include/util/compat.h b/include/compat.h index fae9d92..fae9d92 100644 --- a/include/util/compat.h +++ b/include/compat.h diff --git a/include/fstree.h b/include/fstree.h index 5caac51..a63c593 100644 --- a/include/fstree.h +++ b/include/fstree.h @@ -15,7 +15,7 @@ #include <stdio.h> #include "sqfs/predef.h" -#include "util/compat.h" +#include "compat.h" typedef struct tree_node_t tree_node_t; typedef struct file_info_t file_info_t; diff --git a/lib/compat/Makemodule.am b/lib/compat/Makemodule.am new file mode 100644 index 0000000..c197fb0 --- /dev/null +++ b/lib/compat/Makemodule.am @@ -0,0 +1,4 @@ +libcompat_a_SOURCES = lib/compat/getline.c lib/compat/getsubopt.c +libcompat_a_SOURCES += lib/compat/strndup.c include/compat.h + +noinst_LIBRARIES += libcompat.a diff --git a/lib/util/getline.c b/lib/compat/getline.c index 996bef2..f330c6d 100644 --- a/lib/util/getline.c +++ b/lib/compat/getline.c @@ -1,11 +1,11 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: GPL-3.0-or-later */ /* * getline.c * * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> */ #include "config.h" -#include "util/compat.h" +#include "compat.h" #include <string.h> #include <stdlib.h> diff --git a/lib/util/getsubopt.c b/lib/compat/getsubopt.c index 5cf19d1..d53a37d 100644 --- a/lib/util/getsubopt.c +++ b/lib/compat/getsubopt.c @@ -1,11 +1,11 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: GPL-3.0-or-later */ /* * getsubopt.c * * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> */ #include "config.h" -#include "util/compat.h" +#include "compat.h" #include <stdlib.h> #include <string.h> diff --git a/lib/util/strndup.c b/lib/compat/strndup.c index 8031d23..dff79d7 100644 --- a/lib/util/strndup.c +++ b/lib/compat/strndup.c @@ -1,11 +1,11 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: GPL-3.0-or-later */ /* * strndup.c * * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> */ #include "config.h" -#include "util/compat.h" +#include "compat.h" #include <string.h> #include <stdlib.h> diff --git a/lib/sqfs/id_table.c b/lib/sqfs/id_table.c index 4080015..a320eca 100644 --- a/lib/sqfs/id_table.c +++ b/lib/sqfs/id_table.c @@ -11,7 +11,7 @@ #include "sqfs/super.h" #include "sqfs/table.h" #include "sqfs/error.h" -#include "util/compat.h" +#include "compat.h" #include <stdlib.h> #include <string.h> diff --git a/lib/sqfs/readdir.c b/lib/sqfs/readdir.c index d800cb7..8899475 100644 --- a/lib/sqfs/readdir.c +++ b/lib/sqfs/readdir.c @@ -10,7 +10,7 @@ #include "sqfs/meta_reader.h" #include "sqfs/error.h" #include "sqfs/dir.h" -#include "util/compat.h" +#include "compat.h" #include <stdlib.h> #include <string.h> diff --git a/lib/sqfs/write_inode.c b/lib/sqfs/write_inode.c index f1f8abf..5f0ef4c 100644 --- a/lib/sqfs/write_inode.c +++ b/lib/sqfs/write_inode.c @@ -11,7 +11,7 @@ #include "sqfs/error.h" #include "sqfs/inode.h" #include "sqfs/dir.h" -#include "util/compat.h" +#include "compat.h" #include <string.h> diff --git a/lib/util/Makemodule.am b/lib/util/Makemodule.am index b5fef29..6a1a6a8 100644 --- a/lib/util/Makemodule.am +++ b/lib/util/Makemodule.am @@ -1,8 +1,6 @@ -libutil_la_SOURCES = include/util/util.h include/util/compat.h -libutil_la_SOURCES += lib/util/str_table.c include/util/str_table.h -libutil_la_SOURCES += lib/util/alloc.c lib/util/canonicalize_name.c -libutil_la_SOURCES += lib/util/strndup.c lib/util/getline.c -libutil_la_SOURCES += lib/util/getsubopt.c +libutil_la_SOURCES = include/util/util.h include/util/str_table.h +libutil_la_SOURCES += lib/util/str_table.c lib/util/canonicalize_name.c +libutil_la_SOURCES += lib/util/alloc.c libutil_la_CFLAGS = $(AM_CFLAGS) libutil_la_CPPFLAGS = $(AM_CPPFLAGS) libutil_la_LDFLAGS = $(AM_LDFLAGS) diff --git a/mkfs/Makemodule.am b/mkfs/Makemodule.am index 9fd8bed..f4dffa7 100644 --- a/mkfs/Makemodule.am +++ b/mkfs/Makemodule.am @@ -1,7 +1,7 @@ gensquashfs_SOURCES = mkfs/mkfs.c mkfs/mkfs.h mkfs/options.c gensquashfs_SOURCES += mkfs/dirscan.c mkfs/selinux.c -gensquashfs_LDADD = libcommon.a libsquashfs.la libfstree.a libutil.la -gensquashfs_LDADD += $(LIBSELINUX_LIBS) +gensquashfs_LDADD = libcommon.a libsquashfs.la libfstree.a +gensquashfs_LDADD += libcompat.a libutil.la $(LIBSELINUX_LIBS) gensquashfs_CPPFLAGS = $(AM_CPPFLAGS) gensquashfs_CFLAGS = $(AM_CFLAGS) $(LIBSELINUX_CFLAGS) diff --git a/tar/Makemodule.am b/tar/Makemodule.am index e3f40d0..ec65d3a 100644 --- a/tar/Makemodule.am +++ b/tar/Makemodule.am @@ -1,7 +1,8 @@ sqfs2tar_SOURCES = tar/sqfs2tar.c -sqfs2tar_LDADD = libcommon.a libsquashfs.la libtar.a libutil.la +sqfs2tar_LDADD = libcommon.a libsquashfs.la libtar.a libcompat.a libutil.la tar2sqfs_SOURCES = tar/tar2sqfs.c -tar2sqfs_LDADD = libcommon.a libsquashfs.la libtar.a libfstree.a libutil.la +tar2sqfs_LDADD = libcommon.a libsquashfs.la libtar.a +tar2sqfs_LDADD += libfstree.a libcompat.a libutil.la bin_PROGRAMS += sqfs2tar tar2sqfs diff --git a/tests/Makemodule.am b/tests/Makemodule.am index 45565bb..34b0238 100644 --- a/tests/Makemodule.am +++ b/tests/Makemodule.am @@ -78,10 +78,10 @@ test_tar_xattr_schily_CPPFLAGS = $(AM_CPPFLAGS) test_tar_xattr_schily_CPPFLAGS += -DTESTPATH=$(top_srcdir)/tests/tar fstree_fuzz_SOURCES = tests/fstree_fuzz.c -fstree_fuzz_LDADD = libfstree.a libutil.la +fstree_fuzz_LDADD = libfstree.a libcompat.a libutil.la tar_fuzz_SOURCES = tests/tar_fuzz.c -tar_fuzz_LDADD = libtar.a libutil.la +tar_fuzz_LDADD = libtar.a libcompat.a libutil.la check_PROGRAMS += test_mknode_simple test_mknode_slink test_mknode_reg check_PROGRAMS += test_mknode_dir test_gen_inode_table test_add_by_path diff --git a/unpack/Makemodule.am b/unpack/Makemodule.am index 2609db4..b137787 100644 --- a/unpack/Makemodule.am +++ b/unpack/Makemodule.am @@ -2,6 +2,6 @@ rdsquashfs_SOURCES = unpack/rdsquashfs.c unpack/rdsquashfs.h rdsquashfs_SOURCES += unpack/list_files.c unpack/options.c rdsquashfs_SOURCES += unpack/restore_fstree.c unpack/describe.c rdsquashfs_SOURCES += unpack/fill_files.c unpack/dump_xattrs.c -rdsquashfs_LDADD = libcommon.a libsquashfs.la libutil.la +rdsquashfs_LDADD = libcommon.a libcompat.a libsquashfs.la libutil.la bin_PROGRAMS += rdsquashfs diff --git a/unpack/restore_fstree.c b/unpack/restore_fstree.c index dbcebfa..7cecf16 100644 --- a/unpack/restore_fstree.c +++ b/unpack/restore_fstree.c @@ -258,7 +258,7 @@ static int set_attribs(sqfs_xattr_reader_t *xattr, goto fail; } } - +#endif if (flags & UNPACK_CHOWN) { if (fchownat(AT_FDCWD, path, n->uid, n->gid, AT_SYMLINK_NOFOLLOW)) { @@ -276,7 +276,7 @@ static int set_attribs(sqfs_xattr_reader_t *xattr, goto fail; } } -#endif + free(path); return 0; fail: |