]> dgit.raspbian.org Git - git-annex.git/blob
c660f065b835a09b8556eac5c3a7d79eeafab240
[git-annex.git] /
1 ### Please describe the problem.
2
3 The shim for the standalone version of git annex invokes the dynamic linker with --library-path set appropriately.  glibc's parsing of library-path treats : and ; as separators and has no quoting syntax for those characters.  Also path items have to be absolute paths so you can't avoid having the whole path.
4
5 As a result if you install the standalone version in a directory whose path includes either of those characters it will produce a library-path that's interpreted incorrectly leading to it looking for the libraries in the wrong place and potentially eventually using the system's installed versions if they are available.
6
7 ### What steps will reproduce the problem?
8
9 1. Find a system with as few libraries installed as possible.  libnettle.so.6 is an easy one to avoid.
10 2. create a directory called 'test;test'
11 3. install git annex standalone in 'test;test'
12 4. use the standalone git annex to do a 'git annex get'
13 5. there will be an error saying it can't find libnettle.so.6
14
15 ### What version of git-annex are you using? On what operating system?
16
17 This bug applies to any version.  with a ':' it will probably occur on any unix, with a ';' it will occur on at least Linux and Solaris.
18
19 ### Please provide any additional information below.
20
21 This bug can't be fixed.  It's unlikely to trip people up but might with a bad combination of label-based drive mounting and odd drive labels.  The worst case would be incompatible libraries on the system install which could lead to data corruption.
22
23 I recommend that the git annex shim should check for ':' or ';' in the path and exit non-zero if they are found.
24
25 [[!format sh """
26 # If you can, paste a complete transcript of the problem occurring here.
27 # If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
28
29 jdamery-iabak@oklina:/mnt/iabak-ext;/IA.BAK/shard9$ PATH=../git-annex.linux/:$PATH git annex get prelinger_library/11annualreport00unitrich/11annualreport00unitrich_raw_jp2.zip
30 get prelinger_library/11annualreport00unitrich/11annualreport00unitrich_raw_jp2.zip (from web...)
31 /mnt/iabak-ext;/IA.BAK/git-annex.linux/shimmed/wget/wget: error while loading shared libraries: libnettle.so.6: cannot open shared object file: No such file or directory
32
33   Unable to access these remotes: web
34
35   Try making some of these repositories available:
36         00000000-0000-0000-0000-000000000001 -- web
37 failed
38 git-annex: get: 1 failed
39
40 # End of transcript or log.
41 """]]
42
43 > Actually, this bug is fixable. And I have! I made it detect the problem
44 > path, and then fall back to making a directory in /tmp, symlinking the
45 > git-annex.linux directory into it, and using that as its base directory.
46 > 
47 > Of course, that's a suboptimal configuration, but better than having some
48 > configurations where it doesn't work. [[done]] --[[Joey]]