diff --git a/introduction/welcome/changelog.xml b/introduction/welcome/changelog.xml index c569a0d2b8..e70cbc61b0 100644 --- a/introduction/welcome/changelog.xml +++ b/introduction/welcome/changelog.xml @@ -39,6 +39,15 @@ --> + + October 20th, 2024 + + + [Zeckmathederg] - Some stuff involving D-Bus and stuff. + + + + October 19th, 2024 diff --git a/introduction/welcome/important.xml b/introduction/welcome/important.xml index cbdf598f4f..5081d1f00a 100644 --- a/introduction/welcome/important.xml +++ b/introduction/welcome/important.xml @@ -66,7 +66,7 @@ OpenRC. Systemd will take more work and the process involves checking and compare the instructions for each package. There aren't many packages that require this process except ones that - may need to be started as a service. is especially + may need to be started as a service. is especially different so watch out for it if you are using Systemd. The reason for not using Systemd is that Systemd makes things more complicated, a lot of users use more simplistic init systems like SysV for their LFS system, and including diff --git a/multilib/mesonfiles.xml b/multilib/mesonfiles.xml index 2718367f2f..01ea677c7d 100644 --- a/multilib/mesonfiles.xml +++ b/multilib/mesonfiles.xml @@ -29,7 +29,9 @@ llvm-config to use, etc. This is required for Mesa's Nouveau and/or Swrast Vulkan drivers. It is also needed for Gstreamer (not in the book), which is a recommended dependency of - . + . It can also turn into a requirement for various + packages if you are wanting to upgrade packages using Meson and you are + wanting to install 32-bit versions of those packages. diff --git a/shareddeps/audio/pulseaudio.xml b/shareddeps/audio/pulseaudio.xml index e3b84bfdb5..4c33c7213c 100644 --- a/shareddeps/audio/pulseaudio.xml +++ b/shareddeps/audio/pulseaudio.xml @@ -56,7 +56,7 @@ Recommended , - , + or , , Speex, and diff --git a/shareddeps/dps/basicx/other/dbus.xml b/shareddeps/dps/basicx/other/dbus-pass2.xml similarity index 82% rename from shareddeps/dps/basicx/other/dbus.xml rename to shareddeps/dps/basicx/other/dbus-pass2.xml index 79d151a936..f4086e7b28 100644 --- a/shareddeps/dps/basicx/other/dbus.xml +++ b/shareddeps/dps/basicx/other/dbus-pass2.xml @@ -8,33 +8,25 @@ ]> - - + + - dbus-&dbus-version; + dbus-&dbus-version; - Pass 2 - - D-Bus + + D-Bus-Pass2 - Introduction to D-Bus + Introduction to D-Bus - Pass 2 - - D-Bus is a message bus system, a simple way - for applications to talk to one another. - D-Bus supplies both a system daemon (for - events such as new hardware device added or printer - queue changed) and a per-user-login-session daemon (for general - IPC needs among user applications). Also, the message bus is built on top - of a general one-to-one message passing framework, which can be used by - any two applications to communicate directly (without going through the - message bus daemon). + + D-Bus was already compiled before, but not a useful program, + dbus-launch. This pass will cover it, and some setup + required. - - @@ -63,18 +55,7 @@ - Installation of D-Bus - + Installation of D-Bus - Pass 2 Install D-Bus by running the following @@ -83,9 +64,6 @@ useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \ configure command shown below): - ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ @@ -129,17 +107,6 @@ ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.sochown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper && chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper - - If you are still building your system in chroot or you did not start the - daemon yet, but you want to compile some packages that require - D-Bus, generate the - D-Bus UUID to avoid warnings when compiling - some packages with the following command as the - root user: - - -dbus-uuidgen --ensure - If using elogind, create a symlink to the /var/lib/dbus/machine-id file: @@ -213,15 +180,15 @@ chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper/etc/dbus-1/system.d/* - + /etc/dbus-1/session.conf - + /etc/dbus-1/system.conf - + /etc/dbus-1/system.d/* @@ -275,22 +242,19 @@ EOF revision="sysv">blfs-bootscripts package. - - dbus + + dbus-pass2 make install-dbus - If this is the first time to install - D-Bus on the system and you are not - operating in a chroot environment, you can immediately start - dbus-daemon without rebooting the system: + Now would be a good idea to reboot and test to see if D-Bus, + elogind, etc. works, and you can login. Run the command + loginctl after ensuring D-Bus is running. The result + should indicate that a SESSION and a SEAT have been created. - - /etc/init.d/dbus start - Note that this boot script only starts the system-wide D-Bus daemon. Each user requiring access to @@ -346,7 +310,7 @@ EOF is used to clean up leftover sockets in a directory - + dbus-cleanup-sockets @@ -358,7 +322,7 @@ EOF is the D-Bus message bus daemon - + dbus-daemon @@ -372,7 +336,7 @@ EOF script. It would normally be called from a user's login scripts - + dbus-launch @@ -385,7 +349,7 @@ EOF is used to monitor messages going through a D-Bus message bus - + dbus-monitor @@ -397,7 +361,7 @@ EOF starts a process as a new D-Bus session - + dbus-run-session @@ -410,7 +374,7 @@ EOF is used to send a message to a D-Bus message bus - + dbus-send @@ -424,7 +388,7 @@ EOF tool; it is a multi-purpose tool for debugging and profiling D-Bus - + dbus-test-tool @@ -440,7 +404,7 @@ EOF dbus-daemon --session when it activates session services without using systemd - + dbus-update-activation-environment @@ -453,7 +417,7 @@ EOF is used to generate a universally unique ID - + dbus-uuidgen @@ -470,7 +434,7 @@ EOF dbus-daemon is an application that uses this library to implement a message bus daemon - + libdbus-1.so diff --git a/shareddeps/dps/basicx/other/harfbuzz.xml b/shareddeps/dps/basicx/other/harfbuzz.xml index b33f7163a5..bec2081d58 100644 --- a/shareddeps/dps/basicx/other/harfbuzz.xml +++ b/shareddeps/dps/basicx/other/harfbuzz.xml @@ -46,8 +46,8 @@ (required for Pango; GObject Introspection required for building GNOME), - , and - + , + , and (for lib32) diff --git a/shareddeps/dps/x/xorg-server.xml b/shareddeps/dps/x/xorg-server.xml index 1fa0ed3076..65dc22b66c 100644 --- a/shareddeps/dps/x/xorg-server.xml +++ b/shareddeps/dps/x/xorg-server.xml @@ -75,7 +75,7 @@ Recommended - , + , (runtime; libelogind also referred at build time but it's not really useful), diff --git a/shareddeps/sdintro.xml b/shareddeps/sdintro.xml index 1d1f871063..abf61b92ce 100644 --- a/shareddeps/sdintro.xml +++ b/shareddeps/sdintro.xml @@ -16,6 +16,7 @@ + @@ -76,7 +77,7 @@ - + diff --git a/shareddeps/security/dbus-pass1.xml b/shareddeps/security/dbus-pass1.xml new file mode 100644 index 0000000000..43c21ea1e5 --- /dev/null +++ b/shareddeps/security/dbus-pass1.xml @@ -0,0 +1,235 @@ + + + %general-entities; + + + +]> + + + + + dbus-&dbus-version; - Pass 1 + + + dbus-pass1 + + + + Introduction to D-Bus + + + D-Bus is a message bus system, a simple way + for applications to talk to one another. + D-Bus supplies both a system daemon (for + events such as new hardware device added or printer + queue changed) and a per-user-login-session daemon (for general + IPC needs among user applications). Also, the message bus is built on top + of a general one-to-one message passing framework, which can be used by + any two applications to communicate directly (without going through the + message bus daemon). + + + + This is the first pass. A useful program, dbus-launch, + will be compiled later, but is not needed now. It depends on Xorg + libraries being installed beforehand. + + + + + + Download (HTTP): + + + + + Download (FTP): + + + + + + + + Installation of D-Bus - Pass 1 + + + Install D-Bus by running the following + commands (you may wish to review the output from ./configure + --help first and add any desired parameters to the + configure command shown below): + + +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --runstatedir=/run \ + --disable-doxygen-docs \ + --disable-xml-docs \ + --disable-static \ + --with-systemduserunitdir=no \ + --with-systemdsystemunitdir=no \ + --docdir=/usr/share/doc/dbus-&dbus-version; \ + --with-system-socket=/run/dbus/system_bus_socket && +make + + + Now, as the root user: + + +make install + + + + + If you are using a DESTDIR install, + dbus-daemon-launch-helper needs to be fixed + afterwards. Issue, as root + user: + + +chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper && +chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper + + + Generate the D-Bus UUID to avoid + warnings when compiling some packages with the following command as the + root user: + + +dbus-uuidgen --ensure + + + If using elogind, create a symlink to the + /var/lib/dbus/machine-id file: + + +ln -sfv /var/lib/dbus/machine-id /etc + + + + + 32-bit Installation of D-Bus + + + + The program dbus-launch will not need to have a + 32-bit version, so this 32-bit compilation will be the first and only + needed pass unless you are upgrading D-Bus. + + + + + First clean the directory: + + + make distclean + + + Now install lib32-D-Bus by running the following commands: + + +CC="gcc -m32" CXX="g++ -m32" \ +PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ +./configure --prefix=/usr \ + --libdir=/usr/lib32 \ + --host=i686-pc-linux-gnu \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --runstatedir=/run \ + --disable-doxygen-docs \ + --disable-xml-docs \ + --disable-static \ + --with-systemduserunitdir=no \ + --with-systemdsystemunitdir=no \ + --with-system-socket=/run/dbus/system_bus_socket && +make + + + Now as the &root; user: + + +make DESTDIR=$PWD/DESTDIR install +cp -vR DESTDIR/usr/lib32/* /usr/lib32 +rm -rf DESTDIR +ldconfig + + + + + Command Explanations + + + --disable-doxygen-docs: This switch disables + doxygen documentation build and install, if you have + doxygen installed. If + doxygen is installed, and you wish to build + them, remove this parameter. + + + + --disable-xml-docs: This switch disables html + documentation build and install, if you have + xmlto installed. If + xmlto is installed, and you wish to build + them, remove this parameter. + + + + + + --with-systemd{user,system}unitdir=no: These + switches disable installation of systemd units on elogind based systems. + + + + --with-system-socket=/run/dbus/system_bus_socket: + This parameter specifies the location of the system bus socket. + + + + --enable-tests: Builds extra parts of the code to + support all tests. Do not use on a production build. + + + + : Builds extra parts of the + code to support only unit tests. Do not use on a production build. + + + + --enable-asserts: Enables debugging code to run + assertions for statements normally assumed to be true. This prevents a + warning that '--enable-tests' on its own is only + useful for profiling and might not give true results for all tests, but + adds its own NOTE that this should not be used in a production build. + + + + + + Contents + + + See the full list of contents at . + + + + + diff --git a/shareddeps/security/elogind.xml b/shareddeps/security/elogind.xml index 25c924f5cc..9d253ff3db 100644 --- a/shareddeps/security/elogind.xml +++ b/shareddeps/security/elogind.xml @@ -33,8 +33,6 @@ /run/systemd layout. - - Package Information @@ -53,7 +51,7 @@ Recommended - (runtime), + (runtime), , and (runtime) @@ -106,6 +104,43 @@ ln -sfvn elogind /usr/include/systemd + + 32-bit Installation of elogind + + + First clean the build directory: + + + rm -rf * + + + Install lib32-elogind by running the following + commands: + + +CC="gcc -m32" CXX="g++ -m32" \ +PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \ +meson setup .. \ + --prefix=/usr \ + --libdir=/usr/lib32 \ + --buildtype=release \ + -D cgroup-controller=elogind \ + -D dev-kvm-mode=0660 \ + -D dbuspolicydir=/etc/dbus-1/system.d && +ninja + + + Now, as the root user: + + +DESTDIR=$PWD/DESTDIR ninja install && +cp -vR DESTDIR/usr/lib32/* /usr/lib32 && +rm -rf DESTDIR && +ln -sfv libelogind.pc /usr/lib32/pkgconfig/libsystemd.pc && +ldconfig + + + Command Explanations