Package Details: selfspy-git 1:0.1.4.r202.ga98a9c0-2

Git Clone URL: https://aur.archlinux.org/selfspy-git.git (read-only, click to copy)
Package Base: selfspy-git
Description: X11 personal keylogger daemon with statistical analysis.
Upstream URL: https://github.com/gurgeh/selfspy
Keywords: keylogger keylogging productivity quantified-self
Licenses: GPL
Conflicts: selfspy
Provides: selfspy
Submitter: fackamato
Maintainer: None
Last Packager: grandchild
Votes: 9
Popularity: 0.000000
First Submitted: 2012-04-15 18:22 (UTC)
Last Updated: 2018-11-11 21:44 (UTC)

Dependencies (7)

Required by (1)

Sources (4)

Pinned Comments

grandchild commented on 2018-11-11 21:48 (UTC) (edited on 2018-11-11 21:48 (UTC) by grandchild)

I patched this to use pycryptodome explicitly. Thanks @deraffe, for the report and patch draft.

I did have to patch API calls to pycryptodome in selfspy, which only serves as a reminder that this code is unmaintained, and the package may stop working again soon.

I will continue to patch things up for now, but ultimately things will have to happen upstream.

Latest Comments

amazingrise commented on 2019-05-28 03:00 (UTC)

This package is not available currently, due to the removal of python2-keyring. python2-keyring was removed from both Arch repository and AUR. But we can still install this through several tricks:

  1. First, please use a AUR tool which supports editing pkgbuild file, for example the deprecated yaourt. When installing, please select "edit pkgbuild", then remove the "python2-keyring" dependency. Save & Exit. (Note: you may also doing this by running "makepkg" manually, for avoiding the usage of the deprecated "yaourt".)
  2. After the modification, the package can be installed. But we still need to install a python2-keyring package. So do "sudo pacman -S python2-pip" to install the pip for python2.
  3. With pip2 installed, we can install the package through PyPi. Use "sudo pip2 install keyring", and wait patiently.
  4. Finally, you can see the selfspy running normally. Cheers!

As you can see, this is not a "elegant" way to make it work.(for nowadays yaourt and python2 are neither recommended by archlinux community now.) So if you have other ways to achieve this, plz share it here! :)

sender commented on 2019-05-27 08:55 (UTC)

Since python2-keyring is not available anymore in the AUR, any suggesions on how to get this installed the right way?

grandchild commented on 2018-11-11 21:48 (UTC) (edited on 2018-11-11 21:48 (UTC) by grandchild)

I patched this to use pycryptodome explicitly. Thanks @deraffe, for the report and patch draft.

I did have to patch API calls to pycryptodome in selfspy, which only serves as a reminder that this code is unmaintained, and the package may stop working again soon.

I will continue to patch things up for now, but ultimately things will have to happen upstream.

mocambo commented on 2018-11-02 17:45 (UTC) (edited on 2018-11-02 17:48 (UTC) by mocambo)

Can confirm, problem with python2-crypto is still there.

nov 02 19:39:23 Twin selfspy[9056]: working_set = WorkingSet._build_master()

nov 02 19:39:23 Twin selfspy[9056]: File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 578, in _build_master

nov 02 19:39:23 Twin selfspy[9056]: ws.require(requires)

nov 02 19:39:23 Twin selfspy[9056]: File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 895, in require

nov 02 19:39:23 Twin selfspy[9056]: needed = self.resolve(parse_requirements(requirements))

nov 02 19:39:23 Twin selfspy[9056]: File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 781, in resolve

nov 02 19:39:23 Twin selfspy[9056]: raise DistributionNotFound(req, requirers)

nov 02 19:39:23 Twin selfspy[9056]: pkg_resources.DistributionNotFound: The 'pycrypto>=2.5' distribution was not found and is required by selfspy

nov 02 19:39:23 Twin systemd[1]: selfspy@gnome.service: Main process exited, code=exited, status=1/FAILURE

nov 02 19:39:23 Twin systemd[1]: selfspy@gnome.service: Failed with result 'exit-code'.

grandchild commented on 2018-10-05 12:13 (UTC)

@deraffe, sorry for the late reply, and thanks for the patch! But I cannot really verify your issue. python2-cryptodome does indeed provide python2-crypto and the package builds for me. Are you having build issues? What do you mean by "pkg_resources mechanism"?

deraffe commented on 2018-09-04 14:07 (UTC) (edited on 2018-09-04 14:08 (UTC) by deraffe)

The dependency python2-crypto is gone, and although python2-pycryptodome provides it, the pkg_resources mechanism complains, because it can't find the pycrypto package.

I solved this using this patch[1], which just renames the dependency in requirements.txt to pycryptodome.

  1. https://pwnage.pw/?5e1da5e92808ff51#VnPFlnjXhem48cHIvElLtP+H+L/k7PeR1RX4RxaGgaI=

maxik commented on 2018-06-07 08:56 (UTC)

The dependency 'python2-keyring' is gone. There is only a 'python-keyring' which is Python 3 and does not work with the package (internal python dependency not found). Any chance of getting it working again?

The source repository seems idle though.

divansantana commented on 2016-12-13 09:00 (UTC)

Sorted I had to modify DISPLAY var in the service file.

divansantana commented on 2016-12-13 08:57 (UTC)

Anyone else getting this? selfspy Xlib.error.DisplayConnectionError: Can't connect to display ":0"

grandchild commented on 2016-07-23 21:58 (UTC)

Sorry that it's taken me so long to get to this! @jamesan: Thank you very much, I've just forwarded to your commits -- perfect! :) @Pastafarianist: I can confirm that something goes awry on Manjaro (or is it KDE's fault?) -- I'm investigating...

jamesan commented on 2016-07-10 09:36 (UTC)

In the package() function, the last two install commands fail, it seems, due to invalid source path. The path would be valid if it begins with either: "$srcdir/" or "../", but not "$srcdir/../", as the source files of the two install commands are located at $srcdir/${_pkgname}.conf and $srcdir/${_pkgname}@.service and the pwd during those commands is: $srcdir/${_pkgname}. Also, packaging guidelines indicate that at the start of each PKGBUILD function, the pwd is always $srcdir, so we can further simplify the initial cd command in the pkgver(), prepare(), and package() functions from "cd $srcdir/${_pkgname}" to just "cd ${_pkgname}". I spotted a few other minor differences with accepted packaging guidelines and made changes. You can find them here: https://github.com/jamesan-unofficial-aur-pkgs/selfspy-git/commits.

jamesan commented on 2016-07-10 08:47 (UTC)

@Pastafarianist: when instantiating the unit, the instance name (i.e. the string between the '@' and suffix, aka. unit type) must be an existing username, not "user", unless that was a valid username in your system. For example, if the user I wanted to log in my system is named, "jamesan", the corresponding unit name would be: "selfspy@jamesan.service".

Pastafarianist commented on 2016-04-27 08:31 (UTC)

I'm running the latest Manjaro: $ uname -srv Linux 4.4.6-1-MANJARO #1 SMP PREEMPT Sat Mar 19 06:00:37 CET 2016 On my machine, selfspy crashes immediately after I start it: $ sudo systemctl start selfspy@user.service $ sudo systemctl status selfspy@user.service ● selfspy@user.service - Log everything user does on the computer Loaded: loaded (/usr/lib/systemd/system/selfspy@.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since Ср 2016-04-27 11:21:21 MSK; 4s ago Process: 22728 ExecStopPost=/usr/bin/rm -f /home/%I/.selfspy/selfspy.pid.lock (code=exited, status=217/USER) Process: 22724 ExecStart=/usr/bin/selfspy --config /home/%I/.config/selfspy.conf (code=exited, status=217/USER) Main PID: 22724 (code=exited, status=217/USER) апр 27 11:21:21 laptop systemd[1]: Started Log everything user does on the computer. апр 27 11:21:21 laptop systemd[1]: selfspy@user.service: Main process exited, code=exited, status=217/USER апр 27 11:21:21 laptop systemd[1]: selfspy@user.service: Control process exited, code=exited status=217 апр 27 11:21:21 laptop systemd[1]: selfspy@user.service: Unit entered failed state. апр 27 11:21:21 laptop systemd[1]: selfspy@user.service: Failed with result 'exit-code'. But it works if I start it manually: $ selfspy -c ~/.config/selfspy.conf Xlib.protocol.request.QueryExtension Xlib.protocol.request.QueryExtension RECORD extension present ^C Without sudo, systemctl throws a weird error (df says I have enough space on all drives), but a GUI sudo dialog from Xfce is displayed regardless: $ systemctl start selfspy@user.service Failed to add /run/systemd/ask-password to directory watch: No space left on device Any idea what's going on?

grandchild commented on 2016-02-06 20:34 (UTC)

@cagbo Thanks! Fixed. (Not just in this package ;)

commented on 2016-02-06 18:34 (UTC)

Just a heads up, I got this error when running makepkg: ==> ERROR: license should be an array I believe license in PKGFILE should read: license=('GPL')

grandchild commented on 2015-07-28 21:49 (UTC)

Hey, bananabas, thanks for the input! I agree on the ugliness of running a sysd service for an X-dependent program, although it has the advantage of being more convenient to query for status (system-ctl status). I welcome the tips for the content of the service file, and will rework it in a few days. I might end up not removing completely it in the end, since I think it might be useful to somebody, and mostly: no-one's forced to use it. I might include a warning in an .install file. (Although that's a relatively big annoyance for such a small remark. Hm...) What do you think?

bananabas commented on 2015-07-28 16:03 (UTC)

The file /usr/lib/systemd/system/selfspy@.service needs either a complete makeover or it simply needs to be removed. Some issues are: * it does not have 'ExecStop=/bin/sh -c "kill -9 $(ps aux | grep foo | cut -f 1)"' * it is not usable with 'systemctl --user'. For that it should be stored in the 'user/' instead of 'system/' dir, the line 'User=..' should be removed and '%h' should be used instead of '%I' * even considering all the above, selfspy is a session service, and as such is best started via the DE/WM (as also stated on its github documentation page). The reason I say this is two-fold: 1) hardcoding DISPLAY=:0 in a service unit is ugly. Some users have it set to another value, or use multiple displays and 2) it is hard to synchronize with the actual display, which isn't started as a service (yet)

fackamato commented on 2012-04-16 11:39 (UTC)

Added 'pycrypto' to depends.

fackamato commented on 2012-04-15 21:37 (UTC)

Added 'tk' to depends.