FS#35226 - makepkg does not use the COMPRESSION DEFAULTS from makepkg.conf to extract source files
Attached to Project:
Pacman
Opened by Christian Krause (wookietreiber) - Sunday, 12 May 2013, 20:33 GMT
Last edited by Allan McRae (Allan) - Sunday, 29 June 2014, 10:14 GMT
Opened by Christian Krause (wookietreiber) - Sunday, 12 May 2013, 20:33 GMT
Last edited by Allan McRae (Allan) - Sunday, 29 June 2014, 10:14 GMT
|
Details
Description: makepkg does not use the COMPRESSION DEFAULTS
from makepkg.conf to extract source files.
From what I can tell (see function extract_file), bsdtar from libarchive is used for all tarballs and hard-coded gzip/bzip2/xz are used for compressed non-tarball files. This extraction process could be improved. I tend to use pigz and pbzip2 as drop-in replacements for gzip and bzip2 (full compatibility), because they make use of all my cores instead of just one. bsdtar might be nice because it extracts all the application/x-tar application/zip application/x-zip application/x-cpio file types (see function extract_file) with a single command, but it wastes a lot of time by using just one core. Please improve the extract_file function to make use of the user-defined COMPRESSION DEFAULTS of makepkg.conf to allow quicker extraction, especially in multi-core environments -- for large sources, a lot of time gets wasted by not allowing the use of all cores. Additional info: * package version: 4.1.1-1 * https://www.archlinux.org/packages/?q=pigz * https://www.archlinux.org/packages/?q=pbzip2 * config example from makepkg.conf: ######################################################################### # COMPRESSION DEFAULTS ######################################################################### # COMPRESSGZ=(pigz -c -f -n) COMPRESSBZ2=(pbzip2 -c -f) |
This task depends upon
DECOMPRESS="$COMPRESS -d"
For example, the current default for GZ files is COMPRESSGZ=(gzip -c -f -n)
Now which flags do we strip?
Do we strip them all? Not ideal and will result in (unexpected) behaviour.
Do we assume that '-c' means compress so change that to a -d? Not very safe.
Appending a -d to override a previous -c isn't very sane either.