git-annex/ special remotes/ xmpp

XMPP (Jabber) used to be able to be used by the assistant as a git remote. This never worked very well, and it was not entirely secure, since the XMPP server saw the contents of git pushes without encryption. So, XMPP support has been removed. Use tor instead.

Same problem, no XMPP showing up in daemon.log

I have the same setup like @RaspberryPie, except that my server is not running on the Pi but on Debian7-amd64. On my client (OSX, self-compiled using cabal) I can see XMPP log entries like @RaspberryPi, however, on the Debian7 machine (also self-compiled) I do not see any XMPP entry in the daemon.log. Setup regarding .git/annex/creds/xmpp and the special xmpp remote is correct (checked a thousand times).

Do you have any idea what could be wrong, Joey? Thanks a lot.

Output of git annex version:

    git-annex version: 5.20131120
    build flags: Assistant Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi CryptoHash
    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
    remote types: git gcrypt S3 bup directory rsync web webdav glacier hook
    local repository version: 4
    default repository version: 3
    supported repository versions: 3 5
    upgrade supported from repository versions: 0 1 2 4

Jörn

Comment by https://www.google.com/accounts/o8/id?id=AItOawlu-fdXIt_RF9ggvg4zP0yBbtjWQwHAMS4 — Tue Jul 22 18:11:47 2025
comment 8
Same setup, same problem... no log output on raspberry pi.
Comment by https://www.google.com/accounts/o8/id?id=AItOawnZEanlyzay_QlEAL0CWpyZcRTyN7vay8U — Tue Jul 22 18:11:47 2025
comment 7

I see. Is there a way to check whether the build is corrupt? The build logs gave me nothing.

Anyway, XMPP is not the most important feature to me. It still bugs me though that it doesn't work when it should.

