Merge branch 'no-xmpp'

This commit is contained in:
Joey Hess 2016-12-28 12:26:16 -04:00
commit 93f7d114db
No known key found for this signature in database
GPG key ID: C910D9222512E3C7
97 changed files with 505 additions and 2953 deletions

View file

@ -21,11 +21,8 @@ instructions.
* [[Android documentation|/Android]]
* Want to make two nearby computers share the same synchronised folder?
Follow the [[local_pairing_walkthrough]].
* Or perhaps you want to share files between computers in different
locations, like home and work?
Follow the [[remote_sharing_walkthrough]].
* Want to share a synchronised folder with a friend?
Follow the [[share_with_a_friend_walkthrough]].
* Want to share files with a friend? Follow the
[[share_with_a_friend_walkthrough]]].
* Want to archive data to a drive or the cloud?
Follow the [[archival_walkthrough]].

View file

@ -76,8 +76,8 @@ computers are on the same network. If you go on a trip, any files you
edit will not be visible to your friend until you get back.
To get around this, you'll often also want to set up
[[jabber_pairing|share_with_a_friend_walkthrough]], and a server
in the cloud, which they can use to exchange files while away.
[[tor_pairing|share_with_a_friend_walkthrough]] too,
which they can use to exchange files while away.
And also, you can pair with as many other computers as you like, not just
one!

View file

@ -1,3 +1,11 @@
## version 6.20170101
XMPP support has been removed from the assistant in this release.
If your repositories used XMPP to keep in sync, that will no longer
work, and you should enable some other remote to keep them in sync.
A ssh server is one way, or use the new Tor pairing feature.
## version 5.20140421
This release begins to deprecate XMPP support. In particular, if you use

View file

@ -1,10 +0,0 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmG4rlD9k1ezNkYZ8jDbITrycUmHV-P8Qs"
nickname="Jeroen"
subject="Synced vs. unsynced"
date="2013-07-29T18:07:45Z"
content="""
I've noticed that it is also possible to add an existing annex folder on a remote server without using syncing. Are there any dangers in doing this?
Could you explain what syncing does and when it is needed? Thanks.
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.154.0.21"
subject="comment 2"
date="2013-07-30T18:08:38Z"
content="""
I'm afraid I don't quite understand the question.
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="209.250.56.246"
subject="comment 4"
date="2013-11-12T18:18:16Z"
content="""
You can easily use a removable drive as a transfer repository to sync two computers that have no network connection. Just use the webapp to add the drive on one computer. The drive will be set up as a transfer repository by default. The webapp will automatically start copying all your files to it. Then you can disconnect the drive, bring it to the other computer, and repeat the process. Everything from the first computer will then sync over from the drive to the second computer. And repeat moving the drive back and forth to keep things in sync.
"""]]

View file

