mirror of
				https://git.proxmox.com/git/systemd
				synced 2025-10-31 15:45:07 +00:00 
			
		
		
		
	New upstream version 249.1
This commit is contained in:
		
							parent
							
								
									c3c690cd2f
								
							
						
					
					
						commit
						0e1568bbab
					
				| @ -76,10 +76,10 @@ variables. All EFI variables use the vendor UUID | ||||
|   * `1 << 6` → The boot loader supports passing a random seed to the OS. | ||||
| 
 | ||||
| * The EFI variable `LoaderRandomSeed` contains a binary random seed if set. It | ||||
|   is set by the boot loader to pass an entropy seed read from the ESP partition | ||||
|   to the OS. The system manager then credits this seed to the kernel's entropy | ||||
|   pool. It is the responsibility of the boot loader to ensure the quality and | ||||
|   integrity of the random seed. | ||||
|   is set by the boot loader to pass an entropy seed read from the ESP to the OS. | ||||
|   The system manager then credits this seed to the kernel's entropy pool. It is | ||||
|   the responsibility of the boot loader to ensure the quality and integrity of | ||||
|   the random seed. | ||||
| 
 | ||||
| * The EFI variable `LoaderSystemToken` contains binary random data, | ||||
|   persistently set by the OS installer. Boot loaders that support passing | ||||
|  | ||||
| @ -61,8 +61,8 @@ Everything described below is located on a placeholder file system `$BOOT`. The | ||||
| * On disks with GPT (GUID Partition Table) | ||||
|   * If the OS is installed on a disk with GPT, and an Extended Boot Loader Partition or XBOOTLDR partition for short, i.e. a partition with GPT type GUID of `bc13c2ff-59e6-4262-a352-b275fd6f7172`, already exists, it should be used as `$BOOT`. | ||||
|   * Otherwise, if the OS is installed on a disk with GPT, and an EFI System Partition or ESP for short, i.e. a partition with GPT type UID of `c12a7328-f81f-11d2-ba4b-00a0c93ec93b`) already exists and is large enough (let's say 250MB) and otherwise qualifies, it should be used as `$BOOT`. | ||||
|   * Otherwise, if the OS is installed on a disk with GPT, and if the ESP partition already exists but is too small, a new suitably sized (let's say 500MB) XBOOTLDR partition shall be created and used as `$BOOT`. | ||||
|   * Otherwise, if the OS is installed on a disk with GPT, and no ESP partition exists yet, a new suitably sized (let's say 500MB) ESP should be created and used as `$BOOT`. | ||||
|   * Otherwise, if the OS is installed on a disk with GPT, and if the ESP already exists but is too small, a new suitably sized (let's say 500MB) XBOOTLDR partition shall be created and used as `$BOOT`. | ||||
|   * Otherwise, if the OS is installed on a disk with GPT, and no ESP exists yet, a new suitably sized (let's say 500MB) ESP should be created and used as `$BOOT`. | ||||
| 
 | ||||
| This placeholder file system shall be determined during _installation time_, and an fstab entry may be created. It should be mounted to either `/boot/` or `/efi/`. Additional locations like `/boot/efi/`, with `/boot/` being a separate file system, might be supported by implementations. This is not recommended because the mounting of `$BOOT` is then dependent on and requires the mounting of the intermediate file system. | ||||
| 
 | ||||
|  | ||||
| @ -39,7 +39,6 @@ | ||||
|         <paramdef>const char *<parameter>interface</parameter></paramdef> | ||||
|         <paramdef>const char *<parameter>member</parameter></paramdef> | ||||
|         <paramdef>sd_bus_error *<parameter>ret_error</parameter></paramdef> | ||||
|         <paramdef>sd_bus_message **<parameter>reply</parameter></paramdef> | ||||
|         <paramdef>const char *<parameter>type</parameter></paramdef> | ||||
|         <paramdef>...</paramdef> | ||||
|       </funcprototype> | ||||
| @ -52,7 +51,6 @@ | ||||
|         <paramdef>const char *<parameter>interface</parameter></paramdef> | ||||
|         <paramdef>const char *<parameter>member</parameter></paramdef> | ||||
|         <paramdef>sd_bus_error *<parameter>ret_error</parameter></paramdef> | ||||
|         <paramdef>sd_bus_message **<parameter>reply</parameter></paramdef> | ||||
|         <paramdef>const char *<parameter>type</parameter></paramdef> | ||||
|         <paramdef>va_list <parameter>ap</parameter></paramdef> | ||||
|       </funcprototype> | ||||
| @ -115,10 +113,9 @@ | ||||
|     <citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>. | ||||
|     </para> | ||||
| 
 | ||||
|     <para><function>sd_bus_set_property()</function> sets a D-Bus property. On success, the response | ||||
|     is stored in <parameter>reply</parameter>. If setting the property fails or an internal error | ||||
|     occurs, an error is returned and an extended description of the error is optionally stored in | ||||
|     <parameter>ret_error</parameter> if it is not <constant>NULL</constant>. | ||||
|     <para><function>sd_bus_set_property()</function> sets a D-Bus property. If setting the property | ||||
|     fails or an internal error occurs, an error is returned and an extended description of the error | ||||
|     is optionally stored in <parameter>ret_error</parameter> if it is not <constant>NULL</constant>. | ||||
|     <parameter>type</parameter> and the arguments that follow it describe the new value of the | ||||
|     property and must follow the format described in | ||||
|     <citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry>. | ||||
|  | ||||
| @ -73,8 +73,8 @@ | ||||
|       <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> for | ||||
|       details.</para></listitem> | ||||
| 
 | ||||
|       <listitem><para>An EFI variable set by the boot loader informs the OS about the ESP partition used | ||||
|       during boot. This is then used to automatically mount the correct ESP partition to | ||||
|       <listitem><para>An EFI variable set by the boot loader informs the OS about the EFI System Partition used | ||||
|       during boot. This is then used to automatically mount the correct EFI System Partition to | ||||
|       <filename>/efi/</filename> or <filename>/boot/</filename> during OS runtime. See | ||||
|       <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> | ||||
|       for details.</para></listitem> | ||||
|  | ||||
| @ -144,7 +144,7 @@ | ||||
|       turn. Additionally, lookup of single-label names via unicast DNS may be enabled with the | ||||
|       <varname>ResolveUnicastSingleLabel=yes</varname> setting. The details of which servers are queried and | ||||
|       how the final reply is chosen are described below. Note that this means that address queries for | ||||
|       single-label names are never sent out to remote DNS servers by default, and resoulution is only | ||||
|       single-label names are never sent out to remote DNS servers by default, and resolution is only | ||||
|       possible if search domains are defined.</para></listitem> | ||||
| 
 | ||||
|       <listitem><para>Multi-label names with the domain suffix <literal>.local</literal> are resolved using | ||||
|  | ||||
| @ -998,14 +998,6 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para> | ||||
|           </para> | ||||
|         </listitem> | ||||
|       </varlistentry> | ||||
|       <varlistentry> | ||||
|         <term><varname>Xfrm=</varname></term> | ||||
|         <listitem> | ||||
|           <para>The name of the xfrm to create on the link. See | ||||
|             <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>. | ||||
|             This option may be specified more than once.</para> | ||||
|         </listitem> | ||||
|       </varlistentry> | ||||
|       <varlistentry> | ||||
|         <term><varname>KeepConfiguration=</varname></term> | ||||
|         <listitem> | ||||
|  | ||||
| @ -74,8 +74,8 @@ | ||||
|     configuration files, whose syntax and basic set of options is | ||||
|     described in | ||||
|     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | ||||
|     however some are created automatically from other configuration, | ||||
|     dynamically from system state or programmatically at runtime. | ||||
|     however some are created automatically from other configuration | ||||
|     files, dynamically from system state or programmatically at runtime. | ||||
|     Units may be "active" (meaning started, bound, plugged in, …, | ||||
|     depending on the unit type, see below), or "inactive" (meaning | ||||
|     stopped, unbound, unplugged, …), as well as in the process of | ||||
|  | ||||
| @ -77,4 +77,5 @@ _arguments \ | ||||
|     '--version[Show package version]' \ | ||||
|     '--wait=[Wait until service stopped again]' \ | ||||
|     '--working-directory=[Run with the specified working directory]' \ | ||||
|     '*::command:_command' | ||||
|     '(-):command: _command_names -e' \ | ||||
|     '*::arguments:_normal' | ||||
|  | ||||
| @ -378,12 +378,13 @@ int unit_name_unescape(const char *f, char **ret) { | ||||
| } | ||||
| 
 | ||||
| int unit_name_path_escape(const char *f, char **ret) { | ||||
|         char *p, *s; | ||||
|         _cleanup_free_ char *p = NULL; | ||||
|         char *s; | ||||
| 
 | ||||
|         assert(f); | ||||
|         assert(ret); | ||||
| 
 | ||||
|         p = strdupa(f); | ||||
|         p = strdup(f); | ||||
|         if (!p) | ||||
|                 return -ENOMEM; | ||||
| 
 | ||||
| @ -395,13 +396,9 @@ int unit_name_path_escape(const char *f, char **ret) { | ||||
|                 if (!path_is_normalized(p)) | ||||
|                         return -EINVAL; | ||||
| 
 | ||||
|                 /* Truncate trailing slashes */ | ||||
|                 /* Truncate trailing slashes and skip leading slashes */ | ||||
|                 delete_trailing_chars(p, "/"); | ||||
| 
 | ||||
|                 /* Truncate leading slashes */ | ||||
|                 p = skip_leading_chars(p, "/"); | ||||
| 
 | ||||
|                 s = unit_name_escape(p); | ||||
|                 s = unit_name_escape(skip_leading_chars(p, "/")); | ||||
|         } | ||||
|         if (!s) | ||||
|                 return -ENOMEM; | ||||
|  | ||||
| @ -1337,7 +1337,7 @@ static int verb_status(int argc, char *argv[], void *userdata) { | ||||
|                 sd_id128_t bootloader_esp_uuid; | ||||
|                 bool have_bootloader_esp_uuid = efi_loader_get_device_part_uuid(&bootloader_esp_uuid) >= 0; | ||||
| 
 | ||||
|                 print_yes_no_line(false, have_bootloader_esp_uuid, "Boot loader sets ESP partition information"); | ||||
|                 print_yes_no_line(false, have_bootloader_esp_uuid, "Boot loader sets ESP information"); | ||||
|                 if (have_bootloader_esp_uuid && !sd_id128_equal(esp_uuid, bootloader_esp_uuid)) | ||||
|                         printf("WARNING: The boot loader reports a different ESP UUID than detected!\n"); | ||||
| 
 | ||||
|  | ||||
| @ -204,14 +204,14 @@ static const char* fallback_chassis(void) { | ||||
| 
 | ||||
|         r = read_one_line_file("/sys/class/dmi/id/chassis_type", &type); | ||||
|         if (r < 0) { | ||||
|                 log_debug_errno(v, "Failed to read DMI chassis type, ignoring: %m"); | ||||
|                 log_debug_errno(r, "Failed to read DMI chassis type, ignoring: %m"); | ||||
|                 goto try_acpi; | ||||
|         } | ||||
| 
 | ||||
|         r = safe_atou(type, &t); | ||||
|         free(type); | ||||
|         if (r < 0) { | ||||
|                 log_debug_errno(v, "Failed to parse DMI chassis type, ignoring: %m"); | ||||
|                 log_debug_errno(r, "Failed to parse DMI chassis type, ignoring: %m"); | ||||
|                 goto try_acpi; | ||||
|         } | ||||
| 
 | ||||
| @ -260,14 +260,14 @@ static const char* fallback_chassis(void) { | ||||
| try_acpi: | ||||
|         r = read_one_line_file("/sys/firmware/acpi/pm_profile", &type); | ||||
|         if (r < 0) { | ||||
|                 log_debug_errno(v, "Failed read ACPI PM profile, ignoring: %m"); | ||||
|                 log_debug_errno(r, "Failed read ACPI PM profile, ignoring: %m"); | ||||
|                 return NULL; | ||||
|         } | ||||
| 
 | ||||
|         r = safe_atou(type, &t); | ||||
|         free(type); | ||||
|         if (r < 0) { | ||||
|                 log_debug_errno(v, "Failed parse ACPI PM profile, ignoring: %m"); | ||||
|                 log_debug_errno(r, "Failed parse ACPI PM profile, ignoring: %m"); | ||||
|                 return NULL; | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -1409,7 +1409,7 @@ static const char *table_data_format(Table *t, TableData *d, bool avoid_uppercas | ||||
|                 _cleanup_free_ char *p = NULL; | ||||
|                 char *ret; | ||||
| 
 | ||||
|                 p = new(char, FORMAT_TIMESTAMP_MAX); | ||||
|                 p = new(char, d->type == TABLE_TIMESTAMP_RELATIVE ? FORMAT_TIMESTAMP_RELATIVE_MAX : FORMAT_TIMESTAMP_MAX); | ||||
|                 if (!p) | ||||
|                         return NULL; | ||||
| 
 | ||||
| @ -1418,7 +1418,7 @@ static const char *table_data_format(Table *t, TableData *d, bool avoid_uppercas | ||||
|                 else if (d->type == TABLE_TIMESTAMP_UTC) | ||||
|                         ret = format_timestamp_style(p, FORMAT_TIMESTAMP_MAX, d->timestamp, TIMESTAMP_UTC); | ||||
|                 else | ||||
|                         ret = format_timestamp_relative(p, FORMAT_TIMESTAMP_MAX, d->timestamp); | ||||
|                         ret = format_timestamp_relative(p, FORMAT_TIMESTAMP_RELATIVE_MAX, d->timestamp); | ||||
|                 if (!ret) | ||||
|                         return "n/a"; | ||||
| 
 | ||||
|  | ||||
| @ -1915,7 +1915,7 @@ static int show_one( | ||||
|                 return log_error_errno(r, "Failed to get properties: %s", bus_error_message(&error, r)); | ||||
| 
 | ||||
|         if (unit && streq_ptr(info.load_state, "not-found") && streq_ptr(info.active_state, "inactive")) { | ||||
|                 log_full(show_mode == SYSTEMCTL_SHOW_STATUS ? LOG_ERR : LOG_DEBUG, | ||||
|                 log_full(show_mode == SYSTEMCTL_SHOW_PROPERTIES ? LOG_DEBUG : LOG_ERR, | ||||
|                          "Unit %s could not be found.", unit); | ||||
| 
 | ||||
|                 if (show_mode == SYSTEMCTL_SHOW_STATUS) | ||||
|  | ||||
| @ -36,7 +36,7 @@ static int load_kexec_kernel(void) { | ||||
|                 return log_error_errno(r, | ||||
|                                        "No kexec kernel loaded and autodetection failed.\n%s", | ||||
|                                        is_efi_boot() | ||||
|                                        ? "Cannot automatically load kernel: ESP partition mount point not found." | ||||
|                                        ? "Cannot automatically load kernel: ESP mount point not found." | ||||
|                                        : "Automatic loading works only on systems booted with EFI."); | ||||
|         if (r < 0) | ||||
|                 return r; | ||||
|  | ||||
| @ -11,7 +11,7 @@ TEST_NO_QEMU=1 | ||||
| # Using timeout because if the test fails it can loop. | ||||
| # The reason is because the poweroff executed by end.service | ||||
| # could turn into a reboot if the test fails. | ||||
| NSPAWN_TIMEOUT=20 | ||||
| NSPAWN_TIMEOUT=60 | ||||
| 
 | ||||
| # Remove this file if it exists. This is used along with | ||||
| # the make target "finish". Since concrete confirmation is | ||||
|  | ||||
| @ -35,6 +35,7 @@ QEMU_MEM="${QEMU_MEM:-512M}" | ||||
| # To force creating a new image from scratch (eg: to encrypt it), also define | ||||
| # TEST_FORCE_NEWIMAGE=1 in the test setup script. | ||||
| IMAGE_NAME=${IMAGE_NAME:-default} | ||||
| STRIP_BINARIES="${STRIP_BINARIES:-yes}" | ||||
| TEST_REQUIRE_INSTALL_TESTS="${TEST_REQUIRE_INSTALL_TESTS:-1}" | ||||
| TEST_PARALLELIZE="${TEST_PARALLELIZE:-0}" | ||||
| LOOPDEV= | ||||
|  | ||||
| @ -20,6 +20,7 @@ CapabilityBoundingSet=CAP_SYS_ADMIN CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER CAP_FS | ||||
| DeviceAllow=/dev/loop-control rw | ||||
| DeviceAllow=/dev/mapper/control rw | ||||
| DeviceAllow=block-* rw | ||||
| DeviceAllow=char-hidraw rw | ||||
| ExecStart={{ROOTLIBEXECDIR}}/systemd-homed | ||||
| IPAddressDeny=any | ||||
| KillMode=mixed | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Michael Biebl
						Michael Biebl