| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=4 |
| |
| inherit eutils readme.gentoo user |
| |
| DESCRIPTION="Tracking software for asset recovery" |
| HOMEPAGE="http://preyproject.com/" |
| SRC_URI="http://preyproject.com/releases/${PV}/${P}-linux.zip" |
| |
| LICENSE="GPL-3" |
| SLOT="0" |
| KEYWORDS="amd64 x86" |
| IUSE="gtk userpriv" |
| |
| LINGUAS="en it sv es" |
| for x in ${LINGUAS}; do |
| IUSE="${IUSE} linguas_${x}" |
| done |
| |
| MODULES="+alarm +alert +geo lock +network secure +session webcam" |
| IUSE="${IUSE} ${MODULES}" |
| |
| DEPEND="" |
| #TODO: some of these deps may be dependent on USE |
| RDEPEND="${DEPEND} |
| app-shells/bash |
| virtual/cron |
| || ( net-misc/curl net-misc/wget ) |
| dev-perl/IO-Socket-SSL |
| dev-perl/Net-SSLeay |
| sys-apps/net-tools |
| alarm? ( media-sound/mpg123 |
| media-sound/pulseaudio |
| ) |
| alert? ( || ( ( gnome-extra/zenity ) ( kde-apps/kdialog ) ) ) |
| gtk? ( dev-python/pygtk ) |
| lock? ( dev-python/pygtk ) |
| network? ( net-analyzer/traceroute ) |
| session? ( sys-apps/iproute2 |
| || ( media-gfx/scrot media-gfx/imagemagick ) |
| ) |
| webcam? ( || ( ( media-video/mplayer[encode,jpeg,v4l] ) ( media-tv/xawtv ) ) )" |
| |
| S=${WORKDIR}/${PN} |
| |
| pkg_setup() { |
| if use userpriv; then |
| enewgroup ${PN} |
| fi |
| if use gtk; then |
| ewarn "You have the 'gtk' useflag enabled" |
| ewarn "This means that the ${PN} configuration" |
| ewarn "will be accessible via a graphical user" |
| ewarn "interface. This may allow the thief to alter" |
| ewarn "or disable the ${PN} functionality" |
| fi |
| } |
| |
| src_prepare() { |
| DISABLE_AUTOFORMATTING="yes" |
| use userpriv && has_version "${CATEGORY}/${PN}:${SLOT}[-userpriv]" && FORCE_PRINT_ELOG="yes" |
| ! use userpriv && has_version "${CATEGORY}/${PN}:${SLOT}[userpriv]" && FORCE_PRINT_ELOG="yes" |
| |
| DOC_CONTENTS="--Configuration-- |
| Make sure you follow the next steps before running prey for the |
| first time. |
| " |
| |
| if use userpriv; then |
| DOC_CONTENTS+="- Add your user to ${PN} group using: |
| # gpasswd -a <your_user> ${PN}" |
| else |
| DOC_CONTENTS+="You don't seem to have 'userpriv' enabled so |
| ${PN} configuration is only accessible as root" |
| fi |
| |
| DOC_CONTENTS+=" |
| - Create an account on http://preyproject.com/ |
| - Modify the core and module configuration in /etc/prey |
| - Uncomment the line in /etc/cron.d/prey.cron" |
| |
| # remove system module since it depends on hal and we don't |
| # have hal in portage anymore |
| rm -rf "${S}"/modules/system || die |
| |
| epatch "${FILESDIR}"/${P}-cron-functions.patch \ |
| "${FILESDIR}"/${P}-gtk-ui.patch \ |
| "${FILESDIR}"/${PN}-0.5.3-mplayer-support.patch |
| sed -i -e 's,readonly base_path=`dirname "$0"`,readonly \ |
| base_path="/usr/share/prey",' \ |
| "${S}"/prey.sh || die |
| # Fix base path. Bug #438728 |
| sed -i -e "/readonly/s:base_path=.*:base_path=/usr/share/${PN}:" \ |
| prey.sh || die |
| } |
| |
| src_install() { |
| # Remove config app if -gtk |
| if use gtk; then |
| # fix the path |
| doicon "${S}"/pixmaps/${PN}.png |
| newbin "${S}"/platform/linux/${PN}-config.py ${PN}-config |
| make_desktop_entry ${PN}-config "Prey Configuration" ${PN} \ |
| "System;Monitor" |
| else |
| rm -f "${S}"/platform/linux/prey-config.py || die |
| fi |
| |
| # clear out unneeded language files |
| for lang in ${LINGUAS}; do |
| use "linguas_${lang}" || rm -f lang/${lang} modules/*/lang/${lang} |
| done |
| |
| # Core files |
| insinto /usr/share/prey |
| doins -r "${S}"/core "${S}"/lang "${S}"/pixmaps "${S}"/platform "${S}"/version |
| |
| # Main script |
| newbin ${PN}.sh ${PN} |
| |
| # Put the configuration file into /etc, strict perms, symlink |
| insinto /etc/prey |
| newins config ${PN}.conf |
| # some scripts require /usr/share/prey/config file to be present |
| # so symlink it to prey.conf |
| dosym /etc/${PN}/${PN}.conf /usr/share/${PN}/config |
| use userpriv && { fowners root:${PN} /etc/prey ; } |
| fperms 770 /etc/prey |
| use userpriv && { fowners root:${PN} /etc/prey/prey.conf ; } |
| fperms 660 /etc/prey/prey.conf |
| |
| # Add cron.d script |
| insinto /etc/cron.d |
| doins "${FILESDIR}/prey.cron" |
| use userpriv && { fowners root:${PN} /etc/cron.d/prey.cron ; } |
| fperms 660 /etc/cron.d/prey.cron |
| |
| dodoc README |
| |
| # modules |
| cd "${S}"/modules |
| for mod in * |
| do |
| use ${mod} || continue |
| |
| # move config, if present, to /etc/prey |
| if [ -f $mod/config ] |
| then |
| insinto "/etc/prey" |
| newins "$mod/config" "mod-$mod.conf" |
| use userpriv && { fowners root:${PN} "/etc/${PN}/mod-$mod.conf" ; } |
| fperms 660 "/etc/${PN}/mod-$mod.conf" |
| # Rest of the module in its expected location |
| insinto /usr/share/prey/modules |
| doins -r "$mod" |
| if [[ $mod == "lock" ]]; then |
| fperms 555 \ |
| "/usr/share/${PN}/modules/lock/platform/linux/${PN}-lock" |
| fi |
| fi |
| done |
| |
| readme.gentoo_create_doc |
| } |