Zbigniew Jędrzejewski-Szmek
18dbc899ff
Merge pull request #16258 from hunger/master
...
systemd-repart: Add an option to generate a JSON report
2020-08-03 10:05:32 +02:00
Zbigniew Jędrzejewski-Szmek
e4ec8b1f51
test-repart: also print json output
...
This doesn't really "test" anything, but a human can look at it.
2020-07-30 16:03:53 +02:00
Zbigniew Jędrzejewski-Szmek
2d2d0a57e7
repart: adjust --help and test output width
2020-07-30 16:02:45 +02:00
Lennart Poettering
c8f3d7672c
repart: log fixes
2020-07-30 15:17:08 +02:00
Tobias Hunger
a015fbe7ef
Repart: Add support for machine readably report
...
Add --json command line argument that prints all relevant information
in a machine-readable format.
2020-07-30 12:26:15 +02:00
Zbigniew Jędrzejewski-Szmek
46072ae35a
repart: include more relevant information in the warning message, fix test
...
The test would always fail with a long uname. In F33 this is right
now "5.8.0-0.rc2.20200622git625d3449788f.1.fc33.x86_64" which caused the
test to always fail.
2020-07-13 03:43:26 +09:00
fangxiuning
f987a261b4
userdbctl homectl use table_log_add_error()
...
Signed-off-by: fangxiuning <fangxiuning123@126.com>
2020-07-06 21:32:22 +08:00
Zbigniew Jędrzejewski-Szmek
f93dd4b940
Merge pull request #16282 from poettering/repart-copy-blocks
...
repart: add new CopyBlocks= setting
2020-06-30 15:26:06 +02:00
Zbigniew Jędrzejewski-Szmek
26b0fda9b7
test-repart: allow the test to pass on non-amd64 architectures
...
We specified type=root and expected to always get root-x86-64, which obviously
cannot work.
2020-06-30 11:06:48 +02:00
Lennart Poettering
757bc2e4c1
repart: add new CopyBlocks= setting
...
This allows copying in arbitrary file systems on the block level into
newly created partitions.
Usecase: simple replicating OS installers or OS image builders.
2020-06-25 18:52:52 +02:00
Lennart Poettering
6b000af4f2
tree-wide: avoid some loaded terms
...
https://tools.ietf.org/html/draft-knodel-terminology-02
https://lwn.net/Articles/823224/
This gets rid of most but not occasions of these loaded terms:
1. scsi_id and friends are something that is supposed to be removed from
our tree (see #7594 )
2. The test suite defines an API used by the ubuntu CI. We can remove
this too later, but this needs to be done in sync with the ubuntu CI.
3. In some cases the terms are part of APIs we call or where we expose
concepts the kernel names the way it names them. (In particular all
remaining uses of the word "slave" in our codebase are like this,
it's used by the POSIX PTY layer, by the network subsystem, the mount
API and the block device subsystem). Getting rid of the term in these
contexts would mean doing some major fixes of the kernel ABI first.
Regarding the replacements: when whitelist/blacklist is used as noun we
replace with with allow list/deny list, and when used as verb with
allow-list/deny-list.
2020-06-25 09:00:19 +02:00
Lennart Poettering
fb08381c14
repart: if now minimal size is specified, default to 10M
...
Prompted by this discussion:
https://lists.freedesktop.org/archives/systemd-devel/2020-June/044669.html
2020-06-16 15:48:58 +02:00
Lennart Poettering
e031166e15
repart: add simple specifier expansion in Label=
...
Strictly speaking this is a compat breakage, but given the tool was
added only in the last release, let's try to sail under the radar, and
fix this early before anyone notices it wasn't supported always.
2020-06-16 15:48:10 +02:00
Lennart Poettering
4f9ff96a55
conf-parser: return mtime in config_parse() and friends
...
This is a follow-up for 9f83091e3c
.
Instead of reading the mtime off the configuration files after reading,
let's do so before reading, but with the fd we read the data from. This
is not only cleaner (as it allows us to save one stat()), but also has
the benefit that we'll detect changes that happen while we read the
files.
This also reworks unit file drop-ins to use the common code for
determining drop-in mtime, instead of reading system clock for that.
2020-06-02 19:32:20 +02:00
Tobias Hunger
7b5cb4ceb4
Repart: Add simple tests for Label="" and UUID=""
...
Make sure Labels and UUIDs taken from destination definitions are
taken into account when no Label/UUID is currently set already.
2020-05-25 15:48:59 +02:00
Tobias Hunger
129635333d
repart: Add UUID option to config files
...
Add a option to provide a UUID for the partition that will get
created and document that.
2020-05-25 15:48:59 +02:00
Zbigniew Jędrzejewski-Szmek
7f6b827f36
Merge pull request #15836 from poettering/makefs-lock
...
lock whole block device file running makefs
2020-05-19 15:23:23 +02:00
Lennart Poettering
feb13fca97
repart: don't insist on coming up on partition label ourselves
...
If the user specified a label, use that.
Fixes : #15841
2020-05-19 15:04:01 +02:00
Lennart Poettering
a5a8fe2e8d
makefs: normalize logging a bit
2020-05-18 20:50:03 +02:00
Lennart Poettering
0181ad85b3
makefs: lock device while we operate
...
Let's implement our own specs, i.e.
https://systemd.io/BLOCK_DEVICE_LOCKING/
This should address issues like this: #13162
2020-05-18 20:50:03 +02:00
Lennart Poettering
700e0d3d87
makefs: log about OOM condition
2020-05-18 18:41:56 +02:00
Lennart Poettering
05ae606b79
test: update tests to use new repart features
2020-05-14 23:59:23 +02:00
Lennart Poettering
a26f4a49f4
repart: add support for create/growing loopback files
...
This adds --empty=create and --size= for creating loopback files from
scratch of a specified size, or growing loopback files to the specified
size when they already exist.
This is useful when operating on disk image files, as a manual
invocation of fallocate(1) becomes unnecessary.
2020-05-14 23:59:23 +02:00
Lennart Poettering
9a1deb8578
repart: suppress complaints about lack of BLKRRPART when operating on regular file
2020-05-14 23:01:09 +02:00
Lennart Poettering
e2d65cd299
repart: explain when we exit early and don't do a thing
2020-05-14 23:00:52 +02:00
Benjamin Robin
f391597c67
tree-wide: Fix, replace assert() by assert_se() when there is side effect
2020-05-06 23:03:25 +02:00
Emmanuel Garette
db1442260a
repart: fix partition maximum size segfault
...
Discovered, tracked down and fix proposed by Emmanuel Garette.
See: https://lists.freedesktop.org/archives/systemd-devel/2020-April/044435.html
(Lennart turned this into a PR)
Fixes : #15608
2020-05-01 17:31:45 +02:00
Zbigniew Jędrzejewski-Szmek
162392b75a
tree-wide: spellcheck using codespell
...
Fixes #15436 .
2020-04-16 18:00:40 +02:00
Zbigniew Jędrzejewski-Szmek
e29e4d5742
test: convert TEST-45 to a normal meson test
...
On my laptop, it now takes 0.23 s. We don't need the overhead of creating
an image and spawning a machine to mangle a file in /tmp.
2020-03-28 11:50:38 +01:00
Alin Popa
ad5555b42e
systemd: Fix busctl crash on aarch64 when setting output table format
...
The enum used for column names is integer type while table_set_display() is parsing
arguments on size_t alignment which may result in assert in table_set_display() if
the size between types missmatch. This patch cast the enums to size_t.
It also fixes all other occurences for table_set_display() and
table_set_sort().
2020-02-16 02:09:26 +09:00
Oliver Giles
c315b79fb4
makefs: strdup arguments to mkfs
...
Don't pass values from argv[] directly to child process forked using
safe_fork, because it clears argv[]. strdup them first.
2020-02-13 20:36:17 +09:00
Yu Watanabe
03b76a1977
repart: do not quit earlier when --empty=force
...
Follow-up for 0ae5ffe063
.
2020-02-07 13:48:16 +01:00
Yu Watanabe
0ae5ffe063
repart: quit earlier if no .conf file exists
...
Fixes #14804 .
2020-02-06 22:50:39 +01:00
Zbigniew Jędrzejewski-Szmek
19ce38ce62
shared/gpt: export gpt_partition_type_uuid_{to,from}_string functions
2020-01-23 22:56:23 +01:00
Lennart Poettering
e594a3b154
repart: add new systemd-repart tool
...
Fixes : #14052
2020-01-20 17:42:03 +01:00
Lennart Poettering
449d530700
makefs: simplify SPDX header
2020-01-20 17:42:03 +01:00
Zbigniew Jędrzejewski-Szmek
d6f1e66076
growfs: port over to resize_fs()
2019-12-05 10:15:49 +01:00
Zbigniew Jędrzejewski-Szmek
2b82a99fe0
growfs: define main function through macro
2019-12-05 09:22:13 +01:00
Yu Watanabe
021cdf8330
tree-wide: drop signal.h when signal-util.h is included
2019-11-04 00:30:32 +09:00
Yu Watanabe
e30e8b5073
tree-wide: drop stat.h or statfs.h when stat-util.h is included
2019-11-04 00:30:32 +09:00
Yu Watanabe
f5947a5e92
tree-wide: drop missing.h
2019-10-31 17:57:03 +09:00
Ivan Shapovalov
ac8bb308b7
growfs: call crypt_set_debug_level() correctly, skip if not needed
2019-07-08 16:04:17 +03:00
Yu Watanabe
01234e1fe7
tree-wide: drop several missing_*.h and import relevant headers from kernel-5.0
2019-04-11 19:00:37 +02:00
Zbigniew Jędrzejewski-Szmek
ca78ad1de9
headers: remove unneeded includes from util.h
...
This means we need to include many more headers in various files that simply
included util.h before, but it seems cleaner to do it this way.
2019-03-27 11:53:12 +01:00
Lennart Poettering
ae18890687
makefs: correct child process name
...
Probably a copy/paste mistake
2018-12-01 12:50:45 +01:00
Lennart Poettering
0672e2c6f8
tree-wide: use FORK_RLIMIT_NOFILE_SAFE wherever possible
...
Similar to the previous commit: in many cases no further fd processing
needs to be done in forked of children before execve() or any of its
flavours are called. In those case we can use FORK_RLIMIT_NOFILE_SAFE
instead.
2018-12-01 12:50:45 +01:00
Zbigniew Jędrzejewski-Szmek
b2ac2b01c8
Merge pull request #10996 from poettering/oci-prep
...
Preparation for the nspawn-OCI work
2018-11-30 10:09:00 +01:00
Zbigniew Jędrzejewski-Szmek
049af8ad0c
Split out part of mount-util.c into mountpoint-util.c
...
The idea is that anything which is related to actually manipulating mounts is
in mount-util.c, but functions for mountpoint introspection are moved to the
new file. Anything which requires libmount must be in mount-util.c.
This was supposed to be a preparation for further changes, with no functional
difference, but it results in a significant change in linkage:
$ ldd build/libnss_*.so.2
(before)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff77bf5000)
librt.so.1 => /lib64/librt.so.1 (0x00007f4bbb7b2000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f4bbb755000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4bbb734000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4bbb56e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4bbb8c1000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f4bbb51b000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f4bbb512000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4bbb4e3000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f4bbb45e000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4bbb458000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffc19cc0000)
librt.so.1 => /lib64/librt.so.1 (0x00007fdecb74b000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fdecb744000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fdecb6e7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdecb6c6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdecb500000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdecb8a9000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fdecb4ad000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fdecb4a2000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fdecb475000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fdecb3f0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdecb3ea000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe8ef8e000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcf314bd000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fcf314b6000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fcf31459000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcf31438000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcf31272000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcf31615000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fcf3121f000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fcf31214000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fcf311e7000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fcf31162000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcf3115c000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffda6d17000)
librt.so.1 => /lib64/librt.so.1 (0x00007f610b83c000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f610b835000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f610b7d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f610b7b7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f610b5f1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f610b995000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f610b59e000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f610b593000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f610b566000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f610b4e1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f610b4db000)
(after)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff0b5e2000)
librt.so.1 => /lib64/librt.so.1 (0x00007fde0c328000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fde0c307000)
libc.so.6 => /lib64/libc.so.6 (0x00007fde0c141000)
/lib64/ld-linux-x86-64.so.2 (0x00007fde0c435000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffdc30a7000)
librt.so.1 => /lib64/librt.so.1 (0x00007f06ecabb000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f06ecab4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f06eca93000)
libc.so.6 => /lib64/libc.so.6 (0x00007f06ec8cd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f06ecc15000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe95747000)
librt.so.1 => /lib64/librt.so.1 (0x00007fa56a80f000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fa56a808000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa56a7e7000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa56a621000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa56a964000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffe67b51000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffb32113000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007ffb3210c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffb320eb000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffb31f25000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffb3226a000)
I don't quite understand what is going on here, but let's not be too picky.
2018-11-29 21:03:44 +01:00
Lennart Poettering
54b22b2643
tree-wide: port various parts of the code over to the new device_major_minor_path() calls
2018-11-29 20:21:39 +01:00
Zbigniew Jędrzejewski-Szmek
baaa35ad70
coccinelle: make use of SYNTHETIC_ERRNO
...
Ideally, coccinelle would strip unnecessary braces too. But I do not see any
option in coccinelle for this, so instead, I edited the patch text using
search&replace to remove the braces. Unfortunately this is not fully automatic,
in particular it didn't deal well with if-else-if-else blocks and ifdefs, so
there is an increased likelikehood be some bugs in such spots.
I also removed part of the patch that coccinelle generated for udev, where we
returns -1 for failure. This should be fixed independently.
2018-11-22 10:54:38 +01:00