#include "wimlib/unix_data.h"
#include "wimlib/wim.h"
#include "wimlib/win32.h" /* for realpath() equivalent */
+#include "wimlib/xattr.h"
#include "wimlib/xml.h"
#define WIMLIB_EXTRACT_FLAG_FROM_PIPE 0x80000000
features->unix_data++;
if (inode_has_object_id(inode))
features->object_ids++;
+ if (inode_has_linux_xattrs(inode))
+ features->linux_xattrs++;
}
/* Tally features necessary to extract a dentry and the corresponding inode. */
WARNING("Ignoring Windows NT security descriptors of %lu files",
required_features->security_descriptors);
- /* UNIX data. */
+ /* Standard UNIX metadata */
if ((extract_flags & WIMLIB_EXTRACT_FLAG_UNIX_DATA) &&
required_features->unix_data && !supported_features->unix_data)
{
- ERROR("Extraction backend does not support UNIX data!");
+ ERROR("Requested UNIX metadata extraction, but extraction "
+ "backend does not support it!");
return WIMLIB_ERR_UNSUPPORTED;
}
-
if (required_features->unix_data &&
!(extract_flags & WIMLIB_EXTRACT_FLAG_UNIX_DATA))
{
- WARNING("Ignoring UNIX metadata of %lu files",
+ WARNING("Ignoring UNIX metadata (uid/gid/mode/rdev) of %lu files",
required_features->unix_data);
}
+ /* Linux-style extended attributes */
+ if (required_features->linux_xattrs &&
+ (!supported_features->linux_xattrs ||
+ !(extract_flags & WIMLIB_EXTRACT_FLAG_UNIX_DATA)))
+ {
+ WARNING("Ignoring Linux-style extended attributes of %lu files",
+ required_features->linux_xattrs);
+ }
+
/* Object IDs. */
if (required_features->object_ids && !supported_features->object_ids) {
WARNING("Ignoring object IDs of %lu files",