summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-09-28 21:10:15 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-09-28 23:34:17 +0200
commitf415b29255819e19ffde16018fb9ad02cbbfd17c (patch)
tree41dfa5a80fdb2015098ad5f4210acc4c21ec3cd0
parent5e4d53c713d3f01ae2d24a7d2311d65761b143dc (diff)
Move fstree selinux code to gensquashfs
Same rational as for the dir-scanner code: It's actually the only user and it is going to get a lot closer integerated with libsquashfs. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r--include/fstree.h4
-rw-r--r--lib/fstree/Makemodule.am7
-rw-r--r--mkfs/Makemodule.am4
-rw-r--r--mkfs/mkfs.h7
-rw-r--r--mkfs/selinux.c (renamed from lib/fstree/selinux.c)10
5 files changed, 12 insertions, 20 deletions
diff --git a/include/fstree.h b/include/fstree.h
index 110ad1f..a60b214 100644
--- a/include/fstree.h
+++ b/include/fstree.h
@@ -222,10 +222,6 @@ void fstree_xattr_deduplicate(fstree_t *fs);
*/
int fstree_from_file(fstree_t *fs, const char *filename, FILE *fp);
-/* Add labels from an SELinux labeling file to all tree nodes.
- Returns 0 on success. Internally prints errors to stderr. */
-int fstree_relabel_selinux(fstree_t *fs, const char *filename);
-
/* Returns 0 on success. Prints to stderr on failure */
int fstree_gen_inode_table(fstree_t *fs);
diff --git a/lib/fstree/Makemodule.am b/lib/fstree/Makemodule.am
index 960ab1d..fe2c5ca 100644
--- a/lib/fstree/Makemodule.am
+++ b/lib/fstree/Makemodule.am
@@ -6,12 +6,7 @@ libfstree_a_SOURCES += lib/fstree/add_by_path.c lib/fstree/xattr.c
libfstree_a_SOURCES += include/fstree.h
libfstree_a_SOURCES += lib/fstree/gen_file_list.c
libfstree_a_SOURCES += lib/fstree/source_date_epoch.c
-libfstree_a_CFLAGS = $(AM_CFLAGS) $(LIBSELINUX_CFLAGS)
+libfstree_a_CFLAGS = $(AM_CFLAGS)
libfstree_a_CPPFLAGS = $(AM_CPPFLAGS)
-if WITH_SELINUX
-libfstree_a_SOURCES += lib/fstree/selinux.c
-libfstree_a_CPPFLAGS += -DWITH_SELINUX
-endif
-
noinst_LIBRARIES += libfstree.a
diff --git a/mkfs/Makemodule.am b/mkfs/Makemodule.am
index f1e0d0d..75fc3a4 100644
--- a/mkfs/Makemodule.am
+++ b/mkfs/Makemodule.am
@@ -3,9 +3,11 @@ gensquashfs_SOURCES += mkfs/dirscan.c
gensquashfs_LDADD = libsqfshelper.a libsquashfs.la libfstree.a libutil.la
gensquashfs_LDADD += $(LIBSELINUX_LIBS)
gensquashfs_CPPFLAGS = $(AM_CPPFLAGS)
-gensquashfs_CFLAGS = $(AM_CFLAGS)
+gensquashfs_CFLAGS = $(AM_CFLAGS) $(LIBSELINUX_CFLAGS)
+
if WITH_SELINUX
gensquashfs_CPPFLAGS += -DWITH_SELINUX
+gensquashfs_SOURCES += mkfs/selinux.c
endif
bin_PROGRAMS += gensquashfs
diff --git a/mkfs/mkfs.h b/mkfs/mkfs.h
index bce98d8..f00898b 100644
--- a/mkfs/mkfs.h
+++ b/mkfs/mkfs.h
@@ -23,6 +23,11 @@
#include <sys/xattr.h>
#endif
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+#include <selinux/label.h>
+#endif
+
#include <getopt.h>
#include <assert.h>
#include <unistd.h>
@@ -65,4 +70,6 @@ void process_command_line(options_t *opt, int argc, char **argv);
int fstree_from_dir(fstree_t *fs, const char *path, unsigned int flags);
+int fstree_relabel_selinux(fstree_t *fs, const char *filename);
+
#endif /* MKFS_H */
diff --git a/lib/fstree/selinux.c b/mkfs/selinux.c
index 1cb921d..5fc4f52 100644
--- a/lib/fstree/selinux.c
+++ b/mkfs/selinux.c
@@ -4,15 +4,7 @@
*
* Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
*/
-#include "config.h"
-
-#include "fstree.h"
-
-#include <selinux/selinux.h>
-#include <selinux/label.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
+#include "mkfs.h"
#define XATTR_NAME_SELINUX "security.selinux"
#define XATTR_VALUE_SELINUX "system_u:object_r:unlabeled_t:s0"