Commit 312061cf authored by Vitaly Lipatov's avatar Vitaly Lipatov

epm-install: add support for direct install ebuild

parent 946c3c28
......@@ -41,6 +41,53 @@ filter_out_installed_packages()
esac | sed -e "s|rpm-build-altlinux-compat[^ ]*||g" | filter_strip_spaces
}
# install ebuild
# http://ru.gentoo-wiki.com/wiki/Portage_Overlay
# http://kb.etersoft.ru/Gentoo:_Установка_продуктов_Etersoft
# http://linuxreviews.org/gentoo/ebuilds/
#
__emerge_install()
{
# FIXME: get info from ebuild
local EBUILD=$(estrlist list $* | grep ebuild | head -n1)
local TARBALLS=$(estrlist list $* | grep -v ebuild)
[ -s "$EBUILD" ] || fatal "Can't find ebuild $EBUILD"
# load ebuild and get vars
. $EBUILD
[ -n "$SRC_URI" ] || fatal "Can't load SRC_URI from $EBUILD"
# try to detect tarballs
TARBALLS=
local BASEDIR=$(dirname $EBUILD)
local i
for i in $SRC_URI ; do
TARBALLS="$TARBALLS $BASEDIR/$(basename $i)"
done
local LP=/usr/local/portage
sudocmd mkdir -p $LP/
if ! grep -q $LP /etc/make.conf ; then
sudocmd echo 'PORTDIR_OVERLAY="$LP \${PORTDIR_OVERLAY}"' >>/etc/make.conf
# Overlay name
sudocmd mkdir -p $LP/profiles/
sudocmd echo "local" > $LP/profiles/repo_name
fi
# copy tarballs
local DDIR=/usr/portage/distfiles
[ -d /var/calculate/remote/distfiles ] && DDIR=/var/calculate/remote/distfiles
sudocmd cp -f $TARBALLS $DDIR/ || return
# copy ebuild
sudocmd cp -f $EBUILD $LP/ || return
cd $LP
sudocmd ebuild $(basename $EBUILD) digest
cd -
# FIXME: more correcty get name
local PKGNAME=$(echo $EBUILD | sed -e "s|-[0-9].*||g")
sudocmd emerge -av $PKGNAME || return
}
# copied from etersoft-build-utils/share/eterbuild/functions/rpmpkg
epm_install_names()
......@@ -227,6 +274,9 @@ epm_install_files()
pkgsrc)
sudocmd pkg_add $@
return ;;
emerge)
__emerge_install $@
return ;;
pacman)
sudocmd pacman -U --noconfirm $force $nodeps $@ && return
[ -n "$nodeps" ] && return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment