Commit Graph
40864 Commits
Author SHA1 Message Date
Cristian Rodríguez 9264db1a0a shared|install: Use InstallChangeType consistently
gcc 13 -Wenum-int-mismatch, enabled by default, reminds us enum ! = int
2022-11-12 00:40:16 +00:00
Cristian Rodríguez e14afe31c3 resolve: dns_server_feature_level_*_string type is DnsServerFeatureLevel
gcc 13 -Wenum-int-mismatch reminds us that enum != int
2022-11-12 00:40:16 +00:00
Cristian Rodríguez aa70dd624b journal-remote: code is of type enum MHD_RequestTerminationCode
Fixes gcc 13 -Wenum-int-mismatch which are enabled by default.
2022-11-12 00:40:16 +00:00
MkfsSion 32f57b0986 libfido2-util: Perform pre-flight check for credentials in token
Do not attempt to decrypt using a key slot unless its corresponding
credential is found on an available FIDO2 token. Avoids multiple touches
/ confirmations when unlocking a LUKS2 device with multiple FIDO2 tokens
enrolled.

Partially fixes #19208 (when the libcryptsetup plugin is in use).
2022-11-11 18:51:07 -05:00
MkfsSion 15203f77a9 libfido2-util: Extract error handling logic from fido2_use_hmac_hash_specific_token 2022-11-11 18:51:07 -05:00
MkfsSion 098f72ceee libfido2-util: Commonize FIDO2 basic property settings
These properties are repeatedly set across multiple functions.
2022-11-11 18:51:07 -05:00
Lennart Poettering 7f77b40011 repart: fix build
Follow-up for: 12e2b70f9b
2022-11-11 19:01:59 +01:00
Daan De Meyer 12e2b70f9b nulstr-util: Declare NULSTR_FOREACH() iterator inline 2022-11-11 16:31:32 +01:00
Daan De Meyer 5ea173a91b strv: Make sure strv_make_nulstr() always returns a valid nulstr
strv_make_nulstr() is documented to always return a valid nulstr,
but if the input is `NULL` we return a string terminated with only
a single NUL terminator, so let's fix that and always terminate the
resulting string with two NUL bytes.
2022-11-11 16:31:20 +01:00
Daan De Meyer 0f3c342903 sd-bus: Use goto finish instead of return in bus_add_match_full
Fixes #25340
2022-11-11 15:57:41 +01:00
Cristian Rodríguez 1af427632f resolve: Use only C99 flex arrays (#25335) 2022-11-11 15:22:49 +01:00
Daan De Meyer c4a87b76c3 repart: Take into account minimal filesystem size
Instead of requiring users to guess the required space for partitions
populated with CopyFiles=, let's make an educated guess ourselves. We
can populate the filesystem once in a very large sparse file and see
how much data is actually used as a good indicator of the required size.
2022-11-11 14:33:19 +01:00
Daan De Meyer b262cbe871 repart: Use ULL for all size constants 2022-11-11 13:49:50 +01:00
Daan De Meyer 585c5c756f repart: Allow custom root directory per copy blocks source
Preparation for the next commit
2022-11-11 13:49:50 +01:00
Daan De Meyer a7f1f7d8c1 repart: Don't log partition number when populating filesystem
This might not be known yet so let's use the filesystem itself
instead.
2022-11-11 13:49:50 +01:00
Daan De Meyer 7c17515203 repart: Create loop device when populating filesystems if needed 2022-11-11 13:49:49 +01:00
Daan De Meyer 143c3c08d7 repart: Move fstype_is_ro() checks out of the populate functions
Preparation for the next commit.
2022-11-11 13:49:22 +01:00
Daan De Meyer 78b66c027e resize-fs: Bump xfs minimum partition size to 16MB
14MB leads to errors in mkfs.xfs when running repart.
2022-11-11 13:48:21 +01:00
Daan De Meyer 8bbbdfd788 repart: Calculate filesystem UUID earlier 2022-11-11 13:48:21 +01:00
Daan De Meyer 81427d0fd2 repart: Use COPY_HOLES more 2022-11-11 13:48:21 +01:00
Daan De Meyer 8c467ee8ef repart: Use COPY_REFLINK in context_copy_blocks()
We might be copying between files without a loop device involved.
In that case, a reflink is possible and will be much faster.
2022-11-11 13:47:47 +01:00
Daan De Meyer a673b0568b repart: Use copy_bytes() instead of copy_bytes_full() 2022-11-11 13:47:47 +01:00
Daan De Meyer 46fddd8eb6 Merge pull request #24803 from DaanDeMeyer/repart-copy-deny-list
repart: Don't descend into directories assigned to other partitions
2022-11-11 13:19:58 +01:00
Daan De Meyer cc085ec65f Revert "rm-rf: Add rm_rf_physical_and_close()"
This reverts commit 56e2bceddc.

Doing destructive cleanup operations via unreliable /proc path
lookups is unsafe and should be avoided so let's remove this function.
2022-11-11 10:19:18 +01:00
Daan De Meyer c9a1202ecb test-copy: Stop using rm_rf_physical_and_close
This cleanup function depends on resolving fd's to paths via /proc
which is unreliable so we shouldn't depend on it for destructive
operations. Use regular path based cleanup instead.
2022-11-11 10:19:18 +01:00
Daan De Meyer 7d000133c2 fs-util: Add missing assert to chmod_and_chown_at() 2022-11-11 10:19:18 +01:00
Daan De Meyer c2fc5890e3 chase-symlinks: Drop unnecessary if 2022-11-11 09:52:12 +01:00
Daan De Meyer 8c39e28191 path-util: Drop path_make_relative_cwd()
Function is unused
2022-11-11 09:50:50 +01:00
Daan De Meyer 8b9c56ba3e tmpfile-util: Add missing assert 2022-11-11 09:50:19 +01:00
Yu Watanabe b27c803601 Merge pull request #25328 from poettering/vertical-tables
format-table: add concept of "vertical" table
2022-11-11 15:18:12 +09:00
Luca Boccassi 021397f776 Merge pull request #25325 from yuwata/resolve-cap-per-link-setting-by-global
resolve: provide effective mDNS or LLMNR settings
2022-11-10 23:20:40 +01:00
Lennart Poettering 31a19acf82 timedatectl: port to new 'vertical' table type 2022-11-10 23:11:17 +01:00
Lennart Poettering 37a50123fa resolvectl: port to new 'vertical' table type 2022-11-10 23:10:37 +01:00
Lennart Poettering 858409499c resolvectl: fail properly if we can't append to table 2022-11-10 23:09:56 +01:00
Lennart Poettering c6bf9dff3a format-table: add an explicit "vertical" mode
Originally, the table formatting code was written to display a number of
records, one per line, and within each line multiple fields of the same
record. The first line contains the column names.

It was then started to be used in a "vertical" mode however,
i.e. with field names on the left instead of the top. Let's support such
a mode explicitly, so that we can provide systematic styling, and can
properly convert this mode to JSON.

A new constructor "table_new_vertical()" is added creating such
"vertical" tables. Internally, this is a table with two columns: "key"
and "value". When outputting this as JSON we'll output a single JSON
object, with key/value as fields. (Which is different from the
traditional output where we'd use the first line as JSON field names,
and output an array of objects).

A new cell type TABLE_FIELD is added for specifically marking the
"field" cells, i.e. the cells in the first column. We'll automatically
suffic ":" to these fields on output.
2022-11-10 23:09:18 +01:00
Daan De Meyer 8522691d4d journal: Ratelimit more journald log messages
systemd-journald is prone to spamming logs if the system gets into
a messy state. Let's improve the situation by ratelimiting logs on
the hot code paths to 3 times per minute.
2022-11-10 17:51:05 +01:00
Daan De Meyer 2199ff9018 log: Add shorthands for log_ratelimit_full() 2022-11-10 17:51:05 +01:00
Daan De Meyer 0f06e64c3d log: Add ratelimit argument to ratelimit log macros
Allows configuring the ratelimit per logging statement.
2022-11-10 17:51:03 +01:00
Daan De Meyer 7a2ec6d0bf log: Add log_ratelimit_full() 2022-11-10 17:49:34 +01:00
Daan De Meyer fa83506d50 log: Use ##__VA_ARGS__ in ratelimit log macros
This allows us to call these without formatting arguments.
2022-11-10 17:49:34 +01:00
Lennart Poettering 71ea84369e locale: honour new env var $SYSTEMD_UTF8=
This is useful to force off fancy unicode glyph use (i.e. use "->"
instead of "→"), which is useful in tests where locales might be
missing, and thus control via $LC_CTYPE is not reliable.

Use this in TEST-58, to ensure the output checks we do aren't confused
by missing these glyphs being unicode or not.
2022-11-10 17:20:36 +01:00
Daan De Meyer c0fad2d9b6 repart: Don't descend into directories assigned to other partitions
Let's say we have the following repart definitions files root.conf
and home.conf:

```
[Partition]
Type=root
CopyFiles=/
```

```
[Partition]
Type=home
CopyFiles=/home
```

Currently, we'd end up copying /home to both the root partition and
the home partition. To prevent this from happening, let's adopt a
new policy when copying files for a partition: We won't copy any
files/directories that appear in the CopyFiles= list of another
partition, unless that directory explicitly appears in our own
CopyFiles= list.

This way, we prevent copying /home twice into the root and home
partition, but should a user really want that behavior, they can
have it by adding /home to the CopyFIles= list of the root partition
as well.
2022-11-10 16:40:33 +01:00
Daan De Meyer 58b4ad76ca gpt: Add gpt_partition_type_mountpoint_nulstr() 2022-11-10 16:40:33 +01:00
Daan De Meyer dd8940235f gpt: Replace bitfields with designator field in GptPartitionType
To achieve this we move the PartitionDesignator enum from
dissect-image.h to gpt.h
2022-11-10 16:40:33 +01:00
Daan De Meyer a424958aa6 copy: Support passing a deny list of files/directories to not copy 2022-11-10 16:40:31 +01:00
Lennart Poettering 5db8b0bcad dissect: make image name bold 2022-11-10 16:00:59 +01:00
Lennart Poettering b387778c5b dissect: also parse out the top-level GPT table uuid and expose this as image UUID
systemd-repart generates this in a suitably stable fashion, hence let's
actually use it as an identifier for the image. As a first step parse
it, and show it.
2022-11-10 16:00:59 +01:00
Lennart Poettering 9bc4156cdf json: add build helpers to insert id128 in uuid formatting into json object 2022-11-10 16:00:59 +01:00
Daan De Meyer ddfdf86f81 stat-util: Move inode_hash_ops to stat-util
TO make it usable in other code.
2022-11-10 15:59:18 +01:00
Yu Watanabe c38a03df4a resolvectl: warn if the global mDNS or LLMNR support level is lower than the requested one 2022-11-10 21:54:56 +09:00