Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building from scratch | section "Fedora" #157

Closed
Ricky-Tigg opened this issue Jun 7, 2023 · 8 comments · Fixed by #174
Closed

Building from scratch | section "Fedora" #157

Ricky-Tigg opened this issue Jun 7, 2023 · 8 comments · Fixed by #174

Comments

@Ricky-Tigg
Copy link

Hello. At https://podman.io/docs/installation#building-from-scratch, which seems to apply to Fedora, the packages go, iptables and pkgconfig do not exist in Fedora's repositories. However their equivalent could exist; here are those that could be such ones:

$ dnf --installed rq --qf '%{name} | %{summary}' golang iptables-libs pkgconf
golang | The Go Programming Language
iptables-libs | libxtables and iptables extensions userspace support
pkgconf | Package compiler and linker metadata toolkit

Of course that would require confirmation from one of yours. If confirmed, the whole amount of packages required for installation could be selected as follows (compacted variant):

$ sudo dnf -y install {btrfs-progs,device-mapper,glib2,glibc,gpgme,libassuan,libgpg-error,libseccomp,libselinux}-devel \
conmon containernetworking-plugins containers-common crun git glibc-static golang golang-github-cpuguy83-md2man iptables-libs make pkgconf

It is unclear whether the installation of the packages mentionned as part of the installation command that follows the comand text make package-install must be operated before the execution of that command.

@cgiradkar
Copy link
Collaborator

@Luap99 need more clarification here

@Luap99
Copy link
Member

Luap99 commented Jul 7, 2023

@Ricky-Tigg I am not sure why you say these do not exist?

$ sudo dnf install go iptables pkgconfig
Last metadata expiration check: 0:00:20 ago on Fri 07 Jul 2023 10:02:50 CEST.
Package golang-1.19.10-1.fc37.x86_64 is already installed.
Package iptables-legacy-1.8.8-5.fc37.x86_64 is already installed.
Package iptables-nft-1.8.8-5.fc37.x86_64 is already installed.
Package pkgconf-pkg-config-1.8.0-3.fc37.x86_64 is already installed.
Dependencies resolved.
Nothing to do.

All of them install just fine, sure they are alias but that doesn't matter. The dnf install command is valid as is and in case of iptables it doesn't make sense to switch it as there are two variants and it i up to package manger to choose the right one not us.

@Ricky-Tigg
Copy link
Author

Output against which I created this report:

$ dnf -q list go iptables pkgconfig
Error: No matching Packages to list

dnf install takes <spec>(!) as argument. dnf list takes only <package-file-spec> which is similar to <package-spec>, except provides matching is not performed. Therefore <package-file-spec> is matched only against NEVRAs and file provides. Then in your command, provides is implied therefore install is effective while in my command it isn't , so is not effective. Yet in the current instructions, it can't be deducted that expected to install are those packages installed along with your very command. We can close if you believe they are explicit enough.

(!) It can be <package-spec>, @<module-spec>, or @<group-spec>.

@TomSweeneyRedHat
Copy link
Member

@lsm5 any thoughts?

@lsm5
Copy link
Member

lsm5 commented Jul 12, 2023

@Ricky-Tigg package-install target is broken right now. I'm currently working on it.

Also, what version of Fedora are you using? Looks like different dnf versions might produce different outputs, especially dnf5.

dnf -q list go iptables pkgconfig
Installed packages
golang-bin.x86_64      1.20.5-1.fc39 fedora
iptables-nft.x86_64    1.8.9-4.fc39  fedora

Available packages
gcc-go.x86_64          13.1.1-4.fc39 rawhide
iptables-legacy.x86_64 1.8.9-4.fc39  rawhide

If it helps, we can specify actual package names or add additional cases for different dnf versions.

lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 12, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec`. That
specfile already handles dependencies for all supported versions of
Fedora and CentOS Stream so it's a lot simpler than explicitly
specifying all dependencies.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 12, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec`. That
specfile already handles dependencies for all supported versions of
Fedora and CentOS Stream so it's a lot simpler than explicitly
specifying all dependencies.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 12, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec`. That
specfile already handles dependencies for all supported versions of
Fedora and CentOS Stream so it's a lot simpler and easier to maintain
than duplicating dependency specification in the documentation.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 12, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec`. That
specfile already handles dependencies for all supported versions of
Fedora and CentOS Stream so it's a lot simpler and easier to maintain
than duplicating dependency specification in the documentation.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 12, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec`. That
specfile already handles dependencies for all supported versions of
Fedora and CentOS Stream so it's a lot simpler and easier to maintain
than duplicating dependency specification in the documentation.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
@Ricky-Tigg
Copy link
Author

$ cat /etc/redhat-release
Fedora release 38 (Thirty Eight)
$ dnf --version | head -1
4.16.1

@lsm5
Copy link
Member

lsm5 commented Jul 13, 2023

$ cat /etc/redhat-release
Fedora release 38 (Thirty Eight)
$ dnf --version | head -1
4.16.1

@Ricky-Tigg thanks. #174 should just work (TM) as it's being continuously tested with all active versions of fedora and centos stream. That PR depends on containers/podman#19214 which should be going in anytime now.

@Ricky-Tigg
Copy link
Author

Lucky RPM-users; Thank you.

lsm5 added a commit to lsm5/podman.io that referenced this issue Jul 14, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Most of the runtime dependencies are handled in the
containers-common-extra package, which simplifies things further for the
user.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman that referenced this issue Aug 17, 2023
Include dependencies in rpm/podman.spec to make it easy for end users to
build podman from source. This way users can install all build
dependencies by running `dnf -y builddep rpm/podman.spec`.

This is not usually noticeable except on container environments where
man-db often isn't installed by default.

Refs:
containers/podman.io#157
containers/podman.io#174

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Aug 17, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Most of the runtime dependencies are handled in the
containers-common-extra package, which simplifies things further for the
user.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
openshift-cherrypick-robot pushed a commit to openshift-cherrypick-robot/podman that referenced this issue Aug 21, 2023
Include dependencies in rpm/podman.spec to make it easy for end users to
build podman from source. This way users can install all build
dependencies by running `dnf -y builddep rpm/podman.spec`.

This is not usually noticeable except on container environments where
man-db often isn't installed by default.

Refs:
containers/podman.io#157
containers/podman.io#174

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <[email protected]>
openshift-cherrypick-robot pushed a commit to openshift-cherrypick-robot/podman that referenced this issue Aug 21, 2023
Include dependencies in rpm/podman.spec to make it easy for end users to
build podman from source. This way users can install all build
dependencies by running `dnf -y builddep rpm/podman.spec`.

This is not usually noticeable except on container environments where
man-db often isn't installed by default.

Refs:
containers/podman.io#157
containers/podman.io#174

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Aug 22, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Most of the runtime dependencies are handled in the
containers-common-extra package, which simplifies things further for the
user.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Aug 22, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Most of the runtime dependencies are handled in the
containers-common-extra package, which simplifies things further for the
user.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Aug 24, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
lsm5 added a commit to lsm5/podman.io that referenced this issue Aug 24, 2023
RPM distros can simply run `dnf builddep` on `rpm/podman.spec` to fetch
build dependencies. That specfile already handles dependencies
for all supported versions of Fedora and CentOS Stream so it's
a lot simpler and easier to maintain than duplicating dependency
specification in the documentation.

Resolves: containers#157

Signed-off-by: Lokesh Mandvekar <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants