diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-12-10 03:16:14 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-12-10 03:21:07 +0100 |
commit | 2822da4fb7f891e5320f02f1d00f64b72221ced4 (patch) | |
tree | 53d99b2f6cfd0d0e81b47671a03f1c3e1e5880fc /Makefile.am | |
parent | 45823da23ccfea5159fafa844ede0a873a460df8 (diff) |
util: introduce our own gperf based capability list
This way, we can ensure we have a more complete, up-to-date list of
capabilities around, always.
Diffstat (limited to 'Makefile.am')
-rw-r--r-- | Makefile.am | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 2af4a32aa2..23210ff33e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -863,6 +863,8 @@ libsystemd_shared_la_SOURCES = \ src/shared/af-list.h \ src/shared/arphrd-list.c \ src/shared/arphrd-list.h \ + src/shared/cap-list.c \ + src/shared/cap-list.h \ src/shared/audit.c \ src/shared/audit.h \ src/shared/xml.c \ @@ -903,7 +905,9 @@ nodist_libsystemd_shared_la_SOURCES = \ src/shared/af-from-name.h \ src/shared/af-to-name.h \ src/shared/arphrd-from-name.h \ - src/shared/arphrd-to-name.h + src/shared/arphrd-to-name.h \ + src/shared/cap-from-name.h \ + src/shared/cap-to-name.h libsystemd_shared_la_CFLAGS = \ $(AM_CFLAGS) \ @@ -1191,6 +1195,8 @@ CLEANFILES += \ src/shared/af-from-name.gperf \ src/shared/arphrd-list.txt \ src/shared/arphrd-from-name.gperf \ + src/shared/cap-list.txt \ + src/shared/cap-from-name.gperf \ src/resolve/dns_type-list.txt \ src/resolve/dns_type-from-name.gperf @@ -1201,6 +1207,8 @@ BUILT_SOURCES += \ src/shared/af-to-name.h \ src/shared/arphrd-from-name.h \ src/shared/arphrd-to-name.h \ + src/shared/cap-from-name.h \ + src/shared/cap-to-name.h \ src/resolve/dns_type-from-name.h \ src/resolve/dns_type-to-name.h @@ -1226,6 +1234,7 @@ src/shared/af-list.txt: src/shared/af-to-name.h: src/shared/af-list.txt $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const af_names[] = { "} !/AF_FILE/ && !/AF_ROUTE/ && !/AF_LOCAL/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@ + src/shared/arphrd-list.txt: $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include net/if_arp.h - </dev/null | $(AWK) '/^#define[ \t]+ARPHRD_[^ \t]+[ \t]+[^ \t]/ { print $$2; }' | sed -e 's/ARPHRD_//' >$@ @@ -1237,6 +1246,20 @@ src/shared/arphrd-from-name.gperf: src/shared/arphrd-list.txt $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct arphrd_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, ARPHRD_%s\n", $$1, $$1 }' <$< >$@ +src/shared/cap-list.txt: + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/capability.h -include missing.h - </dev/null | $(AWK) '/^#define[ \t]+CAP_[A-Z_]+[ \t]+/ { print $$2; }' | grep -v CAP_LAST_CAP >$@ + +src/shared/cap-to-name.h: src/shared/cap-list.txt + $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const capability_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@ + +src/shared/cap-from-name.gperf: src/shared/cap-list.txt + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct capability_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@ + +src/shared/cap-from-name.h: src/shared/cap-from-name.gperf + $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C <$< >$@ + + src/resolve/dns_type-list.txt: src/resolve/dns-type.h $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(SED) -n -r 's/.* DNS_TYPE_(\w+).*/\1/p' <$< >$@ @@ -1353,7 +1376,8 @@ tests += \ test-bus-policy \ test-locale-util \ test-execute \ - test-copy + test-copy \ + test-cap-list EXTRA_DIST += \ test/a.service \ @@ -1579,6 +1603,12 @@ test_uid_range_SOURCES = \ test_uid_range_LDADD = \ libsystemd-shared.la +test_cap_list_SOURCES = \ + src/test/test-cap-list.c + +test_cap_list_LDADD = \ + libsystemd-shared.la + test_socket_util_SOURCES = \ src/test/test-socket-util.c |