Commit Graph

373 Commits

Author SHA1 Message Date
da4634a593 Removed a redundant test expression 2009-05-02 19:57:39 +02:00
f18d5157dc Caused image root to memorize its eventual PX inode number. 2009-05-01 16:18:59 +02:00
1195614881 Removed a redundant line of code 2009-05-01 15:02:30 +02:00
1218e6e32d New API call iso_read_opts_set_new_inos() 2009-05-01 15:00:43 +02:00
95381ce258 Made directory inodes persistent during multi-session.
The reason is to produce a continued ino history for eventual incremental
backups from ISO images.
2009-05-01 12:49:37 +02:00
19fd87ef7b Small adjustments in new code after review. 2009-04-29 12:52:32 +02:00
d20da80767 Transfering inode numbers from PX entries to IsoNode during image import
and using these numbers in PX entries during next image generation.
This also answers the concerns about PX without ino in RRIP 1.12
and PX with ino in RRIP 1.10 images produced by mkisofs.
2009-04-28 22:40:15 +02:00
5009d1038d Made early preparations for implementation of hard link persistence 2009-04-26 12:57:17 +02:00
1ae2a39d1d Registered stream types "gzip" and "pizg" 2009-04-24 08:45:03 +02:00
70af4872c9 Clarification of iso_stream_get_source_path() result 2009-04-19 07:10:22 +02:00
71d491ed37 Version leap to 0.6.19 2009-04-17 14:35:30 +02:00
ece42746ec Version leap to 0.6.18 2009-04-15 20:50:34 +02:00
3f90111052 Removed change timestamps of 0.6.17 2009-04-15 16:50:44 +02:00
d87e5721db Removed some development remarks
and implemented skipping of zisofs headers larger than 16 bytes.
2009-04-15 13:22:20 +02:00
00802a1934 New API functions iso_file_add_gzip_filter() and iso_gzip_get_refcounts(). 2009-04-14 22:26:00 +02:00
c2f502b9a8 Silenced a compiler warning with zisofs filter 2009-04-14 11:48:41 +02:00
1f2fd259ae New API call int iso_node_zf_by_magic() for marking pre-compressed data
file nodes which were originally produced by program mkzftree.
2009-04-13 20:51:38 +02:00
9a873ed693 Fixed a bug with non-appending multi-session and zisofs decompression. 2009-04-12 16:21:46 +02:00
ec672ab903 Making sure that ZF fields get appropriately carried on with multi-session
even if osiz filters have been removed.
2009-04-12 13:13:04 +02:00
99ddd5c116 New API functions iso_zisofs_set_params(), iso_zisofs_get_params() 2009-04-11 19:10:37 +02:00
63ddfc1c94 Global reference counters for both zisofs filter types and
new API function iso_zisofs_get_refcounts()
2009-04-11 15:25:40 +02:00
6886777ea0 Installing a zisofs uncompression filter on file from ISO image which bear
a ZF entry. Storing ZF entries during image write if that filter is found
directly on a fsrc stream from the loaded image and content does not get
copied.
2009-04-11 14:15:34 +02:00
77591e4546 Using faster compression level
and fixed a bug with uncompression if the last block is all zero.
2009-04-11 07:49:20 +02:00
540df15ec9 Writing ZF entries if filters and image generation mode indicate so. 2009-04-10 22:38:16 +02:00
ce7a5c810f Implemented a zisofs uncompression filter. 2009-04-10 12:16:41 +02:00
a809a87eef New API call iso_file_add_zisofs_filter() (needs -lz and <zlib.h>).
This does not produce ZF entries yet but filtered file content already
suits mkzftree -uF
2009-04-09 16:18:50 +02:00
1b5328d619 Corrected a remnant "AA" in AAIP specs. 2009-04-07 18:11:30 +02:00
d565ae87f4 Removed dangerous test code of Libisofs_file_src_cmp_non_zerO. 2009-04-07 12:21:35 +02:00
98a6db7f7f Made comparison of file sizes in iso_file_src_cmp() unconditional. 2009-04-07 12:17:52 +02:00
8a0be8ca19 Corrected test of Libisofs_setlocale_in_iniT. 2009-04-07 12:13:22 +02:00
dd1cde0379 Made portability improvement Libisofs_avoid_using_allocA unconditional. 2009-04-07 12:07:48 +02:00
d8d2709de9 Made bug fix Libisofs_rrip_1_10_er_bugfiX unconditional 2009-04-07 11:52:03 +02:00
854a3b8088 Made bug fix Libisofs_external_filters_selecT unconditional 2009-04-07 11:45:17 +02:00
e8f8876ee6 New API function iso_stream_get_source_path() tries to obtain a source
path depending on the stream class.
2009-04-06 14:19:49 +02:00
f709a95fda Some documentation polishing in libisofs.h 2009-04-06 12:25:55 +02:00
d98081f173 (Forgot to store libisofs.h before rev 514) 2009-04-06 09:56:26 +02:00
6389bbbf58 Changed freshly introduced iso_file_get_external_filter()
to iso_stream_get_external_filter().
2009-04-06 09:52:21 +02:00
b27bcc7022 Experiment about select() versus non-blocking i/o. select() lost. 2009-04-05 14:48:03 +02:00
f2b7872fc6 Fixed a bug about detection of failure inside iso_file_add_external_filter() 2009-04-05 12:29:37 +02:00
da125e8f6b Changed sequence of fork and stream opening in extf_stream_class.open().
So the child does not inherit the pipe inlets of underlying filters
which would stay open and prevent those underlying filter children
from seeing EOF at their input.
2009-04-05 09:56:12 +02:00
198f6536bc New API call iso_node_lookup_attr()
and new xattr "isofs.st" for image start timestamp.
2009-04-03 15:34:23 +02:00
437713cd8e Moved storage location of suffix from xorriso into IsoExternalFilterCommand 2009-04-02 18:07:27 +02:00
0a265d9d4f Changed IsoExternalFilterCommand.behavior bit0.
The filter does not get installed if input size is 0.
This resembles more the other behavior bits.
2009-04-02 09:14:21 +02:00
806ea7b82e New component IsoExternalFilterCommand.name 2009-04-01 17:53:41 +02:00
e7853df2f4 Changed some documentation references from AAIP-1.0 to AAIP-2.0. 2009-03-31 13:00:33 +02:00
ece52dc070 Fixed a false success return value with iso_aa_lookup_attr(). 2009-03-31 12:16:19 +02:00
21de3e2087 Switched from AAIP-1.0 with field "AA" to AAIP-2.0 with field "AL"
because ancient Apple ISO 9660 already used "AA".
Old AAIP-1.0 enhanced images can still be read and luckily their AAIP fields
can be distinguished from eventual Apple AA fields.
2009-03-31 11:40:58 +02:00
d28351c5a4 Adjustment of minimal size for a IsoExternalFilterCommand.behavior bit2 filter 2009-03-29 18:45:00 +02:00
2534be5b5d Implemented IsoExternalFilterCommand.behavior bits 1 and 2
which control revocation due to insufficient size reduction.
2009-03-29 14:37:26 +02:00
681d092118 New IsoStream_Iface.version 2 with method .get_input_stream(),
new API function iso_stream_get_input_stream(),
new API function iso_file_remove_filter(),
iso_file_get_old_image_sections() now refers to the most original stream
of a file.
2009-03-28 19:37:44 +01:00
8b0920df53 Fixed a bug which prevented final waiting and caused lots of zombies 2009-03-27 21:25:44 +01:00
e759bd5240 mall adjustment in API description 2009-03-27 18:15:18 +01:00
1a307cb790 Introduced IsoExternalFilterCommand.behavior and implemented
optional shortcut with files of size 0.
2009-03-27 16:40:07 +01:00
41f75ea21f Fixed a SIGSEGV in iso_file_get_old_image_sections() with a
IsoFile from the old session which has not FSrcStreamData 
attached to its IsoStream.
2009-03-27 14:43:43 +01:00
6cf484442c Fixed a gridlock of external filtering in case that the
filter program is slow with processing.
2009-03-27 13:44:29 +01:00
691887fd2c New API function iso_file_add_external_filter()
with public parameter class IsoExternalFilterCommand
allows to use child processes as external content filter for IsoFile objects.
2009-03-26 17:34:38 +01:00
6f9db3d8c1 Introduced short notations for AAIP namespaces "trusted." and "security." 2009-03-22 11:15:05 +01:00
8eff065b5f Fixed wrong use of acl_free() 2009-03-21 22:59:06 +01:00
5f2bde776b Closed memory leaks opened with rev 487. 2009-03-21 11:09:14 +01:00
0402325ec2 New API call iso_read_opts_auto_input_charset() allows to obtain
the image tree character set name from root xattr "isofs.cs".
2009-03-20 17:48:42 +01:00
da2619c42a New API function iso_init_with_flag().
Moved setup of locale from various places to util.c:iso_init_locale().
It is now called by the iso_init*() functions only.
2009-03-19 12:56:25 +01:00
183ed6cc5a Made read_aaip_AA() safe against eventual Apple ISO AA fields 2009-03-18 10:27:28 +01:00
50edfbea51 Avoided use of function alloca() by macro Libisofs_avoid_using_allocA
and incremented version to 0.6.17
2009-03-17 21:25:43 +01:00
a6090a6273 Version leap to 0.6.16 2009-03-10 16:45:37 +01:00
a87c28da95 Made sorting order under Libisofs_file_src_cmp_sizE identical to
old sorting order. Just in case it matters.
(Is there any reason for the inverse order of dev_id ?)
2009-03-10 15:34:09 +01:00
4d0063f7e2 Bug fix: ECMA-119 ".." pointed always to the same block as ".".
Bug fix: iso_write_opts_set_rrip_version_1_10() caused wrong size of
         root record CE,
