]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/build: make the version string definition less terrible 17812/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 3 Dec 2020 10:12:59 +0000 (11:12 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 3 Dec 2020 11:16:02 +0000 (12:16 +0100)
The BLKID and ELFUTILS strings were present twice. Let's reaarange things so that
each times requires definition in exactly one place.

Also let's sort things a bit:
the "heavy hitters" like PAM/MAC first,
then crypto libs,
then other libs, alphabetically,
compressors,
and external compat integrations.

I think it's useful for users to group similar concepts together to some extent.
For example, when checking what compression is available, it helps a lot to have
them listed together.

FDISK is renamed to LIBFDISK to make it clear that this is about he library and
the executable.

src/basic/build.c [new file with mode: 0644]
src/basic/build.h
src/basic/meson.build
src/basic/util.c
src/core/dbus-manager.c
src/core/main.c
src/test/test-cgroup-setup.c

diff --git a/src/basic/build.c b/src/basic/build.c
new file mode 100644 (file)
index 0000000..4507459
--- /dev/null
@@ -0,0 +1,216 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "build.h"
+
+const char* const systemd_features =
+
+        /* PAM and MAC frameworks */
+
+#if HAVE_PAM
+        "+PAM"
+#else
+        "-PAM"
+#endif
+
+#if HAVE_AUDIT
+        " +AUDIT"
+#else
+        " -AUDIT"
+#endif
+
+#if HAVE_SELINUX
+        " +SELINUX"
+#else
+        " -SELINUX"
+#endif
+
+#if HAVE_APPARMOR
+        " +APPARMOR"
+#else
+        " -APPARMOR"
+#endif
+
+#if ENABLE_IMA
+        " +IMA"
+#else
+        " -IMA"
+#endif
+
+#if ENABLE_SMACK
+        " +SMACK"
+#else
+        " -SMACK"
+#endif
+
+#if HAVE_SECCOMP
+        " +SECCOMP"
+#else
+        " -SECCOMP"
+#endif
+
+        /* crypto libraries */
+
+#if HAVE_GCRYPT
+        " +GCRYPT"
+#else
+        " -GCRYPT"
+#endif
+
+#if HAVE_GNUTLS
+        " +GNUTLS"
+#else
+        " -GNUTLS"
+#endif
+
+#if HAVE_OPENSSL
+        " +OPENSSL"
+#else
+        " -OPENSSL"
+#endif
+
+        /* all other libraries, sorted alphabetically */
+
+#if HAVE_ACL
+        " +ACL"
+#else
+        " -ACL"
+#endif
+
+#if HAVE_BLKID
+        " +BLKID"
+#else
+        " -BLKID"
+#endif
+
+#if HAVE_LIBCURL
+        " +CURL"
+#else
+        " -CURL"
+#endif
+
+#if HAVE_ELFUTILS
+        " +ELFUTILS"
+#else
+        " -ELFUTILS"
+#endif
+
+#if HAVE_LIBFIDO2
+        " +FIDO2"
+#else
+        " -FIDO2"
+#endif
+
+#if HAVE_LIBIDN2
+        " +IDN2"
+#else
+        " -IDN2"
+#endif
+
+#if HAVE_LIBIDN
+        " +IDN"
+#else
+        " -IDN"
+#endif
+
+#if HAVE_LIBIPTC
+        " +IPTC"
+#else
+        " -IPTC"
+#endif
+
+#if HAVE_KMOD
+        " +KMOD"
+#else
+        " -KMOD"
+#endif
+
+#if HAVE_LIBCRYPTSETUP
+        " +LIBCRYPTSETUP"
+#else
+        " -LIBCRYPTSETUP"
+#endif
+
+#if HAVE_LIBFDISK
+        " +LIBFDISK"
+#else
+        " -LIBFDISK"
+#endif
+
+#if HAVE_PCRE2
+        " +PCRE2"
+#else
+        " -PCRE2"
+#endif
+
+#if HAVE_PWQUALITY
+        " +PWQUALITY"
+#else
+        " -PWQUALITY"
+#endif
+
+#if HAVE_P11KIT
+        " +P11KIT"
+#else
+        " -P11KIT"
+#endif
+
+#if HAVE_QRENCODE
+        " +QRENCODE"
+#else
+        " -QRENCODE"
+#endif
+
+        /* compressors */
+
+#if HAVE_BZIP2
+        " +BZIP2"
+#else
+        " -BZIP2"
+#endif
+
+#if HAVE_LZ4
+        " +LZ4"
+#else
+        " -LZ4"
+#endif
+
+#if HAVE_XZ
+        " +XZ"
+#else
+        " -XZ"
+#endif
+
+#if HAVE_ZLIB
+        " +ZLIB"
+#else
+        " -ZLIB"
+#endif
+
+#if HAVE_ZSTD
+        " +ZSTD"
+#else
+        " -ZSTD"
+#endif
+
+        /* other stuff that doesn't fit above */
+
+#if HAVE_XKBCOMMON
+        " +XKBCOMMON"
+#else
+        " -XKBCOMMON"
+#endif
+
+#if ENABLE_UTMP
+        " +UTMP"
+#else
+        " -UTMP"
+#endif
+
+#if HAVE_SYSV_COMPAT
+        " +SYSVINIT"
+#else
+        " -SYSVINIT"
+#endif
+
+        " default-hierarchy=" DEFAULT_HIERARCHY_NAME
+        ;
index 05f0ccd868af952f8ce00b9eaf5560b89791b3de..3de0d36cc9ff8a98b9baaeb7d80f1cb14a69c0df 100644 (file)
@@ -3,255 +3,7 @@
 
 #include "version.h"
 
-#if HAVE_PAM
-#define _PAM_FEATURE_ "+PAM"
-#else
-#define _PAM_FEATURE_ "-PAM"
-#endif
-
-#if HAVE_AUDIT
-#define _AUDIT_FEATURE_ "+AUDIT"
-#else
-#define _AUDIT_FEATURE_ "-AUDIT"
-#endif
-
-#if HAVE_SELINUX
-#define _SELINUX_FEATURE_ "+SELINUX"
-#else
-#define _SELINUX_FEATURE_ "-SELINUX"
-#endif
-
-#if HAVE_APPARMOR
-#define _APPARMOR_FEATURE_ "+APPARMOR"
-#else
-#define _APPARMOR_FEATURE_ "-APPARMOR"
-#endif
-
-#if ENABLE_IMA
-#define _IMA_FEATURE_ "+IMA"
-#else
-#define _IMA_FEATURE_ "-IMA"
-#endif
-
-#if ENABLE_SMACK
-#define _SMACK_FEATURE_ "+SMACK"
-#else
-#define _SMACK_FEATURE_ "-SMACK"
-#endif
-
-#if HAVE_SYSV_COMPAT
-#define _SYSVINIT_FEATURE_ "+SYSVINIT"
-#else
-#define _SYSVINIT_FEATURE_ "-SYSVINIT"
-#endif
-
-#if ENABLE_UTMP
-#define _UTMP_FEATURE_ "+UTMP"
-#else
-#define _UTMP_FEATURE_ "-UTMP"
-#endif
-
-#if HAVE_LIBCRYPTSETUP
-#define _LIBCRYPTSETUP_FEATURE_ "+LIBCRYPTSETUP"
-#else
-#define _LIBCRYPTSETUP_FEATURE_ "-LIBCRYPTSETUP"
-#endif
-
-#if HAVE_GCRYPT
-#define _GCRYPT_FEATURE_ "+GCRYPT"
-#else
-#define _GCRYPT_FEATURE_ "-GCRYPT"
-#endif
-
-#if HAVE_GNUTLS
-#define _GNUTLS_FEATURE_ "+GNUTLS"
-#else
-#define _GNUTLS_FEATURE_ "-GNUTLS"
-#endif
-
-#if HAVE_OPENSSL
-#define _OPENSSL_FEATURE_ "+OPENSSL"
-#else
-#define _OPENSSL_FEATURE_ "-OPENSSL"
-#endif
-
-#if HAVE_ACL
-#define _ACL_FEATURE_ "+ACL"
-#else
-#define _ACL_FEATURE_ "-ACL"
-#endif
-
-#if HAVE_ZLIB
-#define _ZLIB_FEATURE_ "+ZLIB"
-#else
-#define _ZLIB_FEATURE_ "-ZLIB"
-#endif
-
-#if HAVE_XZ
-#define _XZ_FEATURE_ "+XZ"
-#else
-#define _XZ_FEATURE_ "-XZ"
-#endif
-
-#if HAVE_LZ4
-#define _LZ4_FEATURE_ "+LZ4"
-#else
-#define _LZ4_FEATURE_ "-LZ4"
-#endif
-
-#if HAVE_ZSTD
-#define _ZSTD_FEATURE_ "+ZSTD"
-#else
-#define _ZSTD_FEATURE_ "-ZSTD"
-#endif
-
-#if HAVE_BZIP2
-#define _BZIP2_FEATURE_ "+BZIP2"
-#else
-#define _BZIP2_FEATURE_ "-BZIP2"
-#endif
-
-#if HAVE_SECCOMP
-#define _SECCOMP_FEATURE_ "+SECCOMP"
-#else
-#define _SECCOMP_FEATURE_ "-SECCOMP"
-#endif
-
-#if HAVE_BLKID
-#define _BLKID_FEATURE_ "+BLKID"
-#else
-#define _BLKID_FEATURE_ "-BLKID"
-#endif
-
-#if HAVE_ELFUTILS
-#define _ELFUTILS_FEATURE_ "+ELFUTILS"
-#else
-#define _ELFUTILS_FEATURE_ "-ELFUTILS"
-#endif
-
-#if HAVE_KMOD
-#define _KMOD_FEATURE_ "+KMOD"
-#else
-#define _KMOD_FEATURE_ "-KMOD"
-#endif
-
-#if HAVE_LIBIDN2
-#define _IDN2_FEATURE_ "+IDN2"
-#else
-#define _IDN2_FEATURE_ "-IDN2"
-#endif
-
-#if HAVE_LIBIDN
-#define _IDN_FEATURE_ "+IDN"
-#else
-#define _IDN_FEATURE_ "-IDN"
-#endif
-
-#if HAVE_PCRE2
-#define _PCRE2_FEATURE_ "+PCRE2"
-#else
-#define _PCRE2_FEATURE_ "-PCRE2"
-#endif
-
-#if HAVE_PWQUALITY
-#define _PWQUALITY_FEATURE_ "+PWQUALITY"
-#else
-#define _PWQUALITY_FEATURE_ "-PWQUALITY"
-#endif
-
-#if HAVE_LIBFDISK
-#define _FDISK_FEATURE_ "+FDISK"
-#else
-#define _FDISK_FEATURE_ "-FDISK"
-#endif
-
-#if HAVE_P11KIT
-#define _P11KIT_FEATURE_ "+P11KIT"
-#else
-#define _P11KIT_FEATURE_ "-P11KIT"
-#endif
-
-#if HAVE_LIBFIDO2
-#define _FIDO2_FEATURE_ "+FIDO2"
-#else
-#define _FIDO2_FEATURE_ "-FIDO2"
-#endif
-
-#if HAVE_QRENCODE
-#define _QRENCODE_FEATURE_ "+QRENCODE"
-#else
-#define _QRENCODE_FEATURE_ "-QRENCODE"
-#endif
-
-#if HAVE_LIBCURL
-#define _CURL_FEATURE_ "+CURL"
-#else
-#define _CURL_FEATURE_ "-CURL"
-#endif
-
-#if HAVE_LIBIPTC
-#define _IPTC_FEATURE_ "+IPTC"
-#else
-#define _IPTC_FEATURE_ "-IPTC"
-#endif
-
-#if HAVE_ELFUTILS
-#define _ELFUTILS_FEATURE_ "+ELFUTILS"
-#else
-#define _ELFUTILS_FEATURE_ "-ELFUTILS"
-#endif
-
-#if HAVE_XKBCOMMON
-#define _XKBCOMMON_FEATURE_ "+XKBCOMMON"
-#else
-#define _XKBCOMMON_FEATURE_ "-XKBCOMMON"
-#endif
-
-#if HAVE_BLKID
-#define _BLKID_FEATURE_ "+BLKID"
-#else
-#define _BLKID_FEATURE_ "-BLKID"
-#endif
-
-#define _CGROUP_HIERARCHY_ "default-hierarchy=" DEFAULT_HIERARCHY_NAME
-
-#define SYSTEMD_FEATURES                                                \
-        _PAM_FEATURE_ " "                                               \
-        _AUDIT_FEATURE_ " "                                             \
-        _SELINUX_FEATURE_ " "                                           \
-        _IMA_FEATURE_ " "                                               \
-        _APPARMOR_FEATURE_ " "                                          \
-        _SMACK_FEATURE_ " "                                             \
-        _SYSVINIT_FEATURE_ " "                                          \
-        _UTMP_FEATURE_ " "                                              \
-        _LIBCRYPTSETUP_FEATURE_ " "                                     \
-        _GCRYPT_FEATURE_ " "                                            \
-        _GNUTLS_FEATURE_ " "                                            \
-        _OPENSSL_FEATURE_ " "                                           \
-        _ACL_FEATURE_ " "                                               \
-        _ZLIB_FEATURE_ " "                                              \
-        _XZ_FEATURE_ " "                                                \
-        _LZ4_FEATURE_ " "                                               \
-        _ZSTD_FEATURE_ " "                                              \
-        _BZIP2_FEATURE_ " "                                             \
-        _SECCOMP_FEATURE_ " "                                           \
-        _BLKID_FEATURE_ " "                                             \
-        _ELFUTILS_FEATURE_ " "                                          \
-        _KMOD_FEATURE_ " "                                              \
-        _IDN2_FEATURE_ " "                                              \
-        _IDN_FEATURE_ " "                                               \
-        _PCRE2_FEATURE_ " "                                             \
-        _PWQUALITY_FEATURE_ " "                                         \
-        _FDISK_FEATURE_ " "                                             \
-        _P11KIT_FEATURE_ " "                                            \
-        _FIDO2_FEATURE_ " "                                             \
-        _QRENCODE_FEATURE_ " "                                          \
-        _CURL_FEATURE_ " "                                              \
-        _IPTC_FEATURE_ " "                                              \
-        _ELFUTILS_FEATURE_ " "                                          \
-        _XKBCOMMON_FEATURE_ " "                                         \
-        _BLKID_FEATURE_ " "                                             \
-        _CGROUP_HIERARCHY_
+extern const char* const systemd_features;
 
 enum {
         BUILD_MODE_DEVELOPER,
index 1183ea83adf96a9a895abc0962c4eef17d7833e3..a4f97c1fb5270845f04aa700f1d69000ca7772e2 100644 (file)
@@ -19,6 +19,7 @@ basic_sources = files('''
         blockdev-util.h
         btrfs-util.c
         btrfs-util.h
+        build.c
         build.h
         bus-label.c
         bus-label.h
index f98ecf38588385a78a5f7226108b62298bcb1152..b080ce4e96b6fe2eb0647250c5dc9fd6da7eb0f6 100644 (file)
@@ -193,8 +193,8 @@ int container_get_leader(const char *machine, pid_t *pid) {
 }
 
 int version(void) {
-        puts("systemd " STRINGIFY(PROJECT_VERSION) " (" GIT_VERSION ")\n"
-             SYSTEMD_FEATURES);
+        printf("systemd " STRINGIFY(PROJECT_VERSION) " (" GIT_VERSION ")\n%s\n",
+               systemd_features);
         return 0;
 }
 
index b37ed7c8621dac89a0555dc026461c07c43f1653..3e1d609aa37b32a48aab2765a8314ae768c5180a 100644 (file)
@@ -49,7 +49,7 @@ static UnitFileFlags unit_file_bools_to_flags(bool runtime, bool force) {
 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_oom_policy, oom_policy, OOMPolicy);
 
 static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_version, "s", GIT_VERSION);
-static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_features, "s", SYSTEMD_FEATURES);
+static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_features, "s", systemd_features);
 static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_architecture, "s", architecture_to_string(uname_architecture()));
 static BUS_DEFINE_PROPERTY_GET2(property_get_system_state, "s", Manager, manager_state, manager_state_to_string);
 static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_timer_slack_nsec, "t", (uint64_t) prctl(PR_GET_TIMERSLACK));
index a280b756ffd493cfc6ed1fd71a2f1aef376e6e3c..9cb6afcd8219056acb393fd65cde89fafe036087 100644 (file)
@@ -1987,8 +1987,9 @@ static void log_execution_mode(bool *ret_first_boot) {
         if (arg_system) {
                 int v;
 
-                log_info("systemd " GIT_VERSION " running in %ssystem mode. (" SYSTEMD_FEATURES ")",
-                         arg_action == ACTION_TEST ? "test " : "" );
+                log_info("systemd " GIT_VERSION " running in %ssystem mode. (%s)",
+                         arg_action == ACTION_TEST ? "test " : "",
+                         systemd_features);
 
                 v = detect_virtualization();
                 if (v > 0)
@@ -2026,8 +2027,9 @@ static void log_execution_mode(bool *ret_first_boot) {
                         _cleanup_free_ char *t;
 
                         t = uid_to_name(getuid());
-                        log_debug("systemd " GIT_VERSION " running in %suser mode for user " UID_FMT "/%s. (" SYSTEMD_FEATURES ")",
-                                  arg_action == ACTION_TEST ? " test" : "", getuid(), strna(t));
+                        log_debug("systemd " GIT_VERSION " running in %suser mode for user " UID_FMT "/%s. (%s)",
+                                  arg_action == ACTION_TEST ? " test" : "",
+                                  getuid(), strna(t), systemd_features);
                 }
 
                 *ret_first_boot = false;
index 72726ca59593bed39d80b17cb828771dcff761fa..4978a92e4632beb4652cc0eb0ea08ab01aecd8df 100644 (file)
@@ -18,7 +18,7 @@ static void test_is_wanted_print(bool header) {
         assert_se(proc_cmdline(&cmdline) >= 0);
         log_info("cmdline: %s", cmdline);
         if (header) {
-                log_info(_CGROUP_HIERARCHY_);
+                log_info("default-hierarchy=" DEFAULT_HIERARCHY_NAME);
                 (void) system("findmnt -n /sys/fs/cgroup");
         }