Skip to the content.

41. Other X-based Programs


These programs use the X Window System and don’t fit easily into any of the other chapters.

41.1 Balsa-2.6.4


Introduction to Balsa

The Balsa package contains a GNOME-2 based mail client.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

Balsa Dependencies

Required

Aspell-0.60.8, enchant-2.3.3, GMime-3.2.7, GPGME-1.18.0, GTK+-3.24.36, and libnotify-0.8.1

Required (Runtime)

MTA (that provides a sendmail command)

Optional

Compface-1.5.2, Gcr-3.41.1, gtksourceview-3.24.11, libcanberra-0.30, libsecret-0.20.5, MIT Kerberos V5-1.20.1, OpenLDAP-2.6.4, Procmail-3.22, SQLite-3.40.1, WebKitGTK-2.38.5, html2text, osmo, rubrica, yelp-tools

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/balsa

Installation of Balsa

First, fix build issues when configuring without WebKitGTK+, or when using WebKitGTK+-2.38 or later.

patch -Np1 -i ../balsa-2.6.4-upstream_fixes-2.patch

Install Balsa by running the following commands:

./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --without-html-widget    &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--without-html-widget: This option disables building the HTML renderer. If you want the HTML renderer to be built, verify that you have WebKitGTK-2.38.5 installed, and then remove this option.

--with-canberra: Enable libcanberra support.

--with-compface: Enable compface support.

--with-gcr: Use libgcr for TLS support.

--with-gss: Enable GSSAPI support.

--with-ldap: Use this option to enable LDAP address book support if OpenLDAP is installed.

--with-libsecret: Enable strong password support and support for gnome-keyring to store passwords.

--with-sqlite: Use this option to enable SQLite address book support if SQLite is installed.

Contents

Installed Programs: balsa and balsa-ab

Installed Libraries: None

Installed Directories: /etc/sounds/events, /usr/share/balsa, and /usr/share/sounds/balsa

Short Descriptions

balsa   is a glib based mail client.

balsa-ab   is the address-book application used by balsa.

41.2 feh-3.9.1


Introduction to feh

feh is a fast, lightweight image viewer which uses Imlib2. It is commandline-driven and supports multiple images through slideshows, thumbnail browsing or multiple windows, and montages or index prints (using TrueType fonts to display file info). Advanced features include fast dynamic zooming, progressive loading, loading via HTTP (with reload support for watching webcams), recursive file opening (slideshow of a directory hierarchy), and mouse wheel/keyboard control.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

feh Dependencies

Required

libpng-1.6.39 and imlib2-1.9.1 (built with giflib-5.2.1 support, for the tests)

cURL-7.88.1

Optional

libexif-0.6.24

Optional (runtime)

libjpeg-turbo-2.1.5.1 (for lossless image rotation) and ImageMagick-7.1.0-61 (to load unsupported formats)

Optional (test suite)

Test-Command-0.11 (required)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/feh

Installation of feh

Install feh by running the following commands:

sed -i "s:doc/feh:&-3.9.1:" config.mk &&
make PREFIX=/usr

To test the results, issue: make test.

Now, as the root user:

make PREFIX=/usr install

Command Explanations

sed -i “s:doc/feh:&-3.9.1:” config.mk: This sed fixes the doc directory to a versioned one, as used in BLFS.

curl=0: Use this make flag if you don’t have the cURL package installed.

exif=1: This make flag enables builtin Exif tag display support.

Contents

Installed Program: feh

Installed Libraries: None

Installed Directories: /usr/share/doc/feh-3.9.1 and /usr/share/feh

Short Descriptions

feh   is an image viewer and cataloguer.

41.3 FontForge-20230101


Introduction to FontForge

The FontForge package contains an outline font editor that lets you create your own postscript, truetype, opentype, cid-keyed, multi-master, cff, svg and bitmap (bdf, FON, NFNT) fonts, or edit existing ones.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

FontForge Dependencies

Required

libspiro-20220722 and libxml2-2.10.3

GTK+-3.24.36

Optional

giflib-5.2.1, git-2.39.2, libjpeg-turbo-2.1.5.1, libtiff-4.5.0, sphinx-6.1.3 (to build html documentation), WOFF2-1.0.2, and

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/fontforge

Installation of FontForge

Install FontForge by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-dev .. &&
make

To test the results, issue: make check.

Now, as the root user:

make install

If you have installed sphinx-build, HTML documentation was built and installed in /usr/share/doc/fontforge. To be able to access it as a versioned directory, create a symlink as the root user:

ln -sv fontforge /usr/share/doc/fontforge-20230101

Command Explanations

-DCMAKE_BUILD_TYPE=Release: This switch is used to create an optimized release without debug information.

-Wno-dev: This switch is used to suppress warnings intended for the package’s developers.

-DENABLE_X11=ON: use an X11 backend instead of GDK3 (gtk+-3) for basic Xorg graphics.

Contents

Installed Programs: fontforge, fontimage, fontlint and sfddiff

Installed Library: libfontforge.so and /usr/lib/python3.11.2/site-packages/{fontforge,psMat}.so

Installed Directories: /usr/share/fontforge and optionally /usr/share/doc/fontforge{,-20230101}

Short Descriptions

fontforge   is a program that allows you to create and modify font files.

fontimage   is a program that produces an image showing representative glyphs of the font.

fontlint   is a program that checks the font for certain common errors.

sfddiff   is a program that compares two font files.

41.4 Gimp-2.10.32


Introduction to Gimp

The Gimp package contains the GNU Image Manipulation Program which is useful for photo retouching, image composition and image authoring.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

Note

Updating the help files is still a work in progress, with large parts of the text for many languages not yet translated. The file below is a git snapshot.

Gimp Dependencies

Required

gegl-0.4.40, gexiv2-0.14.0, glib-networking-2.74.0, GTK+-2.24.33, HarfBuzz-7.0.0. libjpeg-turbo-2.1.5.1, libmypaint-1.6.1, librsvg-2.54.5, libtiff-4.5.0, libxml2-2.10.3 python2 module (to build the translated help files), Little CMS-2.14, mypaint-brushes-1.3.1, Poppler-23.02.0 (including poppler-data) and a graphical environment

dbus-glib-0.112, ghostscript-10.00.0 (with libgs installed), ISO Codes-4.12.0, libgudev-237, PyGTK-2.24.0 (including the gtk, pango and pangocairo modules) and xdg-utils-1.1.3

Optional

AAlib-1.4rc5, alsa-lib-1.2.8, Gvfs-1.50.3 (to access the online help), libmng-2.0.3, libunwind-1.6.2, libwebp-1.3.0, OpenJPEG-2.5.0, an MTA (that provides a sendmail program), GTK-Doc-1.33.2, appstream-glib, libbacktrace, libheif with libde265 (both needed to read macOS heic images), libwmf, and OpenEXR

When you have run configure, you will see that WebKit is not found - that dependency is for the legacy webkit-1.0 which should never be used on a modern system exposed to the internet.

Optional, for building the help system

dblatex (for PDF docs), pngnq and pngcrush to optimize the png files, but see the note on the help download above

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gimp

Installation of Gimp

Install Gimp by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make

To test the results (requires an X-Windowed terminal) issue: make check.

Now, as the root user:

make install

Note

This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Installation of Gimp-Help

The gimp-help tarball contains images and English text help for help files, together with translations. Because of the issues mentioned in the note above, you are recommended to use the online help, either by building against Gvfs-1.50.3 so that ‘help’ can open the latest XML files in your browser, or else you can manually open the html in your browser by going to https://docs.gimp.org/2.10/en (change the language code if desired).

If you nevertheless wish to install local copies of the help files to read offline, unpack the gimp-help tarball and change into the root of the newly created source tree. Prepare for the build with the following command:

ALL_LINGUAS="ca da de el en en_GB es fi fr it ja ko nn pt_BR ro ru zh_CN" \
./autogen.sh --prefix=/usr

Remove from ALL_LINGUAS the codes for any languages which you do not wish to install. Alternatively, remove the line starting with ALL_LINGUAS, if you wish to build all languages.

Now build the help files:

make

Issue the following commands as the root user to install the help files:

make install &&
chown -R root:root /usr/share/gimp/2.0/help

Command Explanations

ALL_LINGUAS="ca da de el en en_GB ...": by default, the help files will be rendered in all the available languages. Remove the codes of any languages you do not wish to build.

--disable-python: This option is necessary if you have not installed PyGTK.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Configuring The Gimp

Config Files

/etc/gimp/2.0/* and ~/.gimp-2.8/gimprc

Contents

Installed Programs: gimp (symlink), gimp-2.10, gimp-console (symlink), gimp-console-2.10, gimp-test-clipboard-2.0, and gimptool-2.0

Installed Libraries: libgimp-2.0.so, libgimpbase-2.0.so, libgimpcolor-2.0.so, libgimpconfig-2.0.so, libgimpmath-2.0.so, libgimpmodule-2.0.so, libgimpthumb-2.0.so, libgimpui-2.0.so, and libgimpwidgets-2.0.so

Installed Directories: /etc/gimp, /usr/include/gimp-2.0, /usr/{lib,share}/gimp, /usr/share/gtk-doc/html/libgimp{,base,color,config}, and /usr/share/gtk-doc/html/libgimp{math,module,thumb,widgets}

Short Descriptions

gimp   is a symbolic link to gimp-2.10.

gimp-2.10   is the Gnu Image Manipulation Program. It works with a variety of image formats and provides a large selection of tools.

gimp-console   is a symbolic link to gimp-console-2.10.

gimp-console-2.10   is a console program that behaves as if The Gimp was called with the --no-interface command-line option.

gimptool-2.0   is a tool that can build plug-ins or scripts and install them if they are distributed in one source file. gimptool-2.0 can also be used by programs that need to know what libraries and include-paths The Gimp was compiled with.

libgimp-2.0.so   provides C bindings for The Gimp’s Procedural Database (PDB) which offers an interface to core functions and to functionality provided by plug-ins.

libgimpbase-2.0.so   provides the C functions for basic Gimp functionality such as determining enumeration data types, gettext translation, determining The Gimp’s version number and capabilities, handling data files and accessing the environment.

libgimpcolor-2.0.so   provides the C functions relating to RGB, HSV and CMYK colors as well as converting colors between different color models and performing adaptive supersampling on an area.

libgimpconfig-2.0.so   contains C functions for reading and writing config information.

libgimpmath-2.0.so   contains C functions which provide mathematical definitions and macros, manipulate 3x3 transformation matrices, set up and manipulate vectors and the MD5 message-digest algorithm.

libgimpmodule-2.0.so   provides the C functions which implement module loading using GModule and supports keeping a list of GimpModule’s found in a given searchpath.

libgimpthumb-2.0.so   provides the C functions for handling The Gimp’s thumbnail objects.

libgimpui-2.0.so   contains The Gimp’s common user interface functions.

libgimpwidgets-2.0.so   contains The Gimp and GTK’s widget creation and manipulation functions.

41.5 Gparted-1.5.0


Introduction to Gparted

Gparted is the Gnome Partition Editor, a Gtk 3 GUI for other command line tools that can create, reorganise or delete disk partitions.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Gparted Dependencies

Required

Gtkmm-3.24.7 and parted-3.5

Optional

btrfs-progs-6.1.3 (if using a btrfs filesystem), exfatprogs, and udftools

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gparted

Installation of Gparted

Install Gparted by running the following commands:

./configure --prefix=/usr    \
            --disable-doc    \
            --disable-static &&
make

To run the tests, issue: make check.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--disable-doc: This switch disables building of the optional documentation. Remove it if you have installed GNOME Doc Utils.

--enable-xhost-root: This switch provides an interim workaround to allow GParted to run under Wayland by using xhost to grant and revoke root access to the X11 display.

Using Gparted

To manipulate file systems Gparted has a run time dependency on various file system tools (you only need to install the tools for file systems you actually use): Hdparm-9.65 (required for optionally displaying serial number device information), btrfs-progs-6.1.3, dosfstools-4.2, e2fsprogs (installed as part of LFS), jfsutils-1.1.15, reiserfsprogs-3.6.27, xfsprogs-6.1.1, mtools (required to read and write FAT16/32 volume labels and UUIDs), hfsutils, hfsprogs, nilfs-utils and Reiser4progs.

Root privileges are required to run Gparted. If you wish to run the application from the menu, further applications and configurations are necessary. Examples of applications that may be used: gksu, kdesudo, or xdg-su. Another simple solution is ssh-askpass-9.2p1.

ssh-askpass

To optionally use ssh-askpass-9.2p1 if it is installed in your system, run the following commands as the root user:

cp -v /usr/share/applications/gparted.desktop /usr/share/applications/gparted.desktop.back &&
sed -i 's/Exec=/Exec=sudo -A /'               /usr/share/applications/gparted.desktop

Now, clicking on the menu item for Gparted, a dialog appears on the screen, asking for the administrator password.

Contents

Installed Programs: gparted and gparted_polkit (optional)

Installed Libraries: None

Installed Directories: None

Short Descriptions

gparted   is a shell script which sets up the environment before calling gpartedbin.

gparted_polkit   is an optional script which can be used to run gparted with polkit, from a menu.

41.6 HexChat-2.16.1


Introduction to HexChat

HexChat is an IRC chat program. It allows you to join multiple IRC channels (chat rooms) at the same time, talk publicly, have private one-on-one conversations, etc. File transfers are also possible.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

HexChat Dependencies

Required

dbus-glib-0.112, GLib-2.74.5, and libnotify-0.8.1

GTK+-2.24.33 and libcanberra-0.30

Optional

dbus-glib-0.112, ISO Codes-4.12.0, libnotify-0.8.1, pciutils-3.9.0, libproxy, luajit, if python is enabled cffi and pycparser.

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/hexchat

Installation of HexChat

Install HexChat by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr         \
      --buildtype=release   \
      -Dwith-lua=false      \
      -Dwith-python=false   \
      ..                    &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

-Dwith-lua=false: By default, this package will look for luajit. However, the Lua plugin support is currently broken and will cause the application to crash on startup.

-Dwith-python=false: If the Python interface should be enabled, remove this switch or set it to true. When enabling Python, two additional modules (cffi and pycparser) needs to be installed prior to installation of Hexchat.

-Dwith-libcanberra=false: Use this switch if you have libcanberra not installed.

Contents

Installed Program: hexchat

Installed Libraries: None

Installed Directory: /usr/lib/hexchat

Short Descriptions

hexchat   is a graphical Internet Relay Chat (IRC) client.

41.7 Inkscape-1.2.2


Introduction to Inkscape

Inkscape is a what you see is what you get Scalable Vector Graphics editor. It is useful for creating, viewing and changing SVG images.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Note

The tarball inkscape-1.2.2.tar.xz will extract to the directory inkscape-1.2.2_2022-12-01_b0a8486541/.

Inkscape Dependencies

Required

Boost-1.81.0, double-conversion-3.2.1, GC-8.2.2, Gsl-2.7.1, Gtkmm-3.24.7, libsoup-2.74.3, libxslt-1.1.37, Poppler-23.02.0, popt-1.19 and Wget-1.21.3 (to download the test dependencies)

ImageMagick-7.1.0-61, Little CMS-2.14 or Little CMS-1.19, libcanberra-0.30 (to eliminate plugin warnings), Potrace-1.16 (for the bucket-fill tool), also various Python modules at runtime for the core extensions: CacheControl-0.12.11, cssselect-1.2.0, lxml-4.9.2, NumPy-1.24.2, pySerial-3.5, and Scour-0.38.2

Optional

Aspell-0.60.8, dbus-1.14.6 (to run inkscape from scripts), Doxygen-1.9.6, gspell-1.12.0, libcdr, libvisio, libwpg (or libwpd)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/inkscape

Installation of Inkscape

Install Inkscape by running the following commands:

mkdir build                       &&
cd    build                       &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..                          &&
make

Note

This package may occasionally fail when building with multiple processors. See Using Multiple Processors for more information.

This package does not come with a working test suite.

Now, as the root user:

make install

Note

This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Command Explanations

-DCMAKE_BUILD_TYPE=Release: This switch is used to build the release library without any debug `assert` in the code.

-DWITH_DBUS=ON: use this if you wish to use inkscape in interactive scripts which manipulate images.

Contents

Installed Programs: inkscape and inkview

Installed Library: lib2geom.so and libinkscape_base.so (in /usr/lib/inkscape)

Installed Directories: /usr/include/2geom-1.2.2, /usr/lib/inkscape, and /usr/share/inkscape

Short Descriptions

inkscape   is a SVG (Scalable Vector Graphics) editing program

inkview   is a simple program for displaying SVG files

libinkscape_base.so   provides the routines used by inkscape and inkview.

41.8 Pidgin-2.14.12


Introduction to Pidgin

Pidgin is a Gtk+ 2 instant messaging client that can connect with a wide range of networks including Bonjour, ICQ, GroupWise, Jabber/XMPP, IRC, Gadu-Gadu, SILC, SIMPLE, and Zephyr.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Pidgin Dependencies

Required

GTK+-2.24.33

libgcrypt-1.10.1, gstreamer-1.22.0 (required for audio support), and GnuTLS-3.8.0 or nss-3.88.1

Optional

Avahi-0.8 (required for the Bonjour plugin), Cyrus SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6, evolution-data-server-3.46.4, GConf-3.2.6, Graphviz-7.1.0, libidn-1.41 (required, if you wish to run the test suite), libnsl-2.0.0, NetworkManager-1.42.0, SQLite-3.40.1 (required for the Contact Availability Prediction plugin), startup-notification-0.12, Tk-8.6.13, Farstream (required for video and voice support), Gtkspell, libgadu, libgnt, Meanwhile (required for Sametime protocol support), Mono, SILC Client, SILC Toolkit, Zephyr, and MIT Kerberos V5-1.20.1 (required for Kerberos support in the Zephyr module)

Optional (runtime)

xdg-utils-1.1.3

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pidgin

Installation of Pidgin

Compile Pidgin by running the following commands:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --with-gstreamer=1.0 \
            --disable-avahi      \
            --disable-gtkspell   \
            --disable-meanwhile  \
            --disable-idn        \
            --disable-nm         \
            --disable-tk         \
            --disable-vv         &&
make

If you have Doxygen-1.9.6 installed (Graphviz-7.1.0 can be used also) and you wish to create the API documentation, issue:

make docs

To test the results, issue: make check.

Now, as the root user:

make install &&
mkdir -pv /usr/share/doc/pidgin-2.14.12 &&
cp -v README doc/gtkrc-2.0 /usr/share/doc/pidgin-2.14.12

If you created the API documentation, install it using the following commands as the root user:

mkdir -pv /usr/share/doc/pidgin-2.14.12/api &&
cp -rv doc/html/* /usr/share/doc/pidgin-2.14.12/api

Note

This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Command Explanations

--with-gstreamer=1.0: Remove this switch and add --disable-gstreamer if you’ve not installed gstreamer-1.22.0.

--disable-avahi: Remove this switch if you’ve installed Avahi-0.8.

--disable-gtkspell: Remove this switch if you’ve installed Gtkspell and wish to enable spellchecking support.

--disable-meanwhile: Remove this switch if you’ve installed Meanwhile.

--disable-idn: Remove this switch if you’ve installed libidn-1.41.

--disable-tk: Remove this switch if you’ve installed Tk-8.6.13 and you wish to use the TCL bindings.

--disable-nm: Remove this switch if you’ve installed NetworkManager-1.42.0.

--disable-vv: Remove this switch if you’ve installed Farstream and wish to enable voice and video communication support. You should also remove the –disable-gstreamer flag.

--enable-cyrus-sasl: Use this switch if you’ve installed Cyrus SASL-2.1.28 and wish to build Pidgin with SASL support.

--disable-gnutls: Use this switch if you’ve got both GnuTLS-3.8.0 and nss-3.88.1 installed, but want to use nss-3.88.1 for the SSL support.

Configuring Pidgin

Config Files

~/.purple/* and ~/.gtkrc-2.0

Configuration Information

Most configuration can be accomplished by using the various preference settings inside the programs. Additionally, you can create a ~/.gtkrc-2.0 file which can store gtk+-2 theme settings that affect Pidgin and other Gtk+ 2 applications. Note that an example gtkrc-2.0 file was installed during the package installation and can be used as a starting point or reference.

Contents

Installed Programs: pidgin, purple-client-example, purple-remote, purple-send, purple-send-async, and purple-url-handler

Installed Library: libpurple.so, and libpurple-client.so

Installed Directories: /usr/include/libpurple, /usr/include/pidgin, /usr/lib/pidgin, /usr/lib/purple-2, /usr/share/doc/pidgin-2.14.12, /usr/share/pixmaps/pidgin, /usr/share/purple, and /usr/share/sounds/purple

Short Descriptions

pidgin   is a GTK+ 2 instant messaging client.

purple-client-example   is an example that demonstrates how to use the libpurple-client library to communicate with purple.

purple-remote   sends remote commands to Pidgin/Finch.

purple-send   calls purple API functions using DBus and prints the return value.

purple-send-async   calls purple API functions using DBus. As opposed to purple-send, it does not print the return value.

purple-url-handler   is a python script to handle URLs with purple.

41.9 Rox-Filer-2.11


Introduction to Rox-Filer

rox-filer is a fast, lightweight, gtk2 file manager.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

rox-filer Dependencies

Required

libglade-2.6.4 and shared-mime-info-2.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/rox-filer

Kernel Configuration

If you want rox-filer to be able to update the contents of a directory when changes are made to the files by other applications (eg, if a script is running) you will need to enable dnotify support in your kernel. In make menuconfig:

File systems --->
    [*] Dnotify support   [CONFIG_DNOTIFY]

Save the new .config and then compile the kernel.

Installation of Rox-Filer

Compile rox-filer with the following commands:

cd ROX-Filer                                                        &&
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c &&
sed -i 's/gboolean/extern &/' src/session.h                     &&

mkdir build                        &&
pushd build                        &&
  ../src/configure LIBS="-lm -ldl" &&
  make                             &&
popd

Now install it as the root user:

mkdir -p /usr/share/rox                              &&
cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox &&

cp -av ../rox.1 /usr/share/man/man1                  &&
cp -v  ROX-Filer /usr/bin/rox                        &&
chown -Rv root:root /usr/bin/rox /usr/share/rox      &&

cd /usr/share/rox/ROX/MIME                           &&
ln -sv text-x-{diff,patch}.png                       &&
ln -sv application-x-font-{afm,type1}.png            &&
ln -sv application-xml{,-dtd}.png                    &&
ln -sv application-xml{,-external-parsed-entity}.png &&
ln -sv application-{,rdf+}xml.png                    &&
ln -sv application-x{ml,-xbel}.png                   &&
ln -sv application-{x-shell,java}script.png          &&
ln -sv application-x-{bzip,xz}-compressed-tar.png    &&
ln -sv application-x-{bzip,lzma}-compressed-tar.png  &&
ln -sv application-x-{bzip-compressed-tar,lzo}.png   &&
ln -sv application-x-{bzip,xz}.png                   &&
ln -sv application-x-{gzip,lzma}.png                 &&
ln -sv application-{msword,rtf}.png

Command Explanations

sed -i ‘s:g_strdup(getenv(“APP_DIR”)):”/usr/share/rox”:’ src/main.c: This command hard codes /usr/share/rox as the directory for rox-filer’s private files. Without this sed rox needs the environment variable ${APP_DIR} to be set.

sed -i ‘s/gboolean/extern &/’ src/session.h: This command fixes a multiple definition flagged as an error by GCC 10 and higher.

ln -sv application-…: These commands duplicate the icons for some common mime types. Without these links rox-filer would just display the default “unknown binary blob” icon.

Configuring RoxFiler

Configuration Information

Most of the configuration of rox-filer is achieved by right clicking on a rox-filer window and choosing “Options” from the menu. It stores its settings in ~/.config/rox.sourceforge.net.

A rox-filer feature is that if there is an executable file called AppRun in a directory rox-filer will first run AppRun before it opens the folder.

As an example of how this may be used, if you have ssh access to another computer (perhaps another computer on your local network) with ssh configured for passwordless logins and you have sshfs-3.7.3 installed you can use AppRun to mount the remote computer in a local folder using sshfs. For this example AppRun script to work the folder must have the same name as the hostname of the remote computer:

cat > /path/to/hostname/AppRun << "HERE_DOC"
#!/bin/bash

MOUNT_PATH="${0%/*}"
HOST=${MOUNT_PATH##*/}
export MOUNT_PATH HOST
sshfs -o nonempty ${HOST}:/ ${MOUNT_PATH}
rox -x ${MOUNT_PATH}
HERE_DOC

