There are various problems with the rawhide image currently and I don't
know how to workaround them. Let's use fedora:latest (temporarily) to fix
our pipeline.
extractor: Ensure that absolute paths are relative to destination
Currently, archive entries with absolute paths lose their paths when
extracting, or even cause crashes. The code expects that the
`autoar_extractor_do_sanitize_pathname` function will always return paths
inside, or equal to the destination directory, but this is not true. The
problem is that the `g_file_get_child` resp. `g_file_resolve_relative_path`
functions expect relative paths, but are used with absolute paths also.
Let's convert absolute paths to relative ones to ensure that they will
be exctracted as relative to the destination dir. Also, update the
corresponding test case to confirm this.
a6de6e3...
by
Matthias Clasen <email address hidden>
compressor: Plug some memory leaks
Valgrind complained that the g_list_copy_deep call here leaks
memory. In fact, the set_property implementation already takes
care of copying the list and reffing the objects, so don't
do it here.
tests: Skip conflicting files by default over test-extract
By default, the conflicting files are skipped and this default behavior is
also used by Nautilus and other clients. However, the `test-extract` util
overwrites the files instead. Let's honor the default behavior here as well
to make debugging easier.
The debug output doesn't contain info when conflict happens. This makes
hard to debug issues which are caused by them. Let's print one when
a conflict happens to make it obvious.
extractor: Prevent redundant path name handling for equal prefixes
Currently, redundant path name handling happens when archive files have
a common prefix and an equal destination is returned from the `decide-destination`
signal. In this case, the old prefix is removed and the new one (the equal one)
is added again. Let's detect this case and prevent the redundancy.