]> git.pld-linux.org Git - packages/systemd.git/blobdiff - target-pld.patch
up to 254.13
[packages/systemd.git] / target-pld.patch
index b2975ce435c09edbf427a4a1a807410cf29028a6..6c0962ca01672e2285b842eab98e2cf01e1ab96c 100644 (file)
-diff --git a/Makefile.am b/Makefile.am
-index 170465a..bce467d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -4083,6 +4083,21 @@ if TARGET_FEDORA
-               $(LN_S) ../systemd-modules-load.service systemd-modules-load.service )
- endif
+; rest of target-pld.patch logic in systemd.spec
+--- systemd-stable-248/src/shared/hostname-setup.h.orig        2021-03-30 22:59:02.000000000 +0200
++++ systemd-stable-248/src/shared/hostname-setup.h     2021-04-07 00:02:26.813489363 +0200
+@@ -18,6 +18,7 @@
  
-+      $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
-+      ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
-+              rm -f rc-local.service && \
-+              $(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
-+      ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \
-+              rm -f halt-local.service && \
-+              $(LN_S) $(systemunitdir)/halt-local.service halt-local.service )
-+      ( cd $(DESTDIR)$(systemunitdir) && \
-+              rm -f display-manager.service single.service && \
-+              $(LN_S) prefdm.service display-manager.service && \
-+              $(LN_S) rescue.service single.service )
-+      ( cd $(DESTDIR)$(systemunitdir)/graphical.target.wants && \
-+              rm -f display-manager.service && \
-+              $(LN_S) $(systemunitdir)/display-manager.service display-manager.service )
-+
- install-exec-hook: $(INSTALL_EXEC_HOOKS)
+ int shorten_overlong(const char *s, char **ret);
++int read_etc_hostname_distro(const char *path, char **ret);
+ int read_etc_hostname_stream(FILE *f, char **ret);
+ int read_etc_hostname(const char *path, char **ret);
+--- systemd-stable-248/src/shared/hostname-setup.c.orig        2021-03-30 22:59:02.000000000 +0200
++++ systemd-stable-248/src/shared/hostname-setup.c     2021-04-07 00:04:58.955649812 +0200
+@@ -7,6 +7,7 @@
+ #include <unistd.h>
  
- uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
-diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c
-index 2c2f10c..754f0c7 100644
---- a/src/core/hostname-setup.c
-+++ b/src/core/hostname-setup.c
-@@ -64,13 +64,84 @@ static int read_and_strip_hostname(const char *path, char **hn) {
-         return 0;
+ #include "alloc-util.h"
++#include "env-file.h"
+ #include "fd-util.h"
+ #include "fileio.h"
+ #include "fs-util.h"
+@@ -130,13 +131,34 @@
+         }
  }
  
-+static int read_distro_hostname(char **hn) {
++int read_etc_hostname_distro(const char *path, char **ret) {
 +        int r;
-+        _cleanup_fclose_ FILE *f = NULL;
-+
-+        assert(hn);
-+
-+        f = fopen("/etc/sysconfig/network", "re");
-+        if (!f)
-+                return -errno;
-+
-+        for (;;) {
-+                char line[LINE_MAX];
-+                char *s, *k;
-+
-+                if (!fgets(line, sizeof(line), f)) {
-+                        if (feof(f))
-+                                break;
-+
-+                        r = -errno;
-+                        goto finish;
-+                }
-+
-+                s = strstrip(line);
-+
-+                if (!startswith_no_case(s, "HOSTNAME="))
-+                        continue;
-+
-+                k = strdup(s+9);
-+                if (!k) {
-+                        r = -ENOMEM;
-+                        goto finish;
-+                }
-+
-+                hostname_cleanup(k);
-+
-+                if (isempty(k)) {
-+                        free(k);
-+                        r = -ENOENT;
-+                        goto finish;
-+                }
-+
-+                *hn = k;
-+                r = 0;
-+                goto finish;
-+        }
-+
-+        r = -ENOENT;
-+
-+finish:
-+        return r;
++        char *p = NULL;
++        r = parse_env_file(NULL, "/etc/sysconfig/network", "HOSTNAME", &p);
++        if (r < 0)
++                return r;
++        if (!p) /* EOF without any hostname? the file is empty, let's treat that exactly like no file at all: ENOENT */
++                return -ENOENT;
++        hostname_cleanup(p);
++         if (!hostname_is_valid(p, true))
++                 return -EBADMSG;
++         *ret = p;
++         return 0;
 +}
 +
-+static int read_hostname(char **hn) {
-+        int r;
-+
-+        assert(hn);
-+
-+        /* First, try to load the generic hostname configuration file,
-+         * that we support on all distributions */
 +
-+        r = read_and_strip_hostname("/etc/hostname", hn);
-+        if (r < 0) {
-+                if (r == -ENOENT)
-+                        return read_distro_hostname(hn);
-+
-+                return r;
+ int read_etc_hostname(const char *path, char **ret) {
+         _cleanup_fclose_ FILE *f = NULL;
+         assert(ret);
+-        if (!path)
++        if (!path) {
++                int r;
+                 path = "/etc/hostname";
++                r = read_etc_hostname_distro(path, ret);
++                if (r == 0)
++                        return r;
 +        }
-+
-+        return 0;
-+}
-+
- int hostname_setup(void) {
-         int r;
-         _cleanup_free_ char *b = NULL;
-         const char *hn;
-         bool enoent = false;
  
--        r = read_and_strip_hostname("/etc/hostname", &b);
-+        r = read_hostname(&b);
-         if (r < 0) {
-                 if (r == -ENOENT)
-                         enoent = true;
-diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c
-index 7f692e9..0a45854 100644
---- a/src/core/locale-setup.c
-+++ b/src/core/locale-setup.c
-@@ -74,6 +74,7 @@ int locale_setup(void) {
+         f = fopen(path, "re");
+         if (!f)
+--- systemd-240/src/shared/locale-setup.c.orig 2019-01-13 09:27:36.718995151 +0100
++++ systemd-240/src/shared/locale-setup.c      2019-01-13 09:29:37.548993771 +0100
+@@ -21,6 +21,7 @@
+         locale_context_clear(c);
  
-         if (detect_container(NULL) <= 0) {
-                 r = parse_env_file("/proc/cmdline", WHITESPACE,
-+                                   "LANG",                     &variables[VARIABLE_LANG],
-                                    "locale.LANG",              &variables[VARIABLE_LANG],
-                                    "locale.LANGUAGE",          &variables[VARIABLE_LANGUAGE],
-                                    "locale.LC_CTYPE",          &variables[VARIABLE_LC_CTYPE],
-@@ -121,6 +121,15 @@ int locale_setup(void) {
-                         log_warning("Failed to read /etc/locale.conf: %s", strerror(-r));
-         }
+         r = proc_cmdline_get_key_many(PROC_CMDLINE_STRIP_RD_PREFIX,
++                                      "LANG",                     &c->locale[VARIABLE_LANG],
+                                       "locale.LANG",              &c->locale[VARIABLE_LANG],
+                                       "locale.LANGUAGE",          &c->locale[VARIABLE_LANGUAGE],
+                                       "locale.LC_CTYPE",          &c->locale[VARIABLE_LC_CTYPE],
+@@ -59,6 +60,17 @@
+         if (fstat(fd, &st) < 0)
+                 return log_debug_errno(errno, "Failed to stat /etc/locale.conf: %m");
  
-+        if (r <= 0 &&
-+            (r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
-+                                "LANG", &variables[VARIABLE_LANG],
-+                                NULL)) < 0) {
-+
-+                if (r != -ENOENT)
-+                        log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
++        if (r < 0 && stat("/etc/sysconfig/i18n", &st) == 0) {
++                locale_context_clear(c);
++                if ((r = parse_env_file(NULL, "/etc/sysconfig/i18n",
++                                "LANG", &c->locale[VARIABLE_LANG]
++                                )) < 0) {
++
++                        if (r != -ENOENT)
++                                log_warning_errno(r, "Failed to read /etc/sysconfig/i18n: %m");
++                }
 +        }
 +
-         if (!variables[VARIABLE_LANG]) {
-                 variables[VARIABLE_LANG] = strdup("C");
-                 if (!variables[VARIABLE_LANG]) {
---- systemd-196/src/timedate/timedated.c~      2012-10-16 23:35:40.589269718 +0200
-+++ systemd-196/src/timedate/timedated.c       2012-12-21 11:46:13.545086335 +0100
-@@ -175,6 +175,13 @@
-                 }
-         }
+         /* If the file is not changed, then we do not need to re-read the file. */
+         if (stat_inode_unmodified(&c->st, &st))
+                 return 0;
+--- systemd-240/src/basic/time-util.c.orig     2019-01-13 09:27:36.718995151 +0100
++++ systemd-240/src/basic/time-util.c  2019-01-13 09:31:12.275659356 +0100
+@@ -14,6 +14,7 @@
+ #include <unistd.h>
+ #include "alloc-util.h"
++#include "env-file.h"
+ #include "fd-util.h"
+ #include "fileio.h"
+ #include "fs-util.h"
+@@ -1385,8 +1385,16 @@
+                 return r; /* returns EINVAL if not a symlink */
  
-+      r = parse_env_file("/etc/sysconfig/timezone", NEWLINE,
-+                         "TIMEZONE", &tz.zone,
-+                         NULL);
-+      if (r < 0) {
-+              if (r != -ENOENT)
-+                      log_warning("Failed to read /etc/sysconfig/timezone: %s", strerror(-r));
+         e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/");
+-        if (!e)
+-                return -EINVAL;
++        if (!e) {
++                r = parse_env_file(NULL, "/etc/sysconfig/timezone"
++                        "TIMEZONE", &e
++                        );
++                if (r < 0) {
++                        if (r != -ENOENT)
++                                log_warning_errno(r, "Failed to read /etc/sysconfig/timezone: %m");
++                        return -EINVAL;
++                }
 +      }
- #ifdef HAVE_DEBIAN
-         r = read_one_line_file("/etc/timezone", &tz.zone);
-         if (r < 0) {
-diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index 9196789..1d1a916 100644
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -358,6 +358,14 @@
-         }
  
-         if (r <= 0) {
-+                r = parse_env_file("/etc/sysconfig/console", NEWLINE,
-+                                   "CONSOLEFONT", &vc_font,
-+                                   "CONSOLEMAP", &vc_font_map,
-+                                   "CONSOLESCREENFONTMAP", &vc_font_unimap,
-+                                   "KEYTABLE", &vc_keymap,
-+                                   NULL);
-+                if (r < 0 && r != -ENOENT)
-+                        log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r));
+         if (!timezone_is_valid(e, LOG_DEBUG))
+                 return -EINVAL;
+--- systemd-stable-254/src/vconsole/vconsole-setup.c.orig      2023-08-02 23:51:41.833676408 +0200
++++ systemd-stable-254/src/vconsole/vconsole-setup.c   2023-08-03 00:00:16.025707038 +0200
+@@ -141,7 +141,19 @@
+         if (r < 0) {
+                 if (r != -ENOENT)
+                         log_warning_errno(r, "Failed to read /etc/vconsole.conf, ignoring: %m");
+-                return r;
++
++                int r1 = parse_env_file(NULL, "/etc/sysconfig/console"
++                                "CONSOLEFONT", &v.config[VC_FONT],
++                                "CONSOLEMAP", &v.config[VC_FONT_MAP],
++                                "CONSOLESCREENFONTMAP", &v.config[VC_FONT_UNIMAP],
++                                "KEYTABLE", &v.config[VC_KEYMAP]
++                                );
++                if (r1 < 0) {
++                        if (r1 != -ENOENT)
++                                log_warning_errno(r1, "Failed to read /etc/sysconfig/console, ignoring: %m");
++                        return r1;
++                }
++
          }
  
-         r = EXIT_FAILURE;
+         context_merge_config(c, &v, NULL);
This page took 0.031489 seconds and 4 git commands to generate.