diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2017-04-27 13:39:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-27 13:39:54 -0400 |
commit | 0bc9115251f1bf12a9b15cc7f0bf59cf450ab9c0 (patch) | |
tree | 83d6eba6ace443a0ca6cbde99d05df9501d2c3b8 | |
parent | 34ce0a52c733bd667049e1a54696c2e5b983d615 (diff) | |
parent | 00a313261e840efcf8e82031e46a31918b49a74d (diff) |
Merge branch 'master' into meson-no-libudev
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | meson.build | 4 | ||||
-rw-r--r-- | src/network/meson.build | 8 | ||||
-rw-r--r-- | src/resolve/meson.build | 6 | ||||
-rw-r--r-- | src/shared/meson.build | 17 | ||||
-rw-r--r-- | src/shared/pager.c | 10 | ||||
-rw-r--r-- | src/test/meson.build | 3 | ||||
-rw-r--r-- | src/update-done/update-done.c | 21 |
8 files changed, 38 insertions, 37 deletions
diff --git a/Makefile.am b/Makefile.am index 8339625a62..f5f2793f5b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5599,6 +5599,9 @@ GENERAL_ALIASES += \ nodist_pkgsysconf_DATA += \ src/resolve/resolved.conf +dist_rootlibexec_DATA += \ + src/resolve/resolv.conf + libnss_resolve_la_SOURCES = \ src/nss-resolve/nss-resolve.sym \ src/nss-resolve/nss-resolve.c @@ -5737,9 +5740,6 @@ EXTRA_DIST += \ units/systemd-resolved.service.m4.in \ src/resolve/resolved.conf.in -dist_rootlibexec_DATA += \ - src/resolve/resolv.conf - # ------------------------------------------------------------------------------ if ENABLE_NETWORKD rootlibexec_PROGRAMS += \ diff --git a/meson.build b/meson.build index a7a316a74f..5a77785b8c 100644 --- a/meson.build +++ b/meson.build @@ -2134,8 +2134,7 @@ exe = executable('systemd-nspawn', 'src/core/loopback-setup.c', 'src/core/loopback-setup.h', include_directories : [includes, include_directories('src/nspawn')], - link_with : [libfirewall, - libshared], + link_with : [libshared], dependencies : [libacl, libblkid, libseccomp, @@ -2149,7 +2148,6 @@ if conf.get('ENABLE_NETWORKD', 0) == 1 systemd_networkd_sources, include_directories : includes, link_with : [libnetworkd_core, - libfirewall, libsystemd_network, libudev_internal, libshared], diff --git a/src/network/meson.build b/src/network/meson.build index 94bbb156aa..771aa68ec1 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -128,9 +128,8 @@ if conf.get('ENABLE_NETWORKD', 0) == 1 [libnetworkd_core, libudev_internal, libsystemd_network, - libshared, - libfirewall], - [libiptc]], + libshared], + []], [['src/network/test-network-tables.c', 'src/network/test-network-tables.c', @@ -139,8 +138,7 @@ if conf.get('ENABLE_NETWORKD', 0) == 1 libudev_internal, libudev_core, libsystemd_network, - libshared, - libfirewall], + libshared], [], '', '', [], [network_include_dir] + libudev_core_includes], diff --git a/src/resolve/meson.build b/src/resolve/meson.build index 46a417e766..347ffaaeca 100644 --- a/src/resolve/meson.build +++ b/src/resolve/meson.build @@ -135,10 +135,10 @@ if conf.get('ENABLE_RESOLVED', 0) == 1 configuration : substs) install_data(resolved_conf, install_dir : pkgsysconfdir) -endif -install_data('resolv.conf', - install_dir : rootlibexecdir) + install_data('resolv.conf', + install_dir : rootlibexecdir) +endif tests += [ [['src/resolve/test-resolve-tables.c', diff --git a/src/shared/meson.build b/src/shared/meson.build index 8968127d3f..0747f76649 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -34,6 +34,7 @@ shared_sources = ''' efivars.h fdset.c fdset.h + firewall-util.h fstab-util.c fstab-util.h gcrypt-util.c @@ -114,6 +115,10 @@ if conf.get('HAVE_SECCOMP', 0) == 1 shared_sources += ['seccomp-util.c'] endif +if conf.get('HAVE_LIBIPTC', 0) == 1 + shared_sources += ['firewall-util.c'] +endif + libshared_name = 'systemd-shared-@0@'.format(meson.project_version()) libshared = shared_library( @@ -152,21 +157,9 @@ libshared_static = static_library( libcap, libacl, libcryptsetup, - libiptc, libseccomp, libselinux, libidn, libxz, liblz4, libblkid]) - -if conf.get('HAVE_LIBIPTC', 0) == 1 - libfirewall = static_library( - 'firewall', - 'firewall-util.h', - 'firewall-util.c', - include_directories : includes, - dependencies : [libiptc]) -else - libfirewall = [] -endif diff --git a/src/shared/pager.c b/src/shared/pager.c index 22d7603ec6..4d7b02c63c 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -176,12 +176,14 @@ void pager_close(void) { /* Inform pager that we are done */ (void) fflush(stdout); - if (stdout_redirected && ((stored_stdout < 0) || (dup2(stored_stdout, STDOUT_FILENO) < 0))) - (void) close(STDOUT_FILENO); + if (stdout_redirected) + if (stored_stdout < 0 || dup2(stored_stdout, STDOUT_FILENO) < 0) + (void) close(STDOUT_FILENO); stored_stdout = safe_close(stored_stdout); (void) fflush(stderr); - if (stderr_redirected && ((stored_stderr < 0) || (dup2(stored_stderr, STDERR_FILENO) < 0))) - (void) close(STDERR_FILENO); + if (stderr_redirected) + if (stored_stderr < 0 || dup2(stored_stderr, STDERR_FILENO) < 0) + (void) close(STDERR_FILENO); stored_stderr = safe_close(stored_stderr); stdout_redirected = stderr_redirected = false; diff --git a/src/test/meson.build b/src/test/meson.build index 488d1ebaaa..4ae1210fe1 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -409,8 +409,7 @@ tests += [ [['src/test/test-firewall-util.c'], - [libfirewall, - libshared], + [libshared], [], 'HAVE_LIBIPTC'], diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c index d466e1b759..06e2d7b71b 100644 --- a/src/update-done/update-done.c +++ b/src/update-done/update-done.c @@ -17,8 +17,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include "alloc-util.h" #include "fd-util.h" #include "fileio.h" +#include "fs-util.h" #include "io-util.h" #include "selinux-util.h" #include "util.h" @@ -36,6 +38,7 @@ static int apply_timestamp(const char *path, struct timespec *ts) { _cleanup_fclose_ FILE *f = NULL; int fd = -1; int r; + _cleanup_(unlink_and_freep) char *tmp = NULL; assert(path); assert(ts); @@ -50,20 +53,20 @@ static int apply_timestamp(const char *path, struct timespec *ts) { if (r < 0) return log_error_errno(r, "Failed to set SELinux context for %s: %m", path); - fd = open(path, O_CREAT|O_WRONLY|O_TRUNC|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0644); + fd = open_tmpfile_linkable(path, O_WRONLY|O_CLOEXEC, &tmp); mac_selinux_create_file_clear(); if (fd < 0) { if (errno == EROFS) - return log_debug("Can't create timestamp file %s, file system is read-only.", path); + return log_debug("Can't create temporary timestamp file %s, file system is read-only.", tmp); - return log_error_errno(errno, "Failed to create/open timestamp file %s: %m", path); + return log_error_errno(errno, "Failed to create/open temporary timestamp file %s: %m", tmp); } f = fdopen(fd, "we"); if (!f) { safe_close(fd); - return log_error_errno(errno, "Failed to fdopen() timestamp file %s: %m", path); + return log_error_errno(errno, "Failed to fdopen() timestamp file %s: %m", tmp); } (void) fprintf(f, @@ -76,7 +79,15 @@ static int apply_timestamp(const char *path, struct timespec *ts) { return log_error_errno(r, "Failed to write timestamp file: %m"); if (futimens(fd, twice) < 0) - return log_error_errno(errno, "Failed to update timestamp on %s: %m", path); + return log_error_errno(errno, "Failed to update timestamp on %s: %m", tmp); + + /* fix permissions */ + (void) fchmod(fd, 0644); + r = link_tmpfile(fd, tmp, path); + if (r < 0) + return log_error_errno(r, "Failed to move \"%s\" to \"%s\": %m", tmp, path); + + tmp = mfree(tmp); return 0; } |