document mmdebstrap's Recommends: and Suggests: packages #5

Closed
opened 3 years ago by adrelanos · 2 comments

Recommends:

  • arch-test - For cross platform builds such as building arm64 on amd64.
  • fakechroot - --mode=fakechroot
  • fakeroot - --mode=fakeroot
  • gpg - Not needed? Required for apt but if apt is installed on the host then it would have its dependencies anyhow?
  • libdistro-info-perl - ?
  • mount - no need since essential package anyhow / can be expected to always be installed?
  • uidmap - --mode=unshare

Suggests:

  • apt-transport-https - If using apt sources.list with https (TLS).
  • apt-transport-tor - If using apt sources.list with tor+ (Tor network).
  • apt-utils - ?
  • binfmt-support - For cross platform builds such as building arm64 on amd64.
  • ca-certificates - If using apt sources.list with https (TLS).
  • debootstrap - Mentioned for comparision only.
  • distro-info-data - get better data about new distros or EOL distros
  • dpkg-dev - ?
  • perl-doc - Generation of man page from source code.
  • proot - --mode=proot
  • qemu-user - Alternative to qemu-user-static?
  • qemu-user-static - For cross platform builds such as building arm64 on amd64.
  • squashfs-tools-ng - Improved compression when creating an archive instead of folder?

I am asking, because I am wondering what the differences are with/without these optional dependencies.

Recommends: * arch-test - For cross platform builds such as building arm64 on amd64. * fakechroot - --mode=fakechroot * fakeroot - --mode=fakeroot * gpg - Not needed? Required for apt but if apt is installed on the host then it would have its dependencies anyhow? * libdistro-info-perl - ? * mount - no need since essential package anyhow / can be expected to always be installed? * uidmap - --mode=unshare Suggests: * apt-transport-https - If using apt sources.list with https (TLS). * apt-transport-tor - If using apt sources.list with `tor+` (Tor network). * apt-utils - ? * binfmt-support - For cross platform builds such as building arm64 on amd64. * ca-certificates - If using apt sources.list with https (TLS). * debootstrap - Mentioned for comparision only. * distro-info-data - get better data about new distros or EOL distros * dpkg-dev - ? * perl-doc - Generation of man page from source code. * proot - --mode=proot * qemu-user - Alternative to qemu-user-static? * qemu-user-static - For cross platform builds such as building arm64 on amd64. * squashfs-tools-ng - Improved compression when creating an archive instead of folder? I am asking, because I am wondering what the differences are with/without these optional dependencies.
josch commented 3 years ago
Owner

This is not a bug in mmdebstrap but in the Debian package of mmdebstrap and should thus instead be reported to the Debian bts instead. Since I won't do a new mmdebstrap upload any time soon due to the current freeze let me give some of the explanations here already:

Recommends:

  • arch-test - For cross platform builds such as building arm64 on amd64.

For building chroots for architectures that cannot be executed on the current platform. These chroots can then be used for package building, yes, but those would not be cross builds but native builds.

  • fakechroot - --mode=fakechroot
  • fakeroot - --mode=fakeroot
  • gpg - Not needed? Required for apt but if apt is installed on the host then it would have its dependencies anyhow?

Yes, it is needed. This is to figure out the right signed-by value for distributions that apt doesn't know the right keyring for.

  • libdistro-info-perl - ?

To figure out whether a distro is EOL or not and to figure out which security mirror to use because Debian bullseye and later use suite-security instead of suite/updates.

  • mount - no need since essential package anyhow / can be expected to always be installed?

mount is not essential and thus cannot be expected to always be installed. Mount is needed in cases mknod is not permitted and device nodes have to be bind-mounted instead. It is also needed in root and unshare mode to mount /sys and /proc but is not needed in fakechroot or proot mode.

  • uidmap - --mode=unshare

Suggests:

  • apt-transport-https - If using apt sources.list with https (TLS).

This is not needed for apt >= 1.5

  • apt-transport-tor - If using apt sources.list with tor+ (Tor network).
  • apt-utils - ?

This is to have /usr/lib/apt/solvers/apt for the /usr/lib/apt/solvers/mmdebstrap-dump-solution executable to function. That executable is necessary if the user has put packages into /var/cache/apt/archives/ of the chroot. Some users do that for caching purposes.

  • binfmt-support - For cross platform builds such as building arm64 on amd64.

For chroots for architectures that cannot be executed by the host CPU unless in chrootless mode.

  • ca-certificates - If using apt sources.list with https (TLS).
  • debootstrap - Mentioned for comparision only.

No, mmdebstrap uses /usr/share/debootstrap/scripts/ to infer distro names from the symlinks and it executes /usr/share/debootstrap/scripts/gutsy to figure out the default mirror URL.

  • distro-info-data - get better data about new distros or EOL distros
  • dpkg-dev - ?

For the dpkg-architecture binary to turn a Debian architecture into the DEB_HOST_MULTIARCH value.

  • perl-doc - Generation of man page from source code.
  • proot - --mode=proot
  • qemu-user - Alternative to qemu-user-static?

Yes.

  • qemu-user-static - For cross platform builds such as building arm64 on amd64.
  • squashfs-tools-ng - Improved compression when creating an archive instead of folder?

For --format=squashfs

I am asking, because I am wondering what the differences are with/without these optional dependencies.

Yes, those should be documented in the Debian package. Probably in a /usr/share/doc/mmdebstrap/README.txt

This is not a bug in mmdebstrap but in the Debian package of mmdebstrap and should thus instead be reported to the Debian bts instead. Since I won't do a new mmdebstrap upload any time soon due to the current freeze let me give some of the explanations here already: > Recommends: > > * arch-test - For cross platform builds such as building arm64 on amd64. For building chroots for architectures that cannot be executed on the current platform. These chroots can then be used for package building, yes, but those would *not* be cross builds but native builds. > * fakechroot - --mode=fakechroot > * fakeroot - --mode=fakeroot > * gpg - Not needed? Required for apt but if apt is installed on the host then it would have its dependencies anyhow? Yes, it is needed. This is to figure out the right `signed-by` value for distributions that apt doesn't know the right keyring for. > * libdistro-info-perl - ? To figure out whether a distro is EOL or not and to figure out which security mirror to use because Debian bullseye and later use suite-security instead of suite/updates. > * mount - no need since essential package anyhow / can be expected to always be installed? mount is not essential and thus cannot be expected to always be installed. Mount is needed in cases mknod is not permitted and device nodes have to be bind-mounted instead. It is also needed in root and unshare mode to mount /sys and /proc but is not needed in fakechroot or proot mode. > * uidmap - --mode=unshare > > Suggests: > > * apt-transport-https - If using apt sources.list with https (TLS). This is not needed for apt >= 1.5 > * apt-transport-tor - If using apt sources.list with `tor+` (Tor network). > * apt-utils - ? This is to have `/usr/lib/apt/solvers/apt` for the `/usr/lib/apt/solvers/mmdebstrap-dump-solution` executable to function. That executable is necessary if the user has put packages into `/var/cache/apt/archives/` of the chroot. Some users do that for caching purposes. > * binfmt-support - For cross platform builds such as building arm64 on amd64. For chroots for architectures that cannot be executed by the host CPU unless in chrootless mode. > * ca-certificates - If using apt sources.list with https (TLS). > * debootstrap - Mentioned for comparision only. No, mmdebstrap uses `/usr/share/debootstrap/scripts/` to infer distro names from the symlinks and it executes `/usr/share/debootstrap/scripts/gutsy` to figure out the default mirror URL. > * distro-info-data - get better data about new distros or EOL distros > * dpkg-dev - ? For the dpkg-architecture binary to turn a Debian architecture into the `DEB_HOST_MULTIARCH` value. > * perl-doc - Generation of man page from source code. > * proot - --mode=proot > * qemu-user - Alternative to qemu-user-static? Yes. > * qemu-user-static - For cross platform builds such as building arm64 on amd64. > * squashfs-tools-ng - Improved compression when creating an archive instead of folder? For --format=squashfs > > I am asking, because I am wondering what the differences are with/without these optional dependencies. Yes, those should be documented in the Debian package. Probably in a `/usr/share/doc/mmdebstrap/README.txt`
josch commented 2 years ago
Owner

With 0.8.3-1 this is now documented as /usr/share/doc/mmdebstrap/README.Debian.txt.

With 0.8.3-1 this is now documented as /usr/share/doc/mmdebstrap/README.Debian.txt.
josch closed this issue 2 years ago
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: josch/mmdebstrap#5
Loading…
There is no content yet.