Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/libarchive/dist Merge libarchive-3-3-2pre.



details:   https://anonhg.NetBSD.org/src/rev/8d6c5d9529dd
branches:  trunk
changeset: 823361:8d6c5d9529dd
user:      joerg <joerg%NetBSD.org@localhost>
date:      Thu Apr 20 13:01:40 2017 +0000

description:
Merge libarchive-3-3-2pre.

diffstat:

 external/bsd/libarchive/dist/libarchive/archive.h                             |   995 ++++-
 external/bsd/libarchive/dist/libarchive/archive_check_magic.c                 |    83 +-
 external/bsd/libarchive/dist/libarchive/archive_entry.3                       |   349 +--
 external/bsd/libarchive/dist/libarchive/archive_pack_dev.c                    |     4 +-
 external/bsd/libarchive/dist/libarchive/archive_pack_dev.h                    |     2 +-
 external/bsd/libarchive/dist/libarchive/archive_read.3                        |   706 +---
 external/bsd/libarchive/dist/libarchive/archive_read_disk.3                   |   127 +-
 external/bsd/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c   |   928 ++++-
 external/bsd/libarchive/dist/libarchive/archive_read_support_format_iso9660.c |  1493 ++++++---
 external/bsd/libarchive/dist/libarchive/archive_util.3                        |    84 +-
 external/bsd/libarchive/dist/libarchive/archive_write.3                       |   555 +---
 external/bsd/libarchive/dist/libarchive/archive_write_disk.3                  |   193 +-
 external/bsd/libarchive/dist/libarchive/archive_write_set_format_ar.c         |    65 +-
 external/bsd/libarchive/dist/libarchive/archive_write_set_format_shar.c       |    94 +-
 external/bsd/libarchive/dist/libarchive/archive_write_set_format_ustar.c      |   360 +-
 external/bsd/libarchive/dist/libarchive/libarchive-formats.5                  |   147 +-
 external/bsd/libarchive/dist/libarchive/libarchive.3                          |   224 +-
 external/bsd/libarchive/dist/libarchive/libarchive_internals.3                |    16 +-
 external/bsd/libarchive/dist/libarchive/tar.5                                 |   217 +-
 external/bsd/libarchive/dist/libarchive_fe/err.c                              |    30 +-
 external/bsd/libarchive/dist/libarchive_fe/err.h                              |    16 +-
 21 files changed, 3751 insertions(+), 2937 deletions(-)

diffs (truncated from 9562 to 300 lines):

diff -r 0f0b0fc7547e -r 8d6c5d9529dd external/bsd/libarchive/dist/libarchive/archive.h
--- a/external/bsd/libarchive/dist/libarchive/archive.h Thu Apr 20 12:55:31 2017 +0000
+++ b/external/bsd/libarchive/dist/libarchive/archive.h Thu Apr 20 13:01:40 2017 +0000
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2003-2007 Tim Kientzle
+ * Copyright (c) 2003-2010 Tim Kientzle
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -29,6 +29,21 @@
 #define        ARCHIVE_H_INCLUDED
 
 /*
+ * The version number is expressed as a single integer that makes it
+ * easy to compare versions at build time: for version a.b.c, the
+ * version number is printf("%d%03d%03d",a,b,c).  For example, if you
+ * know your application requires version 2.12.108 or later, you can
+ * assert that ARCHIVE_VERSION_NUMBER >= 2012108.
+ */
+/* Note: Compiler will complain if this does not match archive_entry.h! */
+#define        ARCHIVE_VERSION_NUMBER 3003002
+
+#include <sys/stat.h>
+#include <stddef.h>  /* for wchar_t */
+#include <stdio.h> /* For FILE * */
+#include <time.h> /* For time_t */
+
+/*
  * Note: archive.h is for use outside of libarchive; the configuration
  * headers (config.h, archive_platform.h, etc.) are purely internal.
  * Do NOT use HAVE_XXX configuration macros to control the behavior of
@@ -36,42 +51,54 @@
  * platform macros.
  */
 #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560
-# define __LA_STDINT_H <stdint.h>
-#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__)
-# define __LA_STDINT_H <inttypes.h>
+# include <stdint.h>
+#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__)
+# include <inttypes.h>
+#endif
+
+/* Get appropriate definitions of 64-bit integer */
+#if !defined(__LA_INT64_T_DEFINED)
+/* Older code relied on the __LA_INT64_T macro; after 4.0 we'll switch to the typedef exclusively. */
+# if ARCHIVE_VERSION_NUMBER < 4000000
+#define __LA_INT64_T la_int64_t
+# endif
+#define __LA_INT64_T_DEFINED
+# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
+typedef __int64 la_int64_t;
+# else
+# include <unistd.h>  /* ssize_t */
+#  if defined(_SCO_DS) || defined(__osf__)
+typedef long long la_int64_t;
+#  else
+typedef int64_t la_int64_t;
+#  endif
+# endif
 #endif
 
-#include <sys/stat.h>
-#include <sys/types.h>  /* Linux requires this for off_t */
-#ifdef __LA_STDINT_H
-# include __LA_STDINT_H /* int64_t, etc. */
-#endif
-#include <stdio.h> /* For FILE * */
-
-/* Get appropriate definitions of standard POSIX-style types. */
-/* These should match the types used in 'struct stat' */
-#if defined(_WIN32) && !defined(__CYGWIN__)
-#define        __LA_INT64_T    __int64
-# if defined(_SSIZE_T_DEFINED)
-#  define      __LA_SSIZE_T    ssize_t
-# elif defined(_WIN64)
-#  define      __LA_SSIZE_T    __int64
+/* The la_ssize_t should match the type used in 'struct stat' */
+#if !defined(__LA_SSIZE_T_DEFINED)
+/* Older code relied on the __LA_SSIZE_T macro; after 4.0 we'll switch to the typedef exclusively. */
+# if ARCHIVE_VERSION_NUMBER < 4000000
+#define __LA_SSIZE_T la_ssize_t
+# endif
+#define __LA_SSIZE_T_DEFINED
+# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
+#  if defined(_SSIZE_T_DEFINED) || defined(_SSIZE_T_)
+typedef ssize_t la_ssize_t;
+#  elif defined(_WIN64)
+typedef __int64 la_ssize_t;
+#  else
+typedef long la_ssize_t;
+#  endif
 # else
-#  define      __LA_SSIZE_T    long
+# include <unistd.h>  /* ssize_t */
+typedef ssize_t la_ssize_t;
 # endif
-# if defined(__BORLANDC__)
-#  define      __LA_UID_T      uid_t
-#  define      __LA_GID_T      gid_t
-# else
-#  define      __LA_UID_T      short
-#  define      __LA_GID_T      short
-# endif
-#else
-#include <unistd.h>  /* ssize_t, uid_t, and gid_t */
-#define        __LA_INT64_T    int64_t
-#define        __LA_SSIZE_T    ssize_t
-#define        __LA_UID_T      uid_t
-#define        __LA_GID_T      gid_t
+#endif
+
+/* Large file support for Android */
+#ifdef __ANDROID__
+#include "android_lf.h"
 #endif
 
 /*
@@ -88,7 +115,7 @@
 #  endif
 # else
 #  ifdef __GNUC__
-#   define __LA_DECL   __attribute__((dllimport)) extern
+#   define __LA_DECL
 #  else
 #   define __LA_DECL   __declspec(dllimport)
 #  endif
@@ -98,6 +125,19 @@
 # define __LA_DECL
 #endif
 
+#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(__MINGW32__)
+#define        __LA_PRINTF(fmtarg, firstvararg) \
+       __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+#else
+#define        __LA_PRINTF(fmtarg, firstvararg)        /* nothing */
+#endif
+
+#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
+# define __LA_DEPRECATED __attribute__((deprecated))
+#else
+# define __LA_DEPRECATED
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -110,55 +150,33 @@
  * header and library are very different, you should expect some
  * strangeness.  Don't do that.
  */
-
-/*
- * The version number is expressed as a single integer that makes it
- * easy to compare versions at build time: for version a.b.c, the
- * version number is printf("%d%03d%03d",a,b,c).  For example, if you
- * know your application requires version 2.12.108 or later, you can
- * assert that ARCHIVE_VERSION >= 2012108.
- *
- * This single-number format was introduced with libarchive 1.9.0 in
- * the libarchive 1.x family and libarchive 2.2.4 in the libarchive
- * 2.x family.  The following may be useful if you really want to do
- * feature detection for earlier libarchive versions (which defined
- * ARCHIVE_API_VERSION and ARCHIVE_API_FEATURE instead):
- *
- * #ifndef ARCHIVE_VERSION_NUMBER
- * #define ARCHIVE_VERSION_NUMBER      \
- *             (ARCHIVE_API_VERSION * 1000000 + ARCHIVE_API_FEATURE * 1000)
- * #endif
- */
-#define        ARCHIVE_VERSION_NUMBER 2008004
 __LA_DECL int          archive_version_number(void);
 
 /*
  * Textual name/version of the library, useful for version displays.
  */
-#define        ARCHIVE_VERSION_STRING "libarchive 2.8.4"
+#define        ARCHIVE_VERSION_ONLY_STRING "3.3.2dev"
+#define        ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
 __LA_DECL const char * archive_version_string(void);
 
-#if ARCHIVE_VERSION_NUMBER < 3000000
 /*
- * Deprecated; these are older names that will be removed in favor of
- * the simpler definitions above.
+ * Detailed textual name/version of the library and its dependencies.
+ * This has the form:
+ *    "libarchive x.y.z zlib/a.b.c liblzma/d.e.f ... etc ..."
+ * the list of libraries described here will vary depending on how
+ * libarchive was compiled.
  */
