summaryrefslogtreecommitdiffstats
path: root/src/basic
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/build.c4
-rw-r--r--src/basic/missing_sched.h18
-rw-r--r--src/basic/missing_syscall.h17
-rw-r--r--src/basic/mountpoint-util.c4
-rw-r--r--src/basic/os-util.c10
-rw-r--r--src/basic/terminal-util.h14
6 files changed, 46 insertions, 21 deletions
diff --git a/src/basic/build.c b/src/basic/build.c
index 3ab25f7..488ed20 100644
--- a/src/basic/build.c
+++ b/src/basic/build.c
@@ -287,8 +287,8 @@ int version(void) {
if (colors_enabled())
b = systemd_features_with_color();
- printf("%ssystemd " PROJECT_VERSION_FULL "%s (" GIT_VERSION ")\n%s\n",
- ansi_highlight(), ansi_normal(),
+ printf("%ssystemd %i%s (" GIT_VERSION ")\n%s\n",
+ ansi_highlight(), PROJECT_VERSION, ansi_normal(),
b ?: systemd_features);
return 0;
}
diff --git a/src/basic/missing_sched.h b/src/basic/missing_sched.h
index b8109d3..bd83b41 100644
--- a/src/basic/missing_sched.h
+++ b/src/basic/missing_sched.h
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#include <linux/types.h>
#include <sched.h>
#include "macro.h"
@@ -35,3 +36,20 @@ assert_cc(PF_KTHREAD == 0x00200000);
#else
assert_cc(TASK_COMM_LEN == 16);
#endif
+
+#if !HAVE_STRUCT_SCHED_ATTR
+struct sched_attr {
+ __u32 size; /* Size of this structure */
+ __u32 sched_policy; /* Policy (SCHED_*) */
+ __u64 sched_flags; /* Flags */
+ __s32 sched_nice; /* Nice value (SCHED_OTHER,
+ SCHED_BATCH) */
+ __u32 sched_priority; /* Static priority (SCHED_FIFO,
+ SCHED_RR) */
+ /* Remaining fields are for SCHED_DEADLINE
+ and potentially soon for SCHED_OTHER/SCHED_BATCH */
+ __u64 sched_runtime;
+ __u64 sched_deadline;
+ __u64 sched_period;
+};
+#endif
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
index 8628077..e2cd8b4 100644
--- a/src/basic/missing_syscall.h
+++ b/src/basic/missing_syscall.h
@@ -22,6 +22,7 @@
#include "macro.h"
#include "missing_keyctl.h"
+#include "missing_sched.h"
#include "missing_stat.h"
#include "missing_syscall_def.h"
@@ -667,6 +668,22 @@ static inline ssize_t missing_getdents64(int fd, void *buffer, size_t length) {
/* ======================================================================= */
+#if !HAVE_SCHED_SETATTR
+
+static inline ssize_t missing_sched_setattr(pid_t pid, struct sched_attr *attr, unsigned int flags) {
+# if defined __NR_sched_setattr
+ return syscall(__NR_sched_setattr, pid, attr, flags);
+# else
+ errno = ENOSYS;
+ return -1;
+# endif
+}
+
+# define sched_setattr missing_sched_setattr
+#endif
+
+/* ======================================================================= */
+
/* glibc does not provide clone() on ia64, only clone2(). Not only that, but it also doesn't provide a
* prototype, only the symbol in the shared library (it provides a prototype for clone(), but not the
* symbol in the shared library). */
diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c
index 66fa35b..135b296 100644
--- a/src/basic/mountpoint-util.c
+++ b/src/basic/mountpoint-util.c
@@ -231,8 +231,6 @@ int fd_is_mount_point(int fd, const char *filename, int flags) {
/* If statx() is not available or forbidden, fall back to name_to_handle_at() below */
} else if (FLAGS_SET(sx.stx_attributes_mask, STATX_ATTR_MOUNT_ROOT)) /* yay! */
return FLAGS_SET(sx.stx_attributes, STATX_ATTR_MOUNT_ROOT);
- else if (FLAGS_SET(sx.stx_mask, STATX_TYPE) && S_ISLNK(sx.stx_mode))
- return false; /* symlinks are never mount points */
r = name_to_handle_at_loop(fd, filename, &h, &mount_id, flags);
if (r < 0) {
@@ -311,8 +309,6 @@ fallback_fstat:
flags |= AT_SYMLINK_NOFOLLOW;
if (fstatat(fd, filename, &a, flags) < 0)
return -errno;
- if (S_ISLNK(a.st_mode)) /* Symlinks are never mount points */
- return false;
if (isempty(filename))
r = fstatat(fd, "..", &b, 0);
diff --git a/src/basic/os-util.c b/src/basic/os-util.c
index 0d26d18..79f641b 100644
--- a/src/basic/os-util.c
+++ b/src/basic/os-util.c
@@ -259,13 +259,7 @@ int open_extension_release_at(
}
if (!relax_extension_release_check) {
- _cleanup_free_ char *base_image_name = NULL, *base_extension = NULL;
-
- r = path_extract_image_name(image_name, &base_image_name);
- if (r < 0) {
- log_debug_errno(r, "Failed to extract image name from %s/%s, ignoring: %m", dir_path, de->d_name);
- continue;
- }
+ _cleanup_free_ char *base_extension = NULL;
r = path_extract_image_name(extension, &base_extension);
if (r < 0) {
@@ -273,7 +267,7 @@ int open_extension_release_at(
continue;
}
- if (!streq(base_image_name, base_extension) &&
+ if (!streq(image_name, base_extension) &&
extension_release_strict_xattr_value(fd, dir_path, image_name) != 0)
continue;
}
diff --git a/src/basic/terminal-util.h b/src/basic/terminal-util.h
index ecfe574..c70c938 100644
--- a/src/basic/terminal-util.h
+++ b/src/basic/terminal-util.h
@@ -42,26 +42,26 @@
#define ANSI_HIGHLIGHT_MAGENTA "\x1B[0;1;35m"
#define ANSI_HIGHLIGHT_CYAN "\x1B[0;1;36m"
#define ANSI_HIGHLIGHT_WHITE "\x1B[0;1;37m"
-#define ANSI_HIGHLIGHT_YELLOW4 "\x1B[0;1;38;5;100m"
-#define ANSI_HIGHLIGHT_KHAKI3 "\x1B[0;1;38;5;185m"
-#define ANSI_HIGHLIGHT_GREY "\x1B[0;1;38;5;245m"
+#define ANSI_HIGHLIGHT_YELLOW4 "\x1B[0;1;38:5:100m"
+#define ANSI_HIGHLIGHT_KHAKI3 "\x1B[0;1;38:5:185m"
+#define ANSI_HIGHLIGHT_GREY "\x1B[0;1;38:5:245m"
#define ANSI_HIGHLIGHT_YELLOW ANSI_HIGHLIGHT_KHAKI3 /* Replacement yellow that is more legible */
/* Underlined */
-#define ANSI_GREY_UNDERLINE "\x1B[0;4;38;5;245m"
+#define ANSI_GREY_UNDERLINE "\x1B[0;4;38:5:245m"
#define ANSI_BRIGHT_BLACK_UNDERLINE "\x1B[0;4;90m"
#define ANSI_HIGHLIGHT_RED_UNDERLINE "\x1B[0;1;4;31m"
#define ANSI_HIGHLIGHT_GREEN_UNDERLINE "\x1B[0;1;4;32m"
-#define ANSI_HIGHLIGHT_YELLOW_UNDERLINE "\x1B[0;1;4;38;5;185m"
+#define ANSI_HIGHLIGHT_YELLOW_UNDERLINE "\x1B[0;1;4;38:5:185m"
#define ANSI_HIGHLIGHT_BLUE_UNDERLINE "\x1B[0;1;4;34m"
#define ANSI_HIGHLIGHT_MAGENTA_UNDERLINE "\x1B[0;1;4;35m"
-#define ANSI_HIGHLIGHT_GREY_UNDERLINE "\x1B[0;1;4;38;5;245m"
+#define ANSI_HIGHLIGHT_GREY_UNDERLINE "\x1B[0;1;4;38:5:245m"
/* Other ANSI codes */
#define ANSI_UNDERLINE "\x1B[0;4m"
#define ANSI_ADD_UNDERLINE "\x1B[4m"
-#define ANSI_ADD_UNDERLINE_GREY ANSI_ADD_UNDERLINE "\x1B[58;5;245m"
+#define ANSI_ADD_UNDERLINE_GREY ANSI_ADD_UNDERLINE "\x1B[58:5:245m"
#define ANSI_HIGHLIGHT "\x1B[0;1;39m"
#define ANSI_HIGHLIGHT_UNDERLINE "\x1B[0;1;4m"