summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkos Chandras <hwoarang@gentoo.org>2011-09-19 16:25:04 +0000
committerMarkos Chandras <hwoarang@gentoo.org>2011-09-19 16:25:04 +0000
commitf239f09d39598d6639f34eb4c9c617673866ada3 (patch)
tree4c2feba3f4d93f351e1da4f32ded1978d68dabd5 /app-laptop/prey
parentRemove unneeded deps (diff)
downloadgentoo-2-f239f09d39598d6639f34eb4c9c617673866ada3.tar.gz
gentoo-2-f239f09d39598d6639f34eb4c9c617673866ada3.tar.bz2
gentoo-2-f239f09d39598d6639f34eb4c9c617673866ada3.zip
Initial commit. Thanks to Travis Hansen and Thomas Kear for the ebuilds. Bug #305813
(Portage version: 2.2.0_alpha58/cvs/Linux x86_64)
Diffstat (limited to 'app-laptop/prey')
-rw-r--r--app-laptop/prey/ChangeLog12
-rw-r--r--app-laptop/prey/files/prey-0.5.3-gtk-ui.patch31
-rw-r--r--app-laptop/prey/files/prey-0.5.3-mplayer-support.patch48
-rw-r--r--app-laptop/prey/files/prey-cron-functions.patch31
-rw-r--r--app-laptop/prey/files/prey.cron1
-rw-r--r--app-laptop/prey/metadata.xml33
-rw-r--r--app-laptop/prey/prey-0.5.3.ebuild157
7 files changed, 313 insertions, 0 deletions
diff --git a/app-laptop/prey/ChangeLog b/app-laptop/prey/ChangeLog
new file mode 100644
index 000000000000..e604f76f00ad
--- /dev/null
+++ b/app-laptop/prey/ChangeLog
@@ -0,0 +1,12 @@
+# ChangeLog for app-laptop/prey
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-laptop/prey/ChangeLog,v 1.1 2011/09/19 16:25:04 hwoarang Exp $
+
+*prey-0.5.3 (19 Sep 2011)
+
+ 19 Sep 2011; Markos Chandras <hwoarang@gentoo.org> +prey-0.5.3.ebuild,
+ +files/prey-0.5.3-gtk-ui.patch, +files/prey-0.5.3-mplayer-support.patch,
+ +files/prey.cron, +files/prey-cron-functions.patch, +metadata.xml:
+ Initial commit. Thanks to Travis Hansen <travisghansen@yahoo.com> and Thomas
+ Kear <thomas.kear@gmail.com> for the ebuilds. Bug #305813
+
diff --git a/app-laptop/prey/files/prey-0.5.3-gtk-ui.patch b/app-laptop/prey/files/prey-0.5.3-gtk-ui.patch
new file mode 100644
index 000000000000..7b55b83cd3e2
--- /dev/null
+++ b/app-laptop/prey/files/prey-0.5.3-gtk-ui.patch
@@ -0,0 +1,31 @@
+Index: prey/platform/linux/prey-config.py
+===================================================================
+--- prey.orig/platform/linux/prey-config.py
++++ prey/platform/linux/prey-config.py
+@@ -23,7 +23,7 @@ import urllib
+
+ app_name = 'prey-config'
+ lang_path = 'lang'
+-script_path = os.sys.path[0]
++script_path = '/usr/share/prey/platform/linux/'
+
+ ################################################
+ # gettext localization
+@@ -42,7 +42,7 @@ _ = gettext.gettext
+ ################################################
+
+ PREY_PATH = '/usr/share/prey'
+-CONFIG_FILE = PREY_PATH + '/config'
++CONFIG_FILE = '/etc/config'
+ CONTROL_PANEL_URL = 'http://control.preyproject.com'
+ CONTROL_PANEL_URL_SSL = 'https://control.preyproject.com'
+ GUEST_ACCOUNT_NAME = 'guest_account'
+@@ -293,7 +293,7 @@ class PreyConfigurator(object):
+ return True
+
+ def is_config_writable(self):
+- command = 'if [ ! -w "'+PREY_PATH+'/config" ]; then echo 1; fi'
++ command = 'if [ ! -w '+CONFIG_FILE+' ]; then echo 1; fi'
+ no_access = os.popen(command).read().strip()
+ if no_access == '1':
+ self.show_alert(_("Unauthorized"), _("You don't have access to manage Prey's configuration. Sorry."), True)
diff --git a/app-laptop/prey/files/prey-0.5.3-mplayer-support.patch b/app-laptop/prey/files/prey-0.5.3-mplayer-support.patch
new file mode 100644
index 000000000000..970f50d751d9
--- /dev/null
+++ b/app-laptop/prey/files/prey-0.5.3-mplayer-support.patch
@@ -0,0 +1,48 @@
+--- modules/webcam/platform/linux/functions.orig 2011-01-19 22:49:55.457000055 -0700
++++ modules/webcam/platform/linux/functions 2011-01-20 18:19:11.046000085 -0700
+@@ -9,6 +9,7 @@
+
+ # do we have streamer installed ?
+ local streamer=`which streamer`
++ local mencoder=`which mencoder`
+ if [ -n "$streamer" ]; then
+
+ # take four pictures every 0.5 seconds as JPEG
+@@ -37,19 +38,32 @@
+ fi
+
+ fi
+-
++ elif [ -n "${mencoder}" ]; then
++ # not sure how to do this same thing with mencoder
++ mplayer tv:// -tv driver=v4l2:noaudio:device=/dev/video0 -frames 10 -vo jpeg &> /dev/null
++ if [ $? == 0 ]; then
++ mv 00000010.jpg "${webcam__picture}" > /dev/null
++ rm 000000*.jpg > /dev/null
++ fi
+ fi
+
+ }
+
+ capture_video() {
+
+- # we should already know if we do have streamer
++ local frames=$(( $webcam__video_capture_time * $webcam__frames_per_second ))
++
++ # do we have streamer installed ?
++ local streamer=`which streamer`
++ local mencoder=`which mencoder`
++
+ if [ -n "$streamer" ]; then
+-
+- local frames=$(( $webcam__video_capture_time * $webcam__frames_per_second ))
+ $streamer -o "$webcam__video" -f yuv2 -F stereo -r $webcam__frames_per_second -t $frames
+-
++ elif [ -n "${mencoder}" ]; then
++ ${mencoder} tv:// -tv driver=v4l2:noaudio:device=/dev/video0 -ovc lavc -ffourcc DX50 -ofps ${webcam__frames_per_second} -endpos ${webcam__video_capture_time} -o "${tmpdir}/prey-video.avi" &> /dev/null
++ if [ $? == 0 ]; then
++ webcam__video="${tmpdir}/prey-video.avi"
++ fi
+ fi
+
+ }
diff --git a/app-laptop/prey/files/prey-cron-functions.patch b/app-laptop/prey/files/prey-cron-functions.patch
new file mode 100644
index 000000000000..0e5486d27d9b
--- /dev/null
+++ b/app-laptop/prey/files/prey-cron-functions.patch
@@ -0,0 +1,31 @@
+Index: prey/core/functions
+===================================================================
+--- prey.orig/core/functions
++++ prey/core/functions
+@@ -170,7 +170,7 @@ remove_files(){
+
+ get_current_delay(){
+ # crontab -l | grep prey | sed "s/^..\([0-9]*\).*/\1/"
+- crontab -l | grep prey | head -1 | sed 's/ \/.*//'
++ sed -i 's/ \/.*//' /etc/cron.d/prey.cron
+ }
+
+ get_delay_for(){
+@@ -197,7 +197,7 @@ get_delay_for(){
+
+ update_execution_delay(){
+ local full_path=`full_path "$base_path"`
+- (crontab -l | grep -v prey; echo "${new_delay}" "${full_path}/prey.sh > /var/log/prey.log") | crontab -
++ echo "${new_delay}" "/usr/bin/prey.sh > /var/log/prey.log" > /etc/cron.d/prey.cron
+ }
+
+ ####################################################################
+@@ -250,7 +250,7 @@ verify_installation(){
+ log " !! Cron daemon not found! Try running it with 'sudo /etc/init.d/cron start'."
+ fi
+ log " -- Checking for crontab entry..."
+- local result=`crontab -l | grep 'prey.sh' | wc -l 2> /dev/null`
++ local result=`wc -l /etc/cron.d/prey.cron 2> /dev/null`
+ if [ "$result" -gt 0 ]; then
+ log " -- Found!"
+ else
diff --git a/app-laptop/prey/files/prey.cron b/app-laptop/prey/files/prey.cron
new file mode 100644
index 000000000000..fe036185a2d5
--- /dev/null
+++ b/app-laptop/prey/files/prey.cron
@@ -0,0 +1 @@
+#*/20 * * * * /usr/bin/prey &>/dev/null
diff --git a/app-laptop/prey/metadata.xml b/app-laptop/prey/metadata.xml
new file mode 100644
index 000000000000..d9836ac35052
--- /dev/null
+++ b/app-laptop/prey/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+</maintainer>
+<maintainer>
+ <email>travisghansen@yahoo.com</email>
+ <name>Travis Hansen</name>
+ <description>Co-maintainer. CC him on bugs</description>
+</maintainer>
+<maintainer>
+ <email>m4rk@silverarrow.org</email>
+ <name>Markellos Orfanos</name>
+ <description>Ebuild tester. CC him on bugs</description>
+</maintainer>
+<use>
+ <flag name="alarm">Module for playing an audio file</flag>
+ <flag name="alert">Display a warning message when the computer seems to be stolen"</flag>
+ <flag name="geo">Module for retrieving the physical location of the stolen computer</flag>
+ <flag name="lock">Lock stolen computer</flag>
+ <flag name="network">Get network information (active connections, traceroute) from stolen computer</flag>
+ <flag name="secure">Delete or hide sensitive user data</flag>
+ <flag name="session">Get screenshots from user session</flag>
+ <flag name="userpriv">Create a prey user group so regular users can access and modify the prey configuration. Use it with caution</flag>
+ <flag name="webcam">Use computer's webcam to take screenshots of the thief</flag>
+</use>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/app-laptop/prey/prey-0.5.3.ebuild b/app-laptop/prey/prey-0.5.3.ebuild
new file mode 100644
index 000000000000..1d8ae6ec14a8
--- /dev/null
+++ b/app-laptop/prey/prey-0.5.3.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-laptop/prey/prey-0.5.3.ebuild,v 1.1 2011/09/19 16:25:04 hwoarang Exp $
+
+EAPI=4
+
+inherit eutils
+
+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-base/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,v4l2] ) ( 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
+
+ # remove system module since it depends on hal and we don't
+ # have hal in portage anymore
+ rm -rf "${S}"/modules/system || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-cron-functions.patch \
+ "${FILESDIR}"/${P}-gtk-ui.patch \
+ "${FILESDIR}"/${P}-mplayer-support.patch
+ sed -i -e 's,readonly base_path=`dirname "$0"`,readonly \
+ base_path="/usr/share/prey",' \
+ "${S}"/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"
+ if [[ $mod == "lock" ]]; then
+ fperms 555 \
+ "/usr/share/${PN}/modules/lock/platform/linux/${PN}-lock"
+ fi
+ fi
+
+ # Rest of the module in its expected location
+ insinto /usr/share/prey/modules
+ doins -r "$mod"
+ done
+
+}
+pkg_postinst () {
+ elog "--Configuration--"
+ elog "Make sure you follow the next steps before running prey for the"
+ elog "first time"
+ if use userpriv; then
+ elog "- Add your user to ${PN} group using"
+ elog "gpasswd -a <your_user> ${PN}"
+ else
+ elog "You don't seem to have 'userpriv' enabled so"
+ elog "${PN} configuration is only accessible as root"
+ fi
+ elog "- Create an account on http://preyproject.com/"
+ elog "- Modify the core and module configuration in /etc/prey"
+ elog "- Uncomment the line in /etc/cron.d/prey.cron"
+}