-#define        ARCHIVE_VERSION_STAMP   ARCHIVE_VERSION_NUMBER
-__LA_DECL int          archive_version_stamp(void);
-#define        ARCHIVE_LIBRARY_VERSION ARCHIVE_VERSION_STRING
-__LA_DECL const char * archive_version(void);
-#define        ARCHIVE_API_VERSION     (ARCHIVE_VERSION_NUMBER / 1000000)
-__LA_DECL int          archive_api_version(void);
-#define        ARCHIVE_API_FEATURE     ((ARCHIVE_VERSION_NUMBER / 1000) % 1000)
-__LA_DECL int          archive_api_feature(void);
-#endif
+__LA_DECL const char * archive_version_details(void);
 
-#if ARCHIVE_VERSION_NUMBER < 3000000
-/* This should never have been here in the first place. */
-/* Legacy of old tar assumptions, will be removed in libarchive 3.0. */
-#define        ARCHIVE_BYTES_PER_RECORD          512
-#define        ARCHIVE_DEFAULT_BYTES_PER_BLOCK 10240
-#endif
+/*
+ * Returns NULL if libarchive was compiled without the associated library.
+ * Otherwise, returns the version number that libarchive was compiled
+ * against.
+ */
+__LA_DECL const char *  archive_zlib_version(void);
+__LA_DECL const char *  archive_liblzma_version(void);
+__LA_DECL const char *  archive_bzlib_version(void);
+__LA_DECL const char *  archive_liblz4_version(void);
 
 /* Declare our basic types. */
 struct archive;
@@ -200,51 +218,78 @@
  */
 
 /* Returns pointer and size of next block of data from archive. */
-typedef __LA_SSIZE_T   archive_read_callback(struct archive *,
+typedef la_ssize_t     archive_read_callback(struct archive *,
                            void *_client_data, const void **_buffer);
 
-/* Skips at most request bytes from archive and returns the skipped amount */
-#if ARCHIVE_VERSION_NUMBER < 2000000
-/* Libarchive 1.0 used ssize_t for the return, which is only 32 bits
- * on most 32-bit platforms; not large enough. */
-typedef __LA_SSIZE_T   archive_skip_callback(struct archive *,
-                           void *_client_data, size_t request);
-#elif ARCHIVE_VERSION_NUMBER < 3000000
-/* Libarchive 2.0 used off_t here, but that is a bad idea on Linux and a
- * few other platforms where off_t varies with build settings. */
-typedef off_t          archive_skip_callback(struct archive *,
-                           void *_client_data, off_t request);
-#else
-/* Libarchive 3.0 uses int64_t here, which is actually guaranteed to be
- * 64 bits on every platform. */
-typedef __LA_INT64_T   archive_skip_callback(struct archive *,
-                           void *_client_data, __LA_INT64_T request);
-#endif
+/* Skips at most request bytes from archive and returns the skipped amount.
+ * This may skip fewer bytes than requested; it may even skip zero bytes.
+ * If you do skip fewer bytes than requested, libarchive will invoke your
+ * read callback and discard data as necessary to make up the full skip.
+ */
+typedef la_int64_t     archive_skip_callback(struct archive *,
+                           void *_client_data, la_int64_t request);
+
+/* Seeks to specified location in the file and returns the position.
+ * Whence values are SEEK_SET, SEEK_CUR, SEEK_END from stdio.h.
+ * Return ARCHIVE_FATAL if the seek fails for any reason.
+ */
+typedef la_int64_t     archive_seek_callback(struct archive *,
+    void *_client_data, la_int64_t offset, int whence);
 
 /* Returns size actually written, zero on EOF, -1 on error. */
-typedef __LA_SSIZE_T   archive_write_callback(struct archive *,
+typedef la_ssize_t     archive_write_callback(struct archive *,
                            void *_client_data,
                            const void *_buffer, size_t _length);
 
-#if ARCHIVE_VERSION_NUMBER < 3000000
-/* Open callback is actually never needed; remove it in libarchive 3.0. */
 typedef int    archive_open_callback(struct archive *, void *_client_data);
-#endif
 
 typedef int    archive_close_callback(struct archive *, void *_client_data);
 
+/* Switches from one client data object to the next/prev client data object.
+ * This is useful for reading from different data blocks such as a set of files
+ * that make up one large file.
+ */
+typedef int archive_switch_callback(struct archive *, void *_client_data1,
+                           void *_client_data2);
+
 /*
- * Codes for archive_compression.
+ * Returns a passphrase used for encryption or decryption, NULL on nothing
+ * to do and give it up.
+ */
+typedef const char *archive_passphrase_callback(struct archive *,
+                           void *_client_data);
+
+/*
+ * Codes to identify various stream filters.
  */
-#define        ARCHIVE_COMPRESSION_NONE        0
-#define        ARCHIVE_COMPRESSION_GZIP        1
-#define        ARCHIVE_COMPRESSION_BZIP2       2
-#define        ARCHIVE_COMPRESSION_COMPRESS    3
-#define        ARCHIVE_COMPRESSION_PROGRAM     4
-#define        ARCHIVE_COMPRESSION_LZMA        5
-#define        ARCHIVE_COMPRESSION_XZ          6
-#define        ARCHIVE_COMPRESSION_UU          7



Home | Main Index | Thread Index | Old Index