mirror of
https://github.com/systemd/systemd
synced 2024-07-21 10:17:21 +00:00
Merge branch 'master' into meson-no-libudev
This commit is contained in:
commit
0bc9115251
|
@ -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 += \
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -409,8 +409,7 @@ tests += [
|
|||
|
||||
|
||||
[['src/test/test-firewall-util.c'],
|
||||
[libfirewall,
|
||||
libshared],
|
||||
[libshared],
|
||||
[],
|
||||
'HAVE_LIBIPTC'],
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue