Adapted to libisofs revision 313

This commit is contained in:
Thomas Schmitt 2008-01-31 15:22:23 +00:00
parent 989609cb2b
commit 06145dfdc9
6 changed files with 75 additions and 18 deletions

View File

@ -455,7 +455,8 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
o->preferjoliet= 0; o->preferjoliet= 0;
o->uid= geteuid(); o->uid= geteuid();
o->gid= getegid(); o->gid= getegid();
o->mode= 0444; /* >>> would need 0555 for directories */ o->mode= 0444;
o->dirmode= 0555;
o->input_charset= NULL; o->input_charset= NULL;
o->hasRR= 0; o->hasRR= 0;
o->hasJoliet= 0; o->hasJoliet= 0;
@ -499,9 +500,19 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o, int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o,
uid_t uid, gid_t gid, mode_t mode) uid_t uid, gid_t gid, mode_t mode)
{ {
mode_t dirmode;
o->uid= uid; o->uid= uid;
o->gid= gid; o->gid= gid;
o->mode= mode; o->mode= mode;
dirmode= mode;
if(dirmode & S_IRUSR)
dirmode|= S_IXUSR;
if(dirmode & S_IRGRP)
dirmode|= S_IXGRP;
if(dirmode & S_IROTH)
dirmode|= S_IXOTH;
o->dirmode= dirmode;
return(1); return(1);
} }
@ -516,6 +527,22 @@ int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o,
} }
int isoburn_ropt_set_default_dirperms(struct isoburn_read_opts *o,
mode_t mode)
{
o->dirmode= mode;
return(1);
}
int isoburn_ropt_get_default_dirperms(struct isoburn_read_opts *o,
mode_t *mode)
{
*mode= o->dirmode;
return(1);
}
int isoburn_ropt_set_input_charset(struct isoburn_read_opts *o, int isoburn_ropt_set_input_charset(struct isoburn_read_opts *o,
char *input_charset) char *input_charset)
{ {

View File

@ -160,6 +160,8 @@ struct isoburn_read_opts {
uid_t uid; /**< Default uid when no RR */ uid_t uid; /**< Default uid when no RR */
gid_t gid; /**< Default uid when no RR */ gid_t gid; /**< Default uid when no RR */
mode_t mode; /**< Default mode when no RR (only permissions) */ mode_t mode; /**< Default mode when no RR (only permissions) */
mode_t dirmode; /**< Default mode for directories
when no RR (only permissions) */
/** /**
* Input charset for RR file names. NULL to use default locale charset. * Input charset for RR file names. NULL to use default locale charset.

View File

@ -181,7 +181,8 @@ int isoburn_read_image(struct burn_drive *d,
iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet); iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet);
iso_read_opts_set_no_iso1999(ropts, read_opts->noiso1999); iso_read_opts_set_no_iso1999(ropts, read_opts->noiso1999);
iso_read_opts_set_preferjoliet(ropts, read_opts->preferjoliet); iso_read_opts_set_preferjoliet(ropts, read_opts->preferjoliet);
iso_read_opts_set_default_permissions(ropts, read_opts->mode); iso_read_opts_set_default_permissions(ropts,
read_opts->mode, read_opts->dirmode);
iso_read_opts_set_default_uid(ropts, read_opts->uid); iso_read_opts_set_default_uid(ropts, read_opts->uid);
iso_read_opts_set_default_gid(ropts, read_opts->gid); iso_read_opts_set_default_gid(ropts, read_opts->gid);
iso_read_opts_set_input_charset(ropts, read_opts->input_charset); iso_read_opts_set_input_charset(ropts, read_opts->input_charset);

View File

@ -269,15 +269,33 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);
@param uid user id number (see /etc/passwd) @param uid user id number (see /etc/passwd)
@param gid group id number (see /etc/group) @param gid group id number (see /etc/group)
@param mode permissions (not file type) as of man 2 stat. @param mode permissions (not file type) as of man 2 stat.
With directories, r-permissions will automatically imply
x-permissions. See isoburn_ropt_set_default_dirperms() below.
*/ */
int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o, int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o,
uid_t uid, gid_t gid, mode_t mode); uid_t uid, gid_t gid, mode_t mode);
int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o, int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o,
uid_t *uid, gid_t *gid, mode_t *mode); uid_t *uid, gid_t *gid, mode_t *mode);
/** Default attributes to use on directories if no RockRidge extension
gets loaded.
Above call isoburn_ropt_set_default_perms() automatically adds
x-permissions to r-permissions for directories. This call here may
be done afterwards to set independend permissions for directories,
especially to override the automatically added x-permissions.
*/
int isoburn_ropt_set_default_dirperms(struct isoburn_read_opts *o,
mode_t mode);
int isoburn_ropt_get_default_dirperms(struct isoburn_read_opts *o,
mode_t *mode);
/** Input charset for RR file names. NULL to use default locale charset.
>>> what if not NULL ?
/** Set the character set for reading RR file names from ISO images.
@param input_charset Set this to NULL to use the default locale charset.
For selecting a particular character set, submit its
name, e.g. as listed by program iconv -l.
Example: "UTF-8".
*/ */
int isoburn_ropt_set_input_charset(struct isoburn_read_opts *o, int isoburn_ropt_set_input_charset(struct isoburn_read_opts *o,
char *input_charset); char *input_charset);
@ -343,7 +361,9 @@ int isoburn_igopt_destroy(struct isoburn_imgen_opts **o, int flag);
/** ISO level to write at. /** ISO level to write at.
>>> what is an ISO level ? xorriso uses 2. @param level is a term of the ISO 9660 standard. It should be one of:
1= filenames restricted to form 8.3
2= filenames allowed up to 31 characters
*/ */
int isoburn_igopt_set_level(struct isoburn_imgen_opts *o, int level); int isoburn_igopt_set_level(struct isoburn_imgen_opts *o, int level);
int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level); int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
@ -351,15 +371,15 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
/** Which extensions to support. /** Which extensions to support.
@param ext Bitfield: @param ext Bitfield:
bit0= rockridge bit0= rockridge
Rock Ridge extensions add POSIX file attributes like Rock Ridge extensions add POSIX file attributes like
owner, group, access permissions, long filenames. owner, group, access permissions, long filenames. Very
Very advisable if the designed audience has Unix style systems. advisable if the designed audience has Unix style systems.
bit1= joliet bit1= joliet
Longer filenames for Windows systems. Longer filenames for Windows systems.
Weaker than RockRidge, but also usable with Linux. Weaker than RockRidge, but also readable with Linux.
bit2= iso1999 bit2= iso1999
This is rather exotic. Better do not surprise the readers. This is rather exotic. Better do not surprise the readers.
*/ */
#define isoburn_igopt_rockridge 1 #define isoburn_igopt_rockridge 1
#define isoburn_igopt_joliet 2 #define isoburn_igopt_joliet 2
@ -418,7 +438,8 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);
/** Whether and how files should be sorted. /** Whether and how files should be sorted.
@param value Bitfield: bit0= sort_files_by_weight @param value Bitfield: bit0= sort_files_by_weight
files should be sorted based on their weight. files should be sorted based on their weight.
>>> what is weight ? Weight is attributed to files in the image
by libisofs call iso_node_set_sort_weight().
*/ */
#define isoburn_igopt_sort_files_by_weight 1 #define isoburn_igopt_sort_files_by_weight 1
int isoburn_igopt_set_sort_files(struct isoburn_imgen_opts *o, int value); int isoburn_igopt_set_sort_files(struct isoburn_imgen_opts *o, int value);
@ -461,8 +482,11 @@ int isoburn_igopt_get_over_ugid(struct isoburn_imgen_opts *o,
int *replace_uid, int *replace_gid, int *replace_uid, int *replace_gid,
uid_t *uid, gid_t *gid); uid_t *uid, gid_t *gid);
/** Set this to NULL to use the default output charset. /** Set the charcter set to use for representing filenames in the image.
>>> What if not NULL or not want default ? @param output_charset Set this to NULL to use the default output charset.
For selecting a particular character set, submit its
name, e.g. as listed by program iconv -l.
Example: "UTF-8".
*/ */
int isoburn_igopt_set_out_charset(struct isoburn_imgen_opts *o, int isoburn_igopt_set_out_charset(struct isoburn_imgen_opts *o,
char *output_charset); char *output_charset);

View File

@ -134,6 +134,9 @@ copy_files libisofs/*.[ch] "$lone_dir"/libisofs
# To get a common version.h # To get a common version.h
cat version.h.in >> "$lone_dir"/version.h.in cat version.h.in >> "$lone_dir"/version.h.in
sed -e 's/FNM_FILE_NAME/FNM_PATHNAME/g' \
<libisofs/tree.c >"$lone_dir"/libisofs/tree.c
# <<< obsoleted # <<< obsoleted
if test 1 = 0 if test 1 = 0

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.01.29.211543" #define Xorriso_timestamP "2008.01.31.152131"