Commit Graph
21 Commits
Author SHA1 Message Date
Maximilian Bosch c85467a1b6 Revert "TarArchive: Small refactoring"
This reverts commit 50a35860ee.

With this change Nix fails to open bzip2 logfiles that were created from
builds with no stdout/stderr.
2022-03-24 22:30:46 +01:00
Yorick van Pelt 0e0de90b35 extract_archive: fix "Hard-link target '...'" error
Fixes #5741
2021-12-10 17:03:51 +01:00
Yorick van Pelt be1055f2cc extract_archive: use copy_pathname instead of set_pathname.
Libarchive documentation mentions that archive_entry_set_pathname
expects us to keep the passed string alive, which we don't.
2021-12-10 17:00:32 +01:00
Eelco Dolstra 50a35860ee TarArchive: Small refactoring 2021-08-30 17:02:51 +02:00
Eelco Dolstra c7a7652725 Don't segfault if archive_entry_pathname() returns null
Issues #4499.
2021-08-30 17:02:39 +02:00
Eelco Dolstra 15f4d4fd43 Drop libbz2 / zlib / lzma dependency + style fixes 2021-04-15 13:55:22 +02:00
Yorick van PeltandLars Jellema 8a0c00b856 Use libarchive for all compression 2021-03-10 22:34:29 +01:00
Eelco Dolstra 1b79b5b983 read(): Use char * instead of unsigned char *
This gets rid of some pointless casts.
2020-12-02 14:17:27 +01:00
Eelco Dolstra c84c843e33 tarfile.cc: Restore timestamps
This is needed to get the lastModified attribute of GitHub flakes.
2019-12-19 15:09:54 +01:00
Eelco Dolstra 2550c11373 tarfile.cc: Don't change the cwd
Nix is multithreaded so it's not safe to change the cwd.
2019-12-19 15:08:16 +01:00
Eelco Dolstra be32da0ed0 tarfile.cc: Style fixes 2019-12-19 15:01:58 +01:00
Yorick van Pelt eba82b7c88 further clean up libarchive code 2019-12-09 17:21:46 +07:00
Puck Meerburg 28ee687adf Clean up libarchive support 2019-12-07 18:12:21 +00:00
Yorick van Pelt fe7ec70e6b remove rust unpack_tarfile ffi 2019-12-07 23:28:31 +07:00
Yorick van Pelt 1355554d12 code 'cleanup' 2019-12-07 23:23:11 +07:00
Yorick van Pelt f54c168031 add wrapper function around libarchive to c++ errors 2019-12-07 23:10:27 +07:00
Yorick van Pelt 232b390766 fixup! libarchive proof of concept 2019-12-07 23:00:37 +07:00
Yorick van Pelt 9ff5f6492f libarchive proof of concept 2019-12-07 22:35:14 +07:00
Eelco Dolstra 949dc84894 Fix segfault on i686-linux
https://hydra.nixos.org/build/107467517

Seems that on i686-linux, gcc and rustc disagree on how to return
1-word structs: gcc has the caller pass a pointer to the result, while
rustc has the callee return the result in a register. Work around this
by using a bare pointer.
2019-11-27 14:17:15 +01:00
Eelco Dolstra 8918bae098 Drop remaining uses of external "tar"
Also, fetchGit now runs in O(1) memory since we pipe the output of
'git archive' directly into unpackTarball() (rather than first reading
it all into memory).
2019-11-26 22:07:28 +01:00
Eelco Dolstra d33dd6e6c0 Move code around 2019-11-26 22:07:28 +01:00