From: Zbigniew Jędrzejewski-Szmek Date: Tue, 21 Sep 2021 17:53:20 +0000 (+0200) Subject: meson: ignore -Dsmack-run-label= if -Dsmack=false X-Git-Tag: v250-rc1~642^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F20800%2Fhead;p=thirdparty%2Fsystemd.git meson: ignore -Dsmack-run-label= if -Dsmack=false Compilation would fail because we could have HAVE_SMACK_RUN_LABEL without HAVE_SMACK. This doesn't make much sense, so let's just make -Dsmack=false completely disable smack. Also, the logic in smack-setup.c seems dubious: '#ifdef SMACK_RUN_LABEL' would evaluate to true even if -Dsmack-run-label='' is used. I think this was introduced in the conversion to meson: 8b197c3a8a57c3f7c231b39e5660856fd9580c80 added AC_ARG_WITH(smack-run-label, AS_HELP_STRING([--with-smack-run-label=STRING], [run systemd --system with a specific SMACK label]), [AC_DEFINE_UNQUOTED(SMACK_RUN_LABEL, ["$withval"], [Run with a smack label])], []) i.e. it really was undefined if not specified. And it was same still in 72cdb3e783174dcf9223a49f03e3b0e2ca95ddb8 when configure.ac was dropped. So let's use the single conditional HAVE_SMACK_RUN_LABEL everywhere. --- diff --git a/meson.build b/meson.build index 8261b131555..fe6b26b8357 100644 --- a/meson.build +++ b/meson.build @@ -1024,8 +1024,11 @@ else endif conf.set10('HAVE_APPARMOR', have) -conf.set10('HAVE_SMACK_RUN_LABEL', get_option('smack-run-label') != '') -conf.set_quoted('SMACK_RUN_LABEL', get_option('smack-run-label')) +have = get_option('smack') and get_option('smack-run-label') != '' +conf.set10('HAVE_SMACK_RUN_LABEL', have) +if have + conf.set_quoted('SMACK_RUN_LABEL', get_option('smack-run-label')) +endif want_polkit = get_option('polkit') install_polkit = false diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c index 79c48084734..5b2671ff406 100644 --- a/src/core/smack-setup.c +++ b/src/core/smack-setup.c @@ -322,7 +322,7 @@ int mac_smack_setup(bool *loaded_policy) { return 0; } -#ifdef SMACK_RUN_LABEL +#if HAVE_SMACK_RUN_LABEL r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER); if (r < 0) log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m"); diff --git a/src/shared/mount-setup.c b/src/shared/mount-setup.c index 0f2fb5d098a..ae148541d7d 100644 --- a/src/shared/mount-setup.c +++ b/src/shared/mount-setup.c @@ -278,7 +278,7 @@ static int symlink_controller(const char *target, const char *alias) { if (r < 0) return log_error_errno(r, "Failed to create symlink %s: %m", a); -#ifdef SMACK_RUN_LABEL +#if HAVE_SMACK_RUN_LABEL const char *p; p = strjoina("/sys/fs/cgroup/", target);