Age | Commit message (Collapse) | Author |
|
Officially ceding maintainership of metastore to Przemyslaw Pawelczyk.
|
|
Signed-off-by: David Härdeman <david@hardeman.nu>
|
|
As a bonus you can install out-of-tree now via make -f.
Fixes #22.
|
|
As a bonus you can build out-of-tree now via make -f.
It's part of the work related to issue #22.
|
|
|
|
See:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Importance_of_linking_order
Fixes #29.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
Personally I avoid using non-ASCII letters in commit author information
and most source files, thus you can often see my name with L instead of
L with stroke. The usual exceptions are AUTHORS and .mailmap file, so I
can remain using ASCIIfied version, yet `git shortlog` shows my name
properly.
|
|
It was accidentally changed when I was amending Dan's patch, which
ended in the repo as commit:
b6f60de Add support for deleting directories with -a -E.
|
|
metastore depends now on libbsd, because of strmode() function.
This commit fixes issue #28.
|
|
|
|
|
|
|
|
During implementation and tests of new dump action, I've noticed that
while non-textual values in extended attributes were properly stored in
.metadata file, retrieving them from it was simply broken, i.e.
anything beyond first null byte was zeroed.
Small quantum of solace is the fact that apparently metastore users
rarely use extended attributes or at least rarely with non-textual
values, because otherwise they would surely report such crucial bug.
Let's perform simple test to show the problem:
$ mkdir -p ~/testxattr/ && cd ~/testxattr/ && touch test
$ setfattr -n user.txt -v "tekst" test
$ setfattr -n user.bin -v 0x020100ff00 test
$ getfattr -d -e hex test
# file: test
user.bin=0x020100ff00
user.txt=0x74656b7374
$ metastore -s test
$ OFFSET=$(($(grep -abo user.bin .metadata | sed 's/:.*//')+8+1+4))
$ xxd -p -l5 -s $OFFSET .metadata
020100ff00
So far everything seems fine, i.e. user.bin xattr is properly stored.
$ metastore -c test
./test: xattr
Apparently on-disk test xattrs differ from those in metadata file,
even though they should not!
Let's apply those from metadata file and show how they look on-disk.
$ metastore -a test
./test: changing metadata
./test: removing xattr user.bin
./test: adding xattr user.bin
$ getfattr -d -e hex test
# file: test
user.bin=0x0201000000
user.txt=0x74656b7374
Oh no! Extended attribute with non-textual data has been corrupted now.
But no more, because this commit fixes it!
As long as you haven't stored corrupted xattrs in metadata file, you can
still recover on-disk ones by applying them from metadata file using
fixed version of metastore.
|
|
|
|
|
|
|
|
|
|
Turn
version 2 of the License
into
only version 2 of the License is applicable
and restore the semicolon preceding it.
|
|
Wording has been changed only in Makefile, where:
Free Software
has been fixed into proper name:
Free Software Foundation, Inc.
with trailing comma separating it from address.
|
|
|
|
|
|
|
|
canonicalize_file_name() is not portable, but it can be easily replaced.
Now we're a bit friendlier to non-GNU libcs, like musl.
|
|
Conflicts:
NEWS
|
|
|
|
This is analagous script to the pre-commit one, but it applies metadata
automatically after a git checkout.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
|
|
Store extradirs list ordered by pathlen descendingly, so one traversal
should be enough to remove empty dirs.
|
|
Update extradirs list after successful rmdir(), so already removed
directory won't be provided to rmdir() again.
|
|
|
|
This is analagous to the -e option to create empty directories.
It simply removes them when they are not present in the metadata.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
Scripts seem to be POSIX shell conformant, so no need to be specific.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
|
|
|
|
|
|
xattr.h from libattr is not necessary, because glibc ships its own
xattr.h for many years already (since v2.3, so it's like 13 years).
libattr's header included errno.h, thus now it needs to be included
explicitly.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
|
|
Literal `-` prints as a hyphen, which doesn't conform to common man page
guidelines for writing options that have a leading dash. Proper form is:
\-
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
This removes warnings shown during build with -Wextra flag.
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
Signed-off-by: Przemyslaw Pawelczyk <przemoc@gmail.com>
|
|
`git log` provides detailed stuff. NEWS file should only contain
user-visible or really important changes.
|
|
I think that adding this directory 3 years ago to the repository was
a mistake. If there will be a demand for it, some Makefile rule
bootstrapping debian/ directory could be devised.
|
|
New description shamelessly copied from David's software page:
http://david.hardeman.nu/software.php (https://archive.today/vW7Ar)
|
|
|
|
|
|
Remove duplicated code introduced by 47fa5ae and use settings instead.
|
|
No more passing particular options (like git or mtime) to functions.
The structure is meant to be immutable after filling during startup.
|
|
|
|
|
|
* Switch to debhelper compat level 9.
* Enable all hardening options.
* Don't overwrite environment CFLAGS, use CPPFLAGS.
* Bump Standards-Version to 3.9.3, no changes needed.
|