Description
To help us debug your issue please explain:
Using Conan 1.15.1 on Ubuntu 18.04, it seems untar-ing conan packages downloaded from a repository is a rather slow process. Digging into it more, I think this is because Conan uses the build in python tarfile module for doing the tar decompression. We have some packages that have grown into 100 of MBs, and this can take quite a long time. From what I've read, the tarfile module is single threaded, and we are working on servers with several cores that we'd like to take advantage of.
I understand though it is nice to have a good cross-platform solution using the python tarfile module and perhaps that should be the default.
It would be ideal if the user could tell Conan to use the tar on the path if it exists. Some ideas:
- Add a
extract_tool
variable to the config file that takes in/path/to/tarball
andextract_dir
as the only two parameters. Users need to write their own tool that conan will call if this variable is set. This could be a little shell script wrapper for their environment that could call tar, pigz, etc... using the two parameters passed in. - Add a
tar_location
variable to the config file/environment variable. User could set this to/usr/bin/tar
(or wherever tar is). Conan would only use this if it was set and then launch a subprocess doing something liketar -xf conan_package.tar.gz
- Automatically search the user's ${PATH} to see if tar exists. Use that instead of the built in python module.
- I've read the CONTRIBUTING guide.
- I've specified the Conan version, operating system version and any tool that can be relevant.
- I've explained the steps to reproduce the error or the motivation/use case of the question/suggestion.