On 24/11/2018 08:16, Hans Malissa via blfs-support wrote:
Hi all,
I would like to install Linux-PAM-1.3.0 (LFS 8.3-systemd), and in
the chapter
on the package it says that I should reinstall Shadow-4.6 and
Systemd-239
afterwards. Since these three packages need to be installed
consecutively, I'm
now trying to figure out which dependencies need to be installed and
in which
order. It seems to me that there are some circular dependencies:
1.) Linux-PAM-1.3.0 depends on libtirpc-1.0.3, which makes use of
MIT Kerberos
V5-1.16.1, which depends on OpenLDAP-2.4.46, which depends on Cyrus
SASL-2.1.26, which makes use of Linux-PAM-1.3.0, MIT Kerberos
V5-1.16.1, and
OpenLDAP-2.4.46. This seems to be a circular dependency, and I
wonder in which
order these need to be installed.
2.) Systemd-239 depends on Polkit-0.114, which depends on
GLib-2.56.1. GLib
depends on shared-mime-info-1.10 and desktop-file-utils-0.23 (at
least for the
tests), but both of them depend on GLib-2.56.1 -- this is mentioned
in the
chapter on GLib, but it is still not clear to me in which order I
need to
install those. GLib also depends gobject-introspection-1.56.1 which
also needs
GLib-2.56.1. GLib also has an optional dependency on dbus-1.12.10,
but that in
turn depends on Systemd-239. I'm quite confused in which order these
need to
be installed.
In which order do you usually install Linux-PAM-1.3.0, Shadow-4.6, and
Systemd-239 along with all dependencies?
Thanks a lot,
All circular dependencies need a double install. For instance, if
package a
depends on package b, which depends on package a, you may install:
package a, then package b, then package a again
But you could as well install:
package b, then package a, then package b again
To choose the first package to install, as a rule of thumb, you
should begin
with those who are required/recommended before those who are optional...
When there is a circular dependency between packages both at the
required/recommended level, the book tells which one to build first.
When both
are optional, the book doesn't tell anything: the developers of the
book do
not test optional dependencies on a regular basis, so they do not put
information which could become obsolete in the book.
Now, you do not have always to rebuild a package, even if there is an
optional
dependency: it depends on whether you want the functionality added by the
circular dependency. For example, I've never built libtirpc before
Linux-PAM,
because I do not need the added functionality (I don't even know what
it is,
actually :).
To answer your question, here is the order I use:
cracklib, linux-PAM, libcap-PAM, shadow, systemd, cyrus-sasl,
openldap. I do
not need Kerberos, so I do not build it (except for testing the book).
For glib, first build it, then gobject-instrospection, then dbus.
Note that
you have already dbus and systemd from LFS (or after installing
linux-PAM).
Once you have all those, you may install the dependencies for the
glib tests,
and rebuild and test glib... But are you sure you need testing glib?