git-annex/standalone/linux/skel
Joey Hess d74d978968
fully atomic LOCPATH populating
This fixes a race between two runshells from two different
bundles. One could have run the cache cleanup code, seen the
LOCPATH the other one was in the process of populating, which didn't
have a base or a buildid file written yet, and so the cache cleanup code
would delete it out from under the other process.

Also, doing it fully atomically simplifies where the races between two
runshell processes from the same bundle. Now that needs to be
dealt with to only the mv that puts it in place.

Note that, if the same bundle has 2 runshells run first thing, they will
both generate locales, which is unncessary work, but that should be a
very unusual circumstance and after the LOCPATH is set up, it won't
happen again anyway.
2020-10-05 14:17:46 -04:00
..
git Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-annex Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-annex-shell Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-annex-webapp Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-receive-pack Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-shell Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
git-upload-pack Revert "Unset IFS in shell scripts in the linux standalone build and OSX app." 2020-07-24 14:33:13 -04:00
README Include git-receive-pack, git-upload-pack, and git wrappers in the Linux standalone build, and OSX app, so they will be available when it's added to PATH. 2013-12-24 16:28:10 -04:00
runshell fully atomic LOCPATH populating 2020-10-05 14:17:46 -04:00

You can put this directory into your PATH, or symlink the programs in this
directory to anyplace already in your PATH, and use git-annex the same
as if you'd installed it using a package manager.

Or, you can use the runshell script in this directory to start a shell
that is configured to use git-annex and the other utilities included in
this bundle, including git, gpg, rsync, ssh, etc.

This should work on any Linux system of the appropriate architecture.
More or less.


How it works: This directory tree contains a lot of libraries and programs
that git-annex needs. But it's not a chroot. Instead, runshell sets a lot
of environment variables to cause files from here to be used, and a shim
around the binaries arranges for them to be run with the libraries in here.

It shouldn't even be dependent on the host system's glibc libraries.
All that's needed is a kernel that supports the glibc included in this
bundle.