In the Go implementation, when the 'rm' and 'rmi' commands fail to
remove a container or image, they don't use a non-zero exit code.
There's currently no nice fix for this. So, the tests have been
adjusted as a temporary measure.
https://github.com/containers/toolbox/pull/507
It doesn't make sense to show a spinner when the output is redirected
to something other than a terminal. When the output is not connected
to a terminal, the terminal escape sequences and other control
characters used to render the spinner leads to some spurious
characters in the output, which confuses the test suite.
This uses the golang.org/x/crypto/ssh/terminal package to check if the
standard output is connected to a terminal or not, which is also what
Podman uses. The other option was the github.com/mattn/go-isatty
package but using it leads to a slightly bigger binary - 7778323 bytes
versus 7782284.
[0] https://github.com/briandowns/spinnerhttps://github.com/containers/toolbox/pull/496
The Go compiler embeds full paths to modules and dependencies into the
binary. This prevents people from reconstructing a bit-for-bit identical
toolbox binary without going through several hoops.
Without patch:
$ strings build/src/toolbox | grep "$HOME" | wc -l
105
With patch:
$ strings build/src/toolbox | grep "$HOME" | wc -l
0
https://github.com/containers/toolbox/pull/448
Signed-off-by: Morten Linderud <morten@linderud.pw>
We call `podman version` every time we want to check Podman's version.
This slows Toolbox down considerably. It's more efficient if we call
`podman version` just once and remember the output during runtime and
use the cached value.
https://github.com/containers/toolbox/pull/481
The subsequent commit will introduce a global variable called
podmanVersion, so this will prevent the local variable from colliding
with the global.
https://github.com/containers/toolbox/pull/481
The subsequent commit will automatically embed the project's version
encoded in Meson into the toolbox binary during the build. This will
remove the need to manually update the version information in the Go
source code. Consolidating the version information reduces the chances
of human error while making a new release. Note, how the 0.0.91 release
forgot to update the version in the Go sources.
This will be done by feeding the version string from Meson into
go-build-wrapper, which will use Go's -X linker flag to embed it into
the final toolbox binary. Since Meson stores the version information
as a string, it's convenient to have the Go code do the same.
https://github.com/containers/toolbox/pull/487
Clients of this package should use the GetVersion function to get the
version as a string. The variable that actually stores the version
information is an implementation detail and meant to be private.
https://github.com/containers/toolbox/pull/487
These keys in 'podman ps --format json' were renamed in Podman 2.0:
* "ID" to "Id"
* "Created" to "CreatedAt"
* "Status" to "State"
The key containing the container's name (ie., "Names") is no longer a
string, but a slice of strings.
https://github.com/containers/toolbox/pull/471
It might happen that the current working directory in the present
environment is missing inside the container that's going to be used.
So far, Toolbox would fail silently, which wasn't very obvious.
Some changes by Debarshi Ray and Harry Míchal.
https://github.com/containers/toolbox/issues/369
The gvfs-client package is necessary for GIO-based processes inside
toolbox containers to use the GVfs backend and volume monitor daemons,
and it comes preinstalled on Fedora Silverblue and Workstation.
Only the images for currently maintained Fedoras (ie., 31, 32 and 33)
were updated.
https://github.com/containers/toolbox/pull/466
Fedora's golang-github-coreos-systemd package is still at version 19,
while the support for Go modules is only available from version 22.
Since all that's necessary is to retrieve the 'Listen' property from
the sssd-kcm.socket unit, it's quite easy to do so directly using Go's
D-Bus bindings.
The systemdNeedsEscape and systemdPathBusEscape functions are copied
from github.com/coreos/go-systemd's needsEscape and PathBusEscape
functions respectively.
The github.com/coreos/go-systemd code is licensed under the ASL 2.0,
the same as Toolbox. It's copyright notice lists 'CoreOS, Inc.', but
since CoreOS has been acquired by Red Hat [1], it should be covered by
Toolbox's existing copyright notices that list 'Red Hat, Inc'.
[1] https://www.redhat.com/en/about/press-releases/red-hat-acquire-coreos-expanding-its-kubernetes-and-containers-leadershiphttps://github.com/containers/toolbox/pull/444
Fedora's golang-github-spf13-cobra package is still at 0.0.5. Since
there's no real need for anything newer, lowering the requirement will
make it easier to build on Fedora.
https://github.com/containers/toolbox/pull/444
Fedora's golang-github-sirupsen-logrus package is still at 1.4.2. Since
there's no real need for anything newer, lowering the requirement will
make it easier to build on Fedora.
https://github.com/containers/toolbox/pull/444
Toolbox requires Go 1.13, while Fedora 30 only has Go 1.12.17.
Therefore the test environment needs to be upgraded to something more
recent.
Otherwise, the test fails with:
note: module requires Go 1.13
The name of the go-md2man package changed in Fedora 31, and hence had
to be updated.
https://github.com/containers/toolbox/pull/442
The Go version supports specifying the name of the toolbox container as
'toolbox enter NAME', on top of the 'toolbox enter --container NAME'
form.
https://github.com/containers/toolbox/pull/318
The Go version supports specifying the name of the new toolbox
container as 'toolbox create NAME', in addition to the existing
'toolbox create --container NAME' form.
https://github.com/containers/toolbox/pull/318