now the interface will properly indicate that the archive is not writable
when that is the case (it was not even before the port to KArchive)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
fixes creating of archives with large files that cannot fit in /tmp (or
whatever the temporary directory is set to). note that this still depends
on how much space is available on the filesystem the archive is created on
and will not work for remote archives - remote archives will have to be
fetched somewhere with enough space to hold the archive and a copy of it
(possibly $HOME) but that is for another commit (currently archives are
fetched into /tmp but not uploaded upon modification)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
if you are not doing full rebuild (to catch API changes) atleast on
every new release then you are doing something wrong anyway
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
make it protected so that it is reusable and implement permissions
for LibArchiveInterface via it while at it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
this ensures tarballs with .tar.gz extension, for an example, will not be
opened and displayed as .tar archive containing other archive
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
nowdays .tar.gz and .tar.bz2 files are recognized as
application/x-bzip and application/x-gzip respectively.
also added application/x-gzip-compressed-tar because
application/x-bzip-compressed-tar is in the list and I
think that's a legacy one but should not hurt.
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
since CMake 2.8.3 (according to Raphael) FindLibArchive module is
bundled with it, to avoid dublication drop the bundled one.
in addition, libarchive does not conditionally define support of
archives and will just bail out if the format is not recognized
thus dropping the ifdef's in the handler
TODO: the format does not get recognized via archive_format() when
called on existing archive created with Ark, what the heck? is it
a libarchive bug (test with git checkout)? if it is then checking
the format in the case when the filter is ARCHIVE_FILTER_NONE with
another switch would do the job without manually checking the
extensions for zip and 7z.