Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

archive_write_set_options (3archive)

Name

archive_write_set_options - archive_write_set_filter_option, archive_write_set_format_option, trolling options for writing archives

Synopsis

int
archive_write_set_filter_option(struct archive *, const char *module,
const char *option, const char *value);
int
archive_write_set_format_option(struct archive *, const char *module,
const char *option, const char *value);
int
archive_write_set_option(struct archive *, const char *module,
const char *option, const char *value);
int
archive_write_set_options(struct archive *, const char *options);

Description

                                               ARCHIVE_WRITE_OPTIONS(3archive)



NAME
       archive_write_set_filter_option, archive_write_set_format_option,
       archive_write_set_option, archive_write_set_options - functions con-
       trolling options for writing archives

LIBRARY
       Streaming Archive Library (libarchive, -larchive)

SYNOPSIS
       int
       archive_write_set_filter_option(struct archive *, const char *module,
       const char *option, const char *value);
       int
       archive_write_set_format_option(struct archive *, const char *module,
       const char *option, const char *value);
       int
       archive_write_set_option(struct archive *, const char *module,
       const char *option, const char *value);
       int
       archive_write_set_options(struct archive *, const char *options);

DESCRIPTION
       These functions provide a way for libarchive clients to configure spe-
       cific write modules.

            archive_write_set_filter_option(),
                   archive_write_set_format_option() Specifies an option that
                   will be passed to the currently-registered filters (includ-
                   ing decompression filters) or format readers.

            If option and value are both NULL, these functions will do nothing
            and ARCHIVE_OK will be returned.  If option is NULL but value is
            not, these functions will do nothing and ARCHIVE_FAILED will be
            returned.

            If module is not NULL, option and value will be provided to the
            filter or reader named module.  The return value will be either
            ARCHIVE_OK if the option was successfully handled or ARCHIVE_WARN
            if the option was unrecognized by the module or could otherwise
            not be handled.  If there is no such module, ARCHIVE_FAILED will
            be returned.

            If module is NULL, option and value will be provided to every reg-
            istered module.  If any module returns ARCHIVE_FATAL, this value
            will be returned immediately.  Otherwise, ARCHIVE_OK will be
            returned if any module accepts the option, and ARCHIVE_FAILED in
            all other cases.

            archive_write_set_option()
                   Calls archive_write_set_format_option(), then
                   archive_write_set_filter_option().  If either function
                   returns ARCHIVE_FATAL, ARCHIVE_FATAL will be returned imme-
                   diately.  Otherwise, the greater of the two values will be
                   returned.

            archive_write_set_options()
                   options is a comma-separated list of options.  If options
                   is NULL or empty, ARCHIVE_OK will be returned immediately.

            Individual options have one of the following forms:

                 option=value
                        The option/value pair will be provided to every mod-
                        ule.  Modules that do not accept an option with this
                        name will ignore it.

                 option The option will be provided to every module with a
                        value of ``1''.

                 !option
                        The option will be provided to every module with a
                        NULL value.

                 module:option=value, module:option, module:!option
                        As above, but the corresponding option and value will
                        be provided only to modules whose name matches module.

OPTIONS
            Filter b64encode

                 mode   The value is interpreted as octal digits specifying
                        the file mode.

                 name   The value specifies the file name.

            Filter bzip2

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the bzip2 compression level. Supported values are
                        from 1 to 9.

            Filter gzip

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the gzip compression level. Supported values are
                        from 0 to 9.

                 timestamp
                        Store timestamp. This is enabled by default.

            Filter lrzip

                 compression=type
                        Use type as compression method.  Supported values are
                        ``bzip2'', ``gzipi'', ``lzo'' (ultra fast,) and
                        ``zpaq'' (best, extremely slow.)

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the lrzip compression level. Supported values are
                        from 1 to 9.

            Filter lz4

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the lz4 compression level. Supported values are
                        from 0 to 9.

                 stream-checksum
                        Enable stream checksum. This is enabled by default.

                 block-checksum
                        Enable block checksum. This is disabled by default.

                 block-size
                        The value is interpreted as a decimal integer specify-
                        ing the lz4 compression block size. Supported values
                        are from 4 to 7 (default.)

                 block-dependence
                        Use the previous block of the block being compressed
                        for a compression dictionary to improve compression
                        ratio.  This is disabled by default.

            Filter lzop

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the lzop compression level. Supported values are
                        from 1 to 9.

            Filter uuencode

                 mode   The value is interpreted as octal digits specifying
                        the file mode.

                 name   The value specifies the file name.

            Filter xz

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the compression level. Supported values are from 0
                        to 9.

                 threads
                        The value is interpreted as a decimal integer specify-
                        ing the number of threads for multi-threaded lzma com-
                        pression.  If supported, the default value is read
                        from lzma_cputhreads().

            Filter zstd

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the compression level. Supported values depend on
                        the library version, common values are from 1 to 22.

            Format 7zip

                 compression
                        The value is one of ``store'', ``deflate'', ``bzip2'',
                        ``lzma1'', ``lzma2'' or ``ppmd'' to indicate how the
                        following entries should be compressed.  Note that
                        this setting is ignored for directories, symbolic
                        links, and other special entries.

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the compression level.  Values between 0 and 9 are
                        supported.  The interpretation of the compression
                        level depends on the chosen compression method.

            Format bin

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file names.

            Format gnutar

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file, group and user names.

            Format iso9660 - volume metadata
                   These options are used to set standard ISO9660 metadata.

                 abstract-file=filename
                        The file with the specified name will be identified in
                        the ISO9660 metadata as holding the abstract for this
                        volume.  Default: none.

                 application-id=filename
                        The file with the specified name will be identified in
                        the ISO9660 metadata as holding the application iden-
                        tifier for this volume.  Default: none.

                 biblio-file=filename
                        The file with the specified name will be identified in
                        the ISO9660 metadata as holding the bibliography for
                        this volume.  Default: none.

                 copyright-file=filename
                        The file with the specified name will be identified in
                        the ISO9660 metadata as holding the copyright for this
                        volume.  Default: none.

                 publisher=filename
                        The file with the specified name will be identified in
                        the ISO9660 metadata as holding the publisher informa-
                        tion for this volume.  Default: none.

                 volume-id=string
                        The specified string will be used as the Volume Iden-
                        tifier 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.

                 boot=filename
                        The file matching this name will be used as the El
                        Torito boot image file.

                 boot-catalog=name
                        The name that will be used for the El Torito boot cat-
                        alog.  Default: boot.catalog

                 boot-info-table
                        The boot image file provided by the boot=filename
                        option will be edited with appropriate boot informa-
                        tion in bytes 8 through 64.  Default: disabled

                 boot-load-seg=hexadecimal-number
                        The load segment for a no-emulation boot image.

                 boot-load-size=decimal-number
                        The number of "virtual" 512-byte sectors to be loaded
                        from a no-emulation boot image.  Some very old BIOSes
                        can only load very small images, setting this value to
                        4 will often allow such BIOSes to load the first part
                        of the boot image (which will then need to be intelli-
                        gent enough to load the rest of itself).  This should
                        not be needed unless you are trying to support systems
                        with very old BIOSes.  This defaults to the full size
                        of the image.

                 boot-type=value
                        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 used without floppy or hard disk emula-
                        tion.  If the boot image is exactly 1.2MB, 1.44MB, or
                        2.88MB, then the default 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 period will have that period replaced by an
                        underscore character in the standard ISO9660 names-
                        pace.  This does not impact names stored in the Rock-
                        ridge or Joliet extension area.  Default: disabled.

                 allow-lowercase
                        If enabled, allows filenames to contain lowercase
                        characters.  If disabled, filenames will be forced to
                        uppercase.  This does not impact names stored in the
                        Rockridge or Joliet extension area.  Default: dis-
                        abled.

                 allow-multidot
                        If enabled, allows filenames to contain multiple
                        period characters, in violation of the ISO9660 speci-
                        fication.  If disabled, additional periods will be
                        converted to underscore characters.  This does not
                        impact names stored in the Rockridge or Joliet exten-
                        sion area.  Default: disabled.

                 allow-period
                        If enabled, allows filenames to contain trailing
                        period characters, in violation of the ISO9660 speci-
                        fication.  If disabled, trailing periods will be con-
                        verted to underscore characters.  This does not impact
                        names stored in the Rockridge or Joliet extension
                        area.  Default: disabled.

                 allow-pvd-lowercase
                        If enabled, the Primary Volume Descriptor may contain
                        lowercase ASCII characters, in violation of the
                        ISO9660 specification.  If disabled, characters will
                        be converted to uppercase ASCII.  Default: disabled.

                 allow-sharp-tilde
                        If enabled, sharp and tilde characters will be permit-
                        ted in filenames, in violation if the ISO9660 specifi-
                        cation.  If disabled, such characters will be con-
                        verted to underscore characters.  Default: disabled.

                 allow-vernum
                        If enabled, version numbers will be included with
                        files.  If disabled, version numbers will be sup-
                        pressed, in violation of the ISO9660 standard.  This
                        does not impact names stored in the Rockridge or
                        Joliet extension area.  Default: enabled.

                 iso-level
                        This enables support for file size and file name
                        extensions in the core ISO9660 area.  The name exten-
                        sions specified here do not affect the names stored in
                        the Rockridge or Joliet extension areas.

                      iso-level=1
                             The most compliant form of ISO9660 image.  File-
                             names are limited to 8.3 uppercase format, direc-
                             tory names are limited to 8 uppercase characters,
                             files are limited to 4 GiB, the complete ISO9660
                             image cannot exceed 4 GiB.

                      iso-level=2
                             Filenames are limited to 30 uppercase characters
                             with a 30-character extension, directory names
                             are limited to 30 characters, files are limited
                             to 4 GiB.

                      iso-level=3
                             As with iso-level=2, except that files may exceed
                             4 GiB.

                      iso-level=4
                             As with iso-level=3, except that filenames may be
                             up to 193 characters and may include arbitrary
                             8-bit characters.

                 joliet Microsoft's Joliet extensions store a completely sepa-
                        rate set of directory information about each file.  In
                        particular, this information includes Unicode file-
                        names of up to 255 characters.  Default: enabled.

                 limit-depth
                        If enabled, libarchive will use directory relocation
                        records to ensure that no pathname exceeds the ISO9660
                        limit of 8 directory levels.  If disabled, no reloca-
                        tion will occur.  Default: enabled.

                 limit-dirs
                        If enabled, libarchive will cause an error if there
                        are more than 65536 directories.  If disabled, there
                        is no limit on the number of directories.  Default:
                        enabled

                 pad    If enabled, 300 kiB of zero bytes will be appended to
                        the end of the archive.  Default: enabled

                 relaxed-filenames
                        If enabled, all 7-bit ASCII characters are permitted
                        in filenames (except lowercase characters unless
                        allow-lowercase is also specified).  This violates
                        ISO9660 standards.  This does not impact names stored
                        in the Rockridge or Joliet extension area.  Default:
                        disabled.

                 rockridge
                        The Rockridge extensions store an additional set of
                        POSIX-style file information with each file, including
                        mtime, atime, ctime, permissions, and long filenames
                        with arbitrary 8-bit characters.  These extensions
                        also support symbolic links and other POSIX file
                        types.  Default: enabled.

            Format iso9660 - zisofs support
                   The zisofs extensions permit each file to be independently
                   compressed using a gzip-compatible compression.  This can
                   provide significant size savings, but requires the reading
                   system to have support for these extensions.  These exten-
                   sions are disabled by default.

                 compression-level=number
                        The compression level used by the deflate compressor.
                        Ranges from 0 (least effort) to 9 (most effort).
                        Default: 6

                 zisofs Synonym for zisofs=direct.

                 zisofs=direct
                        Compress each file in the archive.  Unlike
                        zisofs=indirect, this is handled entirely within
                        libarchive and does not require a separate utility.
                        For best results, libarchive tests each file and will
                        store the file uncompressed if the compression does
                        not actually save any space.  In particular, files
                        under 2k will never be compressed.  Note that boot
                        image files are never compressed.

                 zisofs=indirect
                        Recognizes files that have already been compressed
                        with the mkzftree utility and sets up the necessary
                        file metadata so that readers will correctly identify
                        these as zisofs-compressed files.

                 zisofs-exclude=filename
                        Specifies a filename that should not be compressed
                        when using zisofs=direct.  This option can be provided
                        multiple times to suppress compression on many files.

            Format mtree

                 cksum, device, flags, gid, gname, indent, link, md5, mode,
                 nlink, rmd160, sha1, sha256, sha384, sha512, size, time, uid,
                 uname
                        Enable a particular keyword in the mtree output.  Pre-
                        fix with an exclamation mark to disable the corre-
                        sponding keyword.  The default is equivalent to
                        ``device, flags, gid, gname, link, mode, nlink, size,
                        time, type, uid, uname''.

                 all    Enables all of the above keywords.

                 use-set
                        Enables generation of /set lines that specify default
                        values for the following files and/or directories.

                 indent XXX needs explanation XXX

            Format newc

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file names.

            Format odc

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file names.

            Format pwb

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file names.

            Format pax

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file, group and user names.  The
                        value is one of ``BINARY'' or ``UTF-8''.  With
                        ``BINARY'' there is no character conversion, with
                        ``UTF-8'' names are converted to UTF-8.

                 xattrheader
                        When storing extended attributes, this option config-
                        ures which headers should be written. The value is one
                        of ``all'', ``LIBARCHIVE'', or ``SCHILY''.  By
                        default, both ``LIBARCHIVE.xattr'' and
                        ``SCHILY.xattr'' headers are written.

            Format ustar

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file, group and user names.

            Format v7tar

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file, group and user names.

            Format warc

                 omit-warcinfo
                        Set to ``true'' to disable output of the warcinfo
                        record.

            Format xar

                 checksum=type
                        Use type as file checksum method.  Supported values
                        are ``none'', ``md5'', and ``sha1'' (default.)

                 compression=type
                        Use type as compression method.  Supported values are
                        ``none'', ``bzip2'', ``gzip'' (default,) ``lzma'' and
                        ``xz''.

                 compression_level
                        The value is a decimal integer from 1 to 9 specifying
                        the compression level.

                 toc-checksum=type
                        Use type as table of contents checksum method.  Sup-
                        ported values are ``none'', ``md5'' and ``sha1''
                        (default.)

            Format zip

                 compression
                        The value is either ``store'' or ``deflate'' to indi-
                        cate how the following entries should be compressed.
                        Note that this setting is ignored for directories,
                        symbolic links, and other special entries.

                 compression-level
                        The value is interpreted as a decimal integer specify-
                        ing the compression level.  Values between 0 and 9 are
                        supported.  A compression level of 0 switches the com-
                        pression method to ``store'', other values will enable
                        ``deflate'' compression with the given level.

                 encryption
                        Enable encryption using traditional zip encryption.

                 encryption=type
                        Use type as encryption type.  Supported values are
                        ``zipcrypt'' (traditional zip encryption,) ``aes128''
                        (WinZip AES-128 encryption) and ``aes256'' (WinZip
                        AES-256 encryption.)

                 experimental
                        This boolean option enables or disables experimental
                        Zip features that may not be compatible with other Zip
                        implementations.

                 fakecrc32
                        This boolean option disables CRC calculations.  All
                        CRC fields are set to zero.  It should not be used
                        except for testing purposes.

                 hdrcharset
                        The value is used as a character set name that will be
                        used when translating file names.

                 zip64  Zip64 extensions provide additional file size informa-
                        tion 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
                        selectively enables these extensions only as needed.
                        In particular, if the file size is unknown, the Zip
                        writer will include Zip64 extensions to guard against
                        the possibility that the file might be larger than 4
                        GiB.

                 Setting this boolean option will force the writer to use
                 Zip64 extensions even for small files that would not other-
                 wise require them.  This is primarily useful for testing.

                 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 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 in advance.

EXAMPLES
       The following example creates an archive write handle to create a gzip-
       compressed ISO9660 format image.  The two options here specify that the
       ISO9660 archive will use kernel.img as the boot image for El Torito
       booting, and that the gzip compressor should use the maximum compres-
       sion level.
           a = archive_write_new();
           archive_write_add_filter_gzip(a);
           archive_write_set_format_iso9660(a);
           archive_write_set_options(a, "boot=kernel.img,compression=9");
           archive_write_open_filename(a, filename, blocksize);

ERRORS
       More detailed error codes and textual descriptions are available from
       the archive_errno() and archive_error_string() functions.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------+
       |ATTRIBUTE TYPE |  ATTRIBUTE VALUE   |
       +---------------+--------------------+
       |Availability   | library/libarchive |
       +---------------+--------------------+
       |Stability      | Uncommitted        |
       +---------------+--------------------+

SEE ALSO
       tar(1), archive_read_set_options(3), archive_write(3), libarchive(3)

HISTORY
       The libarchive library first appeared in FreeBSD 5.3.

AUTHORS
       -nosplit The options support for libarchive was originally implemented
       by Michihiro NAKAJIMA.

BUGS
NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       https://github.com/libarchive/libarchive/releases/down-
       load/v3.6.1/libarchive-3.6.1.tar.gz.

       Further information about this software can be found on the open source
       community website at http://www.libarchive.org/.



                               January 31, 2020
                                               ARCHIVE_WRITE_OPTIONS(3archive)