diff options
-rw-r--r-- | source3/client/clitar.c | 10 | ||||
-rw-r--r-- | source3/wscript | 8 | ||||
-rwxr-xr-x | source3/wscript_build | 3 |
3 files changed, 16 insertions, 5 deletions
diff --git a/source3/client/clitar.c b/source3/client/clitar.c index b4f914f5c8c..8703f6b9a74 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -720,7 +720,11 @@ out_close: } } out: +#ifdef HAVE_ARCHIVE_READ_FREE archive_write_free(t->archive); +#else + archive_write_finish(t->archive); +#endif talloc_free(ctx); return err; } @@ -1002,7 +1006,9 @@ static int tar_extract(struct tar *t) t->archive = archive_read_new(); archive_read_support_format_all(t->archive); +#ifdef HAVE_ARCHIVE_READ_SUPPORT_FILTER_ALL archive_read_support_filter_all(t->archive); +#endif if (strequal(t->tar_path, "-")) { r = archive_read_open_fd(t->archive, STDIN_FILENO, bsize); @@ -1053,7 +1059,11 @@ static int tar_extract(struct tar *t) } out: +#ifdef HAVE_ARCHIVE_READ_FREE r = archive_read_free(t->archive); +#else + r = archive_read_finish(t->archive); +#endif if (r != ARCHIVE_OK) { DBG(0, ("Can't close %s : %s\n", t->tar_path, archive_error_string(t->archive))); diff --git a/source3/wscript b/source3/wscript index 990afcdfa01..8741d192ea9 100644 --- a/source3/wscript +++ b/source3/wscript @@ -212,14 +212,14 @@ main() { # check for libarchive (tar command in smbclient) # None means autodetect, True/False means enable/disable - conf.env['archive_lib'] = '' + conf.SET_TARGET_TYPE('archive', 'EMPTY') if Options.options.with_libarchive is not False: libarchive_mandatory = Options.options.with_libarchive == True Logs.info("Checking for libarchive existence") - if conf.CHECK_BUNDLED_SYSTEM('libarchive', minversion='3.1.2'): - conf.env['archive_lib'] = 'libarchive' + if conf.CHECK_HEADERS('archive.h') and conf.CHECK_LIB('archive', shlib=True): + conf.CHECK_FUNCS_IN('archive_read_support_filter_all archive_read_free', 'archive') elif libarchive_mandatory: - conf.fatal('libarchive support requested, but no suitable pkgconfig found') + conf.fatal('libarchive support requested, but not found') # check for DMAPI libs if Options.options.with_dmapi == False: diff --git a/source3/wscript_build b/source3/wscript_build index 236a4527e26..e66e89fa798 100755 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -1071,7 +1071,8 @@ bld.SAMBA3_BINARY('client/smbclient', msrpc3 RPC_NDR_SRVSVC cli_smb_common - ''' + bld.env['archive_lib']) + archive + ''') bld.SAMBA3_BINARY('net', source='''utils/net.c |