Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2013-06-03 19:15:09 -04:00
commit 1f8a1f843c
10 changed files with 274 additions and 1 deletions

View file

@ -0,0 +1,121 @@
4.20130601 xmpp sync error.
setup: A debian machine, with indirect fresh annex, android galaxy s3 with a
fresh direct annex, both running ga-20130601.
steps:
- Start assistant on both, add jabber account to both.
- Add box.com account on desktop with no encryption, (now correctly shows up on android, wasn't the case with 20130521).
- Add hello.txt on desktop repo, filename is now visible on android, but content is not.
- Add greeting.txt on desktop, nothing shows up on android, content still missing for hello.txt
- Webapp shows uploading messages, but no errors.
- Manually checking box.com confirms that files have been uploaded.
debian desktop daemon.log:
[2013-06-02 17:57:03 CEST] main: starting assistant version 4.20130601
(scanning...) [2013-06-02 17:57:03 CEST] Watcher: Performing startup scan
(started...) [2013-06-02 17:57:52 CEST] XMPPClient: Pairing with myJabberAccount in progress
[2013-06-02 17:57:53 CEST] XMPPReceivePack: Syncing with myJabberAccount
[2013-06-02 17:58:03 CEST] XMPPClient: Pairing with myJabberAccount in progress
[2013-06-02 17:58:52 CEST] main: Syncing with box.com
warning: Not updating non-default fetch respec
Please update the configuration manually if necessary.
fatal: The remote end hung up unexpectedly
[2013-06-02 17:59:53 CEST] XMPPReceivePack: Syncing with myJabberAccount
[2013-06-02 18:00:02 CEST] Committer: Adding hello.txt
(testing WebDAV server...)
add hello.txt (checksum...) [2013-06-02 18:00:02 CEST] Committer: Committing changes to git
[2013-06-02 18:00:02 CEST] XMPPSendPack: Syncing with myJabberAccount
Already up-to-date.
[2013-06-02 18:00:03 CEST] Committer: Committing changes to git
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
[2013-06-02 18:00:03 CEST] XMPPSendPack: Syncing with myJabberAccount
100% 1.0 B/s 0s
[2013-06-02 18:00:19 CEST] Transferrer: Uploaded hello.txt
fatal: The remote end hung up unexpectedly
[2013-06-02 18:01:53 CEST] XMPPReceivePack: Syncing with myJabberAccount
fatal: The remote end hung up unexpectedly
[2013-06-02 18:02:04 CEST] XMPPSendPack: Syncing with myJabberAccount
fatal: The remote end hung up unexpectedly
[2013-06-02 18:03:53 CEST] XMPPReceivePack: Syncing with myJabberAccount
fatal: The remote end hung up unexpectedly
[2013-06-02 18:05:10 CEST] Committer: Adding greeting.txt
ok
(Recording state in git...)
(Recording state in git...)
(Recording state in git...)
add greeting.txt (checksum...) [2013-06-02 18:05:10 CEST] Committer: Committing changes to git
[2013-06-02 18:05:10 CEST] XMPPSendPack: Syncing with myJabberAccount
Already up-to-date.
[2013-06-02 18:05:11 CEST] Committer: Committing changes to git
100% 9.0 B/s 0s
[2013-06-02 18:05:24 CEST] Transferrer: Uploaded greeting.txt
fatal: The remote end hung up unexpectedly
[2013-06-02 18:06:13 CEST] XMPPReceivePack: Syncing with myJabberAccount
ok
(Recording state in git...)
(Recording state in git...)
(Recording state in git...)
fatal: The remote end hung up unexpectedly
Thanks as always.
Android daemon.log:
[2013-06-02 17:53:07 CEST] main: starting assistant version 4.20130601-g7483ca4
(scanning...) [2013-06-02 17:53:07 CEST] Watcher: Performing startup scan
(started...) [2013-06-02 17:57:51 CEST] XMPPClient: Pairing with myJabberAccount in progress
[2013-06-02 17:57:52 CEST] XMPPSendPack: Syncing with myJabberAccount
Already up-to-date.
[2013-06-02 17:58:00 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 17:58:00 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 17:58:02 CEST] XMPPClient: Pairing with myJabberAccount in progress
[2013-06-02 17:58:07 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 17:58:07 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 17:58:15 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 18:00:02 CEST] XMPPReceivePack: Syncing with myJabberAccount
[2013-06-02 18:00:03 CEST] XMPPReceivePack: Unable to download files from your other devices.
[2013-06-02 18:00:04 CEST] XMPPReceivePack: Syncing with myJabberAccount
Merge made by the 'recursive' strategy.
hello.txt | 1 +
1 file changed, 1 insertion(+)
create mode 120000 hello.txt
[2013-06-02 18:00:05 CEST] Committer: Committing changes to git
[2013-06-02 18:00:06 CEST] XMPPSendPack: Syncing with myJabberAccount
Already up-to-date.
[2013-06-02 18:00:14 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 18:00:14 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 18:00:25 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 18:02:03 CEST] Committer: Committing changes to git
fatal: The remote end hung up unexpectedly
[2013-06-02 18:02:04 CEST] XMPPReceivePack: Unable to download files from your other devices.
[2013-06-02 18:02:04 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 18:02:04 CEST] XMPPReceivePack: Syncing with myJabberAccount
[2013-06-02 18:02:13 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 18:02:15 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 18:02:24 CEST] XMPPSendPack: Unable to download files from your other devices.
fatal: The remote end hung up unexpectedly
[2013-06-02 18:04:04 CEST] XMPPReceivePack: Unable to download files from your other devices.
[2013-06-02 18:05:10 CEST] XMPPReceivePack: Syncing with myJabberAccount
[2013-06-02 18:06:12 CEST] Committer: Committing changes to git
[2013-06-02 18:06:13 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 18:06:21 CEST] XMPPSendPack: Unable to download files from your other devices.
[2013-06-02 18:06:21 CEST] XMPPSendPack: Syncing with myJabberAccount
[2013-06-02 18:06:29 CEST] XMPPSendPack: Unable to download files from your other devices.
fatal: The remote end hung up unexpectedly
[2013-06-02 18:07:10 CEST] XMPPReceivePack: Unable to download files from your other devices.
thanks

View file

@ -0,0 +1,73 @@
### Please describe the problem.
Trying to apply certain commands - such as 'drop' - to a filename which starts with "-c" instead applies it to all files. In the instance where I found this, I was using "drop --force" and it caused it to indiscriminately get rid of everything in the directory instead of a single file.
### What steps will reproduce the problem?
1. Make a repository.
2. Create several files and add them.
3. Create a file whose name begins with "-c" and add it as well.
4. Run "git annex drop <fname>" where 'fname' is the file from that last step.
### What version of git-annex are you using? On what operating system?
4.20130516-gedc4ccd on Arch Linux
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
[user@host ~]$ mkdir annex_test
[user@host ~]$ cd annex_test/
[user@host annex_test]$ ls
[user@host annex_test]$ git init
Initialized empty Git repository in /home/user/annex_test/.git/
[user@host annex_test]$ git annex init "test"
init test ok
(Recording state in git...)
[user@host annex_test]$
[user@host annex_test]$ echo foo > foo
[user@host annex_test]$ echo bar > bar
[user@host annex_test]$ echo baz > baz
[user@host annex_test]$ echo test > "-c-test"
[user@host annex_test]$ git annex add *
add bar (checksum...) ok
add baz (checksum...) ok
add foo (checksum...) ok
(Recording state in git...)
[user@host annex_test]$ git annex add -c-test
add -c-test (checksum...) ok
(Recording state in git...)
[user@host annex_test]$ git annex drop -c-test
drop -c-test (unsafe)
Could only verify the existence of 0 out of 1 necessary copies
Rather than dropping this file, try using: git annex move
(Use --force to override this check, or adjust annex.numcopies.)
failed
drop bar (unsafe)
Could only verify the existence of 0 out of 1 necessary copies
Rather than dropping this file, try using: git annex move
(Use --force to override this check, or adjust annex.numcopies.)
failed
drop baz (unsafe)
Could only verify the existence of 0 out of 1 necessary copies
Rather than dropping this file, try using: git annex move
(Use --force to override this check, or adjust annex.numcopies.)
failed
drop foo (unsafe)
Could only verify the existence of 0 out of 1 necessary copies
Rather than dropping this file, try using: git annex move
(Use --force to override this check, or adjust annex.numcopies.)
failed
git-annex: drop: 4 failed
# End of transcript or log.
"""]]

View file

@ -6,7 +6,7 @@ locally paired systems, and remote servers with rsync.
Help me prioritize my work: What special remote would you most like
to use with the git-annex assistant?
[[!poll open=yes 15 "Amazon S3 (done)" 12 "Amazon Glacier (done)" 9 "Box.com (done)" 70 "My phone (or MP3 player)" 18 "Tahoe-LAFS" 7 "OpenStack SWIFT" 28 "Google Drive"]]
[[!poll open=yes 16 "Amazon S3 (done)" 12 "Amazon Glacier (done)" 9 "Box.com (done)" 70 "My phone (or MP3 player)" 18 "Tahoe-LAFS" 7 "OpenStack SWIFT" 29 "Google Drive"]]
This poll is ordered with the options I consider easiest to build
listed first. Mostly because git-annex already supports them and they

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8"
nickname="develop"
subject="I noticed you stopped filing issues on github"
date="2013-06-02T10:38:04Z"
content="""
Does that mean the hook is working properly for you properly now?
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://edheil.wordpress.com/"
ip="99.54.57.201"
subject="comment 4"
date="2013-06-02T20:27:08Z"
content="""
it is, thank you! working perfectly.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8"
nickname="develop"
subject="comment 5"
date="2013-06-02T20:29:48Z"
content="""
Good :)
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://id.clacke.se/"
nickname="clacke"
subject="comment 5"
date="2013-06-03T09:03:57Z"
content="""
You are not the only one, Justin. I am just getting into git-annex and I am setting up a glacier remote as I write this.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkwjBDXkP9HAQKhjTgThGOxUa1B99y_WRA"
nickname="Franck"
subject="comment 10"
date="2013-06-02T17:23:43Z"
content="""
I updated the C program to simplify it so it uses a static path for `_chrooter`. In the previous version, I suspect that one can play with symlinks and use it to get a root shell. So, if `_chrooter` is not installed in `/opt/bin` this file has to be edited too before compilation.
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkwjBDXkP9HAQKhjTgThGOxUa1B99y_WRA"
nickname="Franck"
subject="comment 11"
date="2013-06-03T09:55:54Z"
content="""
A last update and I stop spamming this thread: I've implemented access control and simplified customisation. All this has been moved to https://bitbucket.org/franckp/gasp
"""]]

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkwjBDXkP9HAQKhjTgThGOxUa1B99y_WRA"
nickname="Franck"
subject="comment 9"
date="2013-06-02T13:14:56Z"
content="""
Hi, I finally succeeded! :-)
Here are the main steps:
1. install `debian-chroot` on the NAS
2. create an account `gitannex` in Debian
3. configure git on this account (this is important otherwise git complains and fails) `git config --global user.email YOUR_EMAIL` and `git config --global user.name YOUR_NAME`
4. install `gcc` on the NAS (using `ipkg`)
5. download the files here: https://www.dropbox.com/sh/b7z68a730aj3mnm/95nFOzE1QP
6. edit `_chrooter` to fit your settings (probably there is nothing to change if your Debian is freshly installed)
7. run `make install`, everything goes to `/opt/bin`, if you change this, you should also edit line 17 in file `gasp`
8. create an account `gitannex` on the NAS (doesn't need to be the same name as in Debian, but I feel it is easier)
9. edit its `.ssh/authorized_keys` to prefix lines as follows `command=\"gasp\" THE_PUBLIC_KEY_AS_USUAL`
10. it should work
11. the repositories will be in the Debian account, but it's easy to symlink them in the NAS account if you wish
The principle is as follows: `command=\"gasp\"` allows to launch `gasp` on SSH connexion instead of the original command given to `ssh`. This command is retrieved by `gasp` and prefixed with `chrooter-` (so, eg, running `ssh git` on the client results in running `chrooter-git` on the NAS). `chrooter-*` commands are symlinks to `chrooter`, this is a setuid root binary that launches `_chrooter`. (This intermediary binary is necessary because `_chrooter` is a script which cannot be setuid, and setuid is required for the chroot and identity change.) Finally, `_chrooter` starts the `debian-chroot` service, chroot to the target dir, changes identity and eventually launches the original command as if it was lauched directly by `gitannex` user in Debian. `_chrooter` and `gasp` are Python scripts, I did not use shell in order to avoid error-prone issues with spaces in arguments (that need to be passed around several times in the process).
I'll try now to add command-line parameters to `gasp` in order to restrict the commands that can be run through SSH and the repositories allowed.
Cheers,
Franck
"""]]