git-annex/standalone/linux/skel
Joey Hess 42842ea0ea
runshell: Use system locales when built with GIT_ANNEX_PACKAGE_INSTALL set
This is to work around https://github.com/datalad/datalad/issues/2769
which I don't know how to reproduce outside that environment, nor do I
understand the root cause of. For some time, Neurodebian has been working
around it by building its standalone debs with a patch that disables use
of the locales bundled with the standalone build, letting the system
locales be used.

Using the system locales is asking for trouble if there's
significant version skew between the system and bundled glibc, and
possibly also if the architeciture is different, or whatever. That's why
git-annex bundles and uses its own locales, because numerous users
reported real problems with using the system locales.

... However, in the specific case of the Neurodebian standalone debs,
the deb is built on a system very like the one it's targeted to be
installed on. Or well, so they assure me, although doc/install/Ubuntu.mdwn
also promotes those for use across all versions of Ubuntu, and the deb
is built avoiding xz so it will work with old versions of dpkg, so I wonder
how true it is. It does seem that, at least currently, there is no bad
version skew in the locales of the systems the deb is used on, since
it's already been using the system locales for some time.

Anyway, since the Neurodebian build already is setting
GIT_ANNEX_PACKAGE_INSTALL=1 in runshell, I made runshell use system
locales when that's set. This is a small scope creep for
GIT_ANNEX_PACKAGE_INSTALL, but it's not documented and AFAIK only used
for the Neurodebian build, so that seems ok. This will let them stop
carrying their patch for this forward.

This work is supported by the NIH-funded NICEMAN (ReproNim TR&D3) project.
2018-10-13 15:04:10 -04:00
..
git Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-annex Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-annex-shell Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-annex-webapp Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-receive-pack Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-shell Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
git-upload-pack Assistant: Fix installation of menus, icons, etc when run from within runshell. 2018-04-25 17:58:00 -04:00
README
runshell runshell: Use system locales when built with GIT_ANNEX_PACKAGE_INSTALL set 2018-10-13 15:04:10 -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.