59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# VERSION=2018-01-28.2
|
|
# TODO: Register failed packes to /var/eos/precompile.failed
|
|
# and skip on rerun
|
|
#
|
|
|
|
|
|
# script based on idea of
|
|
# sven vermeulen http://blog.siphos.be/2013/04/gentoo-protip-using-buildpkgonly/
|
|
|
|
echo "Start w/ eix-sync" | logger -t precompile
|
|
eix-sync -q
|
|
|
|
|
|
|
|
LIST=$(mktemp);
|
|
|
|
#emerge -puDN --with-bdeps=y --color=n --columns --quiet=y world | grep "^.*[a-z][a-z][a-z]-.*/[a-z0-9].*" | awk '{print $2}' > ${LIST};
|
|
|
|
# New: Skip already compiled packages, by excluding result starting with [binary
|
|
# New: Include --binpkg-respect-use=y, should be default in this case, but just to be sure.
|
|
# New: Set PORTAGE_ELOG_SYSTEM-env-var so we won't get per-package-mails from ebuild on systems having sending mails enabled in make.conf
|
|
PORTAGE_ELOG_SYSTEM="save" emerge -puDNk --with-bdeps=y --changed-deps=y --binpkg-respect-use=y --color=n --quiet=y world | grep "^\[ebuild " | sed -nr 's/^\[.+\]\ ([^\ ]+)(\ .*|$)/\1/p' > ${LIST};
|
|
|
|
for PACKAGE in $(cat ${LIST});
|
|
do
|
|
skip=0
|
|
if [ -f /etc/eos/precompile.exclude ]; then
|
|
for i in `cat /etc/eos/precompile.exclude | grep -v "^#"`; do
|
|
if [ "`echo ${PACKAGE} | grep "^${i}" | wc -l`" == "1" ]; then
|
|
skip=1
|
|
break;
|
|
fi
|
|
done
|
|
fi
|
|
if [ "$skip" == "1" ]; then
|
|
echo "Skipping ${PACKAGE} due to /etc/eos/precompile.exclude"
|
|
echo "Skipping ${PACKAGE} due to /etc/eos/precompile.exclude" | logger -t precompile
|
|
else
|
|
printf "Building binary package for ${PACKAGE}... "
|
|
emerge -1uN --quiet-build --quiet=y --changed-deps=y --buildpkgonly =${PACKAGE};
|
|
if [[ $? -eq 0 ]];
|
|
then
|
|
echo "ok";
|
|
echo "OK: ${PACKAGE} " | logger -t precompile
|
|
else
|
|
echo "failed";
|
|
echo "FAILED: ${PACKAGE} " | logger -t precompile
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo "Cleaning distfiles + packages" | logger -t precompile
|
|
eclean packages
|
|
eclean distfiles
|
|
rm $LIST
|
|
|
|
echo "Ending" | logger -t precompile
|