Comment by RaspberryPie — Tue Jul 22 18:11:47 2025
comment 6
If you're not getting an "XMPPClient: connected", then my guess would be that your git-annex build's XMPP is screwed up somehow. For example, if it hung forever when connecting to the XMPP server, it would never get as far as printing that message. (If it tried and failed to connect, you'd get a message about the connection having failed.)
Comment by http://joeyh.name/ — Tue Jul 22 18:11:47 2025
Nope

Your guess is right, Joey, I'm configuring by hand as the ARM machine has no webapp. And yes, I'm mostly sure I set up everything correctly. The XMPP account is working, and my configuration of git-annex is all but identical to your example.

Here's what I do. First on the machine with the webapp:

    mkdir ~/test
    cd ~/test
    git init
    git annex init
    git annex webapp

I set up XMPP from within the webapp. The file ~/test/.git/annex/creds/xmpp is created with the correct credentials. (BTW: The file's default permissions are 620 instead of 600 - is that a bug?)

I add a file or two to the annex for good measure. Then, on the ARM machine:

    mkdir ~/test
    cd ~/test
    git init
    git annex init
    mkdir .git/annex/creds
    scp -2 webappmachine:~/test/.git/annex/creds/xmpp .git/annex/creds
    chmod 600 .git/annex/creds/xmpp
    git remote add webappmachine xmpp::login@server

The final step is to edit .git/config on the ARM machine. The [remote] section now looks like this:

    [remote "webappmachine"]
        url = xmpp::login@server
        fetch = +refs/heads/*:refs/remotes/webappmachine/*
        annex-uuid = aaaaaaaa-bbbb-cccc-dddddddddddd

where aaaaaaaa-bbbb-cccc-dddddddddddd is the return value of `git config --get annex.uuid` on the webapp machine.

I then run `git annex assistant` on the ARM machine and expect the two machines to synchronize their metadata, e.g. the number of knownn annex keys in the repo. But it doesn't happen.

So I set `debug = true`, restart the assistants and check the log. This is what I get on the webapp machine:

    [2013-09-24 17:45:41 EDT] XMPPClient: connected a5/25577ac4-3248-4c83-8391-bd93708bcf2b
    [2013-09-24 17:45:41 EDT] XMPPClient: received: ["Presence from a5/dc9bcde8-fe18-47de-807c-c620019279f2 Just (Element {elementName = Name {nameLocalName = \"git-annex\", nameNamespace = Just \"git-annex\", namePrefix = Nothing}, elementAttributes = [(Name {nameLocalName = \"query\", nameNamespace = Nothing, namePrefix = Nothing},[ContentText \"\"])], elementNodes = []})","QueryPresence"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Presence from a5/900e3b6e-a7f4-4a6a-8d12-ed94de429258 Just (Element {elementName = Name {nameLocalName = \"git-annex\", nameNamespace = Just \"git-annex\", namePrefix = Nothing}, elementAttributes = [(Name {nameLocalName = \"push\", nameNamespace = Nothing, namePrefix = Nothing},[ContentText \"43357474-abbb-4667-a334-e4615ea6d4a2\"])], elementNodes = []})","NotifyPush [UUID \"43357474-abbb-4667-a334-e4615ea6d4a2\"]"]
    [2013-09-24 17:45:42 EDT] XMPPClient: push notification for
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","symbolic-ref","HEAD"]
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","show-ref","refs/heads/master"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Pushing \"a59\" (CanPush (UUID \"d50c4cc9-e7c0-4ef0-84c6-f11012051eb9\") [34f875cc7fa1198414f93990af9ab78e6cee893e,6fad42234060361435d6cf2ab4bd40e438c2d05c])"]
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","show-ref","git-annex"]
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","show-ref","--hash","refs/heads/git-annex"]
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","log","refs/heads/git-annex..6fad42234060361435d6cf2ab4bd40e438c2d05c","--oneline","-n1"]
    [2013-09-24 17:45:42 EDT] chat: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","cat-file","--batch"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Ignorable Presence from a5/25577ac4-3248-4c83-8391-bd93708bcf2b Just (Element {elementName = Name {nameLocalName = \"git-annex\", nameNamespace = Just \"git-annex\", namePrefix = Nothing}, elementAttributes = [], elementNodes = []})"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Unknown message"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Pushing \"a59\" (PushRequest (UUID \"d50c4cc9-e7c0-4ef0-84c6-f11012051eb9\"))"]
    [2013-09-24 17:45:42 EDT] XMPPSendPack: started running push Pushing "a59" (PushRequest (UUID "d50c4cc9-e7c0-4ef0-84c6-f11012051eb9"))
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","symbolic-ref","HEAD"]
    [2013-09-24 17:45:42 EDT] XMPPClient: received: ["Ignorable Presence from a5/25577ac4-3248-4c83-8391-bd93708bcf2b Just (Element {elementName = Name {nameLocalName = \"git-annex\", nameNamespace = Just \"git-annex\", namePrefix = Nothing}, elementAttributes = [], elementNodes = []})"]
    [2013-09-24 17:45:42 EDT] read: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","show-ref","refs/heads/master"]
    [2013-09-24 17:45:42 EDT] call: git ["--git-dir=/home/pi/test/.git","--work-tree=/home/pi/test","branch","-f","synced/master"]
    [2013-09-24 17:45:42 EDT] XMPPSendPack: finished running push Pushing "a59" (PushRequest (UUID "d50c4cc9-e7c0-4ef0-84c6-f11012051eb9")) False

And from then on, in two-minute intervals:

    [2013-09-24 17:47:42 EDT] XMPPClient: received: ["Unknown message"]
    [2013-09-24 17:49:42 EDT] XMPPClient: received: ["Unknown message"]
    [2013-09-24 17:51:42 EDT] XMPPClient: received: ["Unknown message"]

The log on the ARM machine is rather unhelpful. Actually it doesn't even contain the string "XMPP". This looks to me like the webapp machine tries to communicate via Jabber but doesn't get any intelligible answer. And this is the reason I wondered whether the problem lies with my self-compiled ARM git-annex binary. I actually spent a while compiling 4.20130909 with all flags but webapp and webdav, but the result is still the same.

Any other ideas what I'm doing wrong here?

Comment by RaspberryPie — Tue Jul 22 18:11:47 2025
comment 4

If you have the XMPP flag in your git-annex build, it will support XMPP. Are you sure you set up the xmpp creds file and the xmpp special remote correctly on the ARM machine? (I assume it has no webapp, so you had to set that up manually..)

Here's how you can do that manually:

1. Run git-annex on a machine with the webapp, set up XMPP, and copy the .git/annex/creds/xmpp to the machine without the webapp.
2. On the machine without the webapp, add a git remote that has its "url = xmpp::loginname@xmppserver.com" and its annex-uuid set to the annex.uuid of the repository on the first machine.
3. Run git-annex assistant on the machine without the webapp.

Comment by http://joeyh.name/ — Tue Jul 22 18:11:47 2025
Missing prerequisites for XMPP syncing?

I set up two fresh annexes that can talk via XMPP and no other way. After I fire up the assistants I expect them to sync their metadata, but nothing happens. One log gives me an 'XMPPClient: received: ["Unknown message"]' message every two minutes. The other one doesn't contain the string XMPP at all, not once. So my suspicion is that this particular version of git-annex doesn't support XMPP, which is weird because:

    $ git annex version
    git-annex version: 4.20130909
    build flags: Assistant Pairing Testsuite S3 Inotify XMPP DNS Feeds
    local repository version: 3
    default repository version: 3
    supported repository versions: 3 4
    upgrade supported from repository versions: 0 1 2

This is the version output from the other machine:

    $ git annex version
    git-annex version: 4.20130827
    build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP
    local repository version: 3
    default repository version: 3
    supported repository versions: 3 4
    upgrade supported from repository versions: 0 1 2

What am I missing? Are there more build flags for XMPP than the one called XMPP? (Also, no, I can't just copy versions between machines b/c the architectures are different. And yep, the one giving me trouble is ARM.)

Comment by RaspberryPie — Tue Jul 22 18:11:47 2025
comment 2

Yeah, I agree, this would be nice.

For your own domain, you can configure DNS like this: http://support.google.com/a/bin/answer.py?hl=en&answer=34143 to make XMPP find the right server. But for some that's not an option and the "advanced" mode would be useful in that case.

Comment by https://www.google.com/accounts/o8/id?id=AItOawmRFKwny4rArBaz-36xTcsJYqKIgdDaw5Q — Tue Jul 22 18:11:47 2025
XMPP not working in Raspberry PI build

Hi,

I have the same problem that users Carlo and RaspberryPie have: XMPP not working and no XMPP log in the build.

I did a quick strace during the daemon start and I noticed than the raspberry pi build doesn't even try to read the creds/xmpp files contrary to the standard git-annex package on my ubuntu workstation.

To me, it seems the XMPP thread is not started at all. Does someone know any reason why the XMPP thread could not be started ?

If there is anything I can do to help debug this issue, let me know.

Yann

Comment by https://www.google.com/accounts/o8/id?id=AItOawm0yDI6AsAuXPDHIDXm5H9EGDXkuwb1efA — Tue Jul 22 18:11:47 2025
Google Apps & SRV

To make XMPP via a Google Apps account work out of the box, all you need to do is add the correct SRV records to your domain's DNS zone. If you do, you don't need to manually create creds/xmpp, you can just use the web interface, enter your full apps email address and password (remember, if 2-factor, this needs to be an application-specific password).

To create the correct SRV records (and check whether they're correct), see http://www.olark.com/gtalk/check_srv

Comment by https://www.google.com/accounts/o8/id?id=AItOawmZilYULa6CDEGfuagoDlesyakBgnf-dF8 — Tue Jul 22 18:11:47 2025
User defined server

It would be nice if you could expand the XMPP setup in the assistant to support an "advanced" settings view where a custom server could be defined.

Example: I have a google Apps domain called mytest.com, with the users bla1@mytest.com and bla2@mytest.com. When trying to add either of those accounts to the assistant XMPP will try to use mytest.com as the jabber server, and not googles server.

Comment by https://www.google.com/accounts/o8/id?id=AItOawmWg4VvDTer9f49Y3z-R0AH16P4d1ygotA — Tue Jul 22 18:11:47 2025
Comments on this page are closed.