wimlib
7 years agoFix typo
Eric Biggers [Sat, 24 Nov 2012 06:51:13 +0000 (00:51 -0600)]
Fix typo

7 years agoFix typo
Eric Biggers [Sat, 24 Nov 2012 06:40:23 +0000 (00:40 -0600)]
Fix typo

7 years agomain_writer_thread_proc(): Fix minor issues
Eric Biggers [Sat, 24 Nov 2012 05:37:14 +0000 (23:37 -0600)]
main_writer_thread_proc():  Fix minor issues

- If a resource compresses to the same size or larger than the original size,
  directly write it uncompressed with the main thread.
- Re-organize the code so as to not force the first resource to be compressed if
  it doesn't need to be.

7 years agowimlib_add_image(): Fix variable name (--enable-debug only)
Eric Biggers [Sat, 24 Nov 2012 04:57:34 +0000 (22:57 -0600)]
wimlib_add_image(): Fix variable name (--enable-debug only)

7 years agowrite_stream_list(): Fix criteria for parallelization
Eric Biggers [Sat, 24 Nov 2012 04:15:00 +0000 (22:15 -0600)]
write_stream_list(): Fix criteria for parallelization

7 years agoimagex_progress_func(): Fix printf
Eric Biggers [Sat, 24 Nov 2012 04:14:47 +0000 (22:14 -0600)]
imagex_progress_func(): Fix printf

7 years agoTweak XML element order and time format
Eric Biggers [Sat, 24 Nov 2012 03:37:26 +0000 (21:37 -0600)]
Tweak XML element order and time format

7 years agoAdd note in imagex-capture man page
Eric Biggers [Sat, 24 Nov 2012 02:40:34 +0000 (20:40 -0600)]
Add note in imagex-capture man page

7 years agoImprove progress messages for NTFS apply
Eric Biggers [Sat, 24 Nov 2012 02:09:54 +0000 (20:09 -0600)]
Improve progress messages for NTFS apply

7 years agoFix sentence
Eric Biggers [Sat, 24 Nov 2012 00:21:06 +0000 (18:21 -0600)]
Fix sentence

7 years agoCleanup imagex-apply man page
Eric Biggers [Fri, 23 Nov 2012 23:46:06 +0000 (17:46 -0600)]
Cleanup imagex-apply man page

7 years agoClean up imagex-info manpage
Eric Biggers [Fri, 23 Nov 2012 23:25:22 +0000 (17:25 -0600)]
Clean up imagex-info manpage

7 years agoFix tests (again) v1.2.0
Eric Biggers [Thu, 22 Nov 2012 21:33:28 +0000 (15:33 -0600)]
Fix tests (again)

7 years agoVersion 1.2.0
Eric Biggers [Thu, 22 Nov 2012 21:29:37 +0000 (15:29 -0600)]
Version 1.2.0

7 years agoRemove tmp_list from `struct inode' (not used)
Eric Biggers [Thu, 22 Nov 2012 21:29:15 +0000 (15:29 -0600)]
Remove tmp_list from `struct inode' (not used)

7 years agoAllocate extra 8 bytes for uncompressd chunks
Eric Biggers [Thu, 22 Nov 2012 21:15:22 +0000 (15:15 -0600)]
Allocate extra 8 bytes for uncompressd chunks

(Due to longest_match() possible reading off the edge of the buffer.)

7 years agoUse readdir_r() instead of readdir()
Eric Biggers [Thu, 22 Nov 2012 21:05:03 +0000 (15:05 -0600)]
Use readdir_r() instead of readdir()

7 years agoNote imagex-export alternatives
Eric Biggers [Thu, 22 Nov 2012 20:27:48 +0000 (14:27 -0600)]
Note imagex-export alternatives

7 years agoVarious changes/fixes
Eric Biggers [Thu, 22 Nov 2012 19:58:41 +0000 (13:58 -0600)]
Various changes/fixes

7 years agoImplement user-specified staging directory
Eric Biggers [Thu, 22 Nov 2012 18:53:43 +0000 (12:53 -0600)]
Implement user-specified staging directory

7 years agotests fixes
Eric Biggers [Thu, 22 Nov 2012 06:31:19 +0000 (00:31 -0600)]
tests fixes

7 years agoUse pthread condition variables instead of semaphores
Eric Biggers [Thu, 22 Nov 2012 06:28:24 +0000 (00:28 -0600)]
Use pthread condition variables instead of semaphores

(Unnamed semaphores are not implemented on Mac OS X...)

7 years agoTest suite without coreutils
Eric Biggers [Thu, 22 Nov 2012 06:03:01 +0000 (00:03 -0600)]
Test suite without coreutils

7 years agoFix conflict with LIST_HEAD in BSD
Eric Biggers [Thu, 22 Nov 2012 05:30:32 +0000 (23:30 -0600)]
Fix conflict with LIST_HEAD in BSD

7 years ago__always_inline => ALWAYS_INLINE
Eric Biggers [Thu, 22 Nov 2012 05:24:26 +0000 (23:24 -0600)]
__always_inline => ALWAYS_INLINE

7 years agoOnly access struct stat.mtim if available
Eric Biggers [Thu, 22 Nov 2012 05:22:21 +0000 (23:22 -0600)]
Only access struct stat.mtim if available

7 years agoInclude sys/time.h in timestamp.h
Eric Biggers [Thu, 22 Nov 2012 05:10:16 +0000 (23:10 -0600)]
Include sys/time.h in timestamp.h

7 years agoUpdate NEWS
Eric Biggers [Thu, 22 Nov 2012 04:48:56 +0000 (22:48 -0600)]
Update NEWS

7 years agoAcquire advisory lock when doing a read-write mount
Eric Biggers [Thu, 22 Nov 2012 04:42:59 +0000 (22:42 -0600)]
Acquire advisory lock when doing a read-write mount

7 years agoImplement advisory locking for WIM overwrites
Eric Biggers [Thu, 22 Nov 2012 04:25:04 +0000 (22:25 -0600)]
Implement advisory locking for WIM overwrites

7 years agoDefine version macros in wimlib.h
Eric Biggers [Thu, 22 Nov 2012 03:29:06 +0000 (21:29 -0600)]
Define version macros in wimlib.h

7 years agoHeader and ifdef fixes
Eric Biggers [Thu, 22 Nov 2012 02:29:35 +0000 (20:29 -0600)]
Header and ifdef fixes

7 years agoMove VERBOSE flags to progress callbacks
Eric Biggers [Thu, 22 Nov 2012 02:17:09 +0000 (20:17 -0600)]
Move VERBOSE flags to progress callbacks

7 years agoUpdate wimlib.h documentation
Eric Biggers [Thu, 22 Nov 2012 00:54:36 +0000 (18:54 -0600)]
Update wimlib.h documentation

Also reserve new parameters for wimlib_unmount_image() and wimlib_mount_image()

7 years agoLots of changes
Eric Biggers [Wed, 21 Nov 2012 08:34:34 +0000 (02:34 -0600)]
Lots of changes

- Add progress functions
- Rename wimlib_mount() and wimlib_unmount() to wimlib_mount_image() and
  wimlib_unmount_image()
- Remove wimlib_add_image_from_ntfs_volume() and
  wimlib_apply_image_to_ntfs_volume() in favor of flags to wimlib_add_image()
  and wimlib_extract_image()
- Add progress callback functions, and make them work for NTFS apply as well as
  normal apply
- Consolidate some of the extraction code into extract_single_image().
- Make serial WIM reading work when applying to NTFS as well as in the normal
  extraction mode.
- Update documentation in wimlib.h.

7 years agoPrint some progress info in symlink/hardlink extraction mode
Eric Biggers [Tue, 20 Nov 2012 17:26:30 +0000 (11:26 -0600)]
Print some progress info in symlink/hardlink extraction mode

7 years agoFix sequential extraction, and include progress info
Eric Biggers [Tue, 20 Nov 2012 17:12:05 +0000 (11:12 -0600)]
Fix sequential extraction, and include progress info

7 years agoImplement sequential extract
Eric Biggers [Tue, 20 Nov 2012 08:29:27 +0000 (02:29 -0600)]
Implement sequential extract

Read the WIM sequentially when applying an image.

Currently only implemented for normal extraction mode, and each image is
considered separately in the case of multi-image extractions.

7 years agoImplement soft delete
Eric Biggers [Tue, 20 Nov 2012 07:15:36 +0000 (01:15 -0600)]
Implement soft delete

7 years agoDocument data corruption possibilities/impossibilities
Eric Biggers [Tue, 20 Nov 2012 06:36:48 +0000 (00:36 -0600)]
Document data corruption possibilities/impossibilities

7 years agoimagex-optimize: --recompress
Eric Biggers [Tue, 20 Nov 2012 05:56:12 +0000 (23:56 -0600)]
imagex-optimize: --recompress

Implemented with a new flag WIMLIB_WRITE_FLAG_RECOMPRESS

7 years agoUpdate NEWS and add imagex-optimize
Eric Biggers [Tue, 20 Nov 2012 05:33:21 +0000 (23:33 -0600)]
Update NEWS and add imagex-optimize

7 years agoRewrite integrity calculation and checks
Eric Biggers [Tue, 20 Nov 2012 04:24:30 +0000 (22:24 -0600)]
Rewrite integrity calculation and checks

- Read and write 4096 bytes at a time
- Improve progress messages
- Allow copying some, but possibly not all, entries from the previous integrity
  table.

7 years agoRework WIM writing code
Eric Biggers [Mon, 19 Nov 2012 21:26:59 +0000 (15:26 -0600)]
Rework WIM writing code

(Incomplete)

7 years agoSet WIM_RESHDR_FLAG_METADATA on XML data
Eric Biggers [Mon, 19 Nov 2012 04:36:20 +0000 (22:36 -0600)]
Set WIM_RESHDR_FLAG_METADATA on XML data

7 years agowimlib_set_boot_idx(): Update boot metadata immediately
Eric Biggers [Mon, 19 Nov 2012 04:27:50 +0000 (22:27 -0600)]
wimlib_set_boot_idx(): Update boot metadata immediately

Update the boot metadata resource entry in the WIM header as soon as
wimlib_set_boot_idx() is called.  Otherwise, the correct entry is never updated
if wimlib_overwrite_xml_and_header() is called.

7 years agowimlib_write(): Add WIMLIB_WRITE_FLAG_FSYNC
Eric Biggers [Mon, 19 Nov 2012 03:24:52 +0000 (21:24 -0600)]
wimlib_write(): Add WIMLIB_WRITE_FLAG_FSYNC

Use WIMLIB_WRITE_FLAG_FSYNC to request that fsync() is called on the file
descriptor for the WIM being written, before closing it.

Done by default when wimlib_write() is called through wimlib_overwrite().

7 years agobegin_read(): Try fopen() before realpath()
Eric Biggers [Mon, 19 Nov 2012 02:48:06 +0000 (20:48 -0600)]
begin_read(): Try fopen() before realpath()

7 years agoStart using soname for libwim
Eric Biggers [Mon, 19 Nov 2012 02:27:11 +0000 (20:27 -0600)]
Start using soname for libwim

7 years agoUpdate Arch Linux PKGBUILD to v1.1.0
Eric Biggers [Mon, 19 Nov 2012 00:03:21 +0000 (18:03 -0600)]
Update Arch Linux PKGBUILD to v1.1.0

7 years agowimlib.h doc fix
Eric Biggers [Mon, 19 Nov 2012 00:01:37 +0000 (18:01 -0600)]
wimlib.h doc fix

7 years agousage_all(): Print leading whitespace v1.1.0
Eric Biggers [Sun, 18 Nov 2012 23:58:13 +0000 (17:58 -0600)]
usage_all(): Print leading whitespace

7 years agomain_writer_thread_proc(): Minor cleanup
Eric Biggers [Sun, 18 Nov 2012 23:53:17 +0000 (17:53 -0600)]
main_writer_thread_proc(): Minor cleanup

7 years agoUpdate README
Eric Biggers [Sun, 18 Nov 2012 23:42:08 +0000 (17:42 -0600)]
Update README

7 years agoCalculate SHA1 md of NTFS reparse points correctly
Eric Biggers [Sun, 18 Nov 2012 23:26:58 +0000 (17:26 -0600)]
Calculate SHA1 md of NTFS reparse points correctly

7 years agoSet FILE_ATTRIBUTE_DIRECTORY for directory symlinks
Eric Biggers [Sun, 18 Nov 2012 23:13:27 +0000 (17:13 -0600)]
Set FILE_ATTRIBUTE_DIRECTORY for directory symlinks

7 years agomake_symlink_reparse_data_buf(): Don't include null terminator
Eric Biggers [Sun, 18 Nov 2012 22:25:12 +0000 (16:25 -0600)]
make_symlink_reparse_data_buf(): Don't include null terminator

7 years agoinclude WIMStruct->fp_tab only if WITH_FUSE
Eric Biggers [Sun, 18 Nov 2012 21:04:19 +0000 (15:04 -0600)]
include WIMStruct->fp_tab only if WITH_FUSE

7 years agoPTHREAD_LDADD
Eric Biggers [Sun, 18 Nov 2012 20:53:53 +0000 (14:53 -0600)]
PTHREAD_LDADD

7 years agoVarious portability fixes
Eric Biggers [Sun, 18 Nov 2012 20:44:46 +0000 (14:44 -0600)]
Various portability fixes

7 years agoConsolidate `struct lookup_table_entry'
Eric Biggers [Sun, 18 Nov 2012 19:01:58 +0000 (13:01 -0600)]
Consolidate `struct lookup_table_entry'

7 years ago--disable-multithreaded-compression option
Eric Biggers [Sun, 18 Nov 2012 18:46:29 +0000 (12:46 -0600)]
--disable-multithreaded-compression option

7 years agoUpdate version number and NEWS
Eric Biggers [Sun, 18 Nov 2012 18:24:26 +0000 (12:24 -0600)]
Update version number and NEWS

(will be a few more updates before a release though.)

7 years ago--threads option and stream writing progress
Eric Biggers [Sun, 18 Nov 2012 18:18:46 +0000 (12:18 -0600)]
--threads option and stream writing progress

7 years agomain_writer_thread_proc(): Add more comments
Eric Biggers [Sun, 18 Nov 2012 08:13:10 +0000 (02:13 -0600)]
main_writer_thread_proc(): Add more comments

7 years agoImplement multi-threaded compression
Eric Biggers [Sun, 18 Nov 2012 07:44:27 +0000 (01:44 -0600)]
Implement multi-threaded compression

7 years agoSet `struct fuse_operations' flags
Eric Biggers [Tue, 13 Nov 2012 00:29:51 +0000 (18:29 -0600)]
Set `struct fuse_operations' flags

Set some flags in `struct fuse_operations'.  Paths are not used by a number of
wimfs functions such as wimfs_read() and wimfs_write(), so flag_nopath can
specified.

7 years agoHeader fix: Add time.h
Eric Biggers [Tue, 13 Nov 2012 00:09:15 +0000 (18:09 -0600)]
Header fix:  Add time.h

NTFS-3g headers seem to require time.h to be included first.

7 years agoMake different threads use different FILE*'s
Eric Biggers [Tue, 13 Nov 2012 00:03:17 +0000 (18:03 -0600)]
Make different threads use different FILE*'s

read_wim_resource() was actually not thread safe because it expects to use the
FILE * WIMStruct.fp.  This commit introduces a table of FILE *'s for each
WIMStruct that are only used if a special flag
WIMLIB_RESOURCE_FLAG_MULTITHREADED is passed to read_wim_resource().

7 years agowimlib_mount(): Disallow mounting newly added image
Eric Biggers [Mon, 12 Nov 2012 22:56:51 +0000 (16:56 -0600)]
wimlib_mount(): Disallow mounting newly added image

7 years agoimagex_mount_rw_or_ro(): Free additional_swms when done
Eric Biggers [Mon, 12 Nov 2012 20:51:29 +0000 (14:51 -0600)]
imagex_mount_rw_or_ro():  Free additional_swms when done

7 years agowimlib_mount(): Refuse to mount split wim read-write
Eric Biggers [Mon, 12 Nov 2012 20:36:09 +0000 (14:36 -0600)]
wimlib_mount():  Refuse to mount split wim read-write

7 years agomake_staging_dir(): Fix comment
Eric Biggers [Mon, 12 Nov 2012 20:27:34 +0000 (14:27 -0600)]
make_staging_dir(): Fix comment

7 years agorebuild_wim(): Fix possible problem with fd closing
Eric Biggers [Mon, 12 Nov 2012 20:19:27 +0000 (14:19 -0600)]
rebuild_wim():  Fix possible problem with fd closing

Use list_for_each_entry_safe() instead of list_for_each_entry() when closing
staging file descriptors, since a lookup table entry may be deleted when its
last file descriptor is closed.

7 years agoIndentation
Eric Biggers [Mon, 12 Nov 2012 20:05:53 +0000 (14:05 -0600)]
Indentation

7 years agoutil.h: Remove cas(), cas_bool() (not used yet)
Eric Biggers [Mon, 12 Nov 2012 19:47:38 +0000 (13:47 -0600)]
util.h: Remove cas(), cas_bool() (not used yet)

7 years agoUse FUSE multi-threaded mode for read-only mounts
Eric Biggers [Mon, 12 Nov 2012 18:42:31 +0000 (12:42 -0600)]
Use FUSE multi-threaded mode for read-only mounts

7 years agoFix rbtree comparison function
Eric Biggers [Mon, 12 Nov 2012 18:04:25 +0000 (12:04 -0600)]
Fix rbtree comparison function

7 years agotest-imagex-*: Set $srcdir correctly
Eric Biggers [Mon, 12 Nov 2012 17:20:00 +0000 (11:20 -0600)]
test-imagex-*:  Set $srcdir correctly

7 years agoUpdate TODO
Eric Biggers [Mon, 12 Nov 2012 06:01:10 +0000 (00:01 -0600)]
Update TODO

7 years agofor_dentry_in_tree(): Remove some gotos
Eric Biggers [Mon, 12 Nov 2012 06:00:48 +0000 (00:00 -0600)]
for_dentry_in_tree(): Remove some gotos

7 years agoNon-recursive for_dentry_in_tree()
Eric Biggers [Mon, 12 Nov 2012 05:41:23 +0000 (23:41 -0600)]
Non-recursive for_dentry_in_tree()

7 years agoRemove link_dentry()
Eric Biggers [Mon, 12 Nov 2012 01:44:26 +0000 (19:44 -0600)]
Remove link_dentry()

Replaced with dentry_add_child().

7 years agoimagex.c: Minor usability improvements
Eric Biggers [Mon, 12 Nov 2012 00:58:26 +0000 (18:58 -0600)]
imagex.c: Minor usability improvements

7 years agoMake wimfs files executable by default
Eric Biggers [Mon, 12 Nov 2012 00:23:22 +0000 (18:23 -0600)]
Make wimfs files executable by default

Also allow chmod(), as long as it doesn't actually change anything.

7 years agoinode_put_fd(): Fix incorrect assertion
Eric Biggers [Mon, 12 Nov 2012 00:10:44 +0000 (18:10 -0600)]
inode_put_fd(): Fix incorrect assertion

7 years agorbtree.c: Delete augmented rbtree functions
Eric Biggers [Sun, 11 Nov 2012 23:57:48 +0000 (17:57 -0600)]
rbtree.c:  Delete augmented rbtree functions

7 years agostruct dentry optimization and stack-based rbtree traversal
Eric Biggers [Sun, 11 Nov 2012 22:47:57 +0000 (16:47 -0600)]
struct dentry optimization and stack-based rbtree traversal

7 years agoStore dentry children in red-black trees
Eric Biggers [Sun, 11 Nov 2012 20:57:09 +0000 (14:57 -0600)]
Store dentry children in red-black trees

Store the children of each dentry in a red-black tree (keyed by the dentry name)
to make dentry lookups faster.

7 years agoAdd rbtree files
Eric Biggers [Sun, 11 Nov 2012 19:04:22 +0000 (13:04 -0600)]
Add rbtree files

7 years agolist.h: Remove unneeded functions
Eric Biggers [Sun, 11 Nov 2012 18:52:10 +0000 (12:52 -0600)]
list.h:  Remove unneeded functions

Only keep the functions from list.h that are actually used by the library.

7 years agotest-imagex-ntfs: Use lazy unmount
Eric Biggers [Mon, 5 Nov 2012 20:58:38 +0000 (14:58 -0600)]
test-imagex-ntfs:  Use lazy unmount

Apparently, it's possible for 'fusermount -u' to return before a NTFS-3g-based
filesystem has actually unmounted, therefore causing a subsequent mount to the
same location to fail if it happens quickly enough.  Using a lazy unmount should
fix this I think...

7 years agoimagex.c: Remove unused swap() macro
Eric Biggers [Tue, 30 Oct 2012 01:21:56 +0000 (20:21 -0500)]
imagex.c: Remove unused swap() macro

7 years agoFix date in ChangeLog
Eric Biggers [Tue, 30 Oct 2012 01:18:47 +0000 (20:18 -0500)]
Fix date in ChangeLog

7 years agoFix links in wimlib.h generated docs
Eric Biggers [Tue, 30 Oct 2012 00:44:15 +0000 (19:44 -0500)]
Fix links in wimlib.h generated docs

7 years agoFix man page reference in README
Eric Biggers [Tue, 30 Oct 2012 00:41:31 +0000 (19:41 -0500)]
Fix man page reference in README

7 years agoUpdate archlinux/PKGBUILD
Eric Biggers [Tue, 30 Oct 2012 00:41:19 +0000 (19:41 -0500)]
Update archlinux/PKGBUILD

7 years agoVersion 1.0.4 v1.0.4
Eric Biggers [Tue, 30 Oct 2012 00:23:08 +0000 (19:23 -0500)]
Version 1.0.4

7 years agoCheck for ntfs_xattr_system_setxattr() instead of ntfs_mount()
Eric Biggers [Tue, 30 Oct 2012 00:17:26 +0000 (19:17 -0500)]
Check for ntfs_xattr_system_setxattr() instead of ntfs_mount()

7 years agoReorganize README and add OpenSSL info
Eric Biggers [Mon, 29 Oct 2012 16:38:13 +0000 (16:38 +0000)]
Reorganize README and add OpenSSL info