| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
The sync calls should not be needed, so I'm dropping them as well.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This command is written in bash and takes four parameters:
* a device with a btrfs file system to mount
* the source subvolume name
* the target subvolume name
* the path to a patch file or stream
It then creates the target subvolume as a snapshot of the source
subvolume, applies the patch in there, then creates a <target>-run
snapshot and copies the boot files (vmlinuz, extlinux.conf) to the root
file system. Lastly, it adjusts extlinux.conf to point to the -run
snapshot.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit converts tbdiff to being an autotools-based project. This
means that we now support the usual
autoreconf -i && ./configure && make && make install
process, plus we provide 'make check' for the tbdiff test suite.
The tbdiff library is now build as a shared library and is also
installed into the system for others to use. The library is
libtool-versioned and ships a pkg-config file (tbdiff-1.pc).
The headers were adjusted so that only tbdiff/tbdiff.h may be included
directly; all others are considered internal. The tbdiff-create and
tbdiff-deploy tools were changed to include this header file.
The tbdiff library is still GPL, not LGPL. We might want to change this
in the future.
Thanks to switching to autotools we now have a way to make releases by
means of 'make dist' and 'make distcheck'. Unfortunately, the latter
currently fails, probably due to something being missing in
tbdiff/Makefile.am.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
|/ |
|
|
|
|
|
|
| |
Added Cross-endian platform support
Changed gids and uids to respective variables
Forced time_t to be written as a uint64_t to support cross-architecture
|
|
|
|
|
|
| |
In future it should be standardised so that diffs can be made on a different
architecture to the one they are deployed on, but currently it doesn't
work on the same architecture if that architecture is 64-bit
|
| |
|
| |
|
|
|
|
|
| |
Fixed inconsequential memory leak in tbdiff_create.c
Lost memory would be cleaned up by OS at exit, but valgrind complains
|
| |
|
|
|
|
|
|
| |
directories can be inserted, to ensure mtime is not equal
now dir_add_remove fails because the mtime of the directory
changed after a file in it was altered
|
|
|
|
|
|
|
|
|
|
|
| |
Actually it was losing all metadata other than that which changed
metadata was lost when the file was removed, but only the data
that changed was applied
the fix is to ignore the metadata diff mask as all the data is
written to the binary diff, however it needn't be, so if it gets
fixed to only send what changed, the metadata will have to be
read before the file is recreated and the metadata changed based
on what was sent in the binary diff
|
| |
|
| |
|
|
|
|
|
| |
The corrected test also fails, however, so I guess I was right
about there being a bug, though that is coincidental.
|
|
|
|
|
| |
added test for group changes in symlinks
symlinks change the group of what is referenced
|
|
|
|
| |
directory would remove the directory
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
tests/test_lib.sh
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So expected failures can be made by comparing the return code to the expected
Also socket tests have been added, add and diff expect create to fail for now
The only sensible operation on sockets is to remove them as they need a
program to bind them and that program (or a child) needs to be a server
So tbdiff should fail if it has to perform such an act.
It may be worth having an option to ignore the change, but for now it's better
to fail and let the user know why so they can fix it
|
| |
| |
| |
| |
| |
| |
| | |
tbdiff-create will print a suggested fix
Made check_command shell function able to use any type of command
for return value checking
Fixed minor bugs in TBD_ERROR macro not being used for some errors
|
|/
|
|
|
|
|
|
|
|
| |
So expected failures can be made by comparing the return code to the expected
Also socket tests have been added, add and diff expect create to fail for now
The only sensible operation on sockets is to remove them as they need a
program to bind them and that program (or a child) needs to be a server
So tbdiff should fail if it has to perform such an act.
It may be worth having an option to ignore the change, but for now it's better
to fail and let the user know why so they can fix it
|
| |
|
|
|
|
| |
different
|
| |
|
| |
|
|
|
|
|
|
| |
The temporary test directory is now made using mktemp -d instead of using uuid
mktemp comes with coreutils, uuid does not, and mktemp makes the directory for
you.
|
| |
|
|
|
|
|
|
|
| |
struct dirent pointer returned from readdir was being used after the
DIR had been closed. malloc was reusing that memory when trying to construct
a tbd_stat_t, but tried to fill it with data from the struct dirent which was
owned by the DIR.
|
|
|
|
|
|
| |
TBD_ERROR should work when NDEBUG is defined. Previously
return tbd_error(e); -> return return e;
tbd_error is now an inline function, it feels tidier than statement expressions
|
| |
|
| |
|
| |
|
| |
|