| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This silences a Meson warning.
Signed-off-by: Simon McVittie <smcv@debian.org>
|
|\
| |
| |
| |
| | |
console: Pacify `gcc -fanalyzer`
See merge request GNOME/libglnx!26
|
| |
| |
| |
| |
| |
| | |
It's not smart enough to follow the conditionals here to see
that `textlen > 0` implies `text != NULL`. But the cost of an additional
check is probably nil, so let's be robust to future code refactoring.
|
|\ \
| |/
|/|
| |
| | |
glnx-dirfd: Add a rewinddir() wrapper
See merge request GNOME/libglnx!25
|
|/
|
|
|
|
|
|
| |
This is useful in the same situations rewinddir() is. My use-case right
now is to remove some of the files from a directory, then go back through
the directory removing symlinks that pointed to those files.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|\
| |
| |
| |
| | |
glnx_file_copy_at: Add GLNX_FILE_COPY_NOCHOWN
See merge request GNOME/libglnx!22
|
|/
|
|
|
|
|
|
|
|
| |
In some contexts, we may want to copy a root-owned file but we're not
running as root so we can't `fchown` it. (The case I'm interested in is
actually a bit more obscure than this: running in a supermin VM as root,
and wanting to copy a file we created onto a 9p mount where we don't
have perms to `fchown`).
Add a `GLNX_FILE_COPY_NOCHOWN` to handle this case.
|
|
|
|
| |
Prep for more work on porting rpm-ostree to use cxx-rs.
|
|
|
|
| |
Prep for using C++ in rpm-ostree (temporarily).
|
|
|
|
|
| |
I may use https://cxx.rs/ in rpm-ostree, which means we
need our dependencies' headers to build in C++ mode.
|
|\
| |
| |
| |
| | |
Add GLNX_FILE_REPLACE_INCREASING_MTIME
See merge request GNOME/libglnx!21
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This make replaced files have a strictly increasing st_mtime. The main
usecase I have for this is to ensure the summary file mtime increases
because the flatpak tests are failing due to the python httpd used
in the tests rely on st_mtime for the http If-Modified-Since header.
For the tests this breaks all the time since we're just doing a lot of
summary updates. However, I can see this accidentally happening in the
wild too, so i think its proper to always ensure the new summary is
"newer", even though it means it will be timestamped slightly in the
future. In practice this will not happen regularly, and the times it
*does* happen we really do need it.
|
|\
| |
| |
| |
| | |
glnx-fdio: try $TMPDIR if /var/tmp doesn't exist
See merge request GNOME/libglnx!20
|
| |
| |
| |
| | |
As suggested by Colin Walters.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`glnx_open_anonymous_tmpfile` attempts to create an fd in `/var/tmp`
regardless of the value of `$TMPDIR`.
This is _usually_ okay, but can fail in some contexts, such as in the
[NixOS][1] build environment, which doesn't have `/var` mapped at all.
To avoid failing in this case, if the inner call to
`glnx_open_anonymous_tmpfile_full` fails, we retrieve the value of
`$TMPDIR` and try calling `glnx_open_anonymous_tmpfile_full` again with
that directory instead.
In the fast path (i.e. where `/var/tmp` exists), functionality is
unchanged.
[1]: https://nixos.org/
|
|\
| |
| |
| |
| | |
xattrs: Add better error prefixing
See merge request GNOME/libglnx!19
|
|/
|
|
|
|
|
| |
Related to
https://github.com/coreos/coreos-assembler/issues/1703
This should help debug things like this in the future.
|
|\
| |
| |
| |
| | |
libglnx.m4: Fix grammar in help string
See merge request GNOME/libglnx!17
|
| | |
|
|\ \
| |/
|/|
| |
| | |
glnx-fdio: handle EOPNOTSUPP for copy_file_range
See merge request GNOME/libglnx!18
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using `copy_file_range` to target a source and dest on the same NFS
mount on some older kernel versions, it's possible that we can get
`EOPNOTSUPP` e.g. if the NFS server doesn't support server-side copy.
We hit this in the FCOS release pipeline where we run `ostree
pull-local` to pull content between two repos on the same mount from
inside an OpenShift cluster on top of RHEL7.
Nowadays, it seems like the kernel itself falls back to a more generic
version of `copy_file_range()` at least. Though to be compatible with
older kernels, let's add `EOPNOTSUPP` to the list of errors we interpret
as "cfr possibly available, but can't be done for this specific
operation".
|
|\
| |
| |
| |
| | |
fdio: Be const-correct for struct stat
See merge request GNOME/libglnx!16
|
|/
|
|
|
|
|
|
| |
We don't modify this struct (if non-NULL), so it can be const. In
particular, this is helpful if calling glnx_file_copy_at() from
nftw() to implement the equivalent of `cp -a --reflink=auto`.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|\
| |
| |
| |
| | |
README: update link to libgsystem
See merge request GNOME/libglnx!15
|
| |
| |
| |
| | |
I was curious.
|
|\ \
| | |
| | |
| | |
| | | |
_GLNX_TEST_SCOPED_TEMP_DIR: Fix memory and fd leak
See merge request GNOME/libglnx!14
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This doesn't really matter, since it only happens when our process is
about to exit anyway, but it makes it easier to use AddressSanitizer
and similar tools.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|\ \
| |/
|/|
| |
| | |
_GLNX_TEST_SCOPED_TEMP_DIR: Mark variable as G_GNUC_UNUSED
See merge request GNOME/libglnx!13
|
|/
|
|
|
|
|
| |
Otherwise, clang diagnoses it as unused. It is - deliberately - only
allocated and cleaned up, with no other use.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|\
| |
| |
| |
| | |
Build successfully on GLib 2.32
See merge request GNOME/libglnx!7
|
| |
| |
| |
| | |
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If you're building on a really old GLib, you might not have GTask,
GSubprocess or g_markup_parse_context_unref(), among others. This gets
libglnx compiling (and apparently working) on GLib versions as old
as 2.32.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|/
|
|
|
|
|
| |
This will be necessary if targeting GLib versions older than 2.34,
such as GLib 2.32 in Ubuntu 12.04 and the Steam Runtime.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|\
| |
| |
| |
| | |
build-sys: Add libglnx-testlib.c to Automake
See merge request GNOME/libglnx!12
|
|/
|
|
| |
It was introduced in a previous commit but only added to `meson.build`.
|
|\
| |
| |
| |
| | |
fdio: Add glnx_tmpfile_reopen_rdonly()
See merge request GNOME/libglnx!11
|
|/
|
|
| |
For fs-verity.
|
|\
| |
| |
| |
| | |
Add Meson build system and Gitlab-CI
See merge request GNOME/libglnx!8
|
| |
| |
| |
| |
| |
| | |
As suggested by @jlebon on libglnx!8.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
| |
| |
| |
| | |
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
| |
| |
| |
| |
| |
| |
| | |
This matches what Autotools would do, and what our header is expecting.
It silences -Wundef.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
| |
| |
| |
| |
| | |
This only uses Meson because it's not straightforward to do a standalone
build with the Autotools goop.
|
| |
| |
| |
| |
| |
| |
| | |
The temporary directory will be deleted on success, but will remain
intact on failure.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
Add glnx_open_anonymous_tmpfile_full() allowing you to specify the directory
See merge request GNOME/libglnx!10
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
This is useful if you need the file to be on a particular filesystem.
In particular, flatpak wants this to make tempfiles on /tmp for things
we need to write during flatpak run, such as the libseccomp output fd.
We've had "flatpak run" stop working in low disk situations without this,
so its nice to be able to fix it.
|
|\ \
| | |
| | |
| | |
| | | |
macros: Add TEMP_FAILURE_RETRY for musl
See merge request GNOME/libglnx!9
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
TEMP_FAILURE_RETRY is glibc specific, add a definition for musl.
See https://github.com/ostreedev/ostree/issues/731
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
|\ \
| |/
|/|
| |
| | |
missing: Remove unused <uchar.h>
See merge request GNOME/libglnx!6
|