запустить скрипт
/var/lib/tarball-scripts/ArsenShnurkov/shnurise-tarballs-automation/dev-util/monodevelop/monodevelop-6.1_p2016062206.eroll
#!/bin/bash
DISTDIR=/var/calculate/remote/distfiles
# Path to directory, for example: "${PORTDIR}/${CATEGORY}/${PN}/files"
FILESDIR=/var/lib/tarball-scripts/ArsenShnurkov/shnurise-tarballs-automation/dev-util/monodevelop/files
#WORKDIR=/var/tmp/tarballs/dotnet/dev-util/monodevelop
WORKDIR=/Z
echo CHECKPOINT 1
if [ ! -d "${WORKDIR}" ]; then
mkdir -p "${WORKDIR}"
cd "${WORKDIR}"
git clone https://github.com/mono/monodevelop.git "${WORKDIR}"
else
cd "${WORKDIR}"
git fetch origin
fi
echo CHECKPOINT 2
git reset --hard 81446f1843f35719f40d766efced30680096a636
echo CHECKPOINT 3
git submodule update --init --recursive
echo CHECKPOINT 4
# cd "${WORKDIR}"
touch extras/MonoDevelop.Database/ChangeLog
patch ${WORKDIR}/main/src/core/MonoDevelop.Ide/Makefile.am ${FILESDIR}/main-src-core-Monodevelop.Ide-Makefile.am.patch
./configure --profile=all
#make dist
#cp "${WORKDIR}/*.tar.bz2" "${DISTDIR}/monodevelop-0.0.0_p2016062206.tar.bz2"
#cd -
Скрипт накатывает патч для Makefile.am на файл Makefile.am
патчи в gentoo накатывают до выполнения configure, вот и тут тоже так сделано. После выполнения патчинга configure генерирует Makefile.in и Makefile на основе уже нового пропатченного файла.
патч для Makefile.am
Нужно ещё попробовать написать патч для automake, чтобы не патчить при роллинге, а сразу исправить источник всех бед
вызовы можно сгруппировать и за один вызов обрабатывать несколько слов.
Для того, чтобы сгруппировать слова:
1) заведем временную переменную (в Makefile);
2) будем добавлять слова в эту переменную, пока не будет добавлено N штук. Мы узнаем, что N-ое слово добавлено, если функция $(word N) вернёт непустое значение.
3) обработаем временную переменную путём передачи её в bash и обнулим её после этого. После обнуления переменной в неё начнёт накапливаться новая группа слов
4) обработаем последнюю, недостаточно длинную, группу слов (если группа непустая)
Этот алгоритм приведен на странице https://blog.melski.net/2012/01/03/makefile-hacks-automatically-split-long-command-lines/
Если бы можно было использовать библиотеку GMSL (GNU Make Standart Library), то там была бы функция для определения длины строки.
Но эта библиотека является отдельным пакетом, который в Sabayon не установлен по-умолчанию.