]> dgit.raspbian.org Git - git-annex.git/commitdiff
Linux standalone: Use md5sum to shorten paths in .cache/git-annex/locales
authorJoey Hess <joeyh@joeyh.name>
Wed, 4 Mar 2020 17:04:56 +0000 (13:04 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 4 Mar 2020 17:04:56 +0000 (13:04 -0400)
md5sum is part of busybox, so is probably available unless it were compiled
out. If md5sum (or cut for that matter) is not available, it will
still use the whole path to $base, otherwise hash it.

Of course it's possible for md5sum to be available sometimes and not others
on the same system; in such an event the locales would be built twice for
the same bundle. The cleanup code will delete both sets once that
version of the bundle is upgraded.

CHANGELOG
doc/bugs/git-annex_standalone_runshell_locale_cache_fails_on_too-long_filenames.mdwn
standalone/linux/skel/runshell

index 5c9ecb1afc3bbae512a96440bcf7f73be8259654..b7b81c227a817b8253550fa0fc9122cd82f35390 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -12,6 +12,7 @@ git-annex (8.20200227) UNRELEASED; urgency=medium
   * stack.yaml: Updated to lts-14.27.
   * git-annex config: Only allow configs be set that are ones git-annex actually
     supports reading from repo-global config, to avoid confusion.
+  * Linux standalone: Use md5sum to shorten paths in .cache/git-annex/locales
 
  -- Joey Hess <id@joeyh.name>  Thu, 27 Feb 2020 00:44:11 -0400
 
index 0cba63f87dd805811f523227a31735a5370e19d3..c77ca745d1e516462af3a2f98d802ae7c58b2e01 100644 (file)
@@ -3,3 +3,5 @@ In the standalone build of git-annex, the runshell script caches locale info in
 When the full path is too long, this fails with the error "filename too long".
 
 Also, if the locale info is specific to the standalone environment, maybe it could be built as part of the process that creates the standalone package, rather than built on-the-fly and cached in the user's home dir?
+
+> [[fixed|done]] --[[Joey]]
index 7ef160135c2385d1f2f99f0656891efb9eede945..d442627594835b138bd5719507bb54c6f7509dc0 100755 (executable)
@@ -129,6 +129,11 @@ ORIG_LOCPATH="$LOCPATH"
 export ORIG_LOCPATH
 if [ -z "${LOCPATH+set}" ] && [ -z "$GIT_ANNEX_PACKAGE_INSTALL" ]; then
        LOCPATH="$HOME/.cache/git-annex/locales/$(echo "$base" | tr / _ )"
+       # try to generate a short version, if md5sum is available
+       locpathmd5=$( (echo "$LOCPATH" | md5sum | cut -d ' ' -f 1 2>/dev/null) || true)
+       if [ -n "$locpathmd5" ]; then
+               LOCPATH="$HOME/.cache/git-annex/locales/$locpathmd5"
+       fi
        export LOCPATH
        
        # Clean up locale caches when their standalone bundle no longer exists.