[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Request for advise with struct stat, ACL, xattr, zlib (2nd try)


Sorry for sending the same old mail again.
It should have been this one:

I had a look at the buildd logs of our libisofs



I am puzzled by this warning:

  libisofs/builder.c:209: warning: passing
  argument 2 of 'aaip_cleanout_st_mode' from
  incompatible pointer type

Is stat.st_mode not of type mode_t ?

The line in question is:

  aaip_cleanout_st_mode(a_text, &(info.st_mode), 4 | 16);

Argument number two is a component of
  struct stat info;

The function prototype is
  int aaip_cleanout_st_mode(char *acl_text, mode_t *st_mode, int flag);

Can somebody please have a look into
  struct stat.st_mode
is of different size than mode_t ?
The warning appears on amd64 and on i386.


Another unexplainable warning on both and also
on Linux i386:

  libisofs/tree.c:917: warning: 'brk_info' may
  be used uninitialized in this function

I see in
line 917:

  char *ptr, *brk_info, *component;

  ... no goto , no open blocks ...

  component = strtok_r(ptr, "/", &brk_info);

and understand from man 3 strtok_r that brk_info
is to be initialized by that function.

Looking into my local /usr/include/string.h
brings no insight either.
Does anybody have an idea what the compiler
wants to tell me ?


None of the optional libraries and system
features is used in the buildd compile runs:
- libacl
- support for Extended Attributes
- zlib

At least on Linux this astonishes me. I'll have
to ask George for exploring the reason.

Nevertheless, the aspects of ACL and xattr are
also porting issues.


It might be that a Linux-centric configure test
prevents the use of the prepared ACL adapter
for FreeBSD even on the original system.

  checking sys/acl.h usability... no
  checking sys/acl.h presence... no
  checking for sys/acl.h... no

Do the buildd machines have ACL support
installed ?
Are there any header files like <sys/acl.h>
to include ?

To test ACL on Debian kfreebsd would require
a little hack in ./configure, an
#ifdef __FreeBSD_kernel__, and somebody who
has files with non-trivial ACLs.
(The reward would be a backup engine which
 can record and restore ACLs in ISO images.
 The images are mountable but OS kernels
 show no ACLs in them.)

Anybody bored enough to volunteer ?


Are there Extended Attributes with any of the
kfreebsd filesystems ?
See on Linux: man 1 getfattr, setfattr.

If yes, then i would have to de-Linuxify

  checking attr/xattr.h usability... no
  checking attr/xattr.h presence... no
  checking for attr/xattr.h... no

and i would need documentation of functions
like Linux man 2 listxattr, getxattr,
removexattr, setxattr. 


The lack of zlib is a bit pity:

  checking zlib.h usability... no
  checking zlib.h presence... no
  checking for zlib.h... no

as it would allow to write compressed files into
the image on-the-fly.

Is there zisofs support in the FreeBSD kernel ?
(Linux can uncompress zisofs formatted files
 by its read-only isofs filesystem code.
 So one can mount ISO images with compressed
 files and sees them uncompressed.)

There is also portable intransparent compression
if zlib is available. This produces *.gz files
inside the ISO image.
You unpack them from mounted images by gunzip.


Have a nice day :)


Reply to: