Ipfs: prepare for autoMigrate fix #29942
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
I was trying the dev branch of ipfs v0.11 and found that the
services.ipfs.autoMigrate
option was broken. The daemon tries to download and run a golang binary that is improperly linked and can't even bepatchelf
ed, not to mention the pre-start script fails before it even gets to that point, because of the repo version mismatch.The best approach I see right now is do the migration automatically ourselves, rather than relying on the daemon's fault-prone internal method. The first step is to detect the actual ipfs repo version by looking at
/var/lib/ipfs/version
, then determining the version the installed binary wants (hard, sinceipfs version --all
refuses to run, IIRC, which may be an upstream bug that needs to be filed). Finally, we can run the appropriate X-to-Y binaries, in order, provided in the newipfs-migrator
package, to get to the correct version, then launch the daemon.Things done
I've disabled the
autoMigrate
option inservices.ipfs
. I'm including a build of the migration tools so that re-adding theautoMigrate
feature is easier on whomever ends up fixing the option.build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)