Compare commits

...
Sign in to create a new pull request.

66 commits

Author SHA1 Message Date
8930a11968 Retire 2023-12-08 00:13:24 +01:00
6c46178bbb Ensure that documentation and translations are present
This should finally ensure that the fedora-toolbox image doesn't have
any package that had its content, such as documentation or translations,
stripped out by the fedora base image.

Until now, missing-docs had a hand-maintained list of packages that had
their content stripped out by the fedora base image.  These packages are
reinstalled when building the fedora-toolbox image to restore the lost
content.  Unfortunately, this list was incomplete because it was only
updated when someone noticed that something is missing.

Now, the list is generated with:
  $ rpm --all --query --state --queryformat "PACKAGE: %{NAME}\n"

... to ensure that it's always complete.

The existing built-in test to ensure that the desired files are actually
present in the final image was extended to cover some of those that were
absent.  A new built-in test, based on the above rpm(1) command, was
added as a fallback to ensure that the final image doesn't have any
package with missing content.

As suggested by Brian Campbell.

Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [1], as part of the ToolbxReleaseBlocker Change [2] for
Fedora 39.

Hence this is only for the sake of completeness.

[1] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[2] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/issues/603
2023-11-01 15:36:23 +01:00
5ff7fd3597 Ensure that the useradd(8), etc. manuals are available
The shadow-utils package has always been part of the fedora base image.
It's explicitly listed in extra-packages as a safeguard against losing
useradd(8) and usermod(8) by mistake because they are needed by the
entry point of a Toolbx container [1].  Hence, the need to restore the
shadow-utils documentation that was stripped out in the base image.

Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [2], as part of the ToolbxReleaseBlocker Change [3] for
Fedora 39.

Hence this is only for the sake of completeness.

[1] Toolbx commit c6772f0f112e8004
    c6772f0f11

[2] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[3] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/pull/1394
2023-10-27 20:30:14 +02:00
04b26152ae Update the tests
The translations for the RPM manuals were removed upstream during the
RPM 4.19 development cycle [1].  So, replace them with rpm2cpio(8),
which is another popular command shipped by the rpm package.

Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [2], as part of the ToolbxReleaseBlocker Change [3] for
Fedora 39.

[1] RPM commit 4df74a9644b18136
    4df74a9644
    https://github.com/rpm-software-management/rpm/pull/2245

[2] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[3] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/pull/1391
2023-10-27 20:16:51 +02:00
396de43209 Add psmisc
It's currently being pulled in as a dependency of iproute.  However,
since it's explicitly mentioned in the list of default packages on
Fedora Silverblue and Workstation [1], it should be mentioned here too.

The psmisc package marks the translations for its manuals with %lang().
Therefore, it's a very good example for testing that the fedora-toolbox
image is localized just like Fedora Silverblue and Workstation.

This is unlike the xz package, whose translations for manuals were added
to the tests recently [2].  The xz package doesn't mark its translated
manuals with %lang() [3], which means that they are going to get
installed regardless of whether RPM has been configured to not install
localization files or not.  eg., through the %_install_langs macro.  So,
they aren't a good candidate for the tests until this is fixed.

Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [4], as part of the ToolbxReleaseBlocker Change [5] for
Fedora 39.

Hence this is only for the sake of completeness.

[1] fedora-comps commit e4ed54dfcc497fd0
    https://pagure.io/fedora-comps/c/e4ed54dfcc497fd0
    https://pagure.io/fedora-comps/pull-request/379

[2] Toolbx commit 20188a097a1a7a16
    20188a097a
    https://github.com/containers/toolbox/pull/1384

[3] https://src.fedoraproject.org/rpms/xz/pull-request/10

[4] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[5] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/pull/1390
2023-10-20 12:08:59 +02:00
00dfa04654 Ensure that the manuals from extra-packages are available
Until now, only the packages that are present in the fedora base image,
and had their documentation stripped out, were being tested for the
availability of documentation.  There were no tests for the extra
packages that get added to the base image to form the fedora-toolbox
image.

The util-linux and xz packages were picked as examples for these new
tests.  The xz package is a particularly good example because it has
translations for its manuals.  It can help test that the fedora-toolbox
image is localized just like Fedora Silverblue and Workstation.

Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [1], as part of the ToolbxReleaseBlocker Change [2] for
Fedora 39.

Hence this is only for the sake of completeness.

[1] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[2] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/pull/1384
2023-10-09 15:49:48 +02:00
3c5e37aee9 Reorder alphabetically
Note that the fedora-toolbox OCI image for Fedora 39 onwards is no
longer built using OpenShift Build Service from the Dockerfile here.
It's now being built using Image Factory from fedora-kickstarts and
pungi-fedora [1], as part of the ToolbxReleaseBlocker Change [2] for
Fedora 39.

Hence this is only for the sake of completeness.

Fallout from a6eb542608

[1] https://pagure.io/fedora-kickstarts/
    https://pagure.io/pungi-fedora/

[2] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

https://github.com/containers/toolbox/pull/1384
2023-10-09 15:48:38 +02:00
dfa4cee904 Attempt to fix the use of ARG
... because the image failed to build with:
  Error in plugin orchestrate_build:
    {"x86_64": {"docker_api": "ARG requires exactly one argument"},
     "aarch64": {"docker_api": "Dockerfile parse error line 4: ARG
                  requires exactly one argument"}}.

Fallout from 77bb135f27
2023-03-01 12:42:54 +01:00
Timothée Ravier
77bb135f27 Use ARG instead of ENV to avoid leaking variables
We only need those temporary variables for the container build and for
the LABELS. We do not want to set those specific environment variables
for the container environment itself.

Using ARG instead of ENV lets us do that.

See: https://github.com/containers/toolbox/issues/188
See: https://github.com/containers/docs/pull/15
2023-02-16 17:35:59 +01:00
e0813a6d6f Bump version to 39 for rawhide 2023-02-14 23:15:51 +01:00
1d328a24ef Synchronize with upstream 2023-02-14 23:11:23 +01:00
a6eb542608 Replace jwhois with whois
Since Fedora 37, the whois package has replaced jwhois as the default
whois(1) implementation [1] on Fedora Silverblue and Workstation.

[1] fedora-comps commit e4bf2706306c219a
    https://pagure.io/fedora-comps/c/e4bf2706306c219a
    https://pagure.io/fedora-comps/pull-request/729
    https://fedoraproject.org/wiki/Changes/Replace_jwhois_with_whois_in_Fedora_Workstation

https://github.com/containers/toolbox/pull/1228
2023-02-02 20:54:30 +01:00
f661837d4d Ensure that the gpg2(1), gnupg2(7), etc. manuals are available
It turns out that at least since Fedora 30 [1], the gnupg2 package has
been part of the fedora base image, because it's required by the dnf
package:
  dnf -> python3-dnf -> python3-libdnf -> libdnf -> gpgme -> gnupg2

Hence, the need to restore the gnupg2 documentation that was stripped
out in the base image.

[1] It's difficult to find out if the gnupg2 package wasn't part of the
    fedora base image before Fedora 30, because those images are no
    longer available from registry.fedoraproject.org.

https://github.com/containers/toolbox/pull/1228
2023-02-02 18:52:02 +01:00
379a48413f Use the package name instead of a virtual Provides for gnupg2
The package for GnuPG 2.0 has always been called gnupg2 [1], so this
must have been a mistake.

[1] https://pagure.io/fedora-comps/blob/main/f/comps-f21.xml.in

https://github.com/containers/toolbox/pull/1228
2023-02-02 18:33:23 +01:00
39f8656075 Ensure that the kill(1), mount(8), etc. manuals are available
https://github.com/containers/toolbox/pull/1227
2023-02-01 21:59:30 +01:00
fbca80d652 Ensure that the cat(1), cp(1), ls(1), etc. manuals are available
https://github.com/containers/toolbox/pull/1226
2023-02-01 20:18:28 +01:00
e8f3f03d0a Fix up the previous commit
Fallout from d6f0488665
2023-02-01 20:02:23 +01:00
d6f0488665 images: Ensure that the desired manuals are indeed present
Building an OCI image leads to so much spew that it's hard to notice if
something unexpected happened, and as seen in the previous commit [1],
unexpected things do happen.

Therefore, this adds a built-in test to ensure that the desired files
are actually present in the final image.  Right now it only checks the
presence of some representative manuals to ensure that the packages
listed in the 'missing-docs' file really do get reinstalled, and the
documentation that was stripped out in the base image really does get
restored.

[1] Commit 6d4ecac69f
    https://github.com/containers/toolbox/pull/1226

https://github.com/containers/toolbox/pull/1226
2023-02-01 19:57:32 +01:00
6d4ecac69f Avoid unexpected DNF behaviour when reinstalling or swapping
The RPM packages in the base 'fedora' image can be older than the those
currently available in the DNF 'updates' repository [1], but at the same
time newer than those available in the DNF 'fedora' repository [1].  The
first part happens because the base image isn't updated as often as the
individual packages, so the 'updates' repository can have newer RPMs.
The second part happens because the base image does get updated after a
stable Fedora has been released, and hence can have newer RPMs than the
'fedora' repository.

This is complicated by the fact that packages can get pulled directly
from Fedora's Koji build system into the base 'fedora' image before
they make it to one of the well-known repositories like 'fedora' or
'updates' [1].  These packages are marked as having come from the
koji-override-0 repository.

All that combined can lead to unexpected behaviour when DNF is invoked
to reinstall or swap the RPM packages in the base image.  Some examples
below.

The base fedora:36 image contains glibc-minimal-langpack-2.35-20.fc36
that came from koji-override-0, while 'fedora' and 'updates' have
glibc-all-langpacks-2.35-4.fc36 and glibc-all-langpacks-2.35-22.fc36
respectively.  This leads to:
  STEP 8/15: RUN dnf -y swap glibc-minimal-langpack glibc-all-langpacks
  Last metadata expiration check: 0:00:03 ago on Wed Feb  1 12:37:04...
  Dependencies resolved.
  ======================================================================
   Package                   Arch      Version          Repository
  ======================================================================
  Installing:
   glibc-all-langpacks       x86_64    2.35-4.fc36      fedora
  Removing:
   glibc-minimal-langpack    x86_64    2.35-20.fc36     @koji-override-0
  Downgrading:
   glibc                     x86_64    2.35-4.fc36      fedora
   glibc-common              x86_64    2.35-4.fc36      fedora

That's unexpected.  Instead of upgrading all the glibc sub-packages to
the latest version from 'updates', it's downgrading them to the older
version from 'fedora'.

Similarly, the base fedora:36 image has bash-5.2.9-2.fc36.x86_64 from
koji-override-0, and there is bash-5.2.15-1.fc36.x86_64 in 'updates'.
This leads to:
  STEP 10/15: RUN dnf -y reinstall $(<missing-docs)
  Last metadata expiration check: 0:00:06 ago on Wed Feb  1 12:37:04...
  Package acl available, but not installed.
  No match for argument: acl
  Installed package bash-5.2.9-2.fc36.x86_64 (from koji-override-0) not
    available.

That's unexpected.  Instead of upgrading bash to the latest version from
'updates', it's simply skipping the 'reinstall', which means that the
documentation that was stripped out in the base image doesn't get
restored.

Updating all the RPM packages in the base 'fedora' image to match the
contents of the 'updates' repository before making any changes to the
image's package set will avoid such unexpected behaviour.

[1] https://docs.fedoraproject.org/en-US/quick-docs/repositories/

https://github.com/containers/toolbox/pull/1226
2023-02-01 19:53:56 +01:00
e931fd05a5 Ensure that the sudo(8), sudoers(5), etc. manuals are available
https://github.com/containers/toolbox/pull/1068
https://github.com/containers/toolbox/pull/1133
2023-02-01 01:41:11 +01:00
0168da1191 Enable OpenGL and Vulkan for hardware with free drivers
https://github.com/containers/toolbox/issues/1110
2023-02-01 01:34:01 +01:00
c1c17b28a6 Remove RPM configuration to strip out translations
Note that this doesn't restore the translations that were stripped out
from the base fedora image.  It only ensures that subsequent RPM
transactions retain the translations.

https://github.com/containers/toolbox/issues/60
2023-02-01 01:33:17 +01:00
b8912160a7 Ensure that all the glibc language packs are available
... and not just C, POSIX and C.UTF-8.

https://github.com/containers/toolbox/issues/60
2023-02-01 00:30:35 +01:00
ae36f4f679 Removed deprecated com.github.debarshiray.toolbox tag
https://github.com/containers/toolbox/pull/820
2023-02-01 00:23:16 +01:00
Jens Petersen
805dc32c28 missing-docs: add util-linux-core 2022-12-13 18:19:13 +08:00
Jens Petersen
32bf967e6d bump version to 38 2022-08-12 15:27:43 +08:00
Jens Petersen
64b6d607e9 findutils missing docs 2022-08-09 14:24:49 +08:00
Jens Petersen
77bce0df24 try removing autorebuild config to unbreak OBS build
see https://pagure.io/releng/issue/10658
2022-03-08 15:25:53 +08:00
Jens Petersen
94f0cc793b bump fedora version to 37 2022-02-11 11:07:52 +08:00
b2d0ebbad6 Make locate(1) opt-in by default
Currently, the entry point of a Toolbox container runs updatedb(8) on
start-up, which can be very I/O intensive. This might be a hindrance
when troubleshooting performance problems on a host, or when
re-creating containers somewhat more frequently.

Users can install the mlocate RPM and restart their containers to
enable locate(1).

https://github.com/containers/toolbox/pull/938
2021-12-01 16:55:15 +01:00
74393208c3 Remove misleading and redundant CMD
There's no need to specify a CMD in a Toolbox image because it's
specified by 'toolbox create', through 'podman create', when creating a
container.

A CMD was specified [1] because the Fedora Container Guidelines
requires it [2]. The idea behind the guidelines is that the right
thing should happen when one runs:
  $ podman run <image>

However, that only makes sense for images targeting single service
containers. Toolbox containers and images are different - they are not
meant to be used like that to run a single one-off service.

Conceptually, 'running' a Toolbox container is expected to provide the
user with a reasonable interactive command line experience. Arguably,
that means offering something like /bin/bash, not /bin/sh.

Also, note that when the CMD was introduced [1], Toolbox containers
were actually created, through 'podman create', with /bin/sh as their
entry points. So, it did make some sense. However, things have changed
since then [3]. The entry point is now 'toolbox init-container'. It's
not possible to mention it in the Toolbox image because the
/usr/bin/toolbox binary isn't present in the image, and it's not meant
to be present.

Therefore, today, /bin/sh is simply not the right fit for a Toolbox
image's CMD. A better option would be /bin/bash.

Note that the fedora base images have their CMD set to /bin/bash, which
is inherited by the fedora-toolbox images.

So, there are two options. Either repeat the same CMD in the
fedora-toolbox images and satisfy the guidelines, or take some
liberties and let the CMD be inherited from the fedora base images.

This commit takes the latter option. People tend to use the
fedora-toolbox images as the starting point for other custom Toolbox
images, sometimes for other operating system distributions. It's
better to keep them minimal to avoid implying extra requirements. In
this case, the CMD is an abstract concept, and the actual entry point
is 'toolbox init-container' as specified by 'toolbox create'.
Specifying /bin/bash might discourage people from creating custom
images that are only meant to have /bin/zsh.

Also, note that the current CMD was actually '/bin/sh -c /bin/sh', not
/bin/sh. Unless a CMD is specified as an array of command line
arguments, it's passed as a single argument to '/bin/sh -c' [4]. So,
this:
  CMD foo bar

... is the same as:
  CMD [ "/bin/sh", "-c", "foo bar" ]

[1] Toolbox commit 5cc2678a3677af44
    5cc2678a36

[2] https://docs.fedoraproject.org/en-US/containers/guidelines/creation/

[3] Toolbox commit 8b84b5e4604921fa
    https://github.com/containers/toolbox/pull/160

[4] https://docs.docker.com/engine/reference/builder/#cmd

https://github.com/containers/toolbox/issues/885
2021-12-01 15:20:49 +01:00
c5af06ead0 extra-packages: Avoid losing mount(8) by accident
The util-linux package was added to ensure the presence of the mount(8)
command. Currently the package is already pulled in by various
dependencies. Therefore, it doesn't increase the size of the image, but
serves as a safeguard against any inadvertent changes.

Note that starting from Fedora 35 onwards, the fedora base images no
longer have mount(8), which increases the importance of this change.

https://github.com/containers/toolbox/issues/929
2021-11-25 19:48:38 +01:00
9057055b44 Ensure that coreutils-single is replaced by coreutils-full
It's true that the fedora base images no longer come with
coreutils-single, but they used to, and the ubi base images still do.
Therefore, it's worth being extra defensive about this.

It's better to make the build system execute one extra redundant
command than expose users to a bug because of a change that snuck in
unnoticed.

This reverts commit a2171d8742.

https://github.com/containers/toolbox/pull/931
2021-11-25 19:46:14 +01:00
Oliver Gutierrez
ae4a7842b4
Fixed autorebuild configuration 2021-09-09 12:03:31 +01:00
Oliver Gutierrez
40a5f298f9
Activated automatic rebuilds 2021-09-09 11:51:43 +01:00
Jens Petersen
98d9106a1f add coreutils-common to missing docs 2021-09-04 00:35:54 +08:00
Jens Petersen
ae16371775 Rawhide version is now 36 2021-08-12 11:42:51 +08:00
Oliver Gutierrez
f131a12ec5
Added iproute package 2021-07-09 10:06:48 +01:00
Oliver Gutierrez
030ad6d052
Reverted changes in README.md 2021-06-29 16:46:38 +01:00
Oliver Gutierrez
692c49780c
Reverted renaming of Dockerfile 2021-06-29 16:03:09 +01:00
Oliver Gutierrez
7105bdf49e
Renamed Dockerfile to Containerfile and updated README.md 2021-06-29 16:00:33 +01:00
085c05199b Add bc and update README.md 2021-06-29 16:19:55 +02:00
Otto Urpelainen
8ad99234bd Include the nano default editor
Since Fedora 33, `nano` is the default editor[0]. It needs to be
included in the fedora-toolbox image to have the standard Fedora
experience inside the container.

https://fedoraproject.org/wiki/Changes/UseNanoByDefault).
2021-03-10 11:31:22 +01:00
Jens Petersen
8d796028ba rawhide is now Fedora 35 2021-02-19 12:07:10 +08:00
Ondřej Míchal
d863edf9d7 Simplify image name
Currently the images are named as "f<version>/fedora-toolbox". This is
troublesome for new users of toolbox (even those with some background to
containers) because everywhere the image is advertised or talked about
as "fedora-toolbox". This is taken care of by Toolbox CLI but has no
effect on Podman itself (or any other tool capable of working with OCI
images).

Another pain point is in the Fedora registry[0] all "fedora-toolbox"
images get a different entry for every version of Fedora. There is no
single place for all "fedora-toolbox" images.

With this change I propose to only use "fedora-toolbox" as the name of
the container and make use of VERSION to distinguish between versions of
Fedora. Currently when you go to the Fedora registry and find an entry
for "fedora-toolbox" you'll see all previous images. I believe that with
this change that "feature" will be lost. But I personally find that
"feature" to be rather confusing because what usually a user wants the
latest version of a container (I partially base this statement on the
fact that most images are versioned this way; e.g. Ubuntu on Docker
Hub[1]).

[0] https://registry.fedoraproject.org/
[1] https://hub.docker.com/_/ubuntu
2020-12-02 18:10:47 +01:00
f6e830047e Give access to Avahi to resolve the .local mDNS domain
The nss-mdns plugin for the GNU Name Service Switch (or NSS)
functionality of the GNU C Library is necessary to resolve the .local
mDNS domain. The plugin talks to the Avahi daemon running on the host
to resolve the names.

https://github.com/containers/toolbox/issues/209
2020-11-15 23:26:54 +01:00
0304688fd8 Make locate(1) work inside toolbox containers
This reverts commit bd035973c9.

https://github.com/containers/toolbox/issues/391
2020-11-15 23:25:56 +01:00
efa6be73c3 extra-packages: Allow X11 clients to run as root
If an X11 client is started inside a 'su -' session, then xauth(1)
needs to be present so that pam_xauth.so can add a new XAUTHORITY
environment variable to the 'su -' session.

https://github.com/containers/toolbox/pull/572
2020-10-30 19:45:38 +01:00
e7d30ac5c1 Bump version to 34 for master 2020-08-21 16:26:51 +02:00
d8b3e6baac extra-packages: Add gvfs-client
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.

https://github.com/containers/toolbox/pull/466
2020-06-15 19:43:24 +02:00
f064121de5 Revert "no need to explicitly list krb5-libs"
Currently, krb5-libs is pulled in by various other packages that are
already part of the fedora-toolbox OCI image. Unless someone is keeping
a close eye on the contents of the image, a change in the package
dependencies or the contents of the base fedora OCI image can cause
krb5-libs to go missing from the fedora-toolbox image.

This would be undesirable because toolbox(1) relies on the presence
of the /etc/krb5.conf file and the /etc/krb5.conf.d directory to set
up Kerberos inside a toolbox container, and those are provided by the
krb5-libs package.

Therefore, explicitly listing krb5-libs prevents us from accidentally
losing Kerberos integration in toolbox containers, and doesn't cost us
anything because it's already part of the image anyway.

This reverts commit f552b51ec2.
2020-06-15 19:15:35 +02:00
Jens Petersen
f552b51ec2 no need to explicitly list krb5-libs 2020-05-26 11:49:20 +08:00
Jens Petersen
bd035973c9 drop mlocate: https://github.com/containers/toolbox/issues/391 2020-04-11 10:59:09 +08:00
Jens Petersen
c4524abdf2 try removing uninstalled packages from missing-docs (error 143)
atomic_reactor.util - Package chkconfig available, but not installed.
atomic_reactor.util - No match for argument: chkconfig
atomic_reactor.util - Package dbus-daemon available, but not installed.
atomic_reactor.util - No match for argument: dbus-daemon
atomic_reactor.util - Package rpm-plugin-systemd-inhibit available, but not installed.
atomic_reactor.util - No match for argument: rpm-plugin-systemd-inhibit
:
:
atomic_reactor.util - DEBUG - Running scriptlet: gawk-5.0.1-7.fc32.x86_64  38/38
atomic_reactor.util - DEBUG - Removing intermediate container a533251cf472
atomic_reactor.util - ERROR - {'errorDetail': {'code': 143, 'message': "The command '/bin/sh -c dnf -y reinstall $(<missing-docs)' returned a non-zero code: 143"}, 'error': "The command '/bin/sh -c dnf -y reinstall $(<missing-docs)' returned a non-zero code: 143"}
2020-02-28 10:17:46 +08:00
Jens Petersen
7b8140e725 bump version to 33 for master 2020-02-21 22:49:31 +08:00
fccc0ad0cf Update the label for tagging to reflect the project's new home
https://github.com/containers/toolbox/pull/293
2019-10-10 16:02:22 +02:00
7a9383999e Install only flatpak-spawn, not the rest of flatpak-xdg-utils
https://github.com/debarshiray/toolbox/issues/147
2019-09-24 21:05:43 +02:00
74cfade587 Avoid losing useradd(8) by accident
The shadow-utils package was added to the base toolbox images to ensure
the presence of the useradd(8) command. Currently the package is
already pulled in by various dependencies. Therefore, it doesn't
increase the size of the base image, but serves as a safeguard against
any inadvertent changes.
2019-09-24 20:10:54 +02:00
Jens Petersen
a2171d8742 base image no longer uses coreutils-single
https://github.com/fedora-cloud/docker-brew-fedora/issues/58
2019-09-02 17:50:22 +08:00
Jens Petersen
384327a6cf Bump version to 32 for master 2019-09-02 16:25:56 +08:00
Jens Petersen
1bc06dcae7 drop PackageKit-command-not-found
(it connects to the host)
2019-07-11 10:44:24 +00:00
6b3e14fdcb Add label for tagging, not tied to the fedora-toolbox name
Currently the toolbox script identifies toolbox images and containers
by checking whether the com.redhat.component label matches
"fedora-toolbox". However, as per the Fedora Container Guidelines [1],
the com.redhat.com label should match the Red Hat Bugzilla component
name where bugs against the image should be reported. This means that
images derived from the base fedora-toolbox image would likely end up
overwriting it.

One option would've been to mandate that all toolbox images have the
"fedora-toolbox-" prefix in their names. However, it's better to avoid
putting limitations on how images can be named. The "fedora" name
wouldn't anyway work for images based on other distributions, and not
all images are going to use the Red Hat bugzilla for tracking bugs.

It's better to use a tag that's uniquely associated with the toolbox
project, and isn't tied to a particular distribution or bug tracker.

[1] https://fedoraproject.org/wiki/Container:Guidelines
2019-04-15 18:00:43 +02:00
a427cd46a7 Synchronize with upstream 2019-03-21 18:20:30 +01:00
c4ab8c7873 Reduce the size by removing temporary files created by DNF
For a locally built squashed fedora-toolbox:29 image [1], the size
reported by 'podman images' goes from 630 MB to 425 MB.

[1] Using: buildah bud --squash ...
2019-03-21 18:19:56 +01:00
ca845d52ec extra-packages: Add krb5-libs
The krb5-libs package was added to the base toolbox images to ensure
the presence of the /etc/krb5.conf.d directory with the correct
permissions. Currently, the package is already pulled in by various
dependencies. Therefore, it doesn't increase the size of the base
image, but serves as a safeguard against any inadvertent changes.

https://github.com/debarshiray/toolbox/pull/74
2019-03-21 18:19:10 +01:00
54f5f60e49 Restore documentation removed from the base Fedora images
https://github.com/debarshiray/toolbox/pull/55
2019-03-21 18:18:06 +01:00
4 changed files with 9 additions and 99 deletions

View file

@ -1,20 +0,0 @@
FROM registry.fedoraproject.org/fedora:31
ENV NAME=fedora-toolbox VERSION=31
LABEL com.redhat.component="$NAME" \
name="$FGC/$NAME" \
version="$VERSION" \
usage="This image is meant to be used with the toolbox command" \
summary="Base image for creating Fedora toolbox containers" \
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
COPY README.md /
RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf
RUN dnf -y swap coreutils-single coreutils-full
COPY extra-packages /
RUN dnf -y install $(<extra-packages)
RUN rm /extra-packages
CMD /bin/sh

View file

@ -1,41 +0,0 @@
# Toolbox — Unprivileged development environment
[Toolbox](https://github.com/debarshiray/toolbox) is a tool that offers a
familiar RPM based environment for developing and debugging software that runs
fully unprivileged using [Podman](https://podman.io/).
The toolbox container is a fully *mutable* container; when you see
`yum install ansible` for example, that's something you can do inside your
toolbox container, without affecting the base operating system.
This is particularly useful on
[OSTree](https://ostree.readthedocs.io/en/latest/) based Fedora systems like
[Silverblue](https://silverblue.fedoraproject.org/). The intention of these
systems is to discourage installation of software on the host, and instead
install software as (or in) containers.
However this project doesn't *require* using an OSTree based system — it
works equally well if you're running e.g. existing Fedora Workstation or
Server, and that's a useful way to incrementally adopt containerization.
The toolbox environment is based on an [OCI](https://www.opencontainers.org/)
image. On Fedora this is the `fedora-toolbox` image. This image is then
customized for the current user to create a toolbox container that seamlessly
integrates with the rest of the operating system.
## Usage
### Create your toolbox container:
```
[user@hostname ~]$ toolbox create
[user@hostname ~]$
```
This will create a container, and an image, called
`fedora-toolbox-<your-username>:<version-id>` that's specifically customised
for your host user.
### Enter the toolbox:
```
[user@hostname ~]$ toolbox enter
🔹[user@toolbox ~]$
```

9
dead.container Normal file
View file

@ -0,0 +1,9 @@
The fedora-toolbox OCI image for Fedora 39 onwards is no longer built using
OpenShift Build Service from the Dockerfile here. It's now being built using
Image Factory from fedora-kickstarts and pungi-fedora [1], as part of the
ToolbxReleaseBlocker Change [2] for Fedora 39.
[1] https://pagure.io/fedora-kickstarts/
https://pagure.io/pungi-fedora/
[2] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker

View file

@ -1,38 +0,0 @@
bash-completion
bzip2
diffutils
dnf-plugins-core
findutils
flatpak-xdg-utils
fpaste
git
gnupg
gnupg2-smime
hostname
iputils
jwhois
keyutils
less
lsof
man-db
man-pages
mlocate
mtr
openssh-clients
PackageKit-command-not-found
passwd
pigz
procps-ng
rsync
sudo
tcpdump
time
traceroute
tree
unzip
vte-profile
wget
which
words
xz
zip