function new_unpack()
{
  local sourcefile="SOURCE${1}" &&

  message "${MESSAGE_COLOR}unxz ${SOURCE_CACHE}/${!sourcefile}${DEFAULT_COLOR}" &&
  unxz -k "${SOURCE_CACHE}/${!sourcefile}" &&
  eval "SOURCE${1}=${!sourcefile%.xz}" &&
  unpack_file "${1}" &&

  message "${MESSAGE_COLOR}rm ${SOURCE_CACHE}/${!sourcefile}${DEFAULT_COLOR}" &&
  rm "${SOURCE_CACHE}/${!sourcefile}" &&

  eval "SOURCE${1}=${!sourcefile}.xz"
}

cd "${BUILD_DIRECTORY}" &&

mk_source_dir "${SOURCE_DIRECTORY}" &&

new_unpack "" &&

cd "${SOURCE_DIRECTORY}" &&

if [[ $GIT_DOC == manpages || $GIT_DOC == both ]]; then
  new_unpack "3"
fi &&

if [[ $GIT_DOC == htmldocs || $GIT_DOC == both ]]; then
  new_unpack "5"
fi &&
if ! is_depends_enabled $SPELL gettext;then
# these cause a segfault with gettext-tiny
  rm po/{ca,el,ru,pt_PT}.po
fi