@ -1,18 +0,0 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmkXtBdMgE1d9nCz2iBc4f85xh4izZ_auU"
nickname="Ulrich"
subject="Using a portable drive as another transfer device?"
date="2013-11-12T16:52:12Z"
content="""
I try to understand how to setup git-annex for the following use case:
Two computers, that are paired via remote sharing, using some cloud repository for transfer, and a local NAS for backups.
These two computers are sometimes in the same network, sometimes in different networks, and sometimes even without network at all. From what I read, it should be possible to bypass the cloud when these two machines are on the same network, which sounds great.
Would it be possible to use a portable drive as \"another link\" between these two computers that can be used to sync them even if there is no network between them?
And as you write, if the pairing has been set up manually, then everything is fine - so could it be that it is really easy and only necessary to setup the git-annex on the local drive as an additional remote on both (or only one?) machine?
thanks for any insight!
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmkXtBdMgE1d9nCz2iBc4f85xh4izZ_auU"
nickname="Ulrich"
subject="Using a portable drive as another transfer device? cool."
date="2013-11-14T19:05:56Z"
content="""
Thanks - I was hoping that it is that easy. I'll try that as soon as I have a working version of the latest git-annex (trying to build with brew for Mac OS X 10.9, but without success so far).
"""]]

View file

@ -1,14 +0,0 @@
[[!comment format=mdwn
username="severo"
ip="88.182.182.135"
subject="git-assistant and transfer repository"
date="2014-03-16T17:05:43Z"
content="""
In your comment http://git-annex.branchable.com/assistant/remote_sharing_walkthrough/#comment-f97efe1d05c0101232684b4e4edc4866, you describe a way to synchronize two devices using an intermediate USB drive configured as a \"transfer repository\".
I understand that in that case, the USB drive can only be used as a \"transmitter\", in a git repository form, not as a copy of the files structure. This means the files contained by the USB drive cannot be accessed without git/git-annnex.
Is there a way to use the USB drive as a \"client repository\" in order to allow synchronization, as described earlier, but also as a simple copy of the files, in order to access them from any device (opening them with windows in a cyber coffee for example).
Thanks
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="209.250.56.154"
subject="comment 7"
date="2014-03-17T19:50:48Z"
content="""
@severo the web app does not support setting up that use case. However, you can make a non-bare clone of your repository onto a removable drive, and if you do the assistant will use it just the same as if you'd set up a removable drive using the webapp. Note that you will need to run `git annex sync` inside that repository in order to update the tree it displays.
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="severo"
ip="95.152.107.168"
subject="comment 8"
date="2014-03-18T10:06:50Z"
content="""
Thansk @joeyh.name for your answer. Do you think this feature could be integrated into the git-annex assistant ?
"""]]

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="severo"
ip="95.152.107.168"
subject="comment 9"
date="2014-03-18T11:16:19Z"
content="""
Some explanations in French on how to do: http://seenthis.net/messages/237648#message238202
"""]]

View file

@ -1,9 +1,10 @@
Want to share all the files in your repository with a friend?
Want to share all the files in your repository securely with a friend?
Let's suppose you use Google Mail, and so does your friend, and you
sometimes also chat in Google Talk. The git-annex assistant will
use your Google account to share with your friend. (This actually
works with any Jabber account you use, not just Google Talk.)
This connects to your friend's repository using
[Tor](https://torproject.org/). Both you and your friend will need to
install [Tor](https://torproject.org/) and
[Magic Wormhole](https://github.com/warner/magic-wormhole), and then both
follow these steps to connect your repositories.
Start by opening up your git annex dashboard.
@ -15,44 +16,21 @@ Start by opening up your git annex dashboard.
`*click*`
[[!img xmpp.png alt="Configuring Jabber account"]]
[[!img enabletor.png alt="Enabling tor hidden service"]]
Fill that out, and git-annex will be able to show you a list of your
friends.
You will probably be prompted to enter a password, to configure Tor.
(Depending on how your system is configured, this may be the root password,
or your user account's password.)
[[!img buddylist.png alt="Buddy list"]]
[[!img wormholepairing.png alt="Pairing with a friend form"]]
This list will refresh as friends log on and off, so you can
leave it open in a tab until a friend is available to start pairing.
A pairing code will be generated. Tell it to your friend. Ask them
for their pairing code, and enter it in the form.
(If your friend is not using git-annex yet, now's a great time to spread
the word!)
Once you've exchanged pairing codes, your repositories will be connected
over Tor. They will begin to sync files back and forth, which can take a
while since Tor is not super-fast.
Once you click on "Start Pairing", your friend will see this pop up
on their git annex dashboard.
---
[[!img xmppalert.png alt="Pair request"]]
Once your friend clicks on that, your repositories will be paired.
### But, wait, there's one more step...
Despite the repositories being paired now, you and your friend can't yet
quite share files. You'll start to see your friend's files show up in your
git-annex folder, but you won't be able to open them yet.
What you need to do now is set up a repository out there in the cloud,
that both you and your friend can access. This will be used to transfer
files between the two of you.
At the end of the pairing process, a number of cloud providers are
suggested, and the git-annex assistant makes it easy to configure one of
them. Once you or your friend sets it up, it'll show up in the other
one's list of repositories:
[[!img repolist.png alt="Repository list"]]
The final step is to share the login information for the cloud repository
with your friend, so they can enable it too.
With that complete, you'll be able to open your friend's files!
See [[tips/peer_to_peer_network_with_tor]] for more details.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

View file

@ -1,8 +0,0 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawl6RDLuI2b2fHkTRseVQGUNjcQ2qUrOaE0"
nickname="Фёдор"
subject="comment 1"
date="2014-05-25T15:10:34Z"
content="""
Do we need a cloud repository just to bypass NAT? I understand it can't share files within Jabber, but it just looks unpolished. Maybe some punching techniques might be handy, pwnat for example.
"""]]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

View file

@ -15,3 +15,5 @@ I expect to remain invisible, but I get the following warning: "Oops! You are no
Syncing between the repositories works ok.
[[!tag /design/assistant]]
> [[done]]; xmpp support has been removed. --[[Joey]]

View file

@ -80,3 +80,5 @@ fatal: The remote end hung up unexpectedly
[2014-02-13 13:18:25 CET] XMPPClient: to client: d6/tigase-14134
"""]]
> [[done]]; xmpp support has been removed --[[Joey]]

View file

@ -1,23 +0,0 @@
# NAME
git-annex xmppgit - git to XMPP relay
# SYNOPSIS
git annex xmppgit
# DESCRIPTION
This command is used internally by the assistant to perform git pulls over XMPP.
# SEE ALSO
[[git-annex]](1)
[[git-annex-assistant]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.

View file

@ -385,12 +385,6 @@ subdirectories).
See [[git-annex-repair]](1) for details.
* `remotedaemon`
Persistent communication with remotes.
See [[git-annex-remotedaemon]](1) for details.
* `p2p`
Configure peer-2-Peer links between repositories.
@ -670,12 +664,11 @@ subdirectories).
See [[git-annex-smudge]](1) for details.
* `xmppgit`
* `remotedaemon`
This command is used internally by the assistant to perform git pulls
over XMPP.
See [[git-annex-xmppgit]](1) for details.
Detects when network remotes have received git pushes and fetches from them.
See [[git-annex-remotedaemon]](1) for details.
# TESTING COMMANDS
@ -1308,11 +1301,6 @@ Here are all the supported configuration settings.
Used to identify tahoe special remotes.
Points to the configuration directory for tahoe.
* `remote.<name>.annex-xmppaddress`
Used to identify the XMPP address of a Jabber buddy.
Normally this is set up by the git-annex assistant when pairing over XMPP.
* `remote.<name>.gcrypt`
Used to identify gcrypt special remotes.

View file

