You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a bit of a follow-up to #5837 (which is intended to provide an incremental pain remedy for 2.4.x) which is expected to result in the following situation for v2-install:
We have two bindir "install" paths settings,
--symlink-bindir=DIR (used when --bindir-method=symlink)
--bindir=DIR (used when --bindir-method=copy)
This is mostly for historical reasons as cabal has had these two configuration properties for about a decade.
However, it doesn't seem to make much sense in the nix-style paradigm to have two separate folders; instead I suggest to redesign this for cabal 3.0 to
deprecate --symlink-bindir=DIR
Use a single --bindir=DIR configuration field
Use --bindir-method={copy,symlink,auto} to control how executables are "installed" into the folder denoted by --bindir
This would IMO be a less confusing UI as you need to be careful which bindir field you set; there's now only one!
So e.g. if you're preparing some binary dist for an executable (for which you know it is relocatable as it doesn't have any ties to the nix-style store), you can just say
and if you instead want to prepare some local bin-folder with symlinks to some build tools, you can instead say
cabal install --bindir=${HOME}/buildtools-bin --bindir-method=symlink alex happy
and if you use the auto method (i.e. try to use symlinks and fallback to copy if not possible), now you can say
cabal install --bindir=${HOME}/buildtools-bin --bindir-method=auto alex happy
With the UI as implemented for #5837 for cabal 2.4 however, you'd have to use the following incantations respectively:
cabal v2-install --bindir=./bindist/bin --bindir-method=copy mypackage
cabal v2-install --symlink-bindir=${HOME}/buildtools-bin --bindir-method=symlink alex happy
# NB: we need to set both bindir locations!
cabal v2-install --bindir=${HOME}/buildtools-bin --symlink-bindir=${HOME}/buildtools-bin --bindir-method=auto alex happy
The text was updated successfully, but these errors were encountered:
This is a bit of a follow-up to #5837 (which is intended to provide an incremental pain remedy for 2.4.x) which is expected to result in the following situation for v2-install:
We have two bindir "install" paths settings,
--symlink-bindir=DIR
(used when--bindir-method=symlink
)--bindir=DIR
(used when--bindir-method=copy
)This is mostly for historical reasons as cabal has had these two configuration properties for about a decade.
However, it doesn't seem to make much sense in the nix-style paradigm to have two separate folders; instead I suggest to redesign this for cabal 3.0 to
--symlink-bindir=DIR
--bindir=DIR
configuration field--bindir-method={copy,symlink,auto}
to control how executables are "installed" into the folder denoted by--bindir
This would IMO be a less confusing UI as you need to be careful which bindir field you set; there's now only one!
So e.g. if you're preparing some binary dist for an executable (for which you know it is relocatable as it doesn't have any ties to the nix-style store), you can just say
and if you instead want to prepare some local
bin
-folder with symlinks to some build tools, you can instead saycabal install --bindir=${HOME}/buildtools-bin --bindir-method=symlink alex happy
and if you use the
auto
method (i.e. try to usesymlinks
and fallback tocopy
if not possible), now you can saycabal install --bindir=${HOME}/buildtools-bin --bindir-method=auto alex happy
With the UI as implemented for #5837 for cabal 2.4 however, you'd have to use the following incantations respectively:
The text was updated successfully, but these errors were encountered: