Undo change adding --force-local option to invocation of tar #663
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.
A commit on June 15 changed the invocation of
tar
always to use the--force-local
option, which some common versions oftar
lack and which will cause such versions of tar to fail to run. I understand the reason for the change is based on the behavior of the version oftar
used by http://www.mingw.org/wiki/msys.The option in question changes
tar
's interpretation of archive names that contain a colon. Versions oftar
that support the--force-local
option will generally interpret a colon as meaning that the archive name refers to a remote tape drive, and using that option disables that behavior. Meanwhile, versions that lack that option also lack support for remote archives. For reference, see:The June 15 change was a consequence of someone having a problem caused by a colon in the name of an archive, which apparently is a situation caused by the nature of absolute paths in Windows. I lack knowledge of anything further regarding such problem, in particular the number of people affected.
What I do know is that this plugin,
sbt-native-packager
, is used by the popular Play Framework. The latest version of Play depends on version 1.0.1 ofsbt-native-packager
, and thus still invokestar
without the--force-local
option. If and when a new version of Play is released that depends on a newer version ofsbt-native-packager
that invokestar
with the--force-local
option, an untold number of projects that are currently deployable will become undeployable as a result of upgrading the Play version.If I had to guess, I would expect that use of
sbt-native-packager
on systems with non-gnu versions oftar
, such as FreeBSD, is more widespread than its use on Windows systems with MinGW. I admit I lack an objective measurement to support that guess. Whether or not that guess is consistent with reality, but more so if it is, the change of June 15 swaps a problem for some people with a problem for other people. While I agree a problem for anyone is undesirable, the principle of backwards-compatibility prefers the status quo, wherein those with a problem are aware of it already, over changing one problem for another, whereby an indeterminate number of working projects will break unexpectedly.I also note that I could not find any warnings in the
sbt-native-packager
documentation alerting users that upgradingsbt-native-packager
so as to apply the change introduced on June 15 will cause some previously working configurations to break.For the foregoing reasons I conclude that while neither always nor never invoking
tar
with--force-local
is optimal for everyone, the choice of always omitting that option is less bad than the alternative of always including it, and thus reverting this plugin's invocation oftar
to its status quo before June 15 will place this project in a less-bad state than it currently is in. Merging this pull-request will effect that reversion.For further reference see Issue 662