@ -1,39 +1,4 @@
XMPP (Jabber) is used by the [[assistant]] as a git remote. This is,
technically not a git-annex special remote (large files are not transferred
over XMPP; only git commits are sent).
Typically XMPP will be set up using the web app, but here's how a manual
set up could be accomplished:
1. xmpp login credentials need to be stored in `.git/annex/creds/xmpp`.
Obviously this file should be mode 600. An example file:
XMPPCreds {xmppUsername = "joeyhess", xmppPassword = "xxxx", xmppHostname = "xmpp.l.google.com.", xmppPort = 5222, xmppJID = "joeyhess@gmail.com"}
2. A git remote is created using a special url, of the form `xmpp::user@host`
For the above example, it would be `url = xmpp::joeyhess@gmail.com`
3. The uuid of one of the other clients using XMPP should be configured
using the `annex.uuid` setting, the same as is set up for other remotes.
With the above configuration, the [[assistant]] will use xmpp remotes much as
any other git remote. Since XMPP requires a client that is continually running
to see incoming pushes, the XMPP remote cannot be used with git at the
command line.
## XMPP server support status
[[!table data="""
Provider|Status|Type|Notes
[[Gmail|http://gmail.com]]|Working|?|Google Apps: [setup your SRV records](http://www.olark.com/gtalk/check_srv) or configure `.git/annex/creds/xmpp` manually
[[Coderollers|http://www.coderollers.com/xmpp-server/]]|Working|[[Openfire|http://www.igniterealtime.org/projects/openfire/]]
[[jabber.me|http://jabber.me/]]|Working|[[Tigase|http://www.tigase.org/]]
[[xmpp.ru.net|https://www.xmpp.ru.net]]|Working|[[jabberd2|http://jabberd2.org/]]
[[jabber.org|http://jabber.org]]|Working|[[Isode M-Link|http://www.isode.com/products/m-link.html]]
-|Working|[[Prosody|http://prosody.im/]]|No providers tested.
-|Working|[[Metronome|http://www.lightwitch.org/]]|No providers tested.
-|[[Failing|http://git-annex.branchable.com/forum/XMPP_authentication_failure/]]|ejabberd|[[Authentication bug|https://support.process-one.net/browse/EJAB-1632]]: Fixed in debian unstable (>= 2.1.10-5) and stable (>=2.1.10-4+deb7u1)
-|[[Failing|http://git-annex.branchable.com/forum/XMPP_authentication_failure/#comment-4ce5aeabd12ca3016290b3d8255f6ef1]]|jabberd14|No further information
"""]]
List of providers: [[http://xmpp.net/]]
See also: [[xmpp_protocol_design_notes|design/assistant/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.

View file

@ -21,6 +21,10 @@ connect them together over Tor so they share their contents. Or, you and a
friend want to connect your repositories together. Pairing is an easy way
to accomplish this.
(The instructions below use the command line. If you or your friend would
rather avoid using the command line, follow the
[[share_with_a_friend_walkthrough]].)
In each git-annex repository, run these commands:
git annex enable-tor

View file

@ -21,8 +21,6 @@ Seems like this would need Windows 10.
Workaround: Put your git-annex repo in `C:\annex` or some similar short
path if possible.
* XMPP library not yet built. (See below.)
* Local pairing seems to fail, after acking on Linux box, it stalls.
(Also, of course, the Windows box is unlikely to have a ssh server,
so only pairing with a !Windows box will work.)
@ -88,42 +86,3 @@ seems unreliable/broken on Windows.
it and files can be transferred to it and back
* Does stopping in progress transfers work in the webapp?
## trying to build XMPP
Lots of library deps:
1. gsasl-$LATEST.zip from <http://josefsson.org/gnutls4win/> (includes
gnuidn and gnutls)
2. pkg-config from
<http://sourceforge.net/projects/pkgconfiglite/files/latest/download?source=files>
3. libxml2 from mingw:
<http://sourceforge.net/projects/mingw/files/MSYS/Extension/libxml2/libxml2-2.7.6-1/>
both the -dll and the -dev
3. Extract all the above into the Haskell platform's mingw directory. Note
that pkg-config needs to be moved out of a named subdirectory.
4. Run in DOS prompt (not cygwin!): cabal install network-protocol-xmpp
Current FAIL:
<pre>
Loading package gnutls-0.1.5 ... ghc.exe: internal error: Misaligned section: 18206e5b
(GHC version 7.6.3 for i386_unknown_mingw32)
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
</pre>
<https://ghc.haskell.org/trac/ghc/ticket/8830>
Note: This only happens in the TH link stage. So building w/o the webapp
works with XMPP.
Options:
1. Use EvilSplicer, building first without XMPP library, but with its UI,
and a second time without TH, but with the XMPP library. Partially done
on the `winsplicehack` branch, but requires building patched versions
of lots of yesod dependency chain to export modules referenced by TH
splices, like had to be done on Android. Horrible pain. Ugly as hell.
2. Make a helper program with the XMPP support in it, that does not use TH.
3. Swich to a different XMPP client library, like
<http://hackage.haskell.org/package/pontarius-xmpp>

View file

@ -5,3 +5,5 @@ Currently XMPP fails if you use a google apps account. Since the domain provided
Same goes for webdav support. If i have my own webdav server somewhere on the internet there is no way to set it up in the assistant.
[[!tag /design/assistant]]
> [[done]]; xmpp support has been removed --[[Joey]]

View file

@ -25,3 +25,5 @@ The [[no-xmpp]] branch is ready for merging.
Next step is probably to default the flag to false by default,
except for in a few builds like the Debian package and standalone builds.
> [[done]]

View file

@ -1,6 +0,0 @@
<video controls width=400>
<source src="https://downloads.kitenet.net/videos/git-annex/git-annex-xmpp-pairing.ogv">
</video><br>
A <a href="https://downloads.kitenet.net/videos/git-annex/git-annex-xmpp-pairing.ogv">6 minute screencast</a>
showing how to share files between your computers in different locations,
such as home and work.