Stability enhancement: util.c:str2ascii() got a fallback for the case
                       that charset "WCHAR_T" is not available,
Debugging wrapper around iconv*() calls,
Experiments about inode numbers in fs_image,
Experiment to insert obsolete RR entries.
(Sorry for the obfuscation. Most is due to a hard ride on Solaris.
 See macros at the end of libisofs/libisofs.h)
2009-03-10 14:32:05 +01:00
4f468171ad Experiments about inode number generation for nodes out of the loaded
image.
2009-03-07 08:28:35 +01:00
8d8dcb9c93 Changed severity of ISO_FILENAME_WRONG_CHARSET from HINT to WARNING.
Keeping old error code as ISO_FILENAME_WRONG_CHARSET_OLD.
2009-03-03 16:47:53 +01:00
e1460aa9a6 Version leap to 0.6.15 and
new API call iso_write_opts_get_data_start()
2009-02-28 23:22:31 +01:00
4daf626493 Made root node write and read own AA entries. 2009-02-24 17:50:53 +01:00
f52c1aeb77 Version leap to 0.6.14 2009-02-19 17:02:29 +01:00
97d885fc9a Made AAIP 1.0 official, mentioned it in aaip source files,
and claimed copyright and GPLv2 on aaip source files.
2009-02-19 09:36:22 +01:00
0e0ecc1d00 Made code branch of Libisofs_with_aaiP unconditional
and removed change marks by (co-)copyright claims.
2009-02-18 23:01:14 +01:00
c1ba7d93d9 Removed dependencies of libburn where possible and removed
the remaining demo/iso_grow.c from Makefile.am.
2009-02-18 10:29:26 +01:00
e17a8c718f Fixed a memory leak underneath iso_node_get_attrs() 2009-02-17 15:40:00 +01:00
fb2309ea16 Moved iso_local_*() API functions from node.c to fs_local.c 2009-02-16 08:29:21 +01:00
e45f41fb44 Removed obsolete macro Libisofs_with_aaiP_retro and its unsuitable
code branches.
"AAIP_0100" gets issued if macro Libisofs_aaip_1_0 is defined.
2009-02-14 12:10:02 +01:00
0ada61b15e Gave up macro Libisofs_new_nm_sl_cE and the old computation of NM, SL, AA size. 2009-02-14 11:14:27 +01:00
c789c23119 Removed clearly obsolete code branches. 2009-02-14 11:05:33 +01:00
49821f6962 Made preservation of ACL in iso_node_set_attrs() more efficient 2009-02-13 20:05:42 +01:00
22e45ed489 Preserving non-userspace xattr if all userspace shall be overwritten. 2009-02-13 18:45:53 +01:00
1b3f5186e7 Revoked AAIP prescription to map reserved name start bytes into "user."
name space. (It made trouble with cyclic conversions.)
2009-02-11 08:30:37 +01:00
620547ac0a Recognizing future AAIP signature "AAIP_0100" 2009-02-10 21:02:58 +01:00
699866f984 Introduced into AAIP a short notation for name spaces "system.", "user.",
and "isofs.".
2009-02-10 20:36:34 +01:00
2633aab967 Fixed memory hog in read_aaip_AA().
todo: Find the reason why node xinfo is not freed when the image is discarded.
This helped the hog to survive undetected since January 14.
2009-02-09 17:46:35 +01:00
b09dcd5246 Fixed a bug about setting "default" ACL on Linux directories. 2009-02-09 11:17:33 +01:00
b1f8161006 Correct group permission bits with iso_read_opts_set_no_aaip(,1)
and node import from image with ACLs.
2009-02-08 12:45:15 +01:00
d7f691d6df Correct group permission bits with -acl off and import of disk file with ACL.
New API function iso_local_get_perms_wo_acl().
2009-02-07 21:00:43 +01:00
b5fd981482 Changing S_IRWXG from "mask::" to "group::" settings when
a non-trivial ACL gets erased. New API call iso_node_get_perms_wo_acl()
allows to obtain st_mode prediction for ACL removal.
Still to do: handle ACL stripping with st_mode import from local filesystem
and st_mode import from ISO image.
2009-02-07 09:48:30 +01:00
c974365b16 Extended the capabilities of iso_node_set_attrs() and
mentioned the new error codes in the error text generator
2009-02-06 11:41:24 +01:00
64a9b79224 Some comment changes which were not stored before the previous commit 2009-02-04 20:16:32 +01:00
e8267b71d1 Took into respect that ACL operations always happen on link targets
while xattr can happen on the link itself.
2009-02-04 19:53:00 +01:00
1add3e32c5 Revoked the iconv dummy of previous revision
Solution was:
  export CPPFLAGS="-I/usr/local/include"
  export LDFLAGS="-L/usr/local/lib -liconv"
  ./configure
2009-02-03 21:39:54 +01:00
4c13522783 Some adpations to FreeBSD
and a temporary dummy of iconv (which is not installed on the test box)
2009-02-03 16:13:08 +01:00
8d459c7f77 Fixed unterminated comment. 2009-02-02 21:33:22 +01:00
1eb8029e60 Some enhancements about xattr API. 2009-02-02 21:10:21 +01:00
4950f869cb Giving access to AAIP xattr by new API functions iso_node_get_attrs() and
iso_node_set_attrs. Giving access to local filesystem xattr by new API
functions iso_local_get_attrs(), iso_local_set_attrs().
2009-02-02 11:49:28 +01:00
84c100c2f5 Gave up adjustability of Signature Word "AA" in specs and implementation. 2009-01-30 18:58:11 +01:00
b600757649 Changed iso_node_set_acl_text() and iso_node_set_acl_text() so they
process both eventual ACLs of a node in one call.
2009-01-30 15:37:48 +01:00
313c4ff20f Silenced a warning of FreeBSD about shifting 32-bit dev_t by 32 bit.
Silenced warnings of FreeBSD about unused variables.
2009-01-29 21:54:24 +01:00
b824db94dc Clarified role of aaip_xinfo_func in libisofs API 2009-01-29 11:24:20 +01:00
9f60c75f08 Introduced generic ACL-EA-system adapter aaip-os-dummy.c
which steps in at compile time if neither __FreeBSD__ nor __linux is defined.
2009-01-29 10:52:08 +01:00
6dee6e4c20 More bug fixes about "default" ACL.
Made aaip_xinfo_func() available unconditionally.
2009-01-28 12:37:59 +01:00
b53ef57ac6 New API call iso_local_get_acl_text()
and bug fixes about "default" ACL
2009-01-27 21:19:49 +01:00
0b4792bc0c Mentioned the need for 64 bit file i/o 2009-01-27 12:19:10 +01:00
2cc74562fb Changed aaip API to allow fabrication of missing mandatory ACL entries
from st_mode
2009-01-27 09:50:55 +01:00
4ed2269570 Writing ES fields with RRIP and AAIP fields when ER of AAIP is written.
Also provided API call iso_write_opts_set_aaip_susp_1_10() which prevents
writing AAIP ER and consequentially of ES fields.
2009-01-26 15:12:57 +01:00
7dfec561d9 Avoided to store deleted ACL as attribute with empty value 2009-01-25 10:49:07 +01:00
dc26d8eefc Updating st_mode permission bits in iso_node_set_acl_text() 2009-01-24 17:45:22 +01:00
bd9b49714f Let configure detect availability of libacl and of Linux listxattr call
and aaip-os work around eventual missing functionality
2009-01-23 18:28:51 +01:00
aae339fe49 voiding to store empty ACL for all directories withou ACL 2009-01-23 13:17:22 +01:00
c801fa60f7 Incremented version to 0.6.13 and .so age to 9. 2009-01-23 09:43:52 +01:00
c8495481ca Controlling import and export of ACL, EA, AAIP 2009-01-23 09:32:32 +01:00
65e5b00171 Disabled loading of AAIP from ISO images by default
and provided new API function iso_read_opts_set_no_aaip()
2009-01-21 16:03:59 +01:00
bb69e14b08 Better messages of non-AAIP aware libisofs about AAIP enhanced images 2009-01-21 14:25:08 +01:00
a5aedd51a4 Re-enabled compilation without Libisofs_with_aaiP
but prepared messages of that code for existence of AA and ER of AAIP
2009-01-21 14:08:10 +01:00
1150ee32a4 New API call iso_node_set_acl_text()
and automatic update of ACL entries by iso_node_set_permissions()
2009-01-21 13:29:10 +01:00
d4ce4a7f88 Forgot to store node.c before committing 425. 2009-01-19 10:52:40 +01:00
6659ec1566 Correcting my statement in the previous commit:
There is defined correspondence between ACL and st_mode in Linux man 5 acl.
It is complicated and libisofs will have to ensure integrity of ACL
manipulations and st_mode manipulations. (It will not check integrity when
loading ACLs and st_mode from filesystems.)
2009-01-19 10:48:34 +01:00
6ad6d3c219 Gave up deleting of single ACL entries if they match st_mode.
Only totally trivial ACLs are discarded as a whole.
This seems necessary because the relation between st_mode and ACL
is not clearly defined in man 5 acl.
2009-01-19 09:50:29 +01:00
24fadd7649 New API function iso_local_set_acl_text() 2009-01-18 22:36:06 +01:00
723d23321a Handling ACL entries which match the POSIX permissions 2009-01-18 18:39:06 +01:00
ece6eca9a5 Avoided memory overflow with Aaip_encode_debuG 2009-01-17 20:25:00 +01:00
20adf50275 New API function iso_node_get_acl_text
Fixes for problems with CE usage and reading of multiple AA fields
2009-01-17 16:06:05 +01:00
c6f4370e71 Fixed a memory hog about submitting multiple fields in aaip_add_AA() 2009-01-16 13:38:02 +01:00
d01b3cc6cc Implemented generation of AA strings from local filesystem
and upgraded IsoFileSourceIface lfs_class to version 1
2009-01-16 13:24:30 +01:00
9dc56426c0 New API call iso_file_source_get_aa_string()
and IsoFileSource_Iface.version == 1 with ifs_class
Now libisofs is able to load AA strings from images and to store them again.
2009-01-15 21:58:48 +01:00
de99f93640 Implemented reading of AA fields to struct image_fs_data.aa_string
and defined IsoFileSource_Iface version 1 with access function .get_aa_string()
2009-01-15 17:43:58 +01:00
3c91c2f333 Implemented reading of AA field string from iso_node_get_xinfo().
(No AA strings get submitted as xinfo yet.)
2009-01-14 15:49:02 +01:00
3294dd5e94 Introduced AAIP code. Now linking with libacl.
(Todo: handle system dependy of -lacl in configure.ac)
2009-01-14 12:11:47 +01:00
e8f1dfb8e5 Silenced warning about multiple ER fields. Enabled recognizing of AAIP-ER.
Vreixo needs to explain TODO #00016 in fs_image.c
2009-01-13 20:44:36 +01:00
19661b0c05 Testing the ER field which announces AAIP. 2009-01-13 20:25:12 +01:00
1267052c03 Accounting for the size of AA fields in rrip_calc_len() 2009-01-13 18:35:14 +01:00
f7a47baa22 Experiment with dummy AA fields.
Looks good when writing. But when reading there are
problems with the directory size which is not aligned
to 2048.
2009-01-13 14:02:27 +01:00
cc9de1507f Described license situation of make_isohybrid_mbr.c 2008-11-25 17:11:52 +01:00
6b273ef79a Added a missing change for RRIP-1.10 option to rrip_calc_len() 2008-11-25 17:07:24 +01:00
a8c7d1b0e6 Removed surplus line from rrip_add_PN().
It was introduced with the FreeBSD port.
2008-11-25 16:53:36 +01:00
7990e01a57 More apostrophes removed from messages 2008-11-25 16:49:10 +01:00
23e2647920 Described need to pad isohybrid to full MB.
Removed compiler warning about isohybrid FIXME.
2008-11-25 16:32:55 +01:00
412ad2fcdb Version switch to 0.6.12 , libisofs-6.8.0.so 2008-11-25 15:39:40 +01:00
14dd988f0f New API function iso_write_opts_set_dir_rec_mtime() to store the mtime
of the source files in their ECMA-119 Directory Records
2008-11-25 15:31:33 +01:00
698fdec290 New API function iso_write_opts_set_rrip_version_1_10() allows to
write old fashioned RRIP-1.10 rather than RRIP-1.12.
2008-11-25 15:19:53 +01:00
28e8936b4f Bug fix ticket 144: File size damage by non-unique inode numbers of
pre-RRIP 1.12 images

Replaced the extent-LBA based inode number by a static 32 bit counter.
I deem it safe because if the numbers repeat within a single image
reading, then we are doomed anyway. I banned inode number 0 just in
case it has a meaning.

TODO: what if ER says IEEE_1282 but the PX field has only 36 bytes ?
2008-11-25 14:34:47 +01:00
0026c93cd4 Emphasized in the API docs the fact that
iso_image_create_burn_source() starts image generation.
Mentioned the FreeBSD timezone bug with API docs of
iso_write_opts_set_always_gmt().
2008-11-25 13:26:34 +01:00
fcf22cffe7 Small changes for the FreeBSD port. 2008-11-25 12:49:44 +01:00
ed1041a069 Bug fix for ticket 145: ISOLINUX boot image does not get patched properly
Delayed the computation of El Torito until
all other computation methods were called.
This ensures that the LBA of isolinux.bin is
already computed when the patching gets defined.
The position of the El Torito writer in the list
was not changed. The call sequence of the write
methods was not changed.
2008-11-25 12:23:25 +01:00
eccaac09cc New API functions iso_set_local_charset() and iso_get_local_charset() 2008-11-25 12:13:51 +01:00
88ef351e74 Removed apostrophe from some error messages and
dangerous text display from character set conversion
error messages.
2008-11-25 12:05:03 +01:00
Vreixo Formoso
cb3a879baf Fix bug in make_isohybrid_mbr(). 2008-10-19 16:09:23 +02:00
Vreixo Formoso
7e97a45b20 Support for writing MBR in the system area, to make hybrid boot images.
With the specified isolinux option, a MBR is written to the system area, and this 
allows the image to boot from either CD/DVD or USB sticks.

This is also supported on overwriteable media (note that system area is always
overwritten), but it should not work on multisession media.
2008-10-19 16:03:13 +02:00