chmod 755 /path/to/hostname/AppRun

That works fine for mounting, but to unmount it the command fusermount -u ${MOUNTPOINT} is ran. You could set that as your default umount command in your rox preferences, but you would then be unable to unmount any normal mountpoints (that need umount). A script is needed that will unmount a Fuse mountpoint with fusermount -u ${MOUNTPOINT} and everything else with umount. As the root user:

cat > /usr/bin/myumount << "HERE_DOC" &&
#!/bin/bash
sync
if mount | grep "${@}" | grep -q fuse
then fusermount -u "${@}"
else umount "${@}"
fi
HERE_DOC

chmod 755 /usr/bin/myumount

Now, to make Rox use this simple script, open a Rox window, right click on it and choose Options from the menu. In the left hand list choose “Action windows” and then on the right hand side, where it says “Unmount command” change umount to myumount.

If you use a desktop environment like Gnome or KDE you may like to create a rox.desktop file so that rox-filer appears in the panel’s menus. As the root user:

ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png &&
mkdir -p /usr/share/applications &&

cat > /usr/share/applications/rox.desktop << "HERE_DOC"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Rox
Comment=The Rox File Manager
Icon=rox
Exec=rox
Categories=GTK;Utility;Application;System;Core;
StartupNotify=true
Terminal=false
HERE_DOC

Contents

Installed Programs: rox

Installed Libraries: None

Installed Directories: /usr/share/rox

Short Descriptions

rox   is the rox file manager.

41.10 rxvt-unicode-9.31


Introduction to rxvt-unicode

rxvt-unicode is a clone of the terminal emulator rxvt, an X Window System terminal emulator which includes support for XFT and Unicode.

This package is known to build and work properly using an LFS 11.3 platform.

Note

Please be aware that rxvt-unicode is affected by an issue in perl where the SIGFPE handler is set to SIG_IGN (i.e. the signal is ignored). If you are building an LFS system from within urxvt and running the test suites, tests in bash and check which test raising this signal will fail.

Package Information

rxvt-unicode Dependencies

Required

libptytty-2.0 and a graphical environment

Optional

gdk-pixbuf-2.42.10 (for background images) and startup-notification-0.12

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/rxvt-unicode

Installation of rxvt-unicode

Install rxvt-unicode by running the following commands:

./configure --prefix=/usr --enable-everything &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--enable-everything: Add support for all non-multichoice options. Details about the different options can be found in the file README.configure.

--disable-xft: Remove support for Xft fonts.

--disable-perl: Disable the embedded Perl interpreter.

--disable-afterimage: Remove support for libAfterImage.

Configuring rxvt-unicode

The rxvt-unicode terminal emulator uses the resource class URxvt and the resource name urxvt. You can add X resource definitions to a user’s ~/.Xresources or ~/.Xdefaults files or to the system-wide /etc/X11/app-defaults/URxvt file. The following example will load the matcher Perl extension (assuming Perl support wasn’t disabled), which enables a left button click to open an underlined URL in the specified browser, sets a background and foreground color and loads an Xft font (as the root user):

cat >> /etc/X11/app-defaults/URxvt << "EOF"
! Use the specified colour as the windows background colour [default white]
URxvt*background: black

! Use the specified colour as the windows foreground colour [default black]
URxvt*foreground: yellow

! Select the fonts to be used. This is a comma separated list of font names
URxvt*font: xft:Monospace:pixelsize=18

! Comma-separated list(s) of perl extension scripts (default: "default")
URxvt*perl-ext: matcher

! Specifies the program to be started with a URL argument. Used by
URxvt*url-launcher: firefox

! When clicked with the mouse button specified in the "matcher.button" resource
! (default 2, or middle), the program specified in the "matcher.launcher"
! resource (default, the "url-launcher" resource, "sensible-browser") will be
! started with the matched text as first argument.
! Below, default modified to mouse left button.
URxvt*matcher.button:     1
EOF

In order to view the defined X resources, issue:

xrdb -query

In order to add the modifications of the new user configuration file, keeping previously X configurations (of course, unless you are changing any on previously define), issue:

xrdb -merge ~/.Xresources

The rxvt-unicode application can also run in a daemon mode, which makes it possible to open multiple terminal windows within the same process. The urxvtc client then connects to the urxvtd daemon and requests a new terminal window. Use this option with caution. If the daemon crashes, all the running processes in the terminal windows are terminated.

You can start the urxvtd daemon in the system or personal startup X session script (e.g., ~/.xinitrc) by adding the following lines near the top of the script:

# Start the urxvtd daemon
urxvtd -q -f -o &

For more information, examine the urxvt, urxvtd, urxvtc, and urxvtperl man pages.

If you use a Desktop Environment, a menu entry can be included, issuing, as the root user:

cat > /usr/share/applications/urxvt.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Rxvt-Unicode Terminal
Comment=Use the command line
GenericName=Terminal
Exec=urxvt
Terminal=false
Type=Application
Icon=utilities-terminal
Categories=GTK;Utility;TerminalEmulator;
#StartupNotify=true
Keywords=console;command line;execute;
EOF

update-desktop-database -q

For that, you need desktop-file-utils-0.26 and at least one of gnome-icon-theme-3.12.0, oxygen-icons5-5.103.0 and lxde-icon-theme-0.5.1. Uncomment the line with “StartupNotify=true” if startup-notification-0.12 is installed.

Contents

Installed Programs: urxvt, urxvtd, and urxvtc

Installed Libraries: Many Perl extensions located under /usr/lib/urxvt/perl

Installed Directory: /usr/lib/urxvt

Short Descriptions

urxvt   is a terminal emulator for the X Window System.

urxvtd   is the urxvt terminal daemon.

urxvtc   controls the urxvtd daemon.

41.11 Thunderbird-102.8.0


Introduction to Thunderbird

Thunderbird is a stand-alone mail/news client based on the Mozilla codebase. It uses the Gecko rendering engine to enable it to display and compose HTML emails.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Thunderbird Dependencies

Required

Autoconf-2.13, Cbindgen-0.24.3, dbus-glib-0.112, GTK+-3.24.36, LLVM-15.0.7 including clang, nodejs-18.14.1, PulseAudio-16.1 (or alsa-lib-1.2.8 if you edit the mozconfig; although it is now deprecated by mozilla), Python-3.11.2 (rebuilt with the sqlite module), startup-notification-0.12, Zip-3.0, and UnZip-6.0

ICU-72.1, libevent-2.1.12, libvpx-1.13.0, NASM-2.16.01, NSPR-4.35, and nss-3.88.1

Note

If you don’t install recommended dependencies, then internal copies of those packages will be used. They might be tested to work, but they can be out of date or contain security holes.

Optional

Wget-1.21.3, Wireless Tools-29, and watchman

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Thunderbird

Installation of Thunderbird

Note

The build process for Thunderbird can use 8GB+ of RAM when linking. Make sure that you have adequate swap or RAM before continuing.

The configuration of Thunderbird is accomplished by creating a mozconfig file containing the desired configuration options. A default mozconfig is created below. To see the entire list of available configuration options (and a brief description of each), issue mozilla/configure –help. Create the file with the following command:

cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used.

# If you have installed wireless-tools comment out this line:
ac_add_options --disable-necko-wifi

# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --enable-audio-backends=alsa

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-icu

# The elf-hack causes failed installs on some machines.
# It is supposed to improve startup time and it shrinks libxul.so
# by a few MB - comment this if you know your machine is not affected.
ac_add_options --disable-elf-hack

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/mail

ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests

ac_add_options --enable-optimize=-O2
ac_add_options --enable-linker=gold
ac_add_options --enable-strip
ac_add_options --enable-install-strip

ac_add_options --enable-official-branding

ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

# Using sandboxed wasm libraries has been moved to all builds instead
# of only mozilla automation builds. It requires extra llvm packages
# and was reported to seriously slow the build. Disable it.
ac_add_options --without-wasm-sandboxed-libraries
EOF

A change in cbindgen-0.24.2 causes a symbol to now be output by cbindgen, but it has already been defined in a header. This sed prevents the build from eventually failing:

sed -i '/ROOT_CLIP_CHAIN/d' gfx/webrender_bindings/webrender_ffi.h

Now invoke the Python mach script to compile Thunderbird:

Note

If you are compiling this package in chroot you must do two things. First, as the root user, ensure that /dev/shm is mounted. If you do not do this, the Python configuration will fail with a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py. Run:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Second, either as the root user export the $SHELL environment variable using export SHELL=/bin/sh or else prepend SHELL=/bin/sh when running the ./mach commands.

Now invoke the Python mach script to compile the package.

export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none &&
export MOZBUILD_STATE_PATH=./mozbuild               &&
./mach configure                                    &&
./mach build

This package does not come with a test suite.

Install Thunderbird by running the following commands as the root user:

MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none ./mach install

Empty the environment variables which were set above:

unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE MOZBUILD_STATE_PATH

Command Explanations

MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none: Use the system python to create a virtual environment for mach without downloading any python wheels nor using the system python modules. This prevent version mismatches between system modules and bundled ones.

./mach configure: This validates the supplied dependencies and the mozconfig.

./mach build --verbose: Use this alternative if you need details of which files are being compiled, together with any C or C++ flags being used.

./mach build -jN: The build should, by default, use all the online CPU cores. If using all the cores causes the build to swap because you have insufficient memory, using fewer cores can be faster.

`CC=gcc CXX=g++`: BLFS used to prefer to use gcc and g++ instead of upstream’s defaults of the clang programs. With the release of gcc-12 the build takes longer with gcc and g++, primarily because of extra warnings, and is bigger. Set these environment variables before you run the configure script if you wish to continue to use gcc, g++. Building with GCC on i?86 is currently broken.

Configuring Thunderbird

Configuration Information

If your Window Manager or Desktop Environment does not allow you to configure a default browser, you can add a configuration parameter to Thunderbird so that a browser will start when you click on an Internet/intranet/local URL. The procedure to check or modify any of the configuration parameters is quite simple and the instructions here can be used to view or modify any of the parameters.

First, open the configuration dialog by opening the “Edit” drop-down menu. Choose “Preferences” and then scroll down to the bottom of the page. Then, click the “Config Editor” button. Click on the “I accept the risk!” button. This will display a list of the configuration preferences and information related to each one. You can use the “Filter:” bar to enter search criteria and narrow down the listed items. Changing a preference can be done using two methods. One, if the preference has a boolean value (True/False), simply double-click on the preference to toggle the value and two, for other preferences simply right-click on the desired line, choose “Modify” from the menu and change the value. Creating new preference items is accomplished in the same way, except choose “New” from the menu and provide the desired data into the fields when prompted.

The configuration preference item you need to check so that Thunderbird uses a specified browser is the network.protocol-handler.app.http which should be set to the path of the desired browser, e.g. /usr/bin/firefox.

If you use a desktop environment such as GNOME or KDE, a desktop file thunderbird.desktop may be created, in order to include a “Thunderbird” entry in the menu. Run the following commands as the root user:

mkdir -pv /usr/share/{applications,pixmaps} &&

cat > /usr/share/applications/thunderbird.desktop << "EOF" &&
[Desktop Entry]
Name=Thunderbird Mail
Comment=Send and receive mail with Thunderbird
GenericName=Mail Client
Exec=thunderbird %u
Terminal=false
Type=Application
Icon=thunderbird
Categories=Network;Email;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
StartupNotify=true
EOF

ln -sfv /usr/lib/thunderbird/chrome/icons/default/default256.png \
        /usr/share/pixmaps/thunderbird.png

Contents

Installed Program: thunderbird

Installed Libraries: Numerous libraries and modules in the /usr/lib/thunderbird directory

Installed Directory: /usr/lib/thunderbird

Short Descriptions

thunderbird   is Mozilla’s email and newsgroup client.

41.12 Tigervnc-1.13.0


Introduction to Tigervnc

Tigervnc is an advanced VNC (Virtual Network Computing) implementation. It allows creation of an Xorg server not tied to a physical console and also provides a client for viewing of the remote graphical desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

Note

The version of Xorg may eventually be a few versions out of date, but is required for the customizations needed for this package.

Tigervnc Dependencies

Required

CMake-3.25.2, FLTK-1.3.8, GnuTLS-3.8.0, libgcrypt-1.10.1, libjpeg-turbo-2.1.5.1, Pixman-0.42.2, Systemd-252 (with Linux-PAM-1.5.2), Xorg Applications, xinit-1.4.2, and Xorg Legacy Fonts

ImageMagick-7.1.0-61

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tigervnc

Installation of Tigervnc

First, make adjustments to the configuration files to make them compatible with LFS systems:

patch -Np1 -i ../tigervnc-1.13.0-configuration_fixes-1.patch

Install tigervnc by running the following commands:

# Put code in place
mkdir -p unix/xserver &&
tar -xf ../xorg-server-21.1.6.tar.xz \
    --strip-components=1              \
    -C unix/xserver                   &&
( cd unix/xserver &&
  patch -Np1 -i ../xserver21.1.1.patch ) &&

# Build viewer
cmake -G "Unix Makefiles"         \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-dev . &&
make &&

# Build server
pushd unix/xserver &&
  autoreconf -fiv  &&

  CPPFLAGS="-I/usr/include/drm"       \
  ./configure $XORG_CONFIG            \
      --disable-xwayland    --disable-dri        --disable-dmx         \
      --disable-xorg        --disable-xnest      --disable-xvfb        \
      --disable-xwin        --disable-xephyr     --disable-kdrive      \
      --disable-devel-docs  --disable-config-hal --disable-config-udev \
      --disable-unit-tests  --disable-selective-werror                 \
      --disable-static      --enable-dri3                              \
      --without-dtrace      --enable-dri2        --enable-glx          \
      --with-pic &&
  make  &&
popd

This package does not come with a test suite.

Now, as the root user:

#Install viewer
make install &&

#Install server
( cd unix/xserver/hw/vnc && make install ) &&

[ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc

Command Explanations

tar -xf .. xorg-server…: This command extracts the standard Xorg package into the tree in a location needed for modification.

--disable ...: Most options that are usually needed for the standard Xorg server are not needed for the Xvnc instance being built.

**[ -e /usr/bin/Xvnc ]   ln … Xvnc: If the Xvnc server is not installed in the /usr/bin directory, then create a link so the **vncserver script can find it.

Configuring Tigervnc

Server Configuration

On systemd systems, another method of configuration is available. This configuration provides the added benefit of making tigervnc systemd aware for VNC sessions and allows desktop environments like GNOME to autostart services once the VNC session is started. This configuration also gives the added benefit of starting VNC Sessions on system startup. To set up the VNC server in this fashion, follow these instructions.

First, install a rudimentary Xsession file so that the VNC server can initialize X sessions properly:

install -vdm755 /etc/X11/tigervnc &&
install -v -m755 ../Xsession /etc/X11/tigervnc

Next, set up a user mapping in /etc/tigervnc/vncserver.users. This tells the VNC Server which session is allocated to a user.

echo ":1=$(whoami)" >> /etc/tigervnc/vncserver.users

Next, set up a configuration file to tell vncserver which desktop environment should be used and what display geometry should be used. There are several other options that can be defined in this file, but they are outside the scope of BLFS.

install -vdm 755 ~/.vnc &&
cat > ~/.vnc/config << EOF
# Begin ~/.vnc/config
# The session must match one listed in /usr/share/xsessions.
# Ensure that there are no spaces at the end of the lines.

session=LXDE
geometry=1024x768

# End ~/.vnc/config
EOF

To start the VNC Server, run the following command:

systemctl start vncserver@:1

To start the VNC Server when the system boots, run the following command:

systemctl enable vncserver@:1

Contents

Installed Programs: Xvnc, vncconfig, vncpasswd, vncserver, vncviewer, and x0vncserver

Installed Libraries: libvnc.so

Installed Directories: /usr/share/doc/tigervnc-1.13.0

Short Descriptions

Xvnc   is a X VNC (Virtual Network Computing) server. It is based on a standard X server, but it has a “virtual” screen rather than a physical one.

vncconfig   is a program to configure and control a VNC server.

vncpasswd   allows you to set the password used to access VNC desktops.

vncserver   is a perl script used to start or stop a VNC server.

vncviewer   is a client used to connect to VNC desktops.

x0vncserver   is a program to make an X display on a physical terminal accessible via TigerVNC or compatible viewers.

41.13 Transmission-4.0.1


Introduction to Transmission

Transmission is a cross-platform, open source BitTorrent client. This is useful for downloading large files (such as Linux ISOs) and reduces the need for the distributors to provide server bandwidth.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Transmission Dependencies

Required

cURL-7.88.1

libevent-2.1.12 and libpsl-0.21.2 (to use system libraries instead of bundled ones)

Gtkmm-3.24.7 or Qt-5.15.8

Optional

nodejs-18.14.1 (for building the web client, not needed at run time), appindicator, dht, libb64, libdeflate, libnatpmp, libutp, and miniupnp

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/transmission

Installation of Transmission

Install Transmission by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/transmission-4.0.1 \
      .. &&

make

Now, as the root user:

make install

As transmission.png seems to be missing, create it from the svg::

rsvg-convert                                               \
   /usr/share/icons/hicolor/scalable/apps/transmission.svg \
   -o /usr/share/pixmaps/transmission.png

Command Explanations

-DENABLE_QT=OFF: This switch disables building the Qt5 client. The default is to build it if Qt-5.15.8 is installed.

-DENABLE_GTK=OFF: This switch disables building the GTK+-3 cli client. The default is to build it Gtkmm-3.24.7 is installed.

-DENABLE_WEB=OFF: This switch disables building the web client. The default is to build it if nodejs-18.14.1 is installed.

Contents

Installed Programs: transmission-cli, transmission-create, transmission-daemon, transmission-edit, transmission-gtk or transmission-qt, transmission-remote, and transmission-show

Installed Libraries: None

Installed Directory: /usr/share/transmission (contains the web client, optional) and /usr/share/doc/transmission-4.0.1

Short Descriptions

transmission-cli   is a lightweight, command-line BitTorrent client with scripting capabilities.

transmission-create   is a command line tool used to create .torrent files.

transmission-daemon   is a daemon-based Transmission session that can be controlled via RPC commands from transmission’s web interface or transmission-remote.

transmission-edit   is a command-line utility to modify .torrent files’ announce URLs.

transmission-gtk   is a GTK+ bittorrent client.

transmission-qt   is a Qt bittorrent client.

transmission-remote   is a remote control utility for transmission-daemon and transmission.

transmission-show   is a command line tool to display bittorrent .torrent file metadata.

41.14 xarchiver-0.5.4.20


Introduction to xarchiver

XArchiver is a GTK+ archive manager with support for tar, xz, bzip2, gzip, zip, 7z, rar, lzo and many other archive formats.

This package is known to build and work properly using an LFS 11.3 platform.

Note

xarchiver is only a command line or graphical interface to archiving utilities such as tar and zip.

Package Information

xarchiver Dependencies

Required

GTK+-2.24.33 or GTK+-3.24.36

Optional (Runtime)

cpio-2.13, LZO-2.10, p7zip-17.04, UnRar-6.2.6, UnZip-6.0, and Zip-3.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xarchiver

Installation of xarchiver

Install xarchiver by running the following commands:

./configure  --prefix=/usr               \
             --libexecdir=/usr/lib/xfce4 \
             --docdir=/usr/share/doc/xarchiver-0.5.4.20 &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Note

This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Command Explanations

--libexecdir=/usr/lib/xfce4: This switch fixes the location for the thunar-archive-plugin, so it will work if thunar-4.18.4 is installed.

--disable-gtk3: This switch allows building against GTK+2 or use --disable-gtk2 to force building against GTK+3 when GTK+2 is installed.

Contents

Installed Program: xarchiver

Installed Libraries: None

Installed Directories: /usr/lib/xfce4/thunar-archive-plugin, /usr/share/doc/xarchiver-0.5.4.20, and /usr/share/pixmaps/xarchiver

Short Descriptions

xarchiver   is a GTK+ archive manager.

41.15 xdg-utils-1.1.3


Introduction to xdg-utils

xdg-utils is a a set of command line tools that assist applications with a variety of desktop integration tasks. It is required for Linux Standards Base (LSB) conformance.

Warning

A security vulnerability exists in all versions of xdg-utils from version 1.1.0rc1 when handling mailto: URIs. An attacker could potentially send a victim a URI that automatically attaches a sensitive file to a new email. If a victim user does not notice that an attachment was added and sends the email, this could result in sensitive information disclosure.

To mitigate this flaw, either do not use mailto links at all, or always double-check in the user interface that there are no unwanted attachments before sending emails, especially when the email originates from clicking on a mailto link.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

xdg-utils Dependencies

Required

xmlto-0.0.28 with one of Lynx-2.8.9rel.1, Links-2.28, or W3m

Required (runtime)

Xorg Applications

Optional (runtime)

dbus-1.14.6

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xdg-utils

Installation of xdg-utils

Compile xdg-utils with the following commands:

./configure --prefix=/usr --mandir=/usr/share/man &&
make

Caution

The tests for the scripts must be made from an X-Window based session. There are several run-time requirements to run the tests including a browser and an MTA. Running the tests as root user is not recommended.

To run the tests, issue: make -k test.

Now install it as the root user:

make install

Contents

Installed Programs: xdg-desktop-menu, xdg-desktop-icon, xdg-mime, xdg-icon-resource, xdg-open, xdg-email, xdg-screensaver, xdg-settings

Installed Libraries: None

Installed Directories: None

Short Descriptions

xdg-desktop-menu   is a command line tool for (un)installing desktop menu items.

xdg-desktop-icon   is a command line tool for (un)installing icons to the desktop.

xdg-mime   is a command line tool for querying information about file type handling and adding descriptions for new file types.

xdg-icon-resource   is a command line tool for (un)installing icon resources.

xdg-open   opens a file or URL in the user’s preferred application.

xdg-email   opens the user’s preferred e-mail composer in order to send a mail message.

xdg-screensaver   is a command line tool for controlling the screensaver.

xdg-settings   is a command line tool for managing various settings from the desktop environment.

41.16 XScreenSaver-6.06


Introduction to XScreenSaver

The XScreenSaver package is a modular screen saver and locker for the X Window System. It is highly customizable and allows the use of any program that can draw on the root window as a display mode. The purpose of XScreenSaver is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies. However, XScreenSaver can also be used as a screen locker, to prevent others from using your terminal while you are away.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

XScreenSaver Dependencies

Required

GTK+-3.24.36, libglade-2.6.4, and Xorg Applications

GLU-9.0.2

Optional

GDM-43.0, Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1, and GLE

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xscreensaver

Installation of XScreenSaver

Install XScreenSaver by running the following commands:

./configure --prefix=/usr &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--with-setuid-hacks: This switch allows some demos to be installed setuid root which is needed in order to ping other hosts.

Configuring XScreenSaver

Config Files

/etc/X11/app-defaults/XScreenSaver and ~/.xscreensaver

Linux PAM Configuration

If XScreenSaver has been built with Linux PAM support, you need to create a PAM configuration file, to get it working correctly with BLFS.

Issue the following commands as the root user to create the configuration file for Linux PAM:

cat > /etc/pam.d/xscreensaver << "EOF"
# Begin /etc/pam.d/xscreensaver

auth    include system-auth
account include system-account

# End /etc/pam.d/xscreensaver
EOF

Contents

Installed Programs: xscreensaver, xscreensaver-command, xscreensaver-demo, and xscreensaver-settings

Installed Libraries: None

Installed Directories: /usr/libexec/xscreensaver and /usr/share/xscreensaver

Short Descriptions

xscreensaver   is a screen saver and locker daemon.

xscreensaver-command   controls a running xscreensaver process by sending it client messages.

xscreensaver-demo   is a symlink to xscreensaver-settings.

xscreensaver-settings   is a graphical front-end for setting the parameters used by the background xscreensaver daemon.