diff options
Diffstat (limited to 'archivers/libarchive/files/doc/text')
31 files changed, 538 insertions, 501 deletions
diff --git a/archivers/libarchive/files/doc/text/Makefile b/archivers/libarchive/files/doc/text/Makefile index d58f7d94b4e..d533e84adf6 100644 --- a/archivers/libarchive/files/doc/text/Makefile +++ b/archivers/libarchive/files/doc/text/Makefile @@ -11,6 +11,9 @@ archive_entry_acl.3.txt: ../../libarchive/archive_entry_acl.3 archive_entry_linkify.3.txt: ../../libarchive/archive_entry_linkify.3 nroff -mdoc ../../libarchive/archive_entry_linkify.3 | col -b > archive_entry_linkify.3.txt +archive_entry_misc.3.txt: ../../libarchive/archive_entry_misc.3 + nroff -mdoc ../../libarchive/archive_entry_misc.3 | col -b > archive_entry_misc.3.txt + archive_entry_paths.3.txt: ../../libarchive/archive_entry_paths.3 nroff -mdoc ../../libarchive/archive_entry_paths.3 | col -b > archive_entry_paths.3.txt @@ -127,4 +130,4 @@ bsdtar.1.txt: ../../tar/bsdtar.1 bsdcpio.1.txt: ../../cpio/bsdcpio.1 nroff -mdoc ../../cpio/bsdcpio.1 | col -b > bsdcpio.1.txt -all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive-formats.5.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt +all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_misc.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive-formats.5.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt diff --git a/archivers/libarchive/files/doc/text/archive_entry.3.txt b/archivers/libarchive/files/doc/text/archive_entry.3.txt index d9dd1c0ed39..2d3a65bf0b3 100644 --- a/archivers/libarchive/files/doc/text/archive_entry.3.txt +++ b/archivers/libarchive/files/doc/text/archive_entry.3.txt @@ -65,8 +65,8 @@ DESCRIPTION Stores the provided data in the object. In particular, for strings, the pointer is stored, not the referenced string. archive_entry_copy_XXXX() - As above, except that the referenced data is copied into the - object. + As above, except that the referenced data is copied into the ob‐ + ject. archive_entry_XXXX() Returns the specified data. In the case of strings, a const- qualified pointer to the string is returned. diff --git a/archivers/libarchive/files/doc/text/archive_entry_acl.3.txt b/archivers/libarchive/files/doc/text/archive_entry_acl.3.txt index 429e5d86103..21818e1773e 100644 --- a/archivers/libarchive/files/doc/text/archive_entry_acl.3.txt +++ b/archivers/libarchive/files/doc/text/archive_entry_acl.3.txt @@ -6,8 +6,8 @@ NAME archive_entry_acl_from_text, archive_entry_acl_from_text_w, archive_entry_acl_next, archive_entry_acl_next_w, archive_entry_acl_reset, archive_entry_acl_to_text, - archive_entry_acl_to_text_w, archive_entry_acl_types — functions for - manipulating Access Control Lists in archive entry descriptions + archive_entry_acl_to_text_w, archive_entry_acl_types — functions for ma‐ + nipulating Access Control Lists in archive entry descriptions LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -101,14 +101,14 @@ DESCRIPTION Entries (ACEs). There are four possible types of a NFSv4 ACE: - ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions - requiring given permissions. - ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing - actions requiring given permissions. + ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions re‐ + quiring given permissions. + ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing ac‐ + tions requiring given permissions. ARCHIVE_ENTRY_ACL_TYPE_AUDIT Log access attempts by principal which require given permissions. - ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access - attempts by principal which require + ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access at‐ + tempts by principal which require given permissions. The tag specifies the principal to which the permission applies. Valid @@ -199,9 +199,9 @@ DESCRIPTION ARCHIVE_ENTRY_ACL_TYPE_DENY ARCHIVE_ENTRY_ACL_TYPE_AUDIT ARCHIVE_ENTRY_ACL_TYPE_ALARM - for NFSv4 ACLs. For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is - included and at least one extended ACL entry is found, the three non- - extended ACLs are added. + for NFSv4 ACLs. For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is in‐ + cluded and at least one extended ACL entry is found, the three non-ex‐ + tended ACLs are added. archive_entry_acl_from_text() and archive_entry_acl_from_text_w() add new (or merge with existing) ACL entries from (wide) text. The argument type @@ -219,14 +219,14 @@ DESCRIPTION archive_entry_acl_next() and archive_entry_acl_next_w() return the next entry of the ACL list. This functions may only be called after - archive_entry_acl_reset() has indicated the presence of extended ACL - entries. + archive_entry_acl_reset() has indicated the presence of extended ACL en‐ + tries. archive_entry_acl_reset() prepare reading the list of ACL entries with - archive_entry_acl_next() or archive_entry_acl_next_w(). The function - returns either 0, if no non-extended ACLs are found. In this case, the - access permissions should be obtained by archive_entry_mode(3) or set - using chmod(2). Otherwise, the function returns the same value as + archive_entry_acl_next() or archive_entry_acl_next_w(). The function re‐ + turns either 0, if no non-extended ACLs are found. In this case, the ac‐ + cess permissions should be obtained by archive_entry_mode(3) or set using + chmod(2). Otherwise, the function returns the same value as archive_entry_acl_count(). archive_entry_acl_to_text() and archive_entry_acl_to_text_w() convert the @@ -257,23 +257,22 @@ DESCRIPTION ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA Separate ACL entries with comma instead of newline. - If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are - returned. It the entry contains POSIX.1e ACLs and none of the flags + If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are re‐ + turned. It the entry contains POSIX.1e ACLs and none of the flags ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are spec‐ ified, both access and default entries are returned and default entries are prefixed with “default:”. - archive_entry_acl_types() get ACL entry types contained in an archive - entry's ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this - function is a very efficient way to detect if an ACL already contains + archive_entry_acl_types() get ACL entry types contained in an archive en‐ + try's ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this func‐ + tion is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. RETURN VALUES archive_entry_acl_count() and archive_entry_acl_reset() returns the num‐ ber of ACL entries that match the given type mask. For POSIX.1e ACLS if - the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one - extended ACL entry exists, the three classic Unix permissions are - counted. + the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one ex‐ + tended ACL entry exists, the three classic Unix permissions are counted. archive_entry_acl_from_text() and archive_entry_acl_from_text_w() return ARCHIVE_OK if all entries were successfully parsed and ARCHIVE_WARN if diff --git a/archivers/libarchive/files/doc/text/archive_entry_linkify.3.txt b/archivers/libarchive/files/doc/text/archive_entry_linkify.3.txt index 62eb5226bf0..6c8a5ddc81b 100644 --- a/archivers/libarchive/files/doc/text/archive_entry_linkify.3.txt +++ b/archivers/libarchive/files/doc/text/archive_entry_linkify.3.txt @@ -27,8 +27,8 @@ SYNOPSIS DESCRIPTION Programs that want to create archives have to deal with hardlinks. - Hardlinks are handled in different ways by the archive formats. The - basic strategies are: + Hardlinks are handled in different ways by the archive formats. The ba‐ + sic strategies are: 1. Ignore hardlinks and store the body for each reference (old cpio, zip). @@ -37,23 +37,23 @@ DESCRIPTION 3. Store the body the last time an inode is seen (new cpio). - The archive_entry_linkresolver functions help by providing a unified - interface and handling the complexity behind the scene. + The archive_entry_linkresolver functions help by providing a unified in‐ + terface and handling the complexity behind the scene. - The archive_entry_linkresolver functions assume that archive_entry - instances have valid nlinks, inode and device values. The inode and - device value is used to match entries. The nlinks value is used to - determined if all references have been found and if the internal refer‐ - ences can be recycled. + The archive_entry_linkresolver functions assume that archive_entry in‐ + stances have valid nlinks, inode and device values. The inode and device + value is used to match entries. The nlinks value is used to determined + if all references have been found and if the internal references can be + recycled. - The archive_entry_linkresolver_new() function allocates a new link - resolver. The instance can be freed using + The archive_entry_linkresolver_new() function allocates a new link re‐ + solver. The instance can be freed using archive_entry_linkresolver_free(). All deferred entries are flushed and the internal storage is freed. The archive_entry_linkresolver_set_strategy() function selects the opti‐ - mal hardlink strategy for the given format. The format code can be - obtained from archive_format(3). The function can be called more than + mal hardlink strategy for the given format. The format code can be ob‐ + tained from archive_format(3). The function can be called more than once, but it is recommended to flush all deferred entries first. The archive_entry_linkify() function is the core of @@ -66,8 +66,8 @@ DESCRIPTION 2. For tar like archive formats, *sparse is set to NULL. If *entry is NULL, no action is taken. If the hardlink count of *entry is larger - than 1 and the file type is a regular file or symbolic link, the - internal list is searched for a matching inode. If such an inode is + than 1 and the file type is a regular file or symbolic link, the in‐ + ternal list is searched for a matching inode. If such an inode is found, the link count is decremented and the file size of *entry is set to 0 to notify that no body should be written. If no such inode is found, a copy of the entry is added to the internal cache with a @@ -83,8 +83,8 @@ DESCRIPTION Otherwise, the internal list is searched for a matching inode. If such an inode is not found, the entry is added to the internal list, both *entry and *sparse are set to NULL and the function returns. - If such an inode is found, the link count is decremented. If it - remains larger than one, the existing entry on the internal list is + If such an inode is found, the link count is decremented. If it re‐ + mains larger than one, the existing entry on the internal list is swapped with *entry after retaining the link count. The existing entry is returned in *entry. If the link count reached one, the new entry is also removed from the internal list and returned in @@ -101,8 +101,8 @@ DESCRIPTION 4. If *sparse is not NULL, archive it. 5. After all entries have been written to disk, call - archive_entry_linkify() with *entry set to NULL and archive the - returned entry as long as it is not NULL. + archive_entry_linkify() with *entry set to NULL and archive the re‐ + turned entry as long as it is not NULL. RETURN VALUES archive_entry_linkresolver_new() returns NULL on malloc(3) failures. diff --git a/archivers/libarchive/files/doc/text/archive_entry_misc.3.txt b/archivers/libarchive/files/doc/text/archive_entry_misc.3.txt new file mode 100644 index 00000000000..d6d888ad674 --- /dev/null +++ b/archivers/libarchive/files/doc/text/archive_entry_misc.3.txt @@ -0,0 +1,36 @@ +ARCHIVE_ENTRY_MISC(3) BSD Library Functions Manual ARCHIVE_ENTRY_MISC(3) + +NAME + archive_entry_symlink_type, archive_entry_set_symlink_type — miscella‐ + neous functions for manipulating properties of archive_entry. + +LIBRARY + Streaming Archive Library (libarchive, -larchive) + +SYNOPSIS + #include <archive_entry.h> + + int + archive_entry_symlink_type(struct archive_entry *a); + + void + archive_entry_set_symlink_type(struct archive_entry *a, int); + +DESCRIPTION + The function archive_entry_symlink_type() returns and the function + archive_entry_set_symlink_type() sets the type of the symbolic link + stored in an archive entry. These functions have special meaning on oper‐ + ating systems that support multiple symbolic link types (e.g. Microsoft + Windows). + + Supported values are: + AE_SYMLINK_TYPE_UNDEFINED Symbolic link target type is not defined (de‐ + fault on unix systems) + AE_SYMLINK_TYPE_FILE Symbolic link points to a file + AE_SYMLINK_TYPE_DIRECTORY Symbolic link points to a directory + +SEE ALSO + archive_entry(3), archive_entry_paths(3), archive_entry_stat(3), + libarchive(3) + +BSD April 15, 2019 BSD diff --git a/archivers/libarchive/files/doc/text/archive_entry_perms.3.txt b/archivers/libarchive/files/doc/text/archive_entry_perms.3.txt index b0a546f2e22..3c133af7e34 100644 --- a/archivers/libarchive/files/doc/text/archive_entry_perms.3.txt +++ b/archivers/libarchive/files/doc/text/archive_entry_perms.3.txt @@ -11,8 +11,8 @@ NAME archive_entry_update_gname_utf8, archive_entry_fflags, archive_entry_fflags_text, archive_entry_set_fflags, archive_entry_copy_fflags_text, archive_entry_copy_fflags_text_w — func‐ - tions for manipulating ownership and permissions in archive entry - descriptions + tions for manipulating ownership and permissions in archive entry de‐ + scriptions LIBRARY Streaming Archive Library (libarchive, -larchive) diff --git a/archivers/libarchive/files/doc/text/archive_entry_stat.3.txt b/archivers/libarchive/files/doc/text/archive_entry_stat.3.txt index 32270ed43a7..21e180e50d1 100644 --- a/archivers/libarchive/files/doc/text/archive_entry_stat.3.txt +++ b/archivers/libarchive/files/doc/text/archive_entry_stat.3.txt @@ -113,14 +113,13 @@ SYNOPSIS DESCRIPTION Copying to and from struct stat The function archive_entry_stat() converts the various fields stored in - the archive entry to the format used by stat(2). The return value - remains valid until either archive_entry_clear() or archive_entry_free() - is called. It is not affected by calls to the set accessor functions. - It currently sets the following values in struct stat: st_atime, - st_ctime, st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev, - st_size, st_uid. In addition, st_birthtime and high-precision informa‐ - tion for time-related fields will be included on platforms that support - it. + the archive entry to the format used by stat(2). The return value re‐ + mains valid until either archive_entry_clear() or archive_entry_free() is + called. It is not affected by calls to the set accessor functions. It + currently sets the following values in struct stat: st_atime, st_ctime, + st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev, st_size, + st_uid. In addition, st_birthtime and high-precision information for + time-related fields will be included on platforms that support it. The function archive_entry_copy_stat() copies fields from the platform's struct stat. Fields not provided by struct stat are unchanged. @@ -167,8 +166,8 @@ DESCRIPTION The inode number can be obtained using archive_entry_ino(). This is a legacy interface that uses the platform ino_t, which may be very small. - To set the inode number, archive_entry_set_ino64() is the preferred - interface. + To set the inode number, archive_entry_set_ino64() is the preferred in‐ + terface. Accessor functions for block and character devices Block and character devices are characterised either using a device num‐ diff --git a/archivers/libarchive/files/doc/text/archive_read.3.txt b/archivers/libarchive/files/doc/text/archive_read.3.txt index 3421d88041e..b38142e45c9 100644 --- a/archivers/libarchive/files/doc/text/archive_read.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read.3.txt @@ -11,9 +11,9 @@ SYNOPSIS DESCRIPTION These functions provide a complete API for reading streaming archives. - The general process is to first create the struct archive object, set - options, initialize the reader, iterate over the archive headers and - associated data, then close the archive and release all resources. + The general process is to first create the struct archive object, set op‐ + tions, initialize the reader, iterate over the archive headers and asso‐ + ciated data, then close the archive and release all resources. Create archive object See archive_read_new(3). diff --git a/archivers/libarchive/files/doc/text/archive_read_data.3.txt b/archivers/libarchive/files/doc/text/archive_read_data.3.txt index 499b0c5fc10..c4a2e412c28 100644 --- a/archivers/libarchive/files/doc/text/archive_read_data.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_data.3.txt @@ -54,8 +54,8 @@ RETURN VALUES return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). archive_read_data() returns a count of bytes actually read or zero at the end of the entry. On error, a value of ARCHIVE_FATAL, ARCHIVE_WARN, or diff --git a/archivers/libarchive/files/doc/text/archive_read_disk.3.txt b/archivers/libarchive/files/doc/text/archive_read_disk.3.txt index 420371e073d..c3ff4164843 100644 --- a/archivers/libarchive/files/doc/text/archive_read_disk.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_disk.3.txt @@ -70,9 +70,9 @@ DESCRIPTION (file flag) set. By default, the nodump file atrribute is ignored. ARCHIVE_READDISK_MAC_COPYFILE - Mac OS X specific. Read metadata (ACLs and extended - attributes) with copyfile(3). By default, metadata is - read using copyfile(3). + Mac OS X specific. Read metadata (ACLs and extended at‐ + tributes) with copyfile(3). By default, metadata is read + using copyfile(3). ARCHIVE_READDISK_NO_ACL Do not read Access Control Lists. By default, ACLs are read from disk. @@ -85,14 +85,14 @@ DESCRIPTION Do not traverse mount points. By defaut, moint points are traversed. ARCHIVE_READDISK_NO_XATTR - Do not read extended file attributes (xattrs). By - default, extended file attributes are read from disk. - See xattr(7) (Linux), xattr(2) (Mac OS X), or - getextattr(8) (FreeBSD) for more information on extended - file attributes. + Do not read extended file attributes (xattrs). By de‐ + fault, extended file attributes are read from disk. See + xattr(7) (Linux), xattr(2) (Mac OS X), or getextattr(8) + (FreeBSD) for more information on extended file at‐ + tributes. ARCHIVE_READDISK_RESTORE_ATIME - Restore access time of traversed files. By default, - access time of traversed files is not restored. + Restore access time of traversed files. By default, ac‐ + cess time of traversed files is not restored. archive_read_disk_set_symlink_logical(), archive_read_disk_set_symlink_physical(), @@ -103,16 +103,16 @@ DESCRIPTION behaves identically to the “logical” mode. archive_read_disk_gname(), archive_read_disk_uname() - Returns a user or group name given a gid or uid value. By - default, these always return a NULL string. + Returns a user or group name given a gid or uid value. By de‐ + fault, these always return a NULL string. archive_read_disk_set_gname_lookup(), archive_read_disk_set_uname_lookup() These allow you to override the functions used for user and group name lookups. You may also provide a void * pointer to a private data structure and a cleanup function for that data. The cleanup - function will be invoked when the struct archive object is - destroyed or when new lookup functions are registered. + function will be invoked when the struct archive object is de‐ + stroyed or when new lookup functions are registered. archive_read_disk_set_standard_lookup() This convenience function installs a standard set of user and @@ -130,13 +130,13 @@ DESCRIPTION source path will be used.) Information is read from disk using the path name from the struct - archive_entry object. If a file descriptor is provided, some - information will be obtained using that file descriptor, on plat‐ + archive_entry object. If a file descriptor is provided, some in‐ + formation will be obtained using that file descriptor, on plat‐ forms that support the appropriate system calls. If a pointer to a struct stat is provided, information from that - structure will be used instead of reading from the disk where - appropriate. This can provide performance benefits in scenarios + structure will be used instead of reading from the disk where ap‐ + propriate. This can provide performance benefits in scenarios where struct stat information has already been read from the disk as a side effect of some other operation. (For example, direc‐ tory traversal libraries often provide this information.) @@ -204,18 +204,18 @@ SEE ALSO HISTORY The libarchive library first appeared in FreeBSD 5.3. The - archive_read_disk interface was added to libarchive 2.6 and first - appeared in FreeBSD 8.0. + archive_read_disk interface was added to libarchive 2.6 and first ap‐ + peared in FreeBSD 8.0. AUTHORS The libarchive library was written by Tim Kientzle <kientzle@FreeBSD.org>. BUGS - The “standard” user name and group name lookup functions are not the - defaults because getgrgid(3) and getpwuid(3) are sometimes too large for - particular applications. The current design allows the application - author to use a more compact implementation when appropriate. + The “standard” user name and group name lookup functions are not the de‐ + faults because getgrgid(3) and getpwuid(3) are sometimes too large for + particular applications. The current design allows the application au‐ + thor to use a more compact implementation when appropriate. The full list of metadata read from disk by archive_read_disk_entry_from_file() is necessarily system-dependent. diff --git a/archivers/libarchive/files/doc/text/archive_read_extract.3.txt b/archivers/libarchive/files/doc/text/archive_read_extract.3.txt index ca1fec5ad49..3f58d112ab1 100644 --- a/archivers/libarchive/files/doc/text/archive_read_extract.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_extract.3.txt @@ -29,12 +29,11 @@ DESCRIPTION archive_write_disk(3) interfaces. The first call to archive_read_extract() creates a restore object using archive_write_disk_new(3) and - archive_write_disk_set_standard_lookup(3), then transparently - invokes archive_write_disk_set_options(3), - archive_write_header(3), archive_write_data(3), and - archive_write_finish_entry(3) to create the entry on disk and - copy data into it. The flags argument is passed unmodified to - archive_write_disk_set_options(3). + archive_write_disk_set_standard_lookup(3), then transparently in‐ + vokes archive_write_disk_set_options(3), archive_write_header(3), + archive_write_data(3), and archive_write_finish_entry(3) to cre‐ + ate the entry on disk and copy data into it. The flags argument + is passed unmodified to archive_write_disk_set_options(3). archive_read_extract2() This is another version of archive_read_extract() that allows you to provide your own restore object. In particular, this allows @@ -49,18 +48,18 @@ DESCRIPTION updating progress displays during extraction. The progress func‐ tion will be invoked during the extraction of large regular files. The progress function will be invoked with the pointer - provided to this call. Generally, the data pointed to should - include a reference to the archive object and the archive_entry - object so that various statistics can be retrieved for the - progress display. + provided to this call. Generally, the data pointed to should in‐ + clude a reference to the archive object and the archive_entry ob‐ + ject so that various statistics can be retrieved for the progress + display. RETURN VALUES Most functions return zero on success, non-zero on error. The possible return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). ERRORS Detailed error codes and textual descriptions are available from the diff --git a/archivers/libarchive/files/doc/text/archive_read_format.3.txt b/archivers/libarchive/files/doc/text/archive_read_format.3.txt index 38f1d8adfa2..6e8cbf170d9 100644 --- a/archivers/libarchive/files/doc/text/archive_read_format.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_format.3.txt @@ -85,21 +85,21 @@ DESCRIPTION archive_read_support_format_by_code() Enables a single format specified by the format code. This can be useful when reading a single archive twice; use - archive_format() after reading the first time and pass the - resulting code to this function to selectively enable only the - necessary format support. Note: In statically-linked executa‐ - bles, this will cause your program to include support for every - format. If executable size is a concern, you may wish to avoid - using this function. + archive_format() after reading the first time and pass the re‐ + sulting code to this function to selectively enable only the nec‐ + essary format support. Note: In statically-linked executables, + this will cause your program to include support for every format. + If executable size is a concern, you may wish to avoid using this + function. archive_read_support_format_empty() - Enables support for treating empty files as empty archives. - Because empty files are valid for several different formats, it - is not possible to accurately determine a format for an empty - file based purely on contents. So empty files are treated by + Enables support for treating empty files as empty archives. Be‐ + cause empty files are valid for several different formats, it is + not possible to accurately determine a format for an empty file + based purely on contents. So empty files are treated by libarchive as a distinct format. archive_read_support_format_raw() - The “raw” format handler allows libarchive to be used to read - arbitrary data. It treats any data stream as an archive with a + The “raw” format handler allows libarchive to be used to read ar‐ + bitrary data. It treats any data stream as an archive with a single entry. The pathname of this entry is “data”; all other entry fields are unset. This is not enabled by archive_read_support_format_all() in order to avoid erroneous diff --git a/archivers/libarchive/files/doc/text/archive_read_header.3.txt b/archivers/libarchive/files/doc/text/archive_read_header.3.txt index 29f29a4b749..cd53005947d 100644 --- a/archivers/libarchive/files/doc/text/archive_read_header.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_header.3.txt @@ -30,8 +30,8 @@ RETURN VALUES These functions return ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN (the operation succeeded but a non-critical error was encountered), ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐ - tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal - error; the archive should be closed immediately). + tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐ + ror; the archive should be closed immediately). ERRORS Detailed error codes and textual descriptions are available from the diff --git a/archivers/libarchive/files/doc/text/archive_read_open.3.txt b/archivers/libarchive/files/doc/text/archive_read_open.3.txt index 10fcd7040c1..a6f74566bce 100644 --- a/archivers/libarchive/files/doc/text/archive_read_open.3.txt +++ b/archivers/libarchive/files/doc/text/archive_read_open.3.txt @@ -61,15 +61,15 @@ DESCRIPTION This is a deprecated synonym for archive_read_open_filename(). archive_read_open_filename() Like archive_read_open(), except that it accepts a simple file‐ - name and a block size. A NULL filename represents standard - input. This function is safe for use with tape drives or other + name and a block size. A NULL filename represents standard in‐ + put. This function is safe for use with tape drives or other blocked devices. archive_read_open_memory() Like archive_read_open(), except that it accepts a pointer and size of a block of memory containing the archive data. - A complete description of the struct archive and struct archive_entry - objects can be found in the overview manual page for libarchive(3). + A complete description of the struct archive and struct archive_entry ob‐ + jects can be found in the overview manual page for libarchive(3). CLIENT CALLBACKS The callback functions must match the following prototypes: @@ -88,8 +88,8 @@ CLIENT CALLBACKS The open callback is invoked by archive_open(). It should return ARCHIVE_OK if the underlying file or data source is successfully opened. - If the open fails, it should call archive_set_error() to register an - error code and message and return ARCHIVE_FATAL. + If the open fails, it should call archive_set_error() to register an er‐ + ror code and message and return ARCHIVE_FATAL. The read callback is invoked whenever the library requires raw bytes from the archive. The read callback should read data into a buffer, set the @@ -98,8 +98,8 @@ CLIENT CALLBACKS callback again only after it has consumed this data. The library imposes no constraints on the size of the data blocks returned. On end-of-file, the read callback should return zero. On error, the read callback should - invoke archive_set_error() to register an error code and message and - return -1. + invoke archive_set_error() to register an error code and message and re‐ + turn -1. The skip callback is invoked when the library wants to ignore a block of data. The return value is the number of bytes actually skipped, which diff --git a/archivers/libarchive/files/doc/text/archive_util.3.txt b/archivers/libarchive/files/doc/text/archive_util.3.txt index 94d7c6c3a8c..b2deb3d1ad2 100644 --- a/archivers/libarchive/files/doc/text/archive_util.3.txt +++ b/archivers/libarchive/files/doc/text/archive_util.3.txt @@ -70,8 +70,8 @@ DESCRIPTION Copies error information from one archive to another. archive_errno() Returns a numeric error code (see errno(2)) indicating the reason - for the most recent error return. Note that this can not be - reliably used to detect whether an error has occurred. It should + for the most recent error return. Note that this can not be re‐ + liably used to detect whether an error has occurred. It should be used only after another libarchive function has returned an error status. archive_error_string() @@ -87,9 +87,9 @@ DESCRIPTION archive_filter_count() for details of the numbering. archive_filter_count() Returns the number of filters in the current pipeline. For read - archive handles, these filters are added automatically by the - automatic format detection. For write archive handles, these - filters are added by calls to the various + archive handles, these filters are added automatically by the au‐ + tomatic format detection. For write archive handles, these fil‐ + ters are added by calls to the various archive_write_add_filter_XXX() functions. Filters in the result‐ ing pipeline are numbered so that filter 0 is the filter closest to the format handler. As a convenience, functions that expect a diff --git a/archivers/libarchive/files/doc/text/archive_write.3.txt b/archivers/libarchive/files/doc/text/archive_write.3.txt index 6a097658fdc..cbafabc5a67 100644 --- a/archivers/libarchive/files/doc/text/archive_write.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write.3.txt @@ -38,8 +38,8 @@ DESCRIPTION Once you have prepared the struct archive object, you call archive_write_open() to actually open the archive and prepare it for - writing. There are several variants of this function; the most basic - expects you to provide pointers to several functions that can provide + writing. There are several variants of this function; the most basic ex‐ + pects you to provide pointers to several functions that can provide blocks of bytes from the archive. There are convenience forms that allow you to specify a filename, file descriptor, FILE * object, or a block of memory from which to write the archive data. @@ -61,8 +61,8 @@ DESCRIPTION tion to release all resources. EXAMPLE - The following sketch illustrates basic usage of the library. In this - example, the callback functions are simply wrappers around the standard + The following sketch illustrates basic usage of the library. In this ex‐ + ample, the callback functions are simply wrappers around the standard open(2), write(2), and close(2) system calls. #ifdef __linux__ @@ -173,8 +173,8 @@ AUTHORS BUGS There are many peculiar bugs in historic tar implementations that may cause certain programs to reject archives written by this library. For - example, several historic implementations calculated header checksums - incorrectly and will thus reject valid archives; GNU tar does not fully + example, several historic implementations calculated header checksums in‐ + correctly and will thus reject valid archives; GNU tar does not fully support pax interchange format; some old tar implementations required specific field terminations. diff --git a/archivers/libarchive/files/doc/text/archive_write_data.3.txt b/archivers/libarchive/files/doc/text/archive_write_data.3.txt index c42e91a0c78..dc65e08dd80 100644 --- a/archivers/libarchive/files/doc/text/archive_write_data.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_data.3.txt @@ -39,11 +39,11 @@ ERRORS archive_errno() and archive_error_string() functions. BUGS - In libarchive 3.x, this function sometimes returns zero on success - instead of returning the number of bytes written. Specifically, this - occurs when writing to an archive_write_disk handle. Clients should - treat any value less than zero as an error and consider any non-negative - value as success. + In libarchive 3.x, this function sometimes returns zero on success in‐ + stead of returning the number of bytes written. Specifically, this oc‐ + curs when writing to an archive_write_disk handle. Clients should treat + any value less than zero as an error and consider any non-negative value + as success. SEE ALSO tar(1), libarchive(3), archive_write_finish_entry(3), diff --git a/archivers/libarchive/files/doc/text/archive_write_disk.3.txt b/archivers/libarchive/files/doc/text/archive_write_disk.3.txt index ab9aca41f10..1c21375cfe9 100644 --- a/archivers/libarchive/files/doc/text/archive_write_disk.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_disk.3.txt @@ -37,13 +37,13 @@ SYNOPSIS DESCRIPTION These functions provide a complete API for creating objects on disk from - struct archive_entry descriptions. They are most naturally used when - extracting objects from an archive using the archive_read() interface. - The general process is to read struct archive_entry objects from an ar‐ - chive, then write those objects to a struct archive object created using - the archive_write_disk() family functions. This interface is deliber‐ - ately very similar to the archive_write() interface used to write objects - to a streaming archive. + struct archive_entry descriptions. They are most naturally used when ex‐ + tracting objects from an archive using the archive_read() interface. The + general process is to read struct archive_entry objects from an archive, + then write those objects to a struct archive object created using the + archive_write_disk() family functions. This interface is deliberately + very similar to the archive_write() interface used to write objects to a + streaming archive. archive_write_disk_new() Allocates and initializes a struct archive object suitable for @@ -52,38 +52,38 @@ DESCRIPTION archive_write_disk_set_skip_file() Records the device and inode numbers of a file that should not be overwritten. This is typically used to ensure that an extraction - process does not overwrite the archive from which objects are - being read. This capability is technically unnecessary but can - be a significant performance optimization in practice. + process does not overwrite the archive from which objects are be‐ + ing read. This capability is technically unnecessary but can be + a significant performance optimization in practice. archive_write_disk_set_options() The options field consists of a bitwise OR of one or more of the following values: ARCHIVE_EXTRACT_ACL - Attempt to restore Access Control Lists. By default, - extended ACLs are ignored. + Attempt to restore Access Control Lists. By default, ex‐ + tended ACLs are ignored. ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS Before removing a file system object prior to replacing it, clear platform-specific file flags which might pre‐ vent its removal. ARCHIVE_EXTRACT_FFLAGS - Attempt to restore file attributes (file flags). By - default, file attributes are ignored. See chattr(1) + Attempt to restore file attributes (file flags). By de‐ + fault, file attributes are ignored. See chattr(1) (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor‐ mation on file attributes. ARCHIVE_EXTRACT_MAC_METADATA Mac OS X specific. Restore metadata using copyfile(3). By default, copyfile(3) metadata is ignored. ARCHIVE_EXTRACT_NO_OVERWRITE - Existing files on disk will not be overwritten. By - default, existing regular files are truncated and over‐ - written; existing directories will have their permissions - updated; other pre-existing objects are unlinked and - recreated from scratch. + Existing files on disk will not be overwritten. By de‐ + fault, existing regular files are truncated and overwrit‐ + ten; existing directories will have their permissions up‐ + dated; other pre-existing objects are unlinked and recre‐ + ated from scratch. ARCHIVE_EXTRACT_OWNER The user and group IDs should be set on the restored - file. By default, the user and group IDs are not - restored. + file. By default, the user and group IDs are not re‐ + stored. ARCHIVE_EXTRACT_PERM Full permissions (including SGID, SUID, and sticky bits) should be restored exactly as specified, without obeying @@ -101,8 +101,8 @@ DESCRIPTION ARCHIVE_EXTRACT_SECURE_NODOTDOT Refuse to extract a path that contains a .. element any‐ where within it. The default is to not refuse such - paths. Note that paths ending in .. always cause an - error, regardless of this flag. + paths. Note that paths ending in .. always cause an er‐ + ror, regardless of this flag. ARCHIVE_EXTRACT_SECURE_SYMLINKS Refuse to extract any object whose final location would be altered by a symlink on disk. This is intended to @@ -119,12 +119,12 @@ DESCRIPTION it finds and return an error only if such symlink could not be removed. ARCHIVE_EXTRACT_TIME - The timestamps (mtime, ctime, and atime) should be - restored. By default, they are ignored. Note that - restoring of atime is not currently supported. + The timestamps (mtime, ctime, and atime) should be re‐ + stored. By default, they are ignored. Note that restor‐ + ing of atime is not currently supported. ARCHIVE_EXTRACT_UNLINK - Existing files on disk will be unlinked before any - attempt to create them. In some cases, this can prove to + Existing files on disk will be unlinked before any at‐ + tempt to create them. In some cases, this can prove to be a significant performance improvement. By default, existing files are truncated and rewritten, but the file is not recreated. In particular, the default behavior @@ -182,8 +182,8 @@ SEE ALSO HISTORY The libarchive library first appeared in FreeBSD 5.3. The - archive_write_disk interface was added to libarchive 2.0 and first - appeared in FreeBSD 6.3. + archive_write_disk interface was added to libarchive 2.0 and first ap‐ + peared in FreeBSD 6.3. AUTHORS The libarchive library was written by Tim Kientzle <kientzle@acm.org>. @@ -212,8 +212,8 @@ BUGS with a single request. Of course, this does not work if the ARCHIVE_EXTRACT_NODOTDOT option is specified. - Implicit directories are always created obeying the current umask. - Explicit objects are created obeying the current umask unless + Implicit directories are always created obeying the current umask. Ex‐ + plicit objects are created obeying the current umask unless ARCHIVE_EXTRACT_PERM is specified, in which case they current umask is ignored. diff --git a/archivers/libarchive/files/doc/text/archive_write_finish_entry.3.txt b/archivers/libarchive/files/doc/text/archive_write_finish_entry.3.txt index 236486cfe80..e4c9ec79627 100644 --- a/archivers/libarchive/files/doc/text/archive_write_finish_entry.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_finish_entry.3.txt @@ -13,9 +13,9 @@ SYNOPSIS archive_write_finish_entry(struct archive *); DESCRIPTION - Close out the entry just written. In particular, this writes out the - final padding required by some formats. Ordinarily, clients never need - to call this, as it is called automatically by archive_write_header() and + Close out the entry just written. In particular, this writes out the fi‐ + nal padding required by some formats. Ordinarily, clients never need to + call this, as it is called automatically by archive_write_header() and archive_write_close() as needed. For archive_write_disk handles, this flushes pending file attribute changes like modification time. diff --git a/archivers/libarchive/files/doc/text/archive_write_free.3.txt b/archivers/libarchive/files/doc/text/archive_write_free.3.txt index d599ca3bdca..b275b67a277 100644 --- a/archivers/libarchive/files/doc/text/archive_write_free.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_free.3.txt @@ -38,8 +38,8 @@ DESCRIPTION This is a deprecated synonym for archive_write_free(). archive_write_free() - Invokes archive_write_close() if necessary, then releases all - resources. If you need detailed information about + Invokes archive_write_close() if necessary, then releases all re‐ + sources. If you need detailed information about archive_write_close() failures, you should be careful to call it separately, as you cannot obtain error information after archive_write_free() returns. diff --git a/archivers/libarchive/files/doc/text/archive_write_open.3.txt b/archivers/libarchive/files/doc/text/archive_write_open.3.txt index 734135993a2..38ad962fcf4 100644 --- a/archivers/libarchive/files/doc/text/archive_write_open.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_open.3.txt @@ -33,9 +33,9 @@ DESCRIPTION archive_write_open() Freeze the settings, open the archive, and prepare for writing entries. This is the most generic form of this function, which - accepts pointers to three callback functions which will be - invoked by the compression layer to write the constructed ar‐ - chive. This does not alter the default archive padding. + accepts pointers to three callback functions which will be in‐ + voked by the compression layer to write the constructed archive. + This does not alter the default archive padding. archive_write_open_fd() A convenience form of archive_write_open() that accepts a file @@ -60,8 +60,8 @@ DESCRIPTION archive_write_open_filename() will adjust the last-block padding depending on the file: it will enable padding when writing to standard output or to a character or block device node, it will - disable padding otherwise. You can override this by manually - invoking archive_write_set_bytes_in_last_block() before calling + disable padding otherwise. You can override this by manually in‐ + voking archive_write_set_bytes_in_last_block() before calling archive_write_open(). The archive_write_open_filename() function is safe for use with tape drives or other block-oriented devices. @@ -90,8 +90,8 @@ CLIENT CALLBACKS The open callback is invoked by archive_write_open(). It should return ARCHIVE_OK if the underlying file or data source is successfully opened. - If the open fails, it should call archive_set_error() to register an - error code and message and return ARCHIVE_FATAL. + If the open fails, it should call archive_set_error() to register an er‐ + ror code and message and return ARCHIVE_FATAL. typedef la_ssize_t archive_write_callback(struct archive *, void *client_data, const void *buffer, size_t length) diff --git a/archivers/libarchive/files/doc/text/archive_write_set_options.3.txt b/archivers/libarchive/files/doc/text/archive_write_set_options.3.txt index 2a10224fb08..9bf03e2e456 100644 --- a/archivers/libarchive/files/doc/text/archive_write_set_options.3.txt +++ b/archivers/libarchive/files/doc/text/archive_write_set_options.3.txt @@ -124,8 +124,8 @@ OPTIONS fier in the ISO9660 metadata. It is limited to 32 bytes. Default: none. Format iso9660 - boot support - These options are used to make an ISO9660 image that can be - directly booted on various systems. + These options are used to make an ISO9660 image that can be di‐ + rectly booted on various systems. boot=filename The file matching this name will be used as the El Torito boot image file. @@ -151,16 +151,16 @@ OPTIONS Specifies the boot semantics used by the El Torito boot image: If the value is fd, then the boot image is assumed to be a bootable floppy image. If the value is hd, then - the boot image is assumed to be a bootable hard disk - image. If the value is no-emulation, the boot image is + the boot image is assumed to be a bootable hard disk im‐ + age. If the value is no-emulation, the boot image is used without floppy or hard disk emulation. If the boot - image is exactly 1.2MB, 1.44MB, or 2.88MB, then the - default is fd, otherwise the default is no-emulation. + image is exactly 1.2MB, 1.44MB, or 2.88MB, then the de‐ + fault is fd, otherwise the default is no-emulation. Format iso9660 - filename and size extensions Various extensions to the base ISO9660 format. allow-ldots - If enabled, allows filenames to begin with a leading - period. If disabled, filenames that begin with a leading + If enabled, allows filenames to begin with a leading pe‐ + riod. If disabled, filenames that begin with a leading period will have that period replaced by an underscore character in the standard ISO9660 namespace. This does not impact names stored in the Rockridge or Joliet exten‐ @@ -173,8 +173,8 @@ OPTIONS allow-multidot If enabled, allows filenames to contain multiple period characters, in violation of the ISO9660 specification. - If disabled, additional periods will be converted to - underscore characters. This does not impact names stored + If disabled, additional periods will be converted to un‐ + derscore characters. This does not impact names stored in the Rockridge or Joliet extension area. Default: dis‐ abled. allow-period @@ -260,8 +260,8 @@ OPTIONS default. compression-level=number The compression level used by the deflate compressor. - Ranges from 0 (least effort) to 9 (most effort). - Default: 6 + Ranges from 0 (least effort) to 9 (most effort). De‐ + fault: 6 zisofs Synonym for zisofs=direct. zisofs=direct Compress each file in the archive. Unlike @@ -298,9 +298,9 @@ OPTIONS hdrcharset This sets the character set used for filenames. zip64 Zip64 extensions provide additional file size information - for entries larger than 4 GiB. They also provide - extended file offset and archive size information when - archives exceed 4 GiB. By default, the Zip writer selec‐ + for entries larger than 4 GiB. They also provide ex‐ + tended file offset and archive size information when ar‐ + chives exceed 4 GiB. By default, the Zip writer selec‐ tively enables these extensions only as needed. In par‐ ticular, if the file size is unknown, the Zip writer will include Zip64 extensions to guard against the possibility @@ -313,8 +313,8 @@ OPTIONS Disabling this option with !zip64 will force the Zip writer to avoid Zip64 extensions: It will reject files - with size greater than 4 GiB, it will reject any new - entries once the total archive size reaches 4 GiB, and it + with size greater than 4 GiB, it will reject any new en‐ + tries once the total archive size reaches 4 GiB, and it will not use Zip64 extensions for files with unknown size. In particular, this can improve compatibility when generating archives where the entry sizes are not known diff --git a/archivers/libarchive/files/doc/text/bsdcpio.1.txt b/archivers/libarchive/files/doc/text/bsdcpio.1.txt index 34e5c8ca2cd..0e069323cc8 100644 --- a/archivers/libarchive/files/doc/text/bsdcpio.1.txt +++ b/archivers/libarchive/files/doc/text/bsdcpio.1.txt @@ -202,8 +202,8 @@ OPTIONS bzip2 compression is recognized automatically on input. -Z (o mode only) Compress the archive with compress-compatible com‐ - pression before writing it. In input mode, this option is - ignored; compression is recognized automatically on input. + pression before writing it. In input mode, this option is ig‐ + nored; compression is recognized automatically on input. -z (o mode only) Compress the archive with gzip-compatible compres‐ sion before writing it. In input mode, this option is ignored; diff --git a/archivers/libarchive/files/doc/text/bsdtar.1.txt b/archivers/libarchive/files/doc/text/bsdtar.1.txt index 69e12c41080..c840c0175f6 100644 --- a/archivers/libarchive/files/doc/text/bsdtar.1.txt +++ b/archivers/libarchive/files/doc/text/bsdtar.1.txt @@ -33,16 +33,16 @@ DESCRIPTION ular files. The -f option is required. The long form is --update. -x Extract to disk from the archive. If a file with the same name - appears more than once in the archive, each copy will be - extracted, with later copies overwriting (replacing) earlier + appears more than once in the archive, each copy will be ex‐ + tracted, with later copies overwriting (replacing) earlier copies. The long option form is --extract. In -c, -r, or -u mode, each specified file or directory is added to the archive in the order specified on the command line. By default, the con‐ tents of each directory are also archived. - In extract or list mode, the entire command line is read and parsed - before the archive is opened. The pathnames or patterns on the command + In extract or list mode, the entire command line is read and parsed be‐ + fore the archive is opened. The pathnames or patterns on the command line indicate which items in the archive should be processed. Patterns are shell-style globbing patterns as documented in tcsh(1). @@ -51,9 +51,9 @@ OPTIONS ating modes. @archive - (c and r modes only) The specified archive is opened and the - entries in it will be appended to the current archive. As a sim‐ - ple example, + (c and r modes only) The specified archive is opened and the en‐ + tries in it will be appended to the current archive. As a simple + example, tar -c -f - newfile @original.tar writes a new archive to standard output containing a file newfile and all of the entries from original.tar. In contrast, @@ -77,8 +77,8 @@ OPTIONS tar -a -cf archive.zip source.c source.h creates a new archive with zip format, tar -a -jcf archive.tgz source.c source.h - ignores the “-j” option, and creates a new archive with - restricted pax format and gzip compression, + ignores the “-j” option, and creates a new archive with re‐ + stricted pax format and gzip compression, tar -a -jcf archive.xxx source.c source.h if it is unknown suffix or no suffix, creates a new archive with restricted pax format and bzip2 compression. @@ -110,18 +110,24 @@ OPTIONS --clear-nochange-fflags (x mode only) Before removing file system objects to replace - them, clear platform-specific file flags that might prevent - removal. + them, clear platform-specific file attributes or file flags that + might prevent removal. --exclude pattern Do not process files or directories that match the specified pat‐ tern. Note that exclusions take precedence over patterns or filenames specified on the command line. + --exclude-vcs + Do not process files or directories internally used by the ver‐ + sion control systems ‘CVS’, ‘RCS’, ‘SCCS’, ‘SVN’, ‘Arch’, + ‘Bazaar’, ‘Mercurial’ and ‘Darcs’. + --fflags - (c, r, u, x modes only) Archive or extract file flags. This is - the reverse of --no-fflags and the default behavior in c, r, and - u modes or if tar is run in x mode as root. + (c, r, u, x modes only) Archive or extract platform-specific file + attributes or file flags. This is the reverse of --no-fflags and + the default behavior in c, r, and u modes or if tar is run in x + mode as root. --format format (c, r, u mode only) Use the specified format for the created ar‐ @@ -164,8 +170,8 @@ OPTIONS --help Show usage. --hfsCompression - (x mode only) Mac OS X specific (v10.6 or later). Compress - extracted regular files with HFS+ compression. + (x mode only) Mac OS X specific (v10.6 or later). Compress ex‐ + tracted regular files with HFS+ compression. --ignore-zeros An alias of --options read_concatenated_archives for compatibil‐ @@ -183,10 +189,10 @@ OPTIONS old.tgz containing the string ‘foo’. -J, --xz - (c mode only) Compress the resulting archive with xz(1). In - extract or list modes, this option is ignored. Note that this - tar implementation recognizes XZ compression automatically when - reading archives. + (c mode only) Compress the resulting archive with xz(1). In ex‐ + tract or list modes, this option is ignored. Note that this tar + implementation recognizes XZ compression automatically when read‐ + ing archives. -j, --bzip, --bzip2, --bunzip2 (c mode only) Compress the resulting archive with bzip2(1). In @@ -229,11 +235,10 @@ OPTIONS pression automatically when reading archives. --lzma (c mode only) Compress the resulting archive with the original - LZMA algorithm. In extract or list modes, this option is - ignored. Use of this option is discouraged and new archives - should be created with --xz instead. Note that this tar imple‐ - mentation recognizes LZMA compression automatically when reading - archives. + LZMA algorithm. In extract or list modes, this option is ig‐ + nored. Use of this option is discouraged and new archives should + be created with --xz instead. Note that this tar implementation + recognizes LZMA compression automatically when reading archives. --lzop (c mode only) Compress the resulting archive with lzop(1). In extract or list modes, this option is ignored. Note that this @@ -246,22 +251,21 @@ OPTIONS --mac-metadata (c, r, u and x mode only) Mac OS X specific. Archive or extract - extended ACLs and extended attributes using copyfile(3) in Apple‐ - Double format. This is the reverse of --no-mac-metadata. and the - default behavior in c, r, and u modes or if tar is run in x mode - as root. + extended ACLs and extended file attributes using copyfile(3) in + AppleDouble format. This is the reverse of --no-mac-metadata. + and the default behavior in c, r, and u modes or if tar is run in + x mode as root. -n, --norecurse, --no-recursion - (c, r, u modes only) Do not recursively archive the contents of - directories. + Do not operate recursively on the content of directories. --newer date (c, r, u modes only) Only include files and directories newer than the specified date. This compares ctime entries. --newer-mtime date - (c, r, u modes only) Like --newer, except it compares mtime - entries instead of ctime entries. + (c, r, u modes only) Like --newer, except it compares mtime en‐ + tries instead of ctime entries. --newer-than file (c, r, u modes only) Only include files and directories newer @@ -292,17 +296,15 @@ OPTIONS in c, r, u and x modes). --no-fflags - (c, r, u, x modes only) Do not archive or extract file flags. - This is the reverse of --fflags and the default behavior if tar - is run as non-root in x mode. + (c, r, u, x modes only) Do not archive or extract file attributes + or file flags. This is the reverse of --fflags and the default + behavior if tar is run as non-root in x mode. --no-mac-metadata (x mode only) Mac OS X specific. Do not archive or extract ACLs - and extended attributes using copyfile(3) in AppleDouble format. - This is the reverse of --mac-metadata. and the default behavior - if tar is run as non-root in x mode. - - -n, --norecurse, --no-recursion + and extended file attributes using copyfile(3) in AppleDouble + format. This is the reverse of --mac-metadata. and the default + behavior if tar is run as non-root in x mode. --no-same-owner (x mode only) Do not extract owner and group IDs. This is the @@ -311,14 +313,14 @@ OPTIONS --no-same-permissions (x mode only) Do not extract full permissions (SGID, SUID, sticky - bit, ACLs, extended attributes or extended file flags). This is - the reverse of -p and the default behavior if tar is run as non- - root. + bit, file attributes or file flags, extended file attributes and + ACLs). This is the reverse of -p and the default behavior if tar + is run as non-root. --no-xattrs - (c, r, u, x modes only) Do not archive or extract extended - attributes. This is the reverse of --xattrs and the default - behavior if tar is run as non-root in x mode. + (c, r, u, x modes only) Do not archive or extract extended file + attributes. This is the reverse of --xattrs and the default be‐ + havior if tar is run as non-root in x mode. --numeric-owner This is equivalent to --uname "" --gname "". On extract, it @@ -346,8 +348,8 @@ OPTIONS than the specified date. This compares ctime entries. --older-mtime date - (c, r, u modes only) Like --older, except it compares mtime - entries instead of ctime entries. + (c, r, u modes only) Like --older, except it compares mtime en‐ + tries instead of ctime entries. --older-than file (c, r, u modes only) Only include files and directories older @@ -382,8 +384,8 @@ OPTIONS Support Joliet extensions. This is enabled by default, use !joliet or iso9660:!joliet to disable. iso9660:rockridge - Support Rock Ridge extensions. This is enabled by - default, use !rockridge or iso9660:!rockridge to disable. + Support Rock Ridge extensions. This is enabled by de‐ + fault, use !rockridge or iso9660:!rockridge to disable. gzip:compression-level A decimal integer from 1 to 9 specifying the gzip com‐ pression level. @@ -460,17 +462,17 @@ OPTIONS begin with a / character) have the leading slash removed both when creating archives and extracting from them. Also, tar will refuse to extract archive entries whose pathnames contain .. or - whose target directory would be altered by a symlink. This - option suppresses these behaviors. + whose target directory would be altered by a symlink. This op‐ + tion suppresses these behaviors. -p, --insecure, --preserve-permissions (x mode only) Preserve file permissions. Attempt to restore the - full permissions, including owner, file modes, ACLs, extended - attributes and extended file flags, if available, for each item - extracted from the archive. This is te reverse of - --no-same-permissions and the default if tar is being run by root - and can be partially overridden by also specifying --no-acls, - --no-fflags, --no-mac-metadata or --no-xattrs. + full permissions, including file modes, file attributes or file + flags, extended file attributes and ACLs, if available, for each + item extracted from the archive. This is the reverse of + --no-same-permissions and the default if tar is being run as + root. It can be partially overridden by also specifying + --no-acls, --no-fflags, --no-mac-metadata or --no-xattrs. --passphrase passphrase The passphrase is used to extract or create an encrypted archive. @@ -486,8 +488,8 @@ OPTIONS that matches each pattern or filename operand. Exit as soon as each specified pattern or filename has been matched. By default, the archive is always read to the very end, since there can be - multiple entries with the same name and, by convention, later - entries overwrite earlier entries. This option is provided as a + multiple entries with the same name and, by convention, later en‐ + tries overwrite earlier entries. This option is provided as a performance optimization. -S (x mode only) Extract files as sparse files. For every block on @@ -531,8 +533,8 @@ OPTIONS from filename. In c mode, tar will read names to be archived from filename. The special name “-C” on a line by itself will cause the current directory to be changed to the directory speci‐ - fied on the following line. Names are terminated by newlines - unless --null is specified. Note that --null also disables the + fied on the following line. Names are terminated by newlines un‐ + less --null is specified. Note that --null also disables the special handling of lines containing “-C”. Note: If you are generating lists of files using find(1), you probably want to use -n as well. @@ -545,9 +547,9 @@ OPTIONS (x mode only) Unlink files before creating them. This can be a minor performance optimization if most files already exist, but can make things slower if most files do not already exist. This - flag also causes tar to remove intervening directory symlinks - instead of reporting an error. See the SECURITY section below - for more details. + flag also causes tar to remove intervening directory symlinks in‐ + stead of reporting an error. See the SECURITY section below for + more details. --uid id Use the provided user id number and ignore the user name from the @@ -584,9 +586,9 @@ OPTIONS --exclude for more information about the handling of exclusions. --xattrs - (c, r, u, x modes only) Archive or extract extended attributes. - This is the reverse of --no-xattrs and the default behavior in c, - r, and u modes or if tar is run in x mode as root. + (c, r, u, x modes only) Archive or extract extended file at‐ + tributes. This is the reverse of --no-xattrs and the default be‐ + havior in c, r, and u modes or if tar is run in x mode as root. -y (c mode only) Compress the resulting archive with bzip2(1). In extract or list modes, this option is ignored. Note that this @@ -652,8 +654,8 @@ EXAMPLES tar -c -f new.tar foo1 @old.tgz -C/tmp foo2 will create a new archive new.tar. tar will read the file foo1 from the current directory and add it to the output archive. It will then read - each entry from old.tgz and add those entries to the output archive. - Finally, it will switch to the /tmp directory and add foo2 to the output + each entry from old.tgz and add those entries to the output archive. Fi‐ + nally, it will switch to the /tmp directory and add foo2 to the output archive. An input file in mtree(5) format can be used to create an output archive @@ -704,25 +706,25 @@ COMPATIBILITY SECURITY Certain security issues are common to many archiving programs, including - tar. In particular, carefully-crafted archives can request that tar - extract files to locations outside of the target directory. This can - potentially be used to cause unwitting users to overwrite files they did + tar. In particular, carefully-crafted archives can request that tar ex‐ + tract files to locations outside of the target directory. This can po‐ + tentially be used to cause unwitting users to overwrite files they did not intend to overwrite. If the archive is being extracted by the supe‐ ruser, any file on the system can potentially be overwritten. There are three ways this can happen. Although tar has mechanisms to protect against each one, savvy users should be aware of the implications: - · Archive entries can have absolute pathnames. By default, tar - removes the leading / character from filenames before restoring + • Archive entries can have absolute pathnames. By default, tar re‐ + moves the leading / character from filenames before restoring them to guard against this problem. - · Archive entries can have pathnames that include .. components. + • Archive entries can have pathnames that include .. components. By default, tar will not extract files containing .. components in their pathname. - · Archive entries can exploit symbolic links to restore files to - other directories. An archive can restore a symbolic link to - another directory, then use that link to restore a file into that + • Archive entries can exploit symbolic links to restore files to + other directories. An archive can restore a symbolic link to an‐ + other directory, then use that link to restore a file into that directory. To guard against this, tar checks each extracted path for symlinks. If the final path element is a symlink, it will be removed and replaced with the archive entry. If -U is specified, @@ -733,8 +735,8 @@ SECURITY untrusted sources. You should examine the contents of an archive with tar -tf filename before extraction. You should use the -k option to ensure that tar will - not overwrite any existing files or the -U option to remove any pre- - existing files. You should generally not extract archives while running + not overwrite any existing files or the -U option to remove any pre-ex‐ + isting files. You should generally not extract archives while running with super-user privileges. Note that the -P option to tar disables the security checks above and allows you to extract an archive while preserv‐ ing any absolute pathnames, .. components, or symlinks to other directo‐ @@ -757,9 +759,9 @@ STANDARDS HISTORY A tar command appeared in Seventh Edition Unix, which was released in January, 1979. There have been numerous other implementations, many of - which extended the file format. John Gilmore's pdtar public-domain - implementation (circa November, 1987) was quite influential, and formed - the basis of GNU tar. GNU tar was included as the standard system tar in + which extended the file format. John Gilmore's pdtar public-domain im‐ + plementation (circa November, 1987) was quite influential, and formed the + basis of GNU tar. GNU tar was included as the standard system tar in FreeBSD beginning with FreeBSD 1.0. This is a complete re-implementation based on the libarchive(3) library. @@ -774,10 +776,10 @@ BUGS All archive output is written in correctly-sized blocks, even if the out‐ put is being compressed. Whether or not the last output block is padded - to a full block size varies depending on the format and the output - device. For tar and cpio formats, the last block of output is padded to - a full block size if the output is being written to standard output or to - a character or block device such as a tape drive. If the output is being + to a full block size varies depending on the format and the output de‐ + vice. For tar and cpio formats, the last block of output is padded to a + full block size if the output is being written to standard output or to a + character or block device such as a tape drive. If the output is being written to a regular file, the last block will not be padded. Many com‐ pressors, including gzip(1) and bzip2(1), complain about the null padding when decompressing an archive created by tar, although they still extract @@ -807,9 +809,9 @@ BUGS There is not yet any support for multi-volume archives. - Converting between dissimilar archive formats (such as tar and cpio) - using the @- convention can cause hard link information to be lost. - (This is a consequence of the incompatible ways that different archive - formats store hardlink information.) + Converting between dissimilar archive formats (such as tar and cpio) us‐ + ing the @- convention can cause hard link information to be lost. (This + is a consequence of the incompatible ways that different archive formats + store hardlink information.) -BSD October 1, 2017 BSD +BSD June 3, 2019 BSD diff --git a/archivers/libarchive/files/doc/text/cpio.5.txt b/archivers/libarchive/files/doc/text/cpio.5.txt index 395a560aa76..1862129dc93 100644 --- a/archivers/libarchive/files/doc/text/cpio.5.txt +++ b/archivers/libarchive/files/doc/text/cpio.5.txt @@ -13,9 +13,9 @@ DESCRIPTION basic numeric metadata followed by the full pathname of the entry and the file data. The header record stores a series of integer values that gen‐ erally follow the fields in struct stat. (See stat(2) for details.) The - variants differ primarily in how they store those integers (binary, - octal, or hexadecimal). The header is followed by the pathname of the - entry (the length of the pathname is stored in the header) and any file + variants differ primarily in how they store those integers (binary, oc‐ + tal, or hexadecimal). The header is followed by the pathname of the en‐ + try (the length of the pathname is stored in the header) and any file data. The end of the archive is indicated by a special record with the pathname “TRAILER!!!”. @@ -184,8 +184,8 @@ DESCRIPTION numbers differently XXX. Other Extensions and Variants - Sun Solaris uses additional file types to store extended file data, - including ACLs and extended attributes, as special entries in cpio ar‐ + Sun Solaris uses additional file types to store extended file data, in‐ + cluding ACLs and extended attributes, as special entries in cpio ar‐ chives. XXX Others? XXX @@ -215,11 +215,11 @@ BUGS The “CRC” format is mis-named, as it uses a simple checksum and not a cyclic redundancy check. - The old binary format is limited to 16 bits for user id, group id, - device, and inode numbers. It is limited to 4 gigabyte file sizes. + The old binary format is limited to 16 bits for user id, group id, de‐ + vice, and inode numbers. It is limited to 4 gigabyte file sizes. - The old ASCII format is limited to 18 bits for the user id, group id, - device, and inode numbers. It is limited to 8 gigabyte file sizes. + The old ASCII format is limited to 18 bits for the user id, group id, de‐ + vice, and inode numbers. It is limited to 8 gigabyte file sizes. The new ASCII format is limited to 4 gigabyte file sizes. diff --git a/archivers/libarchive/files/doc/text/libarchive-formats.5.txt b/archivers/libarchive/files/doc/text/libarchive-formats.5.txt index fe095e36b45..253bd3d62c9 100644 --- a/archivers/libarchive/files/doc/text/libarchive-formats.5.txt +++ b/archivers/libarchive/files/doc/text/libarchive-formats.5.txt @@ -27,8 +27,8 @@ DESCRIPTION and mode information, and the file data is stored in subsequent records. Later variants have extended this by either appropriating undefined areas of the header record, extending the header to multiple records, or by - storing special entries that modify the interpretation of subsequent - entries. + storing special entries that modify the interpretation of subsequent en‐ + tries. gnutar The libarchive(3) library can read most GNU-format tar archives. It currently supports the most popular GNU extensions, including @@ -45,12 +45,12 @@ DESCRIPTION interchange format archives. Pax interchange format archives are an extension of the older ustar format that adds a separate entry with additional attributes stored as key/value pairs immediately - before each regular entry. The presence of these additional - entries is the only difference between pax interchange format and + before each regular entry. The presence of these additional en‐ + tries is the only difference between pax interchange format and the older ustar format. The extended attributes are of unlimited length and are stored as UTF-8 Unicode strings. Keywords defined - in the standard are in all lowercase; vendors are allowed to - define custom keys by preceding them with the vendor name in all + in the standard are in all lowercase; vendors are allowed to de‐ + fine custom keys by preceding them with the vendor name in all uppercase. When writing pax archives, libarchive uses many of the SCHILY keys defined by Joerg Schilling's “star” archiver and a few LIBARCHIVE keys. The libarchive library can read most of @@ -61,8 +61,8 @@ DESCRIPTION stores them using the UTF-8 encoding. Prior to libarchive 3.0, libarchive erroneously assumed that the system wide-character routines natively supported Unicode. This caused it to mis-han‐ - dle non-ASCII filenames on systems that did not satisfy this - assumption. + dle non-ASCII filenames on systems that did not satisfy this as‐ + sumption. restricted pax The libarchive library can also write pax archives in which it @@ -71,43 +71,43 @@ DESCRIPTION the extended attributes entry is required to store a long file name, long linkname, extended ACL, file flags, or if any of the standard ustar data (user name, group name, UID, GID, etc) cannot - be fully represented in the ustar header. In all cases, the - result can be dearchived by any program that can read POSIX-com‐ - pliant pax interchange format archives. Programs that correctly + be fully represented in the ustar header. In all cases, the re‐ + sult can be dearchived by any program that can read POSIX-compli‐ + ant pax interchange format archives. Programs that correctly read ustar format (see below) will also be able to read this for‐ mat; any extended attributes will be extracted as separate files stored in PaxHeader directories. ustar The libarchive library can both read and write this format. This format has the following limitations: - · Device major and minor numbers are limited to 21 bits. Nodes + • Device major and minor numbers are limited to 21 bits. Nodes with larger numbers will not be added to the archive. - · Path names in the archive are limited to 255 bytes. (Shorter + • Path names in the archive are limited to 255 bytes. (Shorter if there is no / character in exactly the right place.) - · Symbolic links and hard links are stored in the archive with + • Symbolic links and hard links are stored in the archive with the name of the referenced file. This name is limited to 100 bytes. - · Extended attributes, file flags, and other extended security + • Extended attributes, file flags, and other extended security information cannot be stored. - · Archive entries are limited to 8 gigabytes in size. + • Archive entries are limited to 8 gigabytes in size. Note that the pax interchange format has none of these restric‐ tions. The ustar format is old and widely supported. It is rec‐ ommended when compatibility is the primary concern. v7 The libarchive library can read and write the legacy v7 tar for‐ mat. This format has the following limitations: - · Only regular files, directories, and symbolic links can be + • Only regular files, directories, and symbolic links can be archived. Block and character device nodes, FIFOs, and sock‐ ets cannot be archived. - · Path names in the archive are limited to 100 bytes. - · Symbolic links and hard links are stored in the archive with + • Path names in the archive are limited to 100 bytes. + • Symbolic links and hard links are stored in the archive with the name of the referenced file. This name is limited to 100 bytes. - · User and group information are stored as numeric IDs; there + • User and group information are stored as numeric IDs; there is no provision for storing user or group names. - · Extended attributes, file flags, and other extended security + • Extended attributes, file flags, and other extended security information cannot be stored. - · Archive entries are limited to 8 gigabytes in size. + • Archive entries are limited to 8 gigabytes in size. Generally, users should prefer the ustar format for portability as the v7 tar format is both less useful and less portable. @@ -119,9 +119,9 @@ DESCRIPTION The POSIX standards require fixed-length numeric fields to be written with some character position reserved for terminators. Libarchive allows these fields to be written without terminator - characters. This extends the allowable range; in particular, - ustar archives with this extension can support entries up to 64 - gigabytes in size. Libarchive also recognizes base-256 values in + characters. This extends the allowable range; in particular, us‐ + tar archives with this extension can support entries up to 64 gi‐ + gabytes in size. Libarchive also recognizes base-256 values in most numeric fields. This essentially removes all limitations on file size, modification time, and device numbers. @@ -206,16 +206,16 @@ DESCRIPTION CDROM images. In many cases, this can remove the need to burn a physical CDROM just in order to read the files contained in an ISO9660 image. It also avoids security and complexity issues that come with virtual mounts - and loopback devices. Libarchive supports the most common Rockridge - extensions and has partial support for Joliet extensions. If both exten‐ + and loopback devices. Libarchive supports the most common Rockridge ex‐ + tensions and has partial support for Joliet extensions. If both exten‐ sions are present, the Joliet extensions will be used and the Rockridge extensions will be ignored. In particular, this can create problems with hardlinks and symlinks, which are supported by Rockridge but not by Joliet. Libarchive reads ISO9660 images using a streaming strategy. This allows - it to read compressed images directly (decompressing on the fly) and - allows it to read images directly from network sockets, pipes, and other + it to read compressed images directly (decompressing on the fly) and al‐ + lows it to read images directly from network sockets, pipes, and other non-seekable data sources. This strategy works well for optimized ISO9660 images created by many popular programs. Such programs collect all directory information at the beginning of the ISO9660 image so it can @@ -237,20 +237,19 @@ DESCRIPTION archives that use Zip64 extensions and self-extracting zip archives. Libarchive can use either of two different strategies for reading Zip ar‐ chives: a streaming strategy which is fast and can handle extremely large - archives, and a seeking strategy which can correctly process self- - extracting Zip archives and archives with deleted members or other in- - place modifications. + archives, and a seeking strategy which can correctly process self-ex‐ + tracting Zip archives and archives with deleted members or other in-place + modifications. The streaming reader processes Zip archives as they are read. It can - read archives of arbitrary size from tape or network sockets, and can - decode Zip archives that have been separately compressed or encoded. - However, self-extracting Zip archives and archives with certain types of + read archives of arbitrary size from tape or network sockets, and can de‐ + code Zip archives that have been separately compressed or encoded. How‐ + ever, self-extracting Zip archives and archives with certain types of modifications cannot be correctly handled. Such archives require that - the reader first process the Central Directory, which is ordinarily - located at the end of a Zip archive and is thus inaccessible to the - streaming reader. If the program using libarchive has enabled seek sup‐ - port, then libarchive will use this to processes the central directory - first. + the reader first process the Central Directory, which is ordinarily lo‐ + cated at the end of a Zip archive and is thus inaccessible to the stream‐ + ing reader. If the program using libarchive has enabled seek support, + then libarchive will use this to processes the central directory first. In particular, the seeking reader must be used to correctly handle self- extracting archives. Such archives consist of a program followed by a @@ -273,18 +272,18 @@ DESCRIPTION may include both types of long filenames. Programs using libarchive can write GNU/SVR4 format if they provide an entry called // containing a filename table to be written into the archive before any of the entries. - Any entries whose names are not in the filename table will be written - using BSD-style long filenames. This can cause problems for programs - such as GNU ld that do not support the BSD-style long filenames. + Any entries whose names are not in the filename table will be written us‐ + ing BSD-style long filenames. This can cause problems for programs such + as GNU ld that do not support the BSD-style long filenames. mtree Libarchive can read and write files in mtree(5) format. This format is - not a true archive format, but rather a textual description of a file - hierarchy in which each line specifies the name of a file and provides - specific metadata about that file. Libarchive can read all of the key‐ - words supported by both the NetBSD and FreeBSD versions of mtree(8), - although many of the keywords cannot currently be stored in an - archive_entry object. When writing, libarchive supports use of the + not a true archive format, but rather a textual description of a file hi‐ + erarchy in which each line specifies the name of a file and provides spe‐ + cific metadata about that file. Libarchive can read all of the keywords + supported by both the NetBSD and FreeBSD versions of mtree(8), although + many of the keywords cannot currently be stored in an archive_entry ob‐ + ject. When writing, libarchive supports use of the archive_write_set_options(3) interface to specify which keywords should be included in the output. If libarchive was compiled with access to suitable cryptographic libraries (such as the OpenSSL libraries), it can @@ -296,12 +295,12 @@ DESCRIPTION name. If it can locate and open the file on disk, it will use that to fill in any metadata that is missing from the mtree file and will read the file contents and return those to the program using libarchive. If - it cannot locate and open the file on disk, libarchive will return an - error for any attempt to read the entry body. + it cannot locate and open the file on disk, libarchive will return an er‐ + ror for any attempt to read the entry body. 7-Zip - Libarchive can read and write 7-Zip format archives. TODO: Need more - information + Libarchive can read and write 7-Zip format archives. TODO: Need more in‐ + formation CAB Libarchive can read Microsoft Cabinet ( “CAB”) format archives. TODO: diff --git a/archivers/libarchive/files/doc/text/libarchive.3.txt b/archivers/libarchive/files/doc/text/libarchive.3.txt index 484642460dc..0e23b188bd6 100644 --- a/archivers/libarchive/files/doc/text/libarchive.3.txt +++ b/archivers/libarchive/files/doc/text/libarchive.3.txt @@ -15,19 +15,19 @@ OVERVIEW When reading an archive, the library automatically detects the format and the compression. The library currently has read support for: - · old-style tar archives, - · most variants of the POSIX “ustar” format, - · the POSIX “pax interchange” format, - · GNU-format tar archives, - · most common cpio archive formats, - · ISO9660 CD images (including RockRidge and Joliet extensions), - · Zip archives, - · ar archives (including GNU/SysV and BSD extensions), - · Microsoft CAB archives, - · LHA archives, - · mtree file tree descriptions, - · RAR archives, - · XAR archives. + • old-style tar archives, + • most variants of the POSIX “ustar” format, + • the POSIX “pax interchange” format, + • GNU-format tar archives, + • most common cpio archive formats, + • ISO9660 CD images (including RockRidge and Joliet extensions), + • Zip archives, + • ar archives (including GNU/SysV and BSD extensions), + • Microsoft CAB archives, + • LHA archives, + • mtree file tree descriptions, + • RAR archives, + • XAR archives. The library automatically detects archives compressed with gzip(1), bzip2(1), xz(1), lzip(1), or compress(1) and decompresses them transpar‐ ently. It can similarly detect and decode archives processed with @@ -35,23 +35,23 @@ OVERVIEW When writing an archive, you can specify the compression to be used and the format to use. The library can write - · POSIX-standard “ustar” archives, - · POSIX “pax interchange format” archives, - · POSIX octet-oriented cpio archives, - · Zip archive, - · two different variants of shar archives, - · ISO9660 CD images, - · 7-Zip archives, - · ar archives, - · mtree file tree descriptions, - · XAR archives. + • POSIX-standard “ustar” archives, + • POSIX “pax interchange format” archives, + • POSIX octet-oriented cpio archives, + • Zip archive, + • two different variants of shar archives, + • ISO9660 CD images, + • 7-Zip archives, + • ar archives, + • mtree file tree descriptions, + • XAR archives. Pax interchange format is an extension of the tar archive format that eliminates essentially all of the limitations of historic tar formats in a standard fashion that is supported by POSIX-compliant pax(1) implemen‐ tations on many systems as well as several newer implementations of - tar(1). Note that the default write format will suppress the pax - extended attributes for most entries; explicitly requesting pax format - will enable those attributes for all entries. + tar(1). Note that the default write format will suppress the pax ex‐ + tended attributes for most entries; explicitly requesting pax format will + enable those attributes for all entries. The read and write APIs are accessed through the archive_read_XXX() func‐ tions and the archive_write_XXX() functions, respectively, and either can @@ -68,8 +68,8 @@ WRITING AN ARCHIVE See archive_write(3). WRITING ENTRIES TO DISK - The archive_write_disk(3) API allows you to write archive_entry(3) - objects to disk using the same API used by archive_write(3). The + The archive_write_disk(3) API allows you to write archive_entry(3) ob‐ + jects to disk using the same API used by archive_write(3). The archive_write_disk(3) API is used internally by archive_read_extract(); using it directly can provide greater control over how entries get writ‐ ten to disk. This API also makes it possible to share code between ar‐ @@ -106,10 +106,10 @@ RETURN VALUES The return value indicates the general severity of the error, ranging from ARCHIVE_WARN, which indicates a minor problem that should probably be reported to the user, to ARCHIVE_FATAL, which indicates a serious - problem that will prevent any further operations on this archive. On - error, the archive_errno() function can be used to retrieve a numeric - error code (see errno(2)). The archive_error_string() returns a textual - error message suitable for display. + problem that will prevent any further operations on this archive. On er‐ + ror, the archive_errno() function can be used to retrieve a numeric error + code (see errno(2)). The archive_error_string() returns a textual error + message suitable for display. archive_read_new() and archive_write_new() return pointers to an allo‐ cated and initialized struct archive object. @@ -137,10 +137,10 @@ AUTHORS BUGS Some archive formats support information that is not supported by struct - archive_entry. Such information cannot be fully archived or restored - using this library. This includes, for example, comments, character - sets, or the arbitrary key/value pairs that can appear in pax interchange - format archives. + archive_entry. Such information cannot be fully archived or restored us‐ + ing this library. This includes, for example, comments, character sets, + or the arbitrary key/value pairs that can appear in pax interchange for‐ + mat archives. Conversely, of course, not all of the information that can be stored in an struct archive_entry is supported by all formats. For example, cpio diff --git a/archivers/libarchive/files/doc/text/libarchive_changes.3.txt b/archivers/libarchive/files/doc/text/libarchive_changes.3.txt index 5203c9919fb..a52a742b905 100644 --- a/archivers/libarchive/files/doc/text/libarchive_changes.3.txt +++ b/archivers/libarchive/files/doc/text/libarchive_changes.3.txt @@ -19,8 +19,8 @@ CHANGES IN LIBARCHIVE 3 Libarchive2 assumed that the local platform uses Unicode as the native wchar_t encoding, which is true on Windows, modern Linux, and a few other systems, but is certainly not universal. As a result, pax format ar‐ - chives were written incorrectly on some systems, since pax format - requires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings + chives were written incorrectly on some systems, since pax format re‐ + quires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings can be easily converted to UTF-8. Libarchive3 uses the standard iconv library to convert between character @@ -28,11 +28,11 @@ CHANGES IN LIBARCHIVE 3 archive”. To support this, archive_entry objects can now be bound to a particular archive when they are created. The automatic character set conversions performed by archive_entry objects when reading and writing - filenames, usernames, and other strings will now use an appropriate - default character set: + filenames, usernames, and other strings will now use an appropriate de‐ + fault character set: - If the archive_entry object is bound to an archive, it will use the - default character set for that archive. + If the archive_entry object is bound to an archive, it will use the de‐ + fault character set for that archive. The platform default character encoding (as returned by nl_langinfo(CHARSET)) will be used if nothing else is specified. @@ -54,12 +54,12 @@ CHANGES IN LIBARCHIVE 3 There are a few cases where these changes will affect your source code: - · In some cases, libarchive's wider types will introduce the possibil‐ + • In some cases, libarchive's wider types will introduce the possibil‐ ity of truncation: for example, on a system with a 16-bit uid_t, you risk having uid 65536 be truncated to uid 0, which can cause serious security problems. - · Typedef function pointer types will be incompatible. For example, + • Typedef function pointer types will be incompatible. For example, if you define custom skip callbacks, you may have to use code simi‐ lar to the following if you want to support building against libarchive2 and libarchive3: @@ -78,19 +78,19 @@ CHANGES IN LIBARCHIVE 3 Affected functions: - · archive_entry_gid(), archive_entry_set_gid() - · archive_entry_uid(), archive_entry_set_uid() - · archive_entry_ino(), archive_entry_set_ino() - · archive_read_data_block(), archive_write_data_block() - · archive_read_disk_gname(), archive_read_disk_uname() - · archive_read_disk_set_gname_lookup(), + • archive_entry_gid(), archive_entry_set_gid() + • archive_entry_uid(), archive_entry_set_uid() + • archive_entry_ino(), archive_entry_set_ino() + • archive_read_data_block(), archive_write_data_block() + • archive_read_disk_gname(), archive_read_disk_uname() + • archive_read_disk_set_gname_lookup(), archive_read_disk_set_group_lookup(), archive_read_disk_set_uname_lookup(), archive_read_disk_set_user_lookup() - · archive_skip_callback() - · archive_read_extract_set_skip_file(), + • archive_skip_callback() + • archive_read_extract_set_skip_file(), archive_write_disk_set_skip_file(), archive_write_set_skip_file() - · archive_write_disk_set_group_lookup(), + • archive_write_disk_set_group_lookup(), archive_write_disk_set_user_lookup() Where these functions or their arguments took or returned gid_t, ino_t, diff --git a/archivers/libarchive/files/doc/text/libarchive_internals.3.txt b/archivers/libarchive/files/doc/text/libarchive_internals.3.txt index 7b7fb35dd92..0d4a58bec81 100644 --- a/archivers/libarchive/files/doc/text/libarchive_internals.3.txt +++ b/archivers/libarchive/files/doc/text/libarchive_internals.3.txt @@ -108,12 +108,12 @@ READ ARCHITECTURE The value returned by the bid function indicates its suitability for handling this data stream. A bid of zero will ensure that this decompressor is never invoked. Return zero if magic number - checks fail. Otherwise, your initial implementation should - return the number of bits actually checked. For example, if you + checks fail. Otherwise, your initial implementation should re‐ + turn the number of bits actually checked. For example, if you verify two full bytes and three bits of another byte, bid 19. Note that the initial block may be very short; be careful to only - inspect the data you are given. (The current decompressors - require two bytes for correct bidding.) + inspect the data you are given. (The current decompressors re‐ + quire two bytes for correct bidding.) Initialize The winning bidder will have its init function called. This function should initialize the remaining slots of the struct @@ -139,9 +139,9 @@ READ ARCHITECTURE Bid Formats bid by invoking the read_ahead() decompression method but not calling the consume() method. This allows each bidder to look ahead in the input stream. Bidders should not look further - ahead than necessary, as long look aheads put pressure on the - decompression layer to buffer lots of data. Most formats only - require a few hundred bytes of look ahead; look aheads of a few + ahead than necessary, as long look aheads put pressure on the de‐ + compression layer to buffer lots of data. Most formats only re‐ + quire a few hundred bytes of look ahead; look aheads of a few kilobytes are reasonable. (The ISO9660 reader sometimes looks ahead by 48k, which should be considered an upper limit.) Read header @@ -166,8 +166,8 @@ READ ARCHITECTURE block just before you return it. Skip All Data The skip data call should skip over all file data and trailing - padding. This is called automatically by the API layer just - before each header read. It is also called in response to the + padding. This is called automatically by the API layer just be‐ + fore each header read. It is also called in response to the client calling the public data_skip() function. Cleanup On cleanup, the format should release all of its allocated mem‐ @@ -205,8 +205,8 @@ GENERAL SERVICES standard services. (Recall that ANSI/ISO C90 guarantees that you can cast freely between a pointer to a structure and a pointer to the first element of that structure.) The archive object has a magic value that - indicates which API this object is associated with, slots for storing - error information, and function pointers for virtualized API functions. + indicates which API this object is associated with, slots for storing er‐ + ror information, and function pointers for virtualized API functions. MISCELLANEOUS NOTES Connecting existing archiving libraries into libarchive is generally @@ -217,8 +217,8 @@ MISCELLANEOUS NOTES very different approaches. For example, libarchive's ISO9660 support operates very differently from - most ISO9660 readers. The libarchive support utilizes a work-queue - design that keeps a list of known entries sorted by their location in the + most ISO9660 readers. The libarchive support utilizes a work-queue de‐ + sign that keeps a list of known entries sorted by their location in the input. Whenever libarchive's ISO9660 implementation is asked for the next header, checks this list to find the next item on the disk. Direc‐ tories are parsed when they are encountered and new items are added to diff --git a/archivers/libarchive/files/doc/text/mtree.5.txt b/archivers/libarchive/files/doc/text/mtree.5.txt index 92d9ff581b1..22e4e2b2eee 100644 --- a/archivers/libarchive/files/doc/text/mtree.5.txt +++ b/archivers/libarchive/files/doc/text/mtree.5.txt @@ -14,8 +14,8 @@ DESCRIPTION When encoding file or pathnames, any backslash character or character outside of the 95 printable ASCII characters must be encoded as a back‐ - slash followed by three octal digits. When reading mtree files, any - appearance of a backslash followed by three octal digits should be con‐ + slash followed by three octal digits. When reading mtree files, any ap‐ + pearance of a backslash followed by three octal digits should be con‐ verted into the corresponding character. Each line is interpreted independently as one of the following types: @@ -29,22 +29,22 @@ DESCRIPTION Relative If the first whitespace-delimited word has no / characters, it is the name of a file in the current directory. Any rela‐ - tive entry that describes a directory changes the current - directory. + tive entry that describes a directory changes the current di‐ + rectory. dot-dot As a special case, a relative entry with the filename .. - changes the current directory to the parent directory. - Options on dot-dot entries are always ignored. + changes the current directory to the parent directory. Op‐ + tions on dot-dot entries are always ignored. - Full If the first whitespace-delimited word has a / character - after the first character, it is the pathname of a file rela‐ + Full If the first whitespace-delimited word has a / character af‐ + ter the first character, it is the pathname of a file rela‐ tive to the starting directory. There can be multiple full entries describing the same file. - Some tools that process mtree files may require that multiple lines - describing the same file occur consecutively. It is not permitted for - the same file to be mentioned using both a relative and a full file spec‐ - ification. + Some tools that process mtree files may require that multiple lines de‐ + scribing the same file occur consecutively. It is not permitted for the + same file to be mentioned using both a relative and a full file specifi‐ + cation. Special commands Two special commands are currently defined: diff --git a/archivers/libarchive/files/doc/text/tar.5.txt b/archivers/libarchive/files/doc/text/tar.5.txt index e7c460979b3..72aaee19cec 100644 --- a/archivers/libarchive/files/doc/text/tar.5.txt +++ b/archivers/libarchive/files/doc/text/tar.5.txt @@ -14,8 +14,8 @@ DESCRIPTION A tar archive consists of a series of 512-byte records. Each file system object requires a header record which stores basic metadata (pathname, owner, permissions, etc.) and zero or more records containing any file - data. The end of the archive is indicated by two records consisting - entirely of zero bytes. + data. The end of the archive is indicated by two records consisting en‐ + tirely of zero bytes. For compatibility with tape drives that use fixed block sizes, programs that read or write tar files always read or write a fixed number of @@ -67,8 +67,8 @@ DESCRIPTION when extracting hardlinks. Modern writers should always store a zero length for hardlink entries. - mtime Modification time of file, as an octal number in ASCII. This - indicates the number of seconds since the start of the epoch, + mtime Modification time of file, as an octal number in ASCII. This in‐ + dicates the number of seconds since the start of the epoch, 00:00:00 UTC January 1, 1970. Note that negative values should be avoided here, as they are handled inconsistently. @@ -96,8 +96,8 @@ DESCRIPTION (this is also documented in early BSD manpages): the pathname must be null-terminated; the mode, uid, and gid fields must end in a space and a null byte; the size and mtime fields must end in a space; the checksum is - terminated by a null and a space. Early implementations filled the - numeric fields with leading spaces. This seems to have been common prac‐ + terminated by a null and a space. Early implementations filled the nu‐ + meric fields with leading spaces. This seems to have been common prac‐ tice until the IEEE Std 1003.1-1988 (“POSIX.1”) standard was released. For best portability, modern implementations should fill the numeric fields with leading zeros. @@ -107,12 +107,12 @@ DESCRIPTION for John Gilmore's pdtar program and many system implementations from the late 1980s and early 1990s. These archives generally follow the POSIX ustar format described below with the following variations: - · The magic value consists of the five characters “ustar” followed + • The magic value consists of the five characters “ustar” followed by a space. The version field contains a space character fol‐ lowed by a null. - · The numeric fields are generally filled with leading spaces (not + • The numeric fields are generally filled with leading spaces (not leading zeros as recommended in the final standard). - · The prefix field is often not used, limiting pathnames to the 100 + • The prefix field is often not used, limiting pathnames to the 100 characters of old-style archives. POSIX ustar Archives @@ -165,13 +165,13 @@ DESCRIPTION ferent meanings depending on the type. For regular files, of course, it indicates the amount of data following the header. For directories, it may be used to indicate the total size of all - files in the directory, for use by operating systems that pre- - allocate directory space. For all other types, it should be set - to zero by writers and ignored by readers. + files in the directory, for use by operating systems that pre-al‐ + locate directory space. For all other types, it should be set to + zero by writers and ignored by readers. magic Contains the magic value “ustar” followed by a NUL byte to indi‐ - cate that this is a POSIX standard archive. Full compliance - requires the uname and gname fields be properly set. + cate that this is a POSIX standard archive. Full compliance re‐ + quires the uname and gname fields be properly set. version Version. This should be “00” (two copies of the ASCII digit @@ -183,8 +183,8 @@ DESCRIPTION set and the corresponding names exist on the system. devmajor, devminor - Major and minor numbers for character device or block device - entry. + Major and minor numbers for character device or block device en‐ + try. name, prefix If the pathname is too long to fit in the 100 bytes provided by @@ -249,8 +249,8 @@ DESCRIPTION can be examined as necessary. An entry in a pax interchange format archive consists of one or two stan‐ - dard ustar entries, each with its own header and data. The first - optional entry stores the extended attributes for the following entry. + dard ustar entries, each with its own header and data. The first op‐ + tional entry stores the extended attributes for the following entry. This optional first entry has an "x" typeflag and a size field that indi‐ cates the total size of the extended attributes. The extended attributes themselves are stored as a series of text-format lines encoded in the @@ -276,8 +276,8 @@ DESCRIPTION be in UTF-8, including pathnames, user names, and group names. In some cases, it is not possible to translate local conventions into UTF-8. If this key is present and the value is the six- - character ASCII string “BINARY”, then all textual values are - assumed to be in a platform-dependent multi-byte encoding. Note + character ASCII string “BINARY”, then all textual values are as‐ + sumed to be in a platform-dependent multi-byte encoding. Note that there are only two valid values for this key: “BINARY” or “ISO-IR 10646 2000 UTF-8”. No other values are permitted by the standard, and the latter value should generally not be used as it @@ -355,20 +355,20 @@ DESCRIPTION XXX document other vendor-specific extensions XXX Any values stored in an extended attribute override the corresponding - values in the regular tar header. Note that compliant readers should - ignore the regular fields when they are overridden. This is important, - as existing archivers are known to store non-compliant values in the - standard header fields in this situation. There are no limits on length - for any of these fields. In particular, numeric fields can be arbitrar‐ - ily large. All text fields are encoded in UTF8. Compliant writers - should store only portable 7-bit ASCII characters in the standard ustar - header and use extended attributes whenever a text value contains non- - ASCII characters. + values in the regular tar header. Note that compliant readers should ig‐ + nore the regular fields when they are overridden. This is important, as + existing archivers are known to store non-compliant values in the stan‐ + dard header fields in this situation. There are no limits on length for + any of these fields. In particular, numeric fields can be arbitrarily + large. All text fields are encoded in UTF8. Compliant writers should + store only portable 7-bit ASCII characters in the standard ustar header + and use extended attributes whenever a text value contains non-ASCII + characters. In addition to the x entry described above, the pax interchange format also supports a g entry. The g entry is identical in format, but speci‐ - fies attributes that serve as defaults for all subsequent archive - entries. The g entry is not widely used. + fies attributes that serve as defaults for all subsequent archive en‐ + tries. The g entry is not widely used. Besides the new x and g entries, the pax interchange format has a few other minor variations from the earlier ustar format. The most troubling @@ -379,16 +379,16 @@ DESCRIPTION ignore the size field for hardlink entries. GNU Tar Archives - The GNU tar program started with a pre-POSIX format similar to that - described earlier and has extended it using several different mechanisms: + The GNU tar program started with a pre-POSIX format similar to that de‐ + scribed earlier and has extended it using several different mechanisms: It added new fields to the empty space in the header (some of which was later used by POSIX for conflicting purposes); it allowed the header to be continued over multiple records; and it defined new entries that mod‐ ify following entries (similar in principle to the x entry described above, but each GNU special entry is single-purpose, unlike the general- purpose x entry). As a result, GNU tar archives are not POSIX compati‐ - ble, although more lenient POSIX-compliant readers can successfully - extract most GNU tar archives. + ble, although more lenient POSIX-compliant readers can successfully ex‐ + tract most GNU tar archives. struct header_gnu_tar { char name[100]; @@ -435,11 +435,11 @@ DESCRIPTION is preceded by an ASCII "Y" if the file is stored in this archive or "N" if the file is not stored in this archive. Each name is terminated with a null, and an extra null - marks the end of the name list. The purpose of this - entry is to support incremental backups; a program - restoring from such an archive may wish to delete files - on disk that did not exist in the directory when the ar‐ - chive was made. + marks the end of the name list. The purpose of this en‐ + try is to support incremental backups; a program restor‐ + ing from such an archive may wish to delete files on disk + that did not exist in the directory when the archive was + made. Note that the "D" typeflag specifically violates POSIX, which requires that unrecognized typeflags be restored as @@ -463,28 +463,28 @@ DESCRIPTION first or second entry in an archive (the latter only if the first entry is a volume label). The size field spec‐ ifies the size of this entry. The offset field at bytes - 369-380 specifies the offset where this file fragment - begins. The realsize field specifies the total size of - the file (which must equal size plus offset). When - extracting, GNU tar checks that the header file name is - the one it is expecting, that the header offset is in the - correct sequence, and that the sum of offset and size is - equal to realsize. + 369-380 specifies the offset where this file fragment be‐ + gins. The realsize field specifies the total size of the + file (which must equal size plus offset). When extract‐ + ing, GNU tar checks that the header file name is the one + it is expecting, that the header offset is in the correct + sequence, and that the sum of offset and size is equal to + realsize. N Type "N" records are no longer generated by GNU tar. They contained a list of files to be renamed or symlinked after extraction; this was originally used to support - long names. The contents of this record are a text - description of the operations to be done, in the form + long names. The contents of this record are a text de‐ + scription of the operations to be done, in the form “Rename %s to %s\n” or “Symlink %s to %s\n”; in either case, both filenames are escaped using K&R C syntax. Due - to security concerns, "N" records are now generally - ignored when reading archives. + to security concerns, "N" records are now generally ig‐ + nored when reading archives. S This is a “sparse” regular file. Sparse files are stored as a series of fragments. The header contains a list of - fragment offset/length pairs. If more than four such - entries are required, the header is extended as necessary + fragment offset/length pairs. If more than four such en‐ + tries are required, the header is extended as necessary with “extra” header extensions (an older format that is no longer used), or “sparse” extensions. @@ -510,9 +510,9 @@ DESCRIPTION Sparse offset / numbytes Each such structure specifies a single fragment of a sparse file. The two fields store values as octal numbers. The fragments are - each padded to a multiple of 512 bytes in the archive. On - extraction, the list of fragments is collected from the header - (including any extension headers), and the data is then read and + each padded to a multiple of 512 bytes in the archive. On ex‐ + traction, the list of fragments is collected from the header (in‐ + cluding any extension headers), and the data is then read and written to the file at appropriate offsets. isextended @@ -574,8 +574,8 @@ DESCRIPTION GNU.sparse.major and GNU.sparse.minor fields) and the full size of the file. The GNU.sparse.name holds the true name of the file. To avoid confusion, the name stored in the regular tar - header is a modified name so that extraction errors will be - apparent to users. + header is a modified name so that extraction errors will be ap‐ + parent to users. Solaris Tar XXX More Details Needed XXX @@ -583,13 +583,13 @@ DESCRIPTION Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an “extended” format that is fundamentally similar to pax interchange format, with the following differences: - · Extended attributes are stored in an entry whose type is X, not + • Extended attributes are stored in an entry whose type is X, not x, as used by pax interchange format. The detailed format of - this entry appears to be the same as detailed above for the x - entry. - · An additional A header is used to store an ACL for the following - regular entry. The body of this entry contains a seven-digit - octal number followed by a zero byte, followed by the textual ACL + this entry appears to be the same as detailed above for the x en‐ + try. + • An additional A header is used to store an ACL for the following + regular entry. The body of this entry contains a seven-digit oc‐ + tal number followed by a zero byte, followed by the textual ACL description. The octal value is the number of ACL entries plus a constant that indicates the ACL type: 01000000 for POSIX.1e ACLs and 03000000 for NFSv4 ACLs. @@ -608,8 +608,8 @@ DESCRIPTION two separate files in the tar archive. The two files have the same name except that the first one has “._” prepended to the last path element. This special file stores an AppleDouble-encoded binary blob with addi‐ - tional metadata about the second file, including ACL, extended - attributes, and resources. To recreate the original file on disk, each + tional metadata about the second file, including ACL, extended at‐ + tributes, and resources. To recreate the original file on disk, each separate file can be extracted and the Mac OS X copyfile() function can be used to unpack the separate metadata file and apply it to th regular file. Conversely, the same function provides a “pack” option to encode |