mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
Merge pull request #26506 from keszybz/tiny-cleanups
Various trivial cleanups and follow-ups
This commit is contained in:
commit
e814f8b246
7
TODO
7
TODO
|
@ -522,10 +522,6 @@ Features:
|
|||
would just use the same public key specified with --public-key= (or the one
|
||||
automatically derived from --private-key=).
|
||||
|
||||
* tmpfiles: add new line type for setting btrfs subvolume attributes (i.e. rw/ro)
|
||||
|
||||
* tmpfiles: add new line type for setting fcaps
|
||||
|
||||
* push people to use ".sysext.raw" as suffix for sysext DDIs (DDI =
|
||||
discoverable disk images, i.e. the new name for gpt disk images following the
|
||||
discoverable disk spec). [Also: just ".sysext/" for directory-based sysext]
|
||||
|
@ -2328,6 +2324,7 @@ Features:
|
|||
|
||||
* tmpfiles:
|
||||
- apply "x" on "D" too (see patch from William Douglas)
|
||||
- allow time-based cleanup in r and R too
|
||||
- instead of ignoring unknown fields, reject them.
|
||||
- creating new directories/subvolumes/fifos/device nodes
|
||||
should not follow symlinks. None of the other adjustment or creation
|
||||
|
@ -2336,6 +2333,8 @@ Features:
|
|||
- teach tmpfiles.d q/Q logic something sensible in the context of XFS/ext4
|
||||
project quota
|
||||
- teach tmpfiles.d m/M to move / atomic move + symlink old -> new
|
||||
- add new line type for setting btrfs subvolume attributes (i.e. rw/ro)
|
||||
- tmpfiles: add new line type for setting fcaps
|
||||
|
||||
* udev-link-config:
|
||||
- Make sure ID_PATH is always exported and complete for
|
||||
|
|
|
@ -43,9 +43,9 @@ f /file/to/create mode user group - conte
|
|||
f+ /file/to/create-or-truncate mode user group - content
|
||||
w /file/to/write-to - - - - content
|
||||
w+ /file/to/append-to - - - - content
|
||||
d /directory/to/create-and-cleanup mode user group cleanup-age -
|
||||
d /directory/to/create-and-clean-up mode user group cleanup-age -
|
||||
D /directory/to/create-and-remove mode user group cleanup-age -
|
||||
e /directory/to/cleanup mode user group cleanup-age -
|
||||
e /directory/to/clean-up mode user group cleanup-age -
|
||||
v /subvolume-or-directory/to/create mode user group cleanup-age -
|
||||
q /subvolume-or-directory/to/create mode user group cleanup-age -
|
||||
Q /subvolume-or-directory/to/create mode user group cleanup-age -
|
||||
|
@ -60,8 +60,8 @@ b+ /dev/block-device-to-[re]create mode user group - major
|
|||
C /target/to/create - - - cleanup-age /source/to/copy
|
||||
x /path-or-glob/to/ignore/recursively - - - cleanup-age -
|
||||
X /path-or-glob/to/ignore - - - cleanup-age -
|
||||
r /empty/dir/to/remove - - - - -
|
||||
R /dir/to/remove/recursively - - - - -
|
||||
r /path-or-glob/to/remove - - - - -
|
||||
R /path-or-glob/to/remove/recursively - - - - -
|
||||
z /path-or-glob/to/adjust/mode mode user group - -
|
||||
Z /path-or-glob/to/adjust/mode/recursively mode user group - -
|
||||
t /path-or-glob/to/set/xattrs - - - - xattrs
|
||||
|
@ -192,7 +192,7 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
|||
<varlistentry>
|
||||
<term><varname>d</varname></term>
|
||||
<listitem><para>Create a directory. The mode and ownership will be adjusted if specified. Contents
|
||||
of this directory are subject to time based cleanup if the age argument is specified.
|
||||
of this directory are subject to time-based cleanup if the age argument is specified.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -207,7 +207,7 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
|||
<listitem><para>Adjust the mode and ownership of existing directories and remove their contents
|
||||
based on age.
|
||||
Lines of this type accept shell-style globs in place of normal path names. Contents of the
|
||||
directories are subject to time based cleanup if the age argument is specified. If the age argument
|
||||
directories are subject to time-based cleanup if the age argument is specified. If the age argument
|
||||
is <literal>0</literal>, contents will be unconditionally deleted every time
|
||||
<command>systemd-tmpfiles --clean</command> is run.</para>
|
||||
|
||||
|
@ -334,7 +334,7 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
|||
skipped. If the argument is omitted, files from the source directory
|
||||
<filename>/usr/share/factory/</filename> with the same name
|
||||
are copied. Does not follow symlinks. Contents of the directories
|
||||
are subject to time based cleanup if the age argument is specified.
|
||||
are subject to time-based cleanup if the age argument is specified.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -781,7 +781,7 @@ t /run/cups - - - - security.SMACK64=printing user.attr-with-spaces="foo bar"
|
|||
</programlisting>
|
||||
|
||||
<para>The directory will be owned by root and have default mode. Its contents are
|
||||
not subject to time based cleanup, but will be obliterated when
|
||||
not subject to time-based cleanup, but will be obliterated when
|
||||
<command>systemd-tmpfiles --remove</command> runs.</para>
|
||||
</example>
|
||||
|
||||
|
|
|
@ -42,6 +42,9 @@
|
|||
#define DEFAULT_START_LIMIT_INTERVAL (10*USEC_PER_SEC)
|
||||
#define DEFAULT_START_LIMIT_BURST 5
|
||||
|
||||
/* Wait for 1.5 seconds at maximum for freeze operation */
|
||||
#define FREEZE_TIMEOUT (1500 * USEC_PER_MSEC)
|
||||
|
||||
/* The default time after which exit-on-idle services exit. This
|
||||
* should be kept lower than the watchdog timeout, because otherwise
|
||||
* the watchdog pings will keep the loop busy. */
|
||||
|
|
|
@ -78,7 +78,7 @@ static EFI_STATUS tpm2_measure_to_pcr_and_event_log(
|
|||
tcg_event);
|
||||
}
|
||||
|
||||
static EFI_TCG *tcg1_interface_check(void) {
|
||||
static EFI_TCG* tcg1_interface_check(void) {
|
||||
EFI_PHYSICAL_ADDRESS event_log_location, event_log_last_entry;
|
||||
TCG_BOOT_SERVICE_CAPABILITY capability = {
|
||||
.Size = sizeof(capability),
|
||||
|
@ -109,7 +109,7 @@ static EFI_TCG *tcg1_interface_check(void) {
|
|||
return tcg;
|
||||
}
|
||||
|
||||
static EFI_TCG2 * tcg2_interface_check(void) {
|
||||
static EFI_TCG2* tcg2_interface_check(void) {
|
||||
EFI_TCG2_BOOT_SERVICE_CAPABILITY capability = {
|
||||
.Size = sizeof(capability),
|
||||
};
|
||||
|
|
|
@ -286,7 +286,8 @@ static int parse_argv(int argc, char *argv[]) {
|
|||
if (arg_current)
|
||||
for (UnifiedSection us = 0; us < _UNIFIED_SECTION_MAX; us++)
|
||||
if (arg_sections[us])
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "The --current switch cannot be used in combination with --linux= and related switches.");
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"The --current switch cannot be used in combination with --linux= and related switches.");
|
||||
|
||||
if (strv_isempty(arg_phase)) {
|
||||
/* If no phases are specifically selected, pick everything from the beginning of the initrd
|
||||
|
@ -448,7 +449,8 @@ static int measure_kernel(PcrState *pcr_states, size_t n) {
|
|||
return log_oom();
|
||||
|
||||
if (EVP_DigestInit_ex(mdctx[i], pcr_states[i].md, NULL) != 1)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to initialize data %s context.", pcr_states[i].bank);
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Failed to initialize data %s context.", pcr_states[i].bank);
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
|
@ -630,13 +632,14 @@ static void pcr_states_restore(PcrState *pcr_states, size_t n) {
|
|||
static int verb_calculate(int argc, char *argv[], void *userdata) {
|
||||
_cleanup_(json_variant_unrefp) JsonVariant *w = NULL;
|
||||
_cleanup_(pcr_state_free_all) PcrState *pcr_states = NULL;
|
||||
size_t n;
|
||||
int r;
|
||||
|
||||
if (!arg_sections[UNIFIED_SECTION_LINUX] && !arg_current)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Either --linux= or --current must be specified, refusing.");
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Either --linux= or --current must be specified, refusing.");
|
||||
if (arg_append)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "The --append= switch is only supported for 'sign', not 'calculate'.");
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"The --append= switch is only supported for 'sign', not 'calculate'.");
|
||||
|
||||
assert(!strv_isempty(arg_banks));
|
||||
assert(!strv_isempty(arg_phase));
|
||||
|
@ -645,7 +648,7 @@ static int verb_calculate(int argc, char *argv[], void *userdata) {
|
|||
if (r < 0)
|
||||
return r;
|
||||
|
||||
n = (size_t) r;
|
||||
size_t n = r;
|
||||
|
||||
r = measure_kernel(pcr_states, n);
|
||||
if (r < 0)
|
||||
|
@ -732,10 +735,12 @@ static int verb_sign(int argc, char *argv[], void *userdata) {
|
|||
int r;
|
||||
|
||||
if (!arg_sections[UNIFIED_SECTION_LINUX] && !arg_current)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Either --linux= or --current must be specified, refusing.");
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Either --linux= or --current must be specified, refusing.");
|
||||
|
||||
if (!arg_private_key)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No private key specified, use --private-key=.");
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"No private key specified, use --private-key=.");
|
||||
|
||||
assert(!strv_isempty(arg_banks));
|
||||
assert(!strv_isempty(arg_phase));
|
||||
|
@ -746,7 +751,8 @@ static int verb_sign(int argc, char *argv[], void *userdata) {
|
|||
return log_error_errno(r, "Failed to parse '%s': %m", arg_append);
|
||||
|
||||
if (!json_variant_is_object(v))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "File '%s' is not a valid JSON object, refusing.", arg_append);
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"File '%s' is not a valid JSON object, refusing.", arg_append);
|
||||
}
|
||||
|
||||
/* When signing we only support JSON output */
|
||||
|
@ -782,13 +788,15 @@ static int verb_sign(int argc, char *argv[], void *userdata) {
|
|||
return log_oom();
|
||||
|
||||
if (i2d_PUBKEY_fp(tf, privkey) != 1)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to extract public key from private key file '%s'.", arg_private_key);
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EIO),
|
||||
"Failed to extract public key from private key file '%s'.", arg_private_key);
|
||||
|
||||
fflush(tf);
|
||||
rewind(tf);
|
||||
|
||||
if (!d2i_PUBKEY_fp(tf, &pubkey))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to parse extracted public key of private key file '%s'.", arg_private_key);
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EIO),
|
||||
"Failed to parse extracted public key of private key file '%s'.", arg_private_key);
|
||||
}
|
||||
|
||||
r = pcr_states_allocate(&pcr_states);
|
||||
|
|
|
@ -21,8 +21,7 @@
|
|||
#include "strv.h"
|
||||
#include "tmpfile-util.h"
|
||||
|
||||
static const char *default_hwdb_bin_dir = "/etc/udev";
|
||||
static const char * const conf_file_dirs[] = {
|
||||
static const char* const conf_file_dirs[] = {
|
||||
"/etc/udev/hwdb.d",
|
||||
UDEVLIBEXECDIR "/hwdb.d",
|
||||
NULL
|
||||
|
@ -634,7 +633,7 @@ int hwdb_update(const char *root, const char *hwdb_bin_dir, bool strict, bool co
|
|||
log_debug("strings dedup'ed: %8zu bytes (%8zu)",
|
||||
trie->strings->dedup_len, trie->strings->dedup_count);
|
||||
|
||||
hwdb_bin = path_join(root, hwdb_bin_dir ?: default_hwdb_bin_dir, "hwdb.bin");
|
||||
hwdb_bin = path_join(root, hwdb_bin_dir ?: "/etc/udev", "hwdb.bin");
|
||||
if (!hwdb_bin)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
@ -382,8 +382,7 @@ static int freeze_thaw_user_slice(const char **method) {
|
|||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to open connection to systemd: %m");
|
||||
|
||||
/* Wait for 1.5 seconds at maximum for freeze operation */
|
||||
(void) sd_bus_set_method_call_timeout(bus, 1500 * USEC_PER_MSEC);
|
||||
(void) sd_bus_set_method_call_timeout(bus, FREEZE_TIMEOUT);
|
||||
|
||||
r = bus_call_method(bus, bus_systemd_mgr, *method, &error, NULL, "s", SPECIAL_USER_SLICE);
|
||||
if (r < 0)
|
||||
|
|
Loading…
Reference in a new issue