| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| inherit eutils user |
| |
| SBOX_GROUP="sbox" |
| |
| DESCRIPTION="A cross-compilation toolkit designed to make embedded Linux application development easier" |
| HOMEPAGE="http://www.scratchbox.org/" |
| SRC_URI="http://scratchbox.org/download/files/sbox-releases/hathor/tarball/scratchbox-core-${PV}-i386.tar.gz |
| http://scratchbox.org/download/files/sbox-releases/hathor/tarball/scratchbox-libs-${PV}-i386.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86" |
| IUSE="" |
| |
| # Stripping BREAKS scratchbox, it runs in a chroot and is pre-stripped when needed (bug #296294) |
| RESTRICT="strip" |
| |
| DEPEND="" |
| RDEPEND="" |
| |
| TARGET_DIR="/opt/scratchbox" |
| |
| S=${WORKDIR}/${PN} |
| |
| src_install() { |
| dodir ${TARGET_DIR} |
| # doins doesn't work with symlinks, getting "file not found" with doins |
| cp -pRP ./* "${D}/${TARGET_DIR}" |
| ln -s opt/scratchbox "${D}/scratchbox" |
| |
| # scratchbox service loader |
| newinitd "${FILESDIR}/scratchbox.rc" scratchbox || die "newinitd failed" |
| |
| # group already created |
| echo ${SBOX_GROUP} > "${D}/${TARGET_DIR}/.run_me_first_done" |
| } |
| |
| pkg_preinst() { |
| einfo "Creating group sbox" |
| enewgroup "${SBOX_GROUP}" |
| } |
| |
| pkg_postinst() { |
| "${TARGET_DIR}/sbin/sbox_configure" "no" ${SBOX_GROUP} |
| |
| elog |
| elog "You can run:" |
| elog "\"emerge --config =${CATEGORY}/${PF}\"" |
| elog "to setup scratchbox users" |
| elog |
| elog "For further documentation about how to setup" |
| elog "scratchbox for your development needs have a look at" |
| elog "http://scratchbox.org/documentation/user/scratchbox-1.0/" |
| elog |
| elog "Also note that when you reboot you should run:" |
| elog "/etc/init.d/scratchbox start" |
| elog "before trying to run scratchbox." |
| elog "You can also add it to the default runlevel:" |
| elog "rc-update add scratchbox default" |
| elog |
| elog "Type /opt/scratchbox/login to start scratchbox." |
| elog |
| } |
| |
| pkg_postrm() { |
| elog |
| elog "To remove all traces of scratchbox you will need to remove the file" |
| elog "/etc/init.d/scratchbox. Don't forget to delete the sbox group." |
| elog |
| } |
| |
| pkg_config() { |
| if [ `id -u` != "0" ]; then |
| ewarn "Must be root to run this" |
| die "not root" |
| fi |
| |
| mkdir -p "${TARGET_DIR}/users" |
| |
| while true; do |
| einfo "Existing users:" |
| einfo $(ls "${TARGET_DIR}/users") |
| echo |
| |
| einfo "Create new user (leaf empty to skip): " |
| read newuser |
| case "$newuser" in |
| "") |
| break; |
| ;; |
| *) |
| einfo "Note: users have to be in the '${SBOX_GROUP}' to be able to login into the scratchbox" |
| "${TARGET_DIR}/sbin/sbox_adduser" ${newuser} || die "sbox_adduser failed" |
| ;; |
| esac |
| done |
| |
| einfo "Configuration finished. Make sure you run '/etc/init.d/scratchbox start' before logging in." |
| } |