build: Enable changing the completion paths & drop install_completions
The bash-completion and fish dependencies were already optional - the
shell completions for Bash and fish won't be generated and installed if
they are absent; and there's no dependency required for Z shell. So the
install_completions build option wasn't reducing the dependency burden.
The build option was a way to disable the generation and installation of
the shell completions, regardless of whether the necessary dependencies
are present or not. The only use-case for this is when installing to a
non-system-wide prefix while hacking on Toolbox as a non-root user,
because the locations for the completions advertised by the shells' APIs
might not be accessible. Being able to disable the completions prevents
the installation from failing.
A different way of ensuring a smooth developer experience for a Toolbx
hacker is to offer a way to change the locations where the shell
completions are installed, which is necessary and beneficial for other
use-cases.
Z shell, unlike Bash's bash-completion.pc and fish's fish.pc, doesn't
offer an API to detect the location for the shell completions. This
means that Debian and Fedora use different locations [1, 2]. Namely,
/usr/share/zsh/vendor-completions and /usr/share/zsh/site-functions.
An option to specify the locations for the shell completions can
optimize the build, if there's an alternate API for the location that
doesn't involve using bash-completion.pc and fish.pc as build
dependencies. eg., Fedora provides the _tmpfilesdir RPM macro to
specify the location for vendor-supplied tmpfiles.d(5) files, which
makes it possible to avoid having systemd.pc as a build dependency [3].
Fallout from bafbbe81c9220cb3749a19a244e45a61477553a6
[1] Debian zsh commit bf0a44a8744469b5
https://salsa.debian.org/debian/zsh/-/commit/bf0a44a8744469b5
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=620452
[2] https://src.fedoraproject.org/rpms/zsh/blob/f37/f/zsh.spec
[3] Fedora toolbox commit 9bebde5bb60f36e3
https://src.fedoraproject.org/rpms/toolbox/c/9bebde5bb60f36e3
https://github.com/containers/toolbox/pull/1123
https://github.com/containers/toolbox/pull/840
2022-09-09 11:25:52 +00:00
|
|
|
option(
|
|
|
|
'bash_completions_dir',
|
|
|
|
description: 'Directory for Bash completion scripts',
|
|
|
|
type: 'string',
|
|
|
|
)
|
|
|
|
|
|
|
|
option(
|
|
|
|
'fish_completions_dir',
|
|
|
|
description: 'Directory for fish completion scripts',
|
|
|
|
type: 'string',
|
|
|
|
)
|
|
|
|
|
|
|
|
option(
|
|
|
|
'zsh_completions_dir',
|
|
|
|
description: 'Directory for Z shell completion scripts (default=$datadir/zsh/site-functions)',
|
|
|
|
type: 'string',
|
|
|
|
)
|
|
|
|
|
build: Add an option for the migration path for coreos/toolbox users
Commit 6c86cabbe5da6e542b changed the command line interface to behave
a lot similar to that of github.com/coreos/toolbox, which makes things
easier for those switching over from it.
However, it makes things confusing for the vast majority of users who
have never used coreos/toolbox. The Toolbox CLI aims to be friendly to
new users by being self-documenting and offering a smooth onboarding
experience. It's jarring to new users when 'toolbox', without any
commands specified, suggests that it needs to perform a big download.
It's difficult to document two different sets of CLIs, and if the
manuals don't mention the second behaviour, then it just leaves the
users even more confused.
Hence, it will be good to keep the migration path for coreos/toolbox
behind a build-time option, so that only those OS distributors who
truly need it may enable it without impacting others. Fortunately,
coreos/toolbox doesn't have any manuals, which means that there's no
need to conditionalize the documentation.
This commit merely adds the build-time option. Subsequent commits will
use this to actually conditionalize the code.
https://github.com/containers/toolbox/pull/951
2021-11-13 12:55:10 +00:00
|
|
|
option(
|
|
|
|
'migration_path_for_coreos_toolbox',
|
|
|
|
description: 'Offer a migration path to users of github.com/coreos/toolbox',
|
|
|
|
type: 'boolean',
|
|
|
|
value: false
|
|
|
|
)
|
|
|
|
|
2019-04-24 17:36:36 +00:00
|
|
|
option(
|
|
|
|
'profile_dir',
|
|
|
|
description: 'Directory for profile.d files to be read by the shell on start-up',
|
|
|
|
type: 'string',
|
|
|
|
value: '/usr/share/profile.d'
|
|
|
|
)
|
2021-07-05 01:46:07 +00:00
|
|
|
|
|
|
|
option(
|
|
|
|
'tmpfiles_dir',
|
|
|
|
description: 'Directory for system-wide tmpfiles.d(5) files',
|
|
|
|
type: 'string',
|
|
|
|
)
|