├── wine ├── wine │ └── winetrblshoot.xml ├── winechapter.xml ├── whatiswine.xml ├── wineintro.xml └── deps │ └── misc │ └── packaging.xml ├── .gitattributes ├── kernel-config ├── kernel.version ├── shareddeps │ ├── drivers │ │ ├── nvidia.toml │ │ └── gpuconfig.toml │ ├── security │ │ ├── linux-pam.toml │ │ └── elogind.toml │ ├── dps │ │ └── x │ │ │ ├── xorg-server-simpledrm.toml │ │ │ ├── xorg-server.toml │ │ │ ├── libevdev-test.toml │ │ │ ├── libevdev.toml │ │ │ └── x7driver-wacom.toml │ └── audio │ │ └── alsa-lib.toml ├── .gitignore ├── steam │ └── steam │ │ └── steam.toml ├── testdata │ ├── config.toml.example │ └── Kconfig ├── NEEDED ├── qol │ └── gamepad.toml ├── kernel_version.py └── Makefile ├── stylesheets ├── lfs-xsl │ ├── lfs.css │ ├── lfs-print.css │ ├── xhtml │ │ ├── lfs-glossary.xsl │ │ ├── lfs-admon.xsl │ │ └── lfs-legalnotice.xsl │ ├── chunk-master.xsl │ ├── profile.xsl │ ├── chunk-slave.xsl │ ├── chunkfast.xsl │ └── pdf │ │ └── lfs-admon.xsl ├── glfs-chunked.xsl ├── glfs-pdf.xsl ├── glfs-nochunks.xsl ├── dump-commands.xsl └── test-options.xsl ├── bulletin.xml ├── changelog.xml ├── images ├── tip.png ├── note.png ├── caution.png ├── favicon.ico ├── warning.png ├── glfs-logo.png ├── important.png └── favicon-high.ico ├── .gitignore ├── switch-theme.sh ├── shareddeps ├── dps │ ├── x │ │ ├── xdummy.xml │ │ ├── libevdev-kernel.xml │ │ ├── libevdev-test-kernel.xml │ │ ├── xorg-server-simpledrm-kernel.xml │ │ ├── xorg-server-kernel.xml │ │ ├── x7driver-wacom-kernel.xml │ │ ├── xbitmaps.xml │ │ ├── luit.xml │ │ ├── xcursor-themes.xml │ │ ├── x7driver.xml │ │ ├── xcb-util.xml │ │ └── xcb-util-image.xml │ ├── wl │ │ ├── wldummy.xml │ │ └── wayland-protocols.xml │ └── basicx │ │ ├── basicxdummy.xml │ │ └── x │ │ ├── util-macros.xml │ │ └── xcb-proto.xml ├── audio │ ├── audiodummy.xml │ ├── alsa-lib-kernel.xml │ └── alsa.xml ├── net │ ├── netdummy.xml │ └── netconnect.xml ├── security │ ├── secdummy.xml │ ├── linux-pam-kernel.xml │ ├── elogind-kernel.xml │ └── duktape.xml ├── gfxapi │ ├── gfxapidummy.xml │ ├── vk │ │ ├── introvk.xml │ │ └── vkheaders.xml │ └── gl │ │ └── introgl.xml ├── checkpoint │ └── checkpointdummy.xml ├── drivers │ ├── driversdummy.xml │ ├── nvidia-kernel.xml │ ├── gpuconfig-kernel.xml │ ├── hwdata.xml │ ├── ply.xml │ ├── pyyaml.xml │ ├── libclc.xml │ ├── mako.xml │ └── rust-bindgen.xml └── sdchapter.xml ├── steam ├── steam │ ├── steamdummy.xml │ ├── steam-kernel.xml │ ├── steamtrblshoot.xml │ └── steamdeps.xml ├── steamchapter.xml ├── steamintro.xml └── whatissteam.xml ├── tidy.conf ├── xincludes ├── static-libraries.xml ├── long-build-time.xml ├── gtk-doc-rebuild.xml ├── meson-buildtype-release.xml ├── tex-lib.xml ├── meson-wrap-nodownload.xml ├── gst10-plugins.xml ├── tex-system.xml ├── meson-wrap-nofallback.xml ├── tex-xpdf.xml ├── gtk-doc-rebuild-problem.xml ├── SIOCGSTAMP.xml ├── perl-build-install.xml ├── tex-shared.xml ├── perl-standard-install.xml ├── use-unzip.xml ├── gst10-objc-error.xml ├── tex-prefix.xml ├── lib-config.xml ├── gsettings-destdir.xml ├── cmake-skip-install-rpath.xml ├── texrecommendlibs.xml ├── rm-la-file-referring-icu.xml ├── texoptional.xml ├── gtk-update-icon-cache.xml ├── update-desktop-database.xml ├── texprogs.xml ├── perl-unsafe-install.xml ├── mozshm.xml ├── update-icons-and-desktop.xml ├── texruntime.xml └── pip3-cmd-explain.xml ├── book ├── dedication.xml ├── whoread.xml ├── errata.xml ├── foreword.xml ├── bookinfo.xml ├── preface.xml └── organization.xml ├── qol ├── qol.xml ├── qolintro.xml ├── gamepad.xml └── gamepad-kernel.xml ├── multilib ├── multilib.xml ├── coveringml.xml ├── achievingml.xml ├── whatisml.xml ├── needml.xml └── pkgconf.xml ├── pdf-fixups.sh ├── introduction ├── introduction.xml └── welcome │ ├── contact.xml │ ├── askhelp.xml │ ├── newsserver.xml │ ├── conventions-kernel.xml │ ├── welcome.xml │ ├── acknowledgments.xml │ ├── packages.xml │ └── rationale.xml ├── INSTALL.md ├── expand_date ├── index.xml ├── README.md ├── obfuscate.sh ├── .github └── workflows │ └── publish-github-pages.yml ├── git-version.sh └── appendices └── mit-lic.xml /wine/wine/winetrblshoot.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.xml filter=dater 2 | -------------------------------------------------------------------------------- /kernel-config/kernel.version: -------------------------------------------------------------------------------- 1 | 6.11.3 2 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/lfs.css: -------------------------------------------------------------------------------- 1 | dark.lfs.css -------------------------------------------------------------------------------- /bulletin.xml: -------------------------------------------------------------------------------- 1 | introduction/welcome/bulletin.xml -------------------------------------------------------------------------------- /changelog.xml: -------------------------------------------------------------------------------- 1 | introduction/welcome/changelog.xml -------------------------------------------------------------------------------- /kernel-config/shareddeps/drivers/nvidia.toml: -------------------------------------------------------------------------------- 1 | DRM="*M" 2 | -------------------------------------------------------------------------------- /kernel-config/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | s-kernel-version 3 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/security/linux-pam.toml: -------------------------------------------------------------------------------- 1 | AUDIT='*' 2 | -------------------------------------------------------------------------------- /kernel-config/steam/steam/steam.toml: -------------------------------------------------------------------------------- 1 | NAMESPACES="*" 2 | USER_NS="*" 3 | -------------------------------------------------------------------------------- /images/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/tip.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | conditional.ent 2 | version.ent 3 | blfs-bootscripts* 4 | xxx 5 | *.swp 6 | -------------------------------------------------------------------------------- /images/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/note.png -------------------------------------------------------------------------------- /images/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/caution.png -------------------------------------------------------------------------------- /images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/favicon.ico -------------------------------------------------------------------------------- /images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/warning.png -------------------------------------------------------------------------------- /images/glfs-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/glfs-logo.png -------------------------------------------------------------------------------- /images/important.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/important.png -------------------------------------------------------------------------------- /images/favicon-high.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zeckmathederg/glfs/HEAD/images/favicon-high.ico -------------------------------------------------------------------------------- /kernel-config/shareddeps/dps/x/xorg-server-simpledrm.toml: -------------------------------------------------------------------------------- 1 | SYSFB_SIMPLEFB="*" 2 | DRM="*" 3 | DRM_SIMPLEDRM="*" 4 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/lfs-print.css: -------------------------------------------------------------------------------- 1 | @import url(lfs.css); 2 | 3 | .navfooter, .headerlinks { 4 | display: none; 5 | } 6 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/dps/x/xorg-server.toml: -------------------------------------------------------------------------------- 1 | DRM="*M" 2 | DRM_VMWGFX="*M " 3 | DRM_BOCHS="*M " 4 | DRM_VBOXVIDEO="*M " 5 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/dps/x/libevdev-test.toml: -------------------------------------------------------------------------------- 1 | INPUT_MISC="*" 2 | INPUT_UINPUT="*M" 3 | INPUT = { value = '*', forced = '*' } 4 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/dps/x/libevdev.toml: -------------------------------------------------------------------------------- 1 | # forced by VT && TTY, with !EXPERT VT and TTY are always set 2 | INPUT = { value = "*", forced = "*" } 3 | INPUT_EVDEV="*M" 4 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/security/elogind.toml: -------------------------------------------------------------------------------- 1 | INOTIFY_USER = '*' 2 | # not really forced, but if you select DRM_I915 it will seem "forced" 3 | TMPFS='*' 4 | TMPFS_POSIX_ACL='*' 5 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/audio/alsa-lib.toml: -------------------------------------------------------------------------------- 1 | SOUND = '*M' 2 | 3 | [SND] 4 | value = '*M' 5 | comment = [ 6 | 'Select settings and drivers appropriate for your hardware', 7 | 'in the submenu', 8 | ] 9 | -------------------------------------------------------------------------------- /kernel-config/testdata/config.toml.example: -------------------------------------------------------------------------------- 1 | REQU_PAR='*' 2 | REQU_PAR_NMOD='*' 3 | REQU_PAR_MOD='*M' 4 | OPT_PAR='*M ' 5 | INCOMP_PAR=' ' 6 | INCOMP_PAR_MOD=' ' 7 | REQU_PAR_MOD_ONLY='M' 8 | OPT_PAR_MOD_ONLY=' M' 9 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/dps/x/x7driver-wacom.toml: -------------------------------------------------------------------------------- 1 | HID_SUPPORT="*" 2 | # forced by USB_HID && HID_SUPPORT && USB && INPUT 3 | HID = { value = "*M", forced = true } 4 | USB_HID = "*M" 5 | USB_SUPPORT="*" 6 | USB = "*M" 7 | HID_WACOM = "*M" 8 | -------------------------------------------------------------------------------- /kernel-config/NEEDED: -------------------------------------------------------------------------------- 1 | introduction/important/cgroup 2 | shareddeps/audio/alsa-lib 3 | shareddeps/drivers/gpuconfig 4 | shareddeps/drivers/nvidia (DRM only) 5 | shareddeps/dps/x/xorg-server 6 | shareddeps/dps/x/libevdev 7 | shareddeps/dps/x/x7driver-wacom 8 | qol/gamepad 9 | -------------------------------------------------------------------------------- /switch-theme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "$1" == "light" ]; then 3 | ln -svf light.lfs.css stylesheets/lfs-xsl/lfs.css 4 | elif [ "$1" == "dark" ]; then 5 | ln -svf dark.lfs.css stylesheets/lfs-xsl/lfs.css 6 | else 7 | echo '"'"$1"'" is not "light" or "dark"' 8 | fi 9 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | X11 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /steam/steam/steamdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Steam 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tidy.conf: -------------------------------------------------------------------------------- 1 | # Tidy configuration file 2 | # 3 | 4 | indent-spaces: 2 5 | wrap: 78 6 | tab-size: 8 7 | newline: LF 8 | write-back: yes 9 | markup: yes 10 | indent: yes 11 | uppercase-tags: no 12 | logical-emphasis: no 13 | tidy-mark: no 14 | numeric-entities: no 15 | show-warnings: no 16 | quiet: yes 17 | -------------------------------------------------------------------------------- /shareddeps/audio/audiodummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Audio 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/dps/wl/wldummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Wayland 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/net/netdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Networking 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/security/secdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Security 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/gfxapi/gfxapidummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Graphics APIs 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/checkpoint/checkpointdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Checkpoint 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/dps/basicx/basicxdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Basic X11 Software 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /shareddeps/drivers/driversdummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Graphics Drivers 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /xincludes/static-libraries.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | --disable-static: This switch prevents 7 | installation of static versions of the libraries. 8 | 9 | -------------------------------------------------------------------------------- /xincludes/long-build-time.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | This may take a while to build. Feel free to do something else 8 | while this is building. 9 | 10 | 11 | -------------------------------------------------------------------------------- /xincludes/gtk-doc-rebuild.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | : Use this parameter if 6 | GTK-Doc is installed and you wish to rebuild 7 | and install the API documentation. 8 | -------------------------------------------------------------------------------- /xincludes/meson-buildtype-release.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | --buildtype=release: Specify a buildtype 6 | suitable for stable releases of the package, as the default may 7 | produce unoptimized binaries. 8 | 9 | -------------------------------------------------------------------------------- /book/dedication.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | Dedication 10 | 11 | This book is dedicated to the LFS community 12 | 13 | 14 | -------------------------------------------------------------------------------- /xincludes/tex-lib.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --includedir= 8 | --libdir= : these switches ensure 9 | that the libraries and include files will be within the directories for this 10 | year's texlive. 11 | 12 | -------------------------------------------------------------------------------- /xincludes/meson-wrap-nodownload.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --wrap-mode=nodownload: This switch prevents 8 | meson from downloading any optional dependency 9 | which is not installed on the system. 10 | 11 | -------------------------------------------------------------------------------- /shareddeps/security/linux-pam-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | General setup ---> 7 | [*] Auditing support [AUDIT] 8 | -------------------------------------------------------------------------------- /xincludes/gst10-plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 8 | 9 | If you need a plugin for a given dependency, that dependency 10 | needs to be installed before this package. 11 | -------------------------------------------------------------------------------- /kernel-config/shareddeps/drivers/gpuconfig.toml: -------------------------------------------------------------------------------- 1 | DRM="*M" 2 | DRM_RADEON = { value = " *M", comment = "For r300 or r600" } 3 | DRM_AMDGPU = { value = " *M", comment = "For radeonsi" } 4 | DRM_AMDGPU_SI="*" 5 | DRM_AMDGPU_CIK="*" 6 | DRM_AMD_DC="*" 7 | DRM_NOUVEAU = { value = " *M", comment = "For nouveau" } 8 | DRM_I915 = { value = " *M", comment = "For i915, crocus, or iris" } 9 | DRM_VMWGFX = { value = " *M", comment = "For svga" } 10 | DRM_VGEM = { value = " *", comment = "For LLVMPipe or Softpipe" } 11 | -------------------------------------------------------------------------------- /xincludes/tex-system.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --with-system-...: Unless this parameter is used, 8 | the included versions of these libraries will be statically compiled 9 | into the programs which need them. If you decided not to install a 10 | recommended library, omit the corresponding switch. 11 | 12 | -------------------------------------------------------------------------------- /qol/qol.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Quality of Life 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /wine/winechapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Wine 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /multilib/multilib.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Multilib 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /steam/steamchapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Steam 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /pdf-fixups.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $# -lt 1 ] ; then 4 | echo "This script needs the location of the fo file to update" 5 | exit 1 6 | fi 7 | 8 | 9 | FILE=$1 10 | 11 | LINE=$( grep -n "DO NOT EDIT" $FILE | cut -f1 -d: ) 12 | LINE=$(( LINE - 1 )) 13 | 14 | # Not needed 15 | #sed -i -e "$LINE s/monospace/&\" font-size=\"9pt/" $FILE 16 | sed -i -e "s/monospace/&\" font-size=\"9pt/g" $FILE 17 | 18 | # Break a block of code at the right place 19 | sed -i -e 's@gcc --version@&@' $FILE 20 | -------------------------------------------------------------------------------- /xincludes/meson-wrap-nofallback.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --wrap-mode=nofallback: This switch prevents 8 | meson from using subproject fallbacks for any 9 | dependency declarations in the build files, stopping it downloading 10 | any optional dependency which is not installed on the system. 11 | 12 | -------------------------------------------------------------------------------- /xincludes/tex-xpdf.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --with-system-xpdf: Uniquely, this parameter has 8 | a non-standard meaning, it tells configure to use the 9 | system-installed poppler headers and library. 10 | Again, omit this if you have not installed 11 | poppler. 12 | 13 | -------------------------------------------------------------------------------- /xincludes/gtk-doc-rebuild-problem.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | : This parameter is normally 7 | used if GTK-Doc is installed and you wish 8 | to rebuild and install the API documentation. It is broken for 9 | this package due to the use of a long deprecated gtk-doc program 10 | that is no longer available. 11 | -------------------------------------------------------------------------------- /shareddeps/sdchapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Shared Dependencies 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /xincludes/SIOCGSTAMP.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | sed -i ... SIOCGSTAMP ...: In linux-5.2 the 8 | definitions of SIOCGSTAMP and SIOCGSTAMPNS were moved from 9 | <sys/socket.h> which packages have traditionally included to 10 | get them. The sed(s) to hard-code the values enable the package to 11 | compile correctly. 12 | 13 | -------------------------------------------------------------------------------- /introduction/introduction.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Introduction 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /steam/steam/steam-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | General setup ---> 7 | [*] Namespaces support ---> [NAMESPACES] 8 | [*] User namespace [USER_NS] 9 | -------------------------------------------------------------------------------- /xincludes/perl-build-install.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | This module is built using Build.PL: 8 | 9 | perl Build.PL && 10 | ./Build && 11 | ./Build test 12 | 13 | Now, as the root user: 14 | 15 | ./Build install 16 | 17 | 18 | -------------------------------------------------------------------------------- /xincludes/tex-shared.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --enable-shared: Use shared versions of 8 | libkpathsea, 9 | libptexenc, 10 | libsynctex, 11 | libtexlua52 and 12 | libtexluajit. 13 | 14 | -------------------------------------------------------------------------------- /xincludes/perl-standard-install.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | This module uses the standard build and installation instructions: 8 | 9 | perl Makefile.PL && 10 | make && 11 | make test 12 | 13 | Now, as the root user: 14 | 15 | make install 16 | 17 | 18 | -------------------------------------------------------------------------------- /xincludes/use-unzip.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | The package source is distributed in zip 8 | format and requires unzip (or 9 | bsdunzip from libarchive). 10 | You should create a directory and change to that directory before 11 | unzipping the file to ease the removal of the source files after the 12 | package has been installed. 13 | 14 | -------------------------------------------------------------------------------- /shareddeps/drivers/nvidia-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Graphics support ---> 8 | <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> 9 | ... [DRM] 10 | -------------------------------------------------------------------------------- /xincludes/gst10-objc-error.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | If you do not have an Objective-C compiler installed, the 10 | build system for this package will emit a warning about a failed sanity 11 | check. This is harmless, and it is safe to continue. 12 | -------------------------------------------------------------------------------- /shareddeps/dps/x/libevdev-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Input device support ---> 8 | -*- Generic input layer (needed for keyboard, mouse, ...) [INPUT] 9 | <*/M> Event interface [INPUT_EVDEV] 10 | -------------------------------------------------------------------------------- /kernel-config/qol/gamepad.toml: -------------------------------------------------------------------------------- 1 | USB_SUPPORT="*" 2 | HID_SUPPORT="*" 3 | HID="*M" 4 | INPUT="*" 5 | INPUT_JOYSTICK="*" 6 | JOYSTICK_GAMECON = { value = "*", comment = "For older gamepads" } 7 | JOYSTICK_XPAD = { value = "*", comment = "For Xbox gamepad support" } 8 | JOYSTICK_XPAD_FF=" *" 9 | JOYSTICK_XPAD_LEDS=" *" 10 | HID_NINTENDO = { value = "*", comment = "For Nintendo Switch gamepad support" } 11 | NINTENDO_FF=" *" 12 | HID_WIIMOTE = { value = " *M", comment = "For Nintendo Wii and Wii U controller support" } 13 | HID_SONY = { value = "*M", comment = "For Playstation gamepad support" } 14 | SONY_FF=" *" 15 | HID_STEAM = { value = "*", comment = "For Steam controllers" } 16 | -------------------------------------------------------------------------------- /xincludes/tex-prefix.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | --prefix=, 8 | --bindir=, 9 | --datarootdir=, 10 | and other dir switches: these switches ensure that the files 11 | installed from source 12 | will overwrite any corresponding files previously installed by 13 | install-tl-unx so that the alternative methods of 14 | installing texlive are consistent. 15 | 16 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | # Ok, so you have downloaded the XML source. Now what? 2 | 3 | You are probably wanting to convert these XML files to easier to read HTML. 4 | 5 | To install the programs you need to generate html, you need 6 | to have or install the following packages: 7 | 8 | - libxml2 9 | - libxslt 10 | - docbook-xsl-nons-1.79.2 11 | - docbook-4.5-dtd 12 | - tidy 13 | 14 | Furthermore, you can also generate a PDF file, but need an extra package: 15 | 16 | - fop (depends on apache-ant which depends on a JDK) 17 | 18 | The installation instructions for all these packages are available 19 | in the BLFS book from one of the mirrors found at 20 | https://www.linuxfromscratch.org/blfs. 21 | -------------------------------------------------------------------------------- /shareddeps/audio/alsa-lib-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | <*/M> Sound card support ---> [SOUND] 8 | # Select settings and drivers appropriate for your hardware 9 | # in the submenu: 10 | <*/M> Advanced Linux Sound Architecture ---> [SND] 11 | -------------------------------------------------------------------------------- /xincludes/lib-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | As with most libraries, there is no configuration to do, save that the 7 | library directory, i.e., /opt/lib or 8 | /usr/local/lib should appear in 9 | /etc/ld.so.conf so that ldd can find 10 | the shared libraries. After checking that this is the case, 11 | /sbin/ldconfig should be run while logged in as 12 | root. 13 | -------------------------------------------------------------------------------- /xincludes/gsettings-destdir.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | If you installed the package to your system using a 8 | DESTDIR method, 9 | /usr/share/glib-2.0/schemas/gschemas.compiled 10 | was not updated/created. Create (or update) the file using the following 11 | command as the root user: 12 | 13 | 14 | glib-compile-schemas /usr/share/glib-2.0/schemas 15 | 16 | -------------------------------------------------------------------------------- /kernel-config/testdata/Kconfig: -------------------------------------------------------------------------------- 1 | menu "Master section" 2 | 3 | menu "Subsection" 4 | 5 | config REQU_PAR 6 | bool "Required parameter" 7 | 8 | config REQU_PAR_NMOD 9 | tristate "Required parameter (not as module)" 10 | 11 | config REQU_PAR_MOD 12 | tristate "Required parameter (could be a module)" 13 | 14 | config REQU_PAR_MOD_ONLY 15 | tristate "Required parameter (as a module)" 16 | 17 | config OPT_PAR 18 | tristate "Optional parameter" 19 | 20 | config OPT_PAR_MOD_ONLY 21 | tristate "Optional parameter (as a module if enabled)" 22 | 23 | config INCOMP_PAR 24 | bool "Incompatible parameter" 25 | 26 | config INCOMP_PAR_MOD 27 | tristate "Incompatible parameter (even as module)" 28 | 29 | endmenu # subsection 30 | 31 | endmenu # master section 32 | -------------------------------------------------------------------------------- /shareddeps/security/elogind-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | File systems ---> 7 | [*] Inotify support for userspace [INOTIFY_USER] 8 | Pseudo filesystems ---> 9 | [*] Tmpfs virtual memory file system support (former shm fs) [TMPFS] 10 | [*] Tmpfs POSIX Access Control Lists [TMPFS_POSIX_ACL] 11 | -------------------------------------------------------------------------------- /xincludes/cmake-skip-install-rpath.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | -DCMAKE_SKIP_INSTALL_RPATH=ON: This switch 9 | makes cmake remove hardcoded library search paths 10 | (rpath) when installing a binary executable file or a shared library. 11 | This package does not need rpath once it's installed into the standard 12 | location, and rpath may sometimes cause unwanted effects or even 13 | security issues. 14 | 15 | -------------------------------------------------------------------------------- /introduction/welcome/contact.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Contact Information 13 | Zeckma: 14 | zeckma.tech@gmail.com; 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /shareddeps/dps/x/libevdev-test-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Input device support ---> 8 | -*- Generic input layer (needed for keyboard, mouse, ...) [INPUT] 9 | [*] Miscellaneous devices ---> [INPUT_MISC] 10 | <*/M> User level driver support [INPUT_UINPUT] 11 | -------------------------------------------------------------------------------- /expand_date: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from os import getcwd 4 | from subprocess import check_output, DEVNULL 5 | from sys import stdin, stdout, argv 6 | 7 | content = stdin.read() 8 | 9 | # To editors: 10 | # The usage of FETCH_HEAD here is very tricky. This is only intended for 11 | # the cron job running "git pull" periodically. Humans should NOT rely on 12 | # this script at all. Do NOT add "dater" filter into your .git/config. 13 | # For editors, just use `git log ${path}` to show the history of a file. 14 | cmd = [ 'git', 'log', '-1', '--pretty=%ad', 'FETCH_HEAD', '--', argv[1] ] 15 | try: 16 | date = check_output(cmd, cwd = getcwd(), stderr=DEVNULL).decode().rstrip() 17 | content = content.replace('$Date$', '$Date: %s$' % date) 18 | except Exception: 19 | pass 20 | stdout.write(content) 21 | -------------------------------------------------------------------------------- /xincludes/texrecommendlibs.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | The source ships with its own versions of many 8 | libraries, and will use them unless it is forced to use the system 9 | versions. The following are recommended so that the system version 10 | will be used: 11 | , 12 | , 13 | , 14 | , 15 | , 16 | (built with graphite2 enabled), 17 | , 18 | (used by at least context and xelatex), 19 | and 20 | 21 | -------------------------------------------------------------------------------- /stylesheets/glfs-chunked.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | blfs 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /stylesheets/glfs-pdf.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | blfs 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /xincludes/rm-la-file-referring-icu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities;]> 6 | 7 | The libtool archive file from this package is referring to the 8 | libraries from . Such a reference may cause 9 | packages depending on this package to be unnecessary linked against 10 | the ICU libraries and increase the burden to rebuild packages if 11 | ICU is updated to a new major version. As we've explained in 12 | , these libtool archive files are unneeded 13 | anyway. So as the &root; user, remove the libtool archive file now: 14 | 15 | -------------------------------------------------------------------------------- /stylesheets/glfs-nochunks.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | blfs 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /qol/qolintro.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Quality of Life 13 | 14 | 15 | Now that you have installed Steam, 16 | Wine, or both, you may be satisfied with your current setup. 17 | However, there are some quality of life improvements that may be of use to 18 | you. This chapter goes through a handful of those improvements. 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /xincludes/texoptional.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | The source ships with its own versions of several libraries which are either 8 | not under active development, or only used for limited functionality. If 9 | you install these, as with some other optional dependencies in this book you 10 | will need to tell configure to use the system versions. 11 | GD, 12 | t1lib, 13 | ZZIPlib, 14 | TECkit 15 | 16 | -------------------------------------------------------------------------------- /xincludes/gtk-update-icon-cache.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | This package installs icon files into the /usr/share/icons/hicolor hierarchy and you 9 | can improve system performance and memory usage by updating 10 | /usr/share/icons/hicolor/index.theme. To perform 11 | the update you must have installed and issue the 12 | following command as the root 13 | user: 14 | 15 | 16 | gtk-update-icon-cache -qtf /usr/share/icons/hicolor 17 | 18 | -------------------------------------------------------------------------------- /xincludes/update-desktop-database.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | This package installs desktop files into the 9 | /usr/share/applications 10 | hierarchy and you can improve system performance and memory usage by 11 | updating /usr/share/applications/mimeinfo.cache. 12 | To perform the update you must have 13 | installed and issue the following 14 | command as the root user: 15 | 16 | 17 | update-desktop-database -q 18 | 19 | -------------------------------------------------------------------------------- /kernel-config/kernel_version.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | def kernel_version(path): 4 | version = None 5 | patchlevel = None 6 | sublevel = None 7 | 8 | with open(path + 'Makefile') as f: 9 | for line in f: 10 | if line.startswith('VERSION ='): 11 | version = line[len('VERSION ='):].strip() 12 | elif line.startswith('PATCHLEVEL ='): 13 | patchlevel = line[len('PATCHLEVEL ='):].strip() 14 | elif line.startswith('SUBLEVEL ='): 15 | sublevel = line[len('SUBLEVEL ='):].strip() 16 | 17 | assert(version and patchlevel and sublevel) 18 | return '.'.join([version, patchlevel, sublevel]) 19 | 20 | if __name__ == '__main__': 21 | from sys import argv 22 | 23 | path = argv[1] 24 | if path[:-1] != '/': 25 | path += '/' 26 | 27 | print(kernel_version(path)) 28 | -------------------------------------------------------------------------------- /introduction/welcome/askhelp.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Asking for Help 13 | 14 | 15 | Make an issue on , 16 | and responses will be swift. Making repeat issues or asking questions 17 | that have already been answered is alright, but doing some research 18 | beforehand is appreciated. 19 | 20 | 21 | 22 | GLFS also does not have any mailing lists so making issues is the best 23 | way to get support or report issues with the book's instructions. 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /introduction/welcome/newsserver.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | News Server 13 | 14 | All the mailing lists hosted at &lfs-domainname; are also 15 | accessible via the NNTP server. All messages posted to a mailing 16 | list will be copied to its correspondent newsgroup. Note, however, 17 | that as this is written, it is not possible to write to the mailing 18 | lists via the NNTP service. 19 | 20 | 21 | The news server can be reached at news.&lfs-domainname;. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xorg-server-simpledrm-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Firmware Drivers ---> 8 | [*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB] 9 | Graphics support ---> 10 | <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> 11 | ... [DRM] 12 | <*> Simple framebuffer driver [DRM_SIMPLEDRM] 13 | -------------------------------------------------------------------------------- /xincludes/texprogs.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | The programs included in TeX 10 | are too numerous to individually list. Please refer to the individual 11 | program HTML and PDF pages in the 12 | 14 | various html, man, or pdf files within the subdirectories of 15 | &texlive-year;/texmf-dist/. 16 | Using texdoc pdflatex ( replace 17 | pdflatex with the command name ) may also be 18 | useful 19 | 20 | -------------------------------------------------------------------------------- /shareddeps/audio/alsa.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | 13 | ALSA 14 | 15 | 16 | ALSA Description 17 | 18 | 19 | 20 | The Linux kernel now provides ALSA support by default. However, 21 | applications need to interface to that capability. The following three 22 | sections of the book deal with the separate components of ALSA. 23 | More Alsa packages if needed have installation instructions at 24 | . 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /xincludes/perl-unsafe-install.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | This module uses the 'unsafe' build and installation instructions 11 | (In perl-5.26.0 the use of the current 12 | directory in @INC was removed for security 13 | reasons and this module has not been updated) : 14 | 15 | PERL_USE_UNSAFE_INC=1 perl Makefile.PL && 16 | make && 17 | make test 18 | 19 | Now, as the root user: 20 | 21 | make install 22 | 23 | 24 | -------------------------------------------------------------------------------- /book/whoread.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Who Would Want to Read this Book 13 | 14 | 15 | This book is aimed towards users who want to use a system following 16 | the Linux From Scratch book but also want to use Steam 17 | and/or Wine. 18 | The official Linux From Scratch and Beyond Linux From Scratch books 19 | do not support, and the maintainers do not wish to support, these two 20 | packages for the forseeable future. However, users should still have 21 | both the choice, and an easy to follow guide, to get these packages 22 | working on their system. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /book/errata.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Errata 13 | 14 | 15 | The software used to create BLFS applications is constantly being 16 | updated and enhanced. Security warnings and bug fixes may become available 17 | after the BLFS book has been released. To check whether the package 18 | versions or instructions in this release of BLFS need any modifications to 19 | accommodate security vulnerabilities or other bug fixes, please visit 20 | before proceeding with your build. You should note 21 | any changes shown and apply them to the relevant section of the book as you 22 | progress with building the applications in BLFS. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xorg-server-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Graphics support ---> 8 | <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> 9 | ... [DRM] 10 | < /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX] 11 | < /*/M> DRM Support for bochs dispi vga interface (qemu stdvga) 12 | ... [DRM_BOCHS] 13 | < /*/M> Virtual Box Graphics Card [DRM_VBOXVIDEO] 14 | -------------------------------------------------------------------------------- /book/foreword.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Foreword 13 | 14 | 15 | This book is separate from LFS and BLFS, where it should be followed after 16 | LFS but before BLFS. On x86_64 systems, this book is meant to be followed 17 | after Thomas' Multilib mirror of LFS. 18 | 19 | 20 | 21 | This book is also meant specifically for LFS systems not using Systemd. 22 | It uses SysV bootscripts but if you get bootscripts meant for another init 23 | system, or make your own, then the instructions will work just as well. 24 | 25 | 26 | Enjoy! 27 | 28 |
29 | Zeckma 30 | August 2nd, 2024 31 |
32 | 33 |
34 | -------------------------------------------------------------------------------- /multilib/coveringml.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Covering Multilib 12 | 13 | 14 | In this chapter, we cover multilib, from explaining what it is, 15 | if you need it, and how to get multilib support. Please do not 16 | skip this chapter and read through most of it carefully. 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /kernel-config/Makefile: -------------------------------------------------------------------------------- 1 | INPUT = $(wildcard */*.toml */*/*.toml */*/*/*.toml */*/*/*/*.toml) 2 | OUTPUT = $(patsubst %.toml, ../%-kernel.xml, $(INPUT)) 3 | 4 | ifeq ($(KERNEL_TREE),) 5 | $(error "must set KERNEL_TREE=/path/to/kernel/source") 6 | endif 7 | 8 | all: $(OUTPUT) ../introduction/welcome/conventions-kernel.xml 9 | 10 | kernel.version: s-kernel-version; @true 11 | 12 | .PHONY: s-kernel-version 13 | s-kernel-version: 14 | ./kernel_version.py $(KERNEL_TREE) > tmp-kernel.version 15 | if ! diff tmp-kernel.version kernel.version ; then \ 16 | mv tmp-kernel.version kernel.version; \ 17 | else \ 18 | rm tmp-kernel.version; \ 19 | fi 20 | touch s-kernel-version 21 | 22 | %-kernel.xml.tmp: %.toml kernel-config.py kernel_version.py kernel.version 23 | ./kernel-config.py $(KERNEL_TREE) $< > $@ 24 | 25 | ../%-kernel.xml: %-kernel.xml.tmp 26 | mv $< $@ 27 | 28 | ../introduction/welcome/conventions-kernel.xml: kernel-config.py testdata/Kconfig testdata/config.toml.example 29 | ./kernel-config.py testdata testdata/config.toml.example > $@ 30 | -------------------------------------------------------------------------------- /xincludes/mozshm.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities;]> 6 | 7 | 8 | 15 | 16 | 17 | If you are compiling this package in chroot you must 18 | ensure that /dev/shm is mounted. If you do not 19 | do this, the Python configuration will fail 20 | with a traceback report referencing 21 | /usr/lib/pythonN.N/multiprocessing/synchronize.py. 22 | As the &root; user, run: 23 | 24 | mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm 25 | 26 | 27 | -------------------------------------------------------------------------------- /shareddeps/dps/x/x7driver-wacom-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | [*] HID bus support ---> [HID_SUPPORT] 8 | {*/M} HID bus core support [HID] 9 | Special HID drivers ---> 10 | <*/M> Wacom Intuos/Graphire tablet support (USB) [HID_WACOM] 11 | USB HID support ---> 12 | <*/M> USB HID transport layer [USB_HID] 13 | [*] USB support ---> [USB_SUPPORT] 14 | <*/M> Support for Host-side USB [USB] 15 | -------------------------------------------------------------------------------- /xincludes/update-icons-and-desktop.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | This package installs icon files into the /usr/share/icons/hicolor hierarchy and 10 | desktop files into the /usr/share/applications hierarchy. You can 12 | improve system performance and memory usage by updating 13 | /usr/share/icons/hicolor/index.theme and 14 | /usr/share/applications/mimeinfo.cache. To perform 15 | the update you must have installed (for the icon 16 | cache) and (for the desktop cache) 17 | and issue the following commands as the root user: 19 | 20 | 21 | gtk-update-icon-cache -qtf /usr/share/icons/hicolor && 22 | update-desktop-database -q 23 | 24 | -------------------------------------------------------------------------------- /steam/steamintro.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Steam 12 | 13 | 14 | This chapter is dedicated to covering all the dependencies 15 | (both 64-bit and 32-bit compilation instructions), 16 | configuration of those dependencies, and troubleshooting 17 | that is required to get Steam working on a LFS platform. 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /introduction/welcome/conventions-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Master section ---> 7 | Subsection ---> 8 | [*] Required parameter [REQU_PAR] 9 | <*> Required parameter (not as module) [REQU_PAR_NMOD] 10 | <*/M> Required parameter (could be a module) [REQU_PAR_MOD] 11 | <M> Required parameter (as a module) [REQU_PAR_MOD_ONLY] 12 | < /*/M> Optional parameter [OPT_PAR] 13 | < /M> Optional parameter (as a module if enabled) [OPT_PAR_MOD_ONLY] 14 | [ ] Incompatible parameter [INCOMP_PAR] 15 | < > Incompatible parameter (even as module) [INCOMP_PAR_MOD] 16 | -------------------------------------------------------------------------------- /qol/gamepad.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Gamepad Support 13 | 14 | 15 | Gamepads, or more widely known as game controllers, can be used with many 16 | applications and games. However if you compiled the kernel yourself, the 17 | kernel drivers for gamepads are likely not enabled. Go ahead and enable 18 | the kernel options below and recompile the kernel if necessary. 19 | 20 | 21 | 22 | 23 | 24 | Now you should be able to plug in your gamepad and play. If you want to use 25 | the gamepad wirelessly, you will need to connect it via Bluetooth. You can 26 | enable Bluetooth by following the BLFS page BlueZ if you haven't already 28 | compiled it. If you have chosen to install a desktop environment, if not 29 | already done, you can likely install a bluetooth application specific to 30 | the desktop environment. 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /index.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /xincludes/texruntime.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | is used by the unmaintained 8 | ebong CTAN module (intended for writing Bengali in Rapid Roman Format). 9 | /usr/bin/python is also in the shebang line for the 10 | latex-papersize and lilyglyphs scripts, and documentation at CTAN says both 11 | modules have been updated to work with python3. In pythontex there are 12 | scripts to invoke python3 or python2 according to the system's version of 13 | python. is used by 14 | two scripts, one is for pTex (Japanese vertical writing) and the other is 15 | match_parens which might be generally useful. The perl module Tk, 17 | which needs to be run from an X11 session to run the tests and 18 | requires is used by one of the scripts 19 | for ptex 20 | and is needed for texdoctk (a GUI interface for finding documentation files 21 | and opening them with the appropriate viewer). 22 | ps2pdf, from , is 23 | used by some utilities and scripts. 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NOTICE 2 | 3 | This repo is now archived, and development has switched to 4 | https://github.com/glfs-book/glfs. 5 | 6 | # Gaming Linux From Scatch (GLFS) 7 | 8 | Gaming Linux From Scratch is a book that covers how to install packages 9 | like Steam and Wine after the Linux From Scratch book. 10 | 11 | # Where to Read 12 | 13 | Go to https://glfs-book.github.io/glfs/ and start going through the book! 14 | 15 | # Installation 16 | 17 | How do I convert these XML files to HTML myself? You need to have some software 18 | installed that deal with these conversions. Please read the `INSTALL.md` file to 19 | determine what programs you need to install and where to get instructions to 20 | install that software. 21 | 22 | After that, you can build the html with a simple **make** command. 23 | The default target builds the html in `$(HOME)/public_html/glfs.` 24 | 25 | For all targets, setting the parameter `REV=systemd` is needed to build the 26 | systemd version of the book. 27 | 28 | Furthermore, the dark theme is the default, but you can switch the theme by 29 | running `switch-theme.sh` with the parameter `light` or `dark`. 30 | 31 | Other Makefile targets are: `pdf`, `nochunks`, `validate`, and `glfs-patch-list`. 32 | 33 | `pdf`: builds GLFS as a PDF file. 34 | 35 | `nochunks`: builds GLFS in one huge file. 36 | 37 | `validate`: does an extensive check for xml errors in the book. 38 | 39 | `glfs-patch-list`: generates a list of all GLFS controlled patches in the book. 40 | -------------------------------------------------------------------------------- /obfuscate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # obfuscate.sh 4 | # obfuscate email addresses in XML/HTML 5 | # Script written (and slight perl modification) by Archaic 6 | # Modified from "sed -i" to old style "sed -e" by Manuel Canales 7 | # to prevent hangs on very long files, like nonckunked books. 8 | # Original Perl expression by Anderson Lizardo 9 | # Released under the GNU General Public License 10 | # 11 | # This script currently only seeks out mailto: addresses. If those same 12 | # addresses also appear in plaintext, we need to obfuscate those as well. 13 | # 14 | # This script was made for a very specific purpose so I was a bit lazy in 15 | # writing the regex's. 16 | # 17 | # Please send comments, enhancements, etc. to the above address 18 | 19 | #set -e # Bail on all errors 20 | 21 | # First, ensure that we are given a file to process 22 | # if [ $# -lt 1 ]; then 23 | # echo -e "\nYou must provide an input file." 24 | # exit 1 25 | # fi 26 | 27 | # Nothing like a backup plan! 28 | #cp "$1" "$1".bak 29 | 30 | for i in `grep -o '"mailto:.*@.*"' ${1} |cut -d\" -f2|sed -e 's|^mailto:||' -e 's|"$||'`; do 31 | link=`echo $i | perl -pe 's/[^\n]/"\\\&#".ord($&)."\;"/ge'` 32 | plaintext=`echo $i | sed -e 's|@| AT |' -e 's|\.| D0T |g'` 33 | cp ${1}{,.tmp} 34 | sed -e "s|mailto:$i|mailto:$link|" \ 35 | -e "s|$i|$plaintext|" ${1}.tmp > ${1} 36 | rm ${1}.tmp 37 | done 38 | #rm $FILE.tmp 39 | #exit 0 40 | -------------------------------------------------------------------------------- /book/bookinfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | $Date$ 11 | 12 | 13 | Gaming Linux<superscript>®</superscript> From Scratch 14 | 15 | Version &version; 16 | Published &releasedate; 17 | 18 | 19 | 20 | ©holder; 21 | 22 | 23 | 24 | 25 | ©rightdate; 26 | ©holder; 27 | 28 | 29 | 30 | Copyright © ©rightdate;, ©holder; 31 | 32 | All rights reserved. 33 | 34 | This book is licensed under a . 35 | 36 | 37 | Computer instructions may be extracted from the book under the 38 | . 39 | 40 | 41 | 42 | Linux is a registered trademark 43 | of Linus Torvalds. 44 | 45 | 46 | 47 | 48 | 49 | Development has switched over to 50 | . This site will no longer 51 | be maintained. 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /wine/whatiswine.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | What is Wine? 13 | 14 | 15 | Wine is an application that allows users 16 | to execute Windows software via a compatibilty layer. Although the 17 | acronym of WINE (Wine Is Not Emulation) describes itself as not an 18 | emulator but as a compatabilty layer, many still see it as one. 19 | 20 | 21 | 22 | Wine is geared towards running normal 23 | Windows software whereas Steam's Proton 24 | is more geared towards playing games at high performance. Trying 25 | to run regular Windows software may be troublesome with 26 | Proton but is no trouble to Wine. 27 | Even some games run better on Wine but 28 | struggle or simply don't launch with Proton. 29 | 30 | 31 | 32 | As Wine deals with a foreign format, 33 | it is to be expected that it depends on extra toolchains as well as 34 | other dependencies. Please check before 35 | continuing with this chapter. 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /steam/whatissteam.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | What is Steam? 13 | 14 | 15 | Steam is an application that can execute a variety of games 16 | and even software, which can even execute Windows applications 17 | without the need of Wine via the Steam tool Proton. This can 18 | can be a replacement for Wine although some applications might 19 | not work as expected. Most games are built for Windows but 20 | most work just fine via Proton and Proton works both on regular 21 | Linux distributions, including LFS without all the setup required 22 | for Wine. 23 | 24 | 25 | 26 | As Steam is a gaming application, it depends on many tools, 27 | libraries, and graphics APIs to function and perform as it should. 28 | Obvious among such software would be OpenGL, Vulkan, and graphics 29 | drivers. Less obvious software includes audio and a window manager 30 | or desktop environment. 31 | 32 | 33 | 34 | Please check to find what you will need 35 | before proceeding, although most of 36 | is a straight shot. There is some choice involved such as choosing 37 | if you want X11 or Wayland, Alsa or Pulseaudio, so forth. 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/xhtml/lfs-glossary.xsl: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | normalize.sort.input 21 | 22 | 23 | 24 | 25 | 26 | normalize.sort.output 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /wine/wineintro.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Wine 12 | 13 | 14 | This section covers how to install the dependencies of 15 | Wine, such as the GNAT and 16 | MinGW-w64 toolchains, as well as Wine 17 | itself and its configuration. 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /.github/workflows/publish-github-pages.yml: -------------------------------------------------------------------------------- 1 | # based on https://github.com/actions/starter-workflows/blob/main/pages/hugo.yml 2 | name: Deploy site to Pages 3 | 4 | on: 5 | # Allows you to run this workflow manually from the Actions tab 6 | workflow_dispatch: 7 | 8 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 9 | permissions: 10 | contents: read 11 | pages: write 12 | id-token: write 13 | 14 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 15 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 16 | concurrency: 17 | group: "pages" 18 | cancel-in-progress: false 19 | 20 | # Default to bash 21 | defaults: 22 | run: 23 | shell: bash 24 | 25 | jobs: 26 | # Build job 27 | build: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - name: Install dependencies 31 | run: | 32 | sudo apt update 33 | sudo apt -y install libxml2 libxml2-utils libxslt1.1 xsltproc docbook-xsl docbook-xsl-ns docbook-xsl-doc-html tidy make 34 | - name: Checkout 35 | uses: actions/checkout@v4 36 | - name: Setup Pages 37 | id: pages 38 | uses: actions/configure-pages@v5 39 | - name: Build 40 | run: | 41 | pwd 42 | echo $default-branch 43 | make 44 | - name: Upload artifact 45 | uses: actions/upload-pages-artifact@v3 46 | with: 47 | path: /home/runner/public_html/glfs 48 | 49 | # Deployment job 50 | deploy: 51 | environment: 52 | name: github-pages 53 | url: ${{ steps.deployment.outputs.page_url }} 54 | runs-on: ubuntu-latest 55 | needs: build 56 | steps: 57 | - name: Deploy to GitHub Pages 58 | id: deployment 59 | uses: actions/deploy-pages@v4 60 | -------------------------------------------------------------------------------- /multilib/achievingml.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Achieving Multilib 13 | 14 | 15 | On many distros, getting multilib support is very straight 16 | forward. There exists a guide that can act as a replacement 17 | for LFS: compiling and configuring a system that can boot, 18 | run, and compile software; and also have that same ability 19 | with 32-bit. It acts to form the basis that will allow you 20 | to follow any of the instructions laid out in the Steam 21 | and Wine chapters. 22 | 23 | 24 | 25 | Such a guide is maintained by Thomas Trepl at 26 | . 27 | It is very comprehensive and also covers how to get x32-bit 28 | support, a format that can run 64-bit code with 32-bit registers. 29 | That format is unnecessary. Most applications that are covered here 30 | either don't: support it, require it, or is simply not necessary 31 | to compile for any sort of interest. Therefore, any mention 32 | of x32-bit, x32, mx32, and x32-bit instructions can be skipped. 33 | Most users will not need it and the extra support in compilers 34 | and libraries on the system will be useless, taking up disk space. 35 | 36 | 37 | 38 | The same principles of compiling for 32-bit in that book will also 39 | apply to this book as well. If you haven't already, read 40 | 41 | to check what basic principles still apply in this book when targeting 42 | 32-bit. 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /shareddeps/drivers/gpuconfig-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Graphics support ---> 8 | <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> 9 | ... [DRM] 10 | # For r300 or r600: 11 | < /*/M> ATI Radeon [DRM_RADEON] 12 | # For radeonsi: 13 | < /*/M> AMD GPU [DRM_AMDGPU] 14 | [*] Enable amdgpu support for SI parts [DRM_AMDGPU_SI] 15 | [*] Enable amdgpu support for CIK parts [DRM_AMDGPU_CIK] 16 | Display Engine Configuration ---> 17 | [*] AMD DC - Enable new display engine [DRM_AMD_DC] 18 | # For nouveau: 19 | < /*/M> Nouveau (NVIDIA) cards [DRM_NOUVEAU] 20 | # For i915, crocus, or iris: 21 | < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics [DRM_I915] 22 | # For LLVMPipe or Softpipe: 23 | < /*> Virtual GEM provider [DRM_VGEM] 24 | # For svga: 25 | < /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX] 26 | -------------------------------------------------------------------------------- /git-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "$1" = sysv ]; then 4 | SYSV="INCLUDE" 5 | SYSTEMD="IGNORE " 6 | elif [ "$1" = systemd ]; then 7 | SYSV="IGNORE " 8 | SYSTEMD="INCLUDE" 9 | else 10 | echo You must provide either \"sysv\" or \"systemd\" as argument 11 | exit 1 12 | fi 13 | 14 | echo "" > conditional.ent 15 | echo "" >> conditional.ent 16 | 17 | if ! git status > /dev/null; then 18 | # Either it's not a git repository, or git is unavaliable. 19 | # Just workaround. 20 | echo "" > version.ent 21 | echo "" >> version.ent 22 | echo "" >> version.ent 23 | echo "" >> version.ent 24 | exit 0 25 | fi 26 | 27 | export LC_ALL=en_US.utf8 28 | export TZ=America/Chicago 29 | 30 | commit_date=$(git show -s --format=format:"%cd" --date=local) 31 | short_date=$(date --date "$commit_date" "+%Y-%m-%d") 32 | 33 | year=$(date --date "$commit_date" "+%Y") 34 | month=$(date --date "$commit_date" "+%B") 35 | day_digit=$(date --date "$commit_date" "+%d") 36 | day=$(echo $day_digit | sed 's/^0//') 37 | 38 | case $day in 39 | "1" | "21" | "31" ) suffix="st";; 40 | "2" | "22" ) suffix="nd";; 41 | "3" | "23" ) suffix="rd";; 42 | * ) suffix="th";; 43 | esac 44 | 45 | full_date="$month $day$suffix, $year" 46 | 47 | sha="$(git describe --abbrev=1 --always --exclude '*')" 48 | version=$(echo -n "#" && echo -n "$sha") 49 | 50 | if [ "$(git diff HEAD | wc -l)" != "0" ]; then 51 | version="$version" 52 | fi 53 | 54 | echo "" > version.ent 55 | echo "" >> version.ent 56 | echo "" >> version.ent 57 | echo "" >> version.ent 58 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/chunk-master.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /shareddeps/net/netconnect.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Connecting to the Internet 13 | 14 | 15 | The LFS book covers setting up networking by connecting to a LAN 16 | with a static IP address. There are other methods used to obtain 17 | an IP address and connect to a LAN and other networks (such as 18 | the internet). The most popular method is DHCP. 19 | 20 | 21 | 22 | DHCP stands for Dynamic Host Configuration Protocol. It is a 23 | protocol used by many sites to automatically provide information 24 | such as IP addresses, subnet masks and routing information to 25 | computers. If your network uses DHCP, you will need a DHCP client 26 | in order to connect to it. 27 | 28 | 29 | 30 | How to Connect to the Internet 31 | 32 | 33 | In order to use DHCP, you will need a DHCP client, 34 | 35 | dhcpcd. You may also be wanting to connect to the 36 | internet wirelessly. In order to do that, you should first 37 | configure the kernel to support that, the instructions for 38 | that being at 39 | . 40 | After that, you will need a tool to connect to the internet, suitable 41 | ones being 42 | iw, 43 | 44 | Wireless Tools, and 45 | 46 | wpa_supplicant. 47 | You will only need one of those, whichever one is up to you. 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /multilib/whatisml.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | What is Multilib? 13 | 14 | 15 | Multilib is essentially the ability to at least execute software 16 | that was built for another architecture different from your own. 17 | For example, and most common: the user has a x86_64 CPU that is 18 | wanting to execute software built to run on a x86 CPU. To better 19 | establish terms, x86_64 is 64-bit and amd64, whereas x86 is 20 | 32-bit and ix86 where can vary from 3 to 6 21 | usually. 22 | 23 | 24 | 25 | 26 | How Does it Work? 27 | 28 | 29 | Multilib can be achieved firstmost by having the hardware 30 | capable of x86 emulation, then having libraries built for x86. 31 | We will get into how to compile x86 libraries and software and 32 | their execution later, but know the general process for LFS 33 | and BLFS is to almost always compile software and that's what 34 | we'll be doing. 35 | 36 | 37 | 38 | 39 | It is worth noting that when the term multilib is used throughout 40 | this book, it is referring to running i686 instructions on an x86_64 41 | host. This does not cover running other 32 bit architectures on their 42 | 64 bit extensions, like armhf on arm64. 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Am I Capable of Multilib? 51 | 52 | 53 | If you are on a 32-bit CPU, you are not capable of multilib. 54 | If you are on a 64-bit CPU, and are capable of 32-bit emulation, 55 | then you are capable of multilib. 56 | 57 | 58 | 59 | Run uname -m to find out if you are on a 60 | capable CPU. 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /introduction/welcome/welcome.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Welcome to GLFS 12 | 13 | 14 | The GLFS book is designed to be taken in optional chunks 15 | and cover most setups users might be using. It is different 16 | from both LFS and BLFS in that LFS is meant to be followed 17 | almost command by command unless otherwise told so, and BLFS 18 | has packages scattered throughout in chapters, only certain 19 | ones meant to be followed through, such as Xorg 20 | . 21 | 22 | 23 | 24 | Please read for more 25 | information regarding that. Along with that, please read most 26 | of this section carefully as it explains important conventions 27 | to help you if you were to get lost or stuck. 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/xhtml/lfs-admon.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | ../images/ 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | Note 29 | Warning 30 | Caution 31 | Tip 32 | Important 33 | Note 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | [{$alt}] 43 | 44 | 45 | 46 | 47 |

48 | 49 |

50 | 51 |
52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/profile.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /steam/steam/steamtrblshoot.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Troubleshooting Steam 13 | 14 | 15 | On normal Linux distributions, there is not much work to be done after 16 | installing Steam. Just launch it, wait for it 17 | to download the newest runtime, login, install Proton, then start playing 18 | the games/apps you just installed. Currently on an LFS system with current 19 | GLFS packages and configuration, getting games and apps to work takes one 20 | more step, one that must be repeated for every game and app you install. 21 | 22 | 23 | 24 | Launch Options 25 | 26 | 27 | Any game or app, native or not, will fail to launch for an unknown reason. 28 | It will attempt to launch, and by the time a window should be created, Steam 29 | will fail and shut down the process. This can be resolved by going into the 30 | game or app's launch options and set the following: 31 | 32 | 33 | LD_PRELOAD="" %command% 34 | 35 | 36 | The game or app should now proceed to launch just fine. Work is being done 37 | here and there to find out why it is necessary for every game or app, but 38 | it might be failing to find libraries in /run/host, 39 | despite libraries being located in /lib, and if you're 40 | on x86_64 and did multilib, /lib32. 41 | 42 | 43 | 44 | If the steam overlay is desired, enter the following launch option instead: 45 | 46 | 47 | LD_PRELOAD="$HOME/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so" %command% 48 | 49 | 50 | This launch option loads a library necessary for the steam overlay to function. 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /steam/steam/steamdeps.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Steam Dependencies 13 | 14 | 15 | Steam is a 32-bit application which allows users to run Steam 16 | on 32-bit hardware, with a few downsides according to a few 17 | users, although not a lot of word is out there as most users 18 | who do use Steam are on a 64-bit computer. Thus, users will 19 | need the ability to run 32-bit software. Read up on 20 | and see if that's you. If so, 21 | you must also follow the 32-bit/lib32 instructions of each 22 | dependency listed unless the section doesn't have those 23 | instructions or were told it is not needed. 24 | 25 | 26 | 27 | Required 28 | 29 | 30 | , 31 | , 32 | , 33 | Display server ( or 34 | w/ ), 35 | (32-bit is required for multilib), 36 | , 37 | w/ the -Dglvnd=enabled 38 | option (32-bit mesa is not required for multilib 39 | IF you are using ), and 40 | 41 | 42 | 43 | 44 | 45 | 46 | Recommended (Ordered By Importantance) 47 | 48 | 49 | (required for most games), 50 | , , 51 | 52 | Zenity, lsof, 53 | and 54 | 55 | 56 | 57 | 58 | 59 | Optional 60 | 61 | 62 | /etc/lsb-release (for Steam surveys) 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /shareddeps/gfxapi/vk/introvk.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Intro to Vulkan 13 | 14 | 15 | What is Vulkan 16 | 17 | 18 | Vulkan is a low-level, low-overhead cross-platform API and 19 | open standard for 3D graphics and computing. It was intended 20 | to address the shortcomings of OpenGL, and allow developers 21 | more control over the GPU. 22 | 23 | 24 | 25 | Thus, when well optimized, applications written with Vulkan 26 | in mind perform better than those written in OpenGL. Most 27 | Windows games are written in DirectX. DXVK, which is 28 | part of Steam's Proton and 29 | Wine, converts DirectX instructions 30 | to Vulkan calls and has very little overhead. It performs almost 31 | as good as on Windows, whereas converting the DirectX instructions 32 | to OpenGL calls has much more overhead. 33 | 34 | 35 | 36 | 37 | 38 | What do I need to install? 39 | 40 | 41 | Unlike OpenGL where it had two options to get the libraries 42 | and possibly cause confusion and extra thought, the Vulkan 43 | library is supplied directly from KhronosGroup. 44 | must be installed before 45 | . While this is the baseline for what is 46 | needed to get Vulkan working, some applications require more software 47 | in relation to Vulkan: , 48 | , and . 49 | They are necessary to compile Vulkan shaders into bytecode which Vulkan 50 | as an API can process, unlike OpenGL where shader code is written 51 | as a string, OpenGL compiles it into a binary, then runs it every frame. 52 | Using bytecode for OpenGL is possible, however, and requires extra setup. 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /xincludes/pip3-cmd-explain.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | Command Explanations 10 | 11 | 12 | -w dist: builds the appropriate 13 | "wheel" for this module in the directory 14 | dist. 15 | 16 | 17 | 18 | --no-build-isolation: tells pip3 to run the 19 | build in the system environment instead of creating a temporary 20 | build environment. 21 | 22 | 23 | 24 | --no-deps: prevents pip3 from building wheels for 25 | the project's dependencies. 26 | 27 | 28 | 29 | --no-index: ignores the package index 30 | (only looking at --find-links URLs instead). 31 | 32 | 33 | 34 | --find-links dist: looks for links to archives 35 | such as wheel (.whl) files in the directory 36 | dist. 37 | 38 | 39 | 40 | --no-cache-dir: disables the cache to prevent 41 | a warning when installing as the &root; user. 42 | 43 | 44 | 45 | --no-user: Prevent mistakenly running the 46 | install command as a non-root user. 47 | 48 | 49 | 50 | : Upgrade the package to the newest 51 | available version. This option is used with the install command 52 | if a version of the package is already installed. 53 | 54 | 55 | 56 | : Reinstall the package even if 57 | it is up-to-date. This option is used with the install command 58 | if reinstalling the package or reverting to an earlier version 59 | of the package. 60 | 61 | 62 | 63 | : Do not install package dependencies. 64 | This option may be needed with the --upgrade or --force-reinstall 65 | options. 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /shareddeps/drivers/hwdata.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | hwdata-&hwdata-version; 16 | 17 | 18 | hwdata 19 | 20 | 21 | 22 | Introduction to hwdata 23 | 24 | 25 | The hwdata package contains 26 | current PCI and vendor id data. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Installation of hwdata 48 | 49 | 50 | Install hwdata by 51 | running the following commands: 52 | 53 | 54 | ./configure --prefix=/usr --disable-blacklist 55 | 56 | 57 | This package does not come with a test suite. 58 | 59 | 60 | 61 | Now, as the &root; user: 62 | 63 | 64 | make install 65 | 66 | 67 | 68 | 69 | Contents 70 | 71 | 72 | Installed Programs 73 | Installed Library 74 | Installed Directory 75 | 76 | 77 | None 78 | None 79 | 80 | /usr/share/hwdata 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/chunk-slave.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | book toc,title 43 | preface toc 44 | part toc 45 | chapter toc 46 | appendix nop 47 | sect1 nop 48 | sect2 nop 49 | sect3 nop 50 | sect4 nop 51 | sect5 nop 52 | section nop 53 | 54 | 55 | 56 | 1 57 | 58 | 59 | 3 60 | 61 | 62 | -------------------------------------------------------------------------------- /shareddeps/drivers/ply.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | ply-&ply-version; 16 | 17 | 18 | ply 19 | 20 | 21 | 22 | Introduction to ply 23 | 24 | 25 | The ply is a zero-dependency Python implementation 26 | of the traditional parsing tools lex and yacc. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Installation of ply 48 | 49 | 50 | Build the module: 51 | 52 | 53 | pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD 54 | 55 | 56 | Now install the Python 57 | root user: 58 | 59 | 60 | pip3 install --no-index --find-links=dist --no-cache-dir --no-user ply 61 | 62 | 63 | 64 | 65 | Contents 66 | 67 | 68 | Installed Programs 69 | Installed Libraries 70 | Installed Directories 71 | 72 | 73 | 74 | None 75 | 76 | 77 | None 78 | 79 | 80 | /usr/lib/python3.12/site-packages/ply and 81 | /usr/lib/python3.12/site-packages/ply-&ply-version;.dist-info 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /book/preface.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | Preface 12 | 13 | 14 | After around 2 or 3 months of my first ever install of Linux From Scratch, 15 | I had an question: how do I install Steam on 16 | this? After some time, I went for Beyond Linux From Scratch, a very great 17 | book that covered most of what I both wanted and needed, but my 18 | Steam question never got answered. So I just 19 | tried to install the Steam tarball and I went 20 | down the rabbit hole. 21 | 22 | 23 | 24 | Beyond Linux From Scratch didn't show how so I felt alone and on my own. 25 | I learned shortly after my attempt that I need multilib, and Bruce Dubbs 26 | saw my email and responded quite promptly saying to go to Thomas' Multilib 27 | mirror. This made all the difference, but now I needed to find out all the 28 | packages to install, all the configuration. 29 | 30 | 31 | 32 | Rahul Chandra in the same thread mentioned his scripts for his distro, 33 | Tucana. These scripts helped so much, even if all the scripts were 34 | presented all at once. Once I had got Steam 35 | to work, I realized that in some way, somehow, I must share how I did it 36 | and to help others with a single comprehensive guide. 37 | 38 | 39 | 40 | At some point, I also decided to try to get Wine to work. I was successful. 41 | I, again like with Steam before, wanted to share 42 | the process. Rahul reached out to me, and that led to this book's creation 43 | and editing. 44 | 45 | 46 | 47 | Thank you, and I hope this helps you. 48 | 49 | 50 |
51 | Zeckma 52 | zeckma.tech <at> gmail.com 53 |
54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xbitmaps.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | xbitmaps-&xbitmaps-version; 16 | 17 | 18 | xbitmaps 19 | 20 | 21 | 22 | Introduction to xbitmaps 23 | 24 | 25 | The xbitmaps package contains bitmap 26 | images used by multiple applications built in Xorg chapter. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | xbitmaps Dependencies 45 | 46 | Required 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | Installation of xbitmaps 55 | 56 | 57 | Install xbitmaps by running the 58 | following commands: 59 | 60 | 61 | ./configure $XORG_CONFIG 62 | 63 | 64 | This package does not come with a test suite. 65 | 66 | 67 | 68 | Now, as the root user: 69 | 70 | 71 | make install 72 | 73 | 74 | 75 | 76 | Contents 77 | 78 | 79 | Installed Programs 80 | Installed Libraries 81 | Installed Directory 82 | 83 | 84 | None 85 | None 86 | $XORG_PREFIX/include/X11/bitmaps 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /qol/gamepad-kernel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | Device Drivers ---> 7 | Input device support ---> 8 | <*> Generic input layer (needed for keyboard, mouse, ...) [INPUT] 9 | [*] Joysticks/Gamepads ---> [INPUT_JOYSTICK] 10 | # For older gamepads: 11 | <*> Multisystem, NES, SNES, N64, PSX joysticks and gamepads 12 | ... [JOYSTICK_GAMECON] 13 | # For Xbox gamepad support: 14 | <*> Xbox gamepad support [JOYSTICK_XPAD] 15 | [ /*] Xbox gamepad rumble support [JOYSTICK_XPAD_FF] 16 | [ /*] LED Support for the Xbox 360 controller Guide button 17 | ... [JOYSTICK_XPAD_LEDS] 18 | [*] HID bus support ---> [HID_SUPPORT] 19 | <*/M> HID bus core support [HID] 20 | Special HID drivers ---> 21 | # For Nintendo Switch gamepad support: 22 | <*> Nintendo Joy-Con, NSO, and Pro Controller support [HID_NINTENDO] 23 | [ /*] Nintendo Switch controller force feedback support 24 | ... [NINTENDO_FF] 25 | # For Playstation gamepad support: 26 | <*/M> Sony PS2/3/4 accessories [HID_SONY] 27 | [ /*] Sony PS2/3/4 accessories force feedback support [SONY_FF] 28 | # For Steam controllers: 29 | <*> Steam Controller/Deck support [HID_STEAM] 30 | # For Nintendo Wii and Wii U controller support: 31 | < /*/M> Nintendo Wii / Wii U peripherals [HID_WIIMOTE] 32 | [*] USB support ---> [USB_SUPPORT] 33 | -------------------------------------------------------------------------------- /wine/deps/misc/packaging.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | Packaging-&packaging-version; 16 | 17 | 18 | packaging 19 | 20 | 21 | 22 | Introduction to Packaging 23 | 24 | 25 | The Packaging library provides utilities that 26 | implement the interoperability specifications which have clearly one 27 | correct behaviour or benefit greatly from having a single shared 28 | implementation. 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Download (HTTP): 37 | 38 | 39 | 40 | 41 | Download (FTP): 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | Installation of Packaging 50 | 51 | 52 | Build the module: 53 | 54 | 55 | pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD 56 | 57 | 58 | Now, as the root user: 59 | 60 | 61 | pip3 install --no-index --find-links=dist --no-cache-dir --no-user packaging 62 | 63 | 64 | 65 | 66 | Contents 67 | 68 | 69 | Installed Programs 70 | Installed Libraries 71 | Installed Directories 72 | 73 | 74 | 75 | packaging-render 76 | 77 | 78 | None 79 | 80 | 81 | /usr/lib/python3.12/site-packages/packaging and 82 | /usr/lib/python3.12/site-packages/packaging-&packaging-version;.dist-info 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /shareddeps/drivers/pyyaml.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | PyYAML-&pyyaml-version; 16 | 17 | 18 | pyyaml 19 | 20 | 21 | 22 | Introduction to PyYAML 23 | 24 | 25 | PyYAML is a Python module that implements the 26 | next generation YAML parser and emitter. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | PyYAML Dependencies 45 | 46 | Required 47 | 48 | and 49 | 50 | 51 | 52 | 53 | 54 | Installation of PyYAML 55 | 56 | 57 | Build the module: 58 | 59 | 60 | pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD 61 | 62 | 63 | Install the module as the root user: 64 | 65 | 66 | pip3 install --no-index --find-links=dist --no-cache-dir --no-user PyYAML 67 | 68 | 69 | 70 | 71 | Contents 72 | 73 | 74 | Installed Programs 75 | Installed Libraries 76 | Installed Directories 77 | 78 | 79 | 80 | None 81 | 82 | 83 | None 84 | 85 | 86 | /usr/lib/python&python3-majorver;/site-packages/PyYAML-&pyyaml-version;.dist-info 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /shareddeps/dps/x/luit.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | luit-&luit-version; 15 | 16 | 17 | luit 18 | 19 | 20 | 21 | Introduction to luit 22 | 23 | 24 | The luit package is a filter 25 | that can be run between an arbitrary application and a UTF-8 26 | terminal emulator. It will convert application output from the 27 | locale’s encoding into UTF‐8, and convert terminal input from 28 | UTF‐8 into the locale’s encoding. 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Download (HTTP): 37 | 38 | 39 | 40 | 41 | Download (FTP): 42 | 43 | 44 | 45 | 46 | luit Dependencies 47 | 48 | Required 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | Installation of luit 57 | 58 | 59 | Install luit by running the 60 | following commands: 61 | 62 | 63 | ./configure $XORG_CONFIG && 64 | make 65 | 66 | 67 | This package does not come with a test suite. 68 | 69 | 70 | 71 | Now, as the root user: 72 | 73 | 74 | make install 75 | 76 | 77 | 78 | 79 | Contents 80 | 81 | 82 | Installed Programs 83 | Installed Libraries 84 | Installed Directory 85 | 86 | 87 | luit 88 | None 89 | None 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /book/organization.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Organization 13 | 14 | 15 | This book is divided into the following 7 sections: 16 | 17 | 18 | Part I - Introduction 19 | 20 | 21 | This part contains essential information which is needed to 22 | understand the rest of the book. 23 | 24 | 25 | Part II - Multilib 26 | 27 | 28 | In this section we explain what multilib is, why you might 29 | want or need it, and how to get multilib support. This should 30 | be a precursor to the following sections. 31 | 32 | 33 | Part III - Shared Dependencies 34 | 35 | 36 | This section is dedicated to covering dependencies that are shared 37 | between Steam and Wine 38 | . As it turns out, there are quite a lot of 39 | dependencies they both depend on. Anything specific to 40 | Steam and Wine are covered 41 | in their respective chapters. 42 | 43 | 44 | Part IV - Steam 45 | 46 | 47 | This part details how to install Steam 48 | and the linear line of dependencies required, as well as some 49 | configuration for certain packages. 50 | 51 | 52 | Part V - Wine 53 | 54 | 55 | This section goes over installing toolchains like 56 | MinGW-w64 and GNAT, some 57 | of the packages necessary to both compile Wine 58 | and use it, and lastly how to compile 59 | Wine and configure it. 60 | 61 | 62 | Part VI - Quality of Life 63 | 64 | 65 | This section goes over quality of life improvements and packages 66 | to improve the experience with the system after following the main 67 | part of the book. 68 | 69 | 70 | Appendices 71 | 72 | 73 | The Appendices present information which doesn't belong in the body of 74 | book; they are included as reference material. The glossary of acronyms 75 | is a handy feature. 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/chunkfast.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /multilib/needml.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Do I Need Multilib? 13 | 14 | 15 | If you have a CPU that is capable of multilib, it is time 16 | to decide whether to go for it or not. Depending on the 17 | circumstance, it may be necessary to go for it. 18 | 19 | 20 | 21 | Steam 22 | 23 | 24 | Most gamers would not know this unless they push the 25 | limits of the game they play, but many games on Steam 26 | are 32-bit. Some games are no longer receiving updates 27 | while some are still being updated but are still 32-bit 28 | to this day. 29 | 30 | 31 | 32 | Not only are a lot of games 32-bit, but Steam itself 33 | requires that you have 32-bit libraries. If the 32-bit 34 | libraries aren't on the system, Steam will quit, saying 35 | it needs a library, libc.so.6 being the most common 36 | example. So if you have a 64-bit CPU, you will need the 37 | ability to execute 32-bit applications as well as all the 38 | libraries necessary which is laid out in Chapter 3. 39 | 40 | 41 | 42 | If you have a 32-bit CPU, you can skip the 32-bit libraries 43 | and compile everything normally as they will build for your 44 | architecture. 45 | 46 | 47 | 48 | 49 | Steam will eventually kill off 32-bit CPU support so be wary 50 | that while you can run Steam with a 32-bit CPU, in the future 51 | perhaps sometime soon, you will no longer be able to do this. 52 | 53 | 54 | 55 | 56 | 57 | 58 | Wine 59 | 60 | 61 | Unlike Steam, Wine does not require that you have 32-bit libraries 62 | or the i686-w64-mingw32 toolchain. Moreover, to get multilib 63 | support in Wine, it must be compiled twice: a w64 build and a w32 64 | w/ w64 build. However, it was discussed eariler in the Steam 65 | section that many games are 32-bit and are no longer maintained or 66 | will take a while to switch to 64-bit. This is the case with 67 | Windows applications as well. This means that if you do a 64-bit 68 | only build, compatabilty for all those 32-bit applications will 69 | be lost. 70 | 71 | 72 | 73 | A Wine WoW64 (can run 32-bit and 64-bit applications) build is 74 | recommended. If you do not have a 64-bit CPU, then follow only 75 | the i686 build instructions. Likewise, if you have a 64-bit 76 | CPU, then you can follow only the x86_64 build instructions. 77 | The mingw-w64 toolchain is also really helpful for developers, 78 | so if you don't want full support with Wine but full support 79 | for the mingw-w64 toolchain, then by all means: go for it. 80 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /shareddeps/gfxapi/gl/introgl.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Intro to OpenGL 13 | 14 | 15 | What is OpenGL 16 | 17 | 18 | OpenGL is a graphics API standard and interface that most applications 19 | on Linux that are not terminal based use and often times solely rely on. 20 | While things are progressing to switch to Vulkan, as well as graphics 21 | drivers with the help of Mesa's Zink driver, 22 | a full Vulkan desktop is impossible for most people. This makes OpenGL 23 | and its drivers a requirement. Notable packages that require the 24 | libraries and drivers are in this book: 25 | and . 26 | 27 | 28 | 29 | Beyond those two packages and getting the desktop working are several 30 | applications and packages which are only written in OpenGL using very 31 | old libraries and haven't added Vulkan support, and many games on the 32 | Steam platform are OpenGL only. 33 | 34 | 35 | 36 | 37 | 38 | What do I need to install? 39 | 40 | 41 | The OpenGL libraries for Linux are provided by either 42 | or , depending on 43 | preference or which applications you wish to install and run. 44 | 45 | 46 | 47 | libglvnd supplies an OpenGL library that can arbitrate calls between 48 | multiple vendors, which is useful in certain circumstances that 49 | determined necessary to depend on. This is 50 | why many distros do not ship the OpenGL library supplied by Mesa and 51 | instead ship the one by libglvnd. 52 | 53 | 54 | 55 | Mesa provides OpenGL libraries specific to your vendor of your graphics 56 | card (AMD for Radeon, NVIDIA for GTX, RTX, etc. and so on). Most 57 | applications can use these libraries just fine, save for some extensions 58 | only being used by some vendors, which the programmer who made the OpenGL 59 | application likely thought about those extensions anyway. However, 60 | depends on the OpenGL libraries given by libglvnd. 61 | Due to how the Mesa project is set up, it is located in the Graphics Driver 62 | subsection of this chapter. Feel free to skip to the Vulkan installation 63 | or the Graphics Driver subsection if you want to compile Mesa's OpenGL 64 | libraries. To compile Mesa's OpenGL libraries, compile it normally without 65 | setting -Dglvnd=true. 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /appendices/mit-lic.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | $Date$ 13 | 14 | 15 | The MIT License 16 | 17 | 18 | Copyright © 1999-2024 The BLFS Development Team 19 | 20 | 21 | 22 | Permission is hereby granted, free of charge, to any person obtaining a 23 | copy of this software and associated documentation files (the "Software"), 24 | to deal in the Software without restriction, including without limitation 25 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 26 | and/or sell copies of the Software, and to permit persons to whom the 27 | Software is furnished to do so, subject to the following conditions: 28 | 29 | 30 | 31 | The above copyright notice and this permission notice shall be included in 32 | all copies or substantial portions of the Software. 33 | 34 | 35 | 36 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 37 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 38 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 39 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 40 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 42 | DEALINGS IN THE SOFTWARE. 43 | 44 | 45 | 46 | Copyright © ©rightdate; ©holder; 47 | 48 | 49 | 50 | Permission is hereby granted, free of charge, to any person obtaining a 51 | copy of this software and associated documentation files (the "Software"), 52 | to deal in the Software without restriction, including without limitation 53 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 54 | and/or sell copies of the Software, and to permit persons to whom the 55 | Software is furnished to do so, subject to the following conditions: 56 | 57 | 58 | 59 | The above copyright notice and this permission notice shall be included in 60 | all copies or substantial portions of the Software. 61 | 62 | 63 | 64 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 65 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 66 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 67 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 68 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 69 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 70 | DEALINGS IN THE SOFTWARE. 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /shareddeps/dps/basicx/x/util-macros.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | util-macros-&util-macros-version; 16 | 17 | 18 | util-macros 19 | 20 | 21 | 22 | Introduction to util-macros 23 | 24 | 25 | The util-macros package contains the 26 | m4 macros used by all of the 27 | Xorg packages. 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Download (HTTP): 36 | 37 | 38 | 39 | 40 | Download (FTP): 41 | 42 | 43 | 44 | 45 | util-macros Dependencies 46 | 47 | Required 48 | 49 | (should be set for the following instructions 50 | to work) 51 | 52 | 53 | 54 | 55 | 56 | 57 | Installation of util-macros 58 | 59 | 60 | Install util-macros by running the following 61 | commands: 62 | 63 | 64 | ./configure $XORG_CONFIG 65 | 66 | 67 | This package does not come with a test suite. 68 | 69 | 70 | 71 | Now, as the root user: 72 | 73 | 74 | make install 75 | 76 | 77 | 78 | 79 | Contents 80 | 81 | 82 | Installed Programs 83 | Installed Libraries 84 | Installed Directory 85 | 86 | 87 | 88 | None 89 | 90 | 91 | None 92 | 93 | 94 | $XORG_PREFIX/share/pkgconfig and 95 | $XORG_PREFIX/share/util-macros 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /introduction/welcome/acknowledgments.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Acknowledgments 13 | 14 | We would like to thank the following people and organizations for their 15 | contributions toward the BLFS and LFS projects: 16 | 17 | 18 | 19 | All those people listed on the Credits page for submitting patches, 20 | instructions and corrections to the book. The former editor would 21 | especially like to thank Bruce, Larry and Billy for their enormous inputs 22 | to the project. 23 | 24 | 25 | Jeff Bauman (former co-editor of the book) for his assistance 26 | with getting BLFS off the ground. 27 | 28 | 29 | Gerard Beekmans 30 | <gerard <at> &lfs-domainname;> for starting and writing the 31 | vast majority of the LFS project. 32 | 33 | 34 | Robert Briggs for donating the &lfs-domainname; and 35 | linuxfromscratch.com domain names. 36 | 37 | 38 | DREAMWVR.COM for their sponsorship by donating various resources to 39 | the LFS and related sub projects. 40 | 41 | 42 | Bruce Dubbs for donating the anduin package server and his 43 | substantial contribution to the purchase of the new quantum server. 44 | 45 | 46 | Garrett LeSage 47 | <garrett <at> linux.com> for creating the LFS banner. 48 | 49 | 50 | Frank Skettino 51 | <bkenoah <at> oswd.org> at OSWD for coming up with the initial 53 | design of the LFS and BLFS websites. 54 | 55 | 56 | Mark Stone 57 | <mstone <at> linux.com> for donating the original 58 | &lfs-domainname; servers. 59 | 60 | 61 | Jesse 62 | Tie-Ten-Quee <higho <at> &lfs-domainname;> for 63 | answering many questions on IRC, having a great deal of patience and for 64 | not killing the former editor for the joke in the original BLFS 65 | announcement! 66 | 67 | 68 | Countless other people on the various LFS and BLFS mailing lists 69 | who are making this book possible by giving their suggestions, testing 70 | the book and submitting bug reports. 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /shareddeps/drivers/libclc.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | libclc-&libclc-version; 15 | 16 | 17 | libclc 18 | 19 | 20 | 21 | Introduction to libclc 22 | 23 | 24 | The libclc package contains library requirements 25 | of the OpenCL C programming language (provides header files but no 26 | libraries itself). 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | libclc Dependencies 45 | 46 | Required 47 | 48 | (with Clang) and 49 | 50 | 51 | 52 | 53 | 54 | 55 | Installation of libclc 56 | 57 | 58 | Install libclc by running the following 59 | commands: 60 | 61 | 62 | mkdir build && 63 | cd build && 64 | 65 | cmake -D CMAKE_INSTALL_PREFIX=/usr \ 66 | -D CMAKE_BUILD_TYPE=Release \ 67 | -G Ninja .. && 68 | 69 | ninja 70 | 71 | 72 | To test the results, issue: ninja test. 73 | 74 | 75 | 76 | Now, as the root user: 77 | 78 | 79 | ninja install 80 | 81 | 82 | 83 | 84 | Contents 85 | 86 | 87 | Installed Programs 88 | Installed Library 89 | Installed Directories 90 | 91 | 92 | 93 | None 94 | 95 | 96 | None 97 | 98 | 99 | /usr/{include,share}/clc 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /shareddeps/gfxapi/vk/vkheaders.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | Vulkan-Headers-&vulkan-headers-version; 15 | 16 | 17 | Vulkan-Headers 18 | 19 | 20 | 21 | Introduction to Vulkan-headers 22 | 23 | 24 | The Vulkan-Headers package contains a set of 25 | header files necessary to build and link applications against the Vulkan 26 | API. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | Vulkan-Headers Dependencies 45 | 46 | Required 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | Installation of Vulkan-Headers 55 | 56 | 57 | Install Vulkan-Headers by running the following 58 | commands: 59 | 60 | 61 | mkdir build && 62 | cd build && 63 | 64 | cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && 65 | ninja 66 | 67 | 68 | To test the results, issue: ninja test. 69 | 70 | 71 | 72 | Now, as the root user: 73 | 74 | 75 | ninja install 76 | 77 | 78 | 79 | 80 | Contents 81 | 82 | 83 | Installed Programs 84 | Installed Libraries 85 | Installed Directories 86 | 87 | 88 | 89 | None 90 | 91 | 92 | None 93 | 94 | 95 | /usr/include/vk_video, 96 | /usr/include/vulkan, 97 | /usr/share/cmake/VulkanHeaders, and 98 | /usr/share/vulkan 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /introduction/welcome/packages.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Getting the Source Packages 13 | 14 | Within the GLFS instructions, each package has two references for 15 | finding the source files for the package—an HTTP link and an FTP link 16 | (some packages may only list one of these links). Every effort has been made 17 | to ensure that these links are accurate. However, the World Wide Web is in 18 | continuous flux. Packages are sometimes moved or updated and the exact URL 19 | specified is not always available. 20 | 21 | The BLFS Team noticed this problem with BLFS, so they, with the 22 | assistance of Oregon State University Open Source Lab, have made an HTTP/FTP 23 | site available through world wide mirrors. See 25 | https://www.linuxfromscratch.org/blfs/download.html#sources for a 26 | list. These sites have all the sources of the exact versions of the packages 27 | used in BLFS. If you can't find the BLFS or GLFS package you need at the 28 | listed addresses, get it from these sites. 29 | 30 | We would like to ask a favor, however. Although this is a public 31 | resource for you to use, please do not abuse it. They have already had one 32 | unthinking individual download over 3 GB of data, including multiple copies of 33 | the same files that are placed at different locations (via symlinks) to make 34 | finding the right package easier. This person clearly did not know what files 35 | he needed and downloaded everything. The best place to download files 36 | is the site or sites set up by the source code developer. Please try 37 | there first. 38 | 39 | As for GLFS, some packages listed here are not on BLFS or their site. 40 | In such a case, we do not have a solution at the moment besides going to the 41 | developer(s) and/or their website. 42 | 43 | 44 | Obtaining the Source Packages in Bulk 45 | 46 | 47 | Obtaining all the source packages all at once is not recommended as 48 | you will probably pull in packages you won't want. However, it is certainly 49 | a convenient option if you have the disk space to spare. First navigate to 50 | to the directory you want the downloaded source code and patches to be, then 51 | download wget-list. After that, download 52 | the packages and patches by doing the following: 53 | 54 | 55 | wget -N --input-file=wget-list --continue 56 | ln -sv v&rust-bindgen-version;.tar.gz rust-bindgen-&rust-bindgen-version;.tar.gz 57 | ln -sv v&spirv-llvm-translator-version;.tar.gz SPIRV-LLVM-Translator-&spirv-llvm-translator-version;.tar.gz 58 | ln -sv &seatd-version;.tar.gz seatd-&seatd-version;.tar.gz 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /stylesheets/dump-commands.xsl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 00 29 | 30 | 31 | 32 | 0 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | # Run this as root 53 | 54 | # End root commands 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | # This block must be edited to suit your needs. 68 | 69 | 70 | 71 | 72 | 73 | # End of editable block. 74 | 75 | 76 | 77 | 78 | 79 | **EDITME 80 | 81 | EDITME** 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xcursor-themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | xcursor-themes-&xcursor-themes-version; 16 | 17 | 18 | xcursor-themes 19 | 20 | 21 | 22 | Introduction to xcursor-themes 23 | 24 | 25 | The xcursor-themes package contains the 26 | redglass and whiteglass animated cursor themes. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | xcursor-themes Dependencies 45 | 46 | Required 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | Installation of xcursor-themes 55 | 56 | 57 | 58 | We explicitly install the cursor themes in /usr instead 59 | of $XORG_PREFIX so non-Xorg desktop environments can 60 | find them. 61 | 62 | 63 | 64 | 65 | Install xcursor-themes by running the 66 | following commands: 67 | 68 | 69 | ./configure --prefix=/usr && 70 | make 71 | 72 | 73 | This package does not come with a test suite. 74 | 75 | 76 | 77 | Now, as the root user: 78 | 79 | 80 | make install 81 | 82 | 83 | 84 | 85 | Contents 86 | 87 | 88 | Installed Programs 89 | Installed Libraries 90 | Installed Directories 91 | 92 | 93 | None 94 | None 95 | 96 | /usr/share/icons/handhelds, 97 | /usr/share/icons/redglass, and 98 | /usr/share/icons/whiteglass 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /shareddeps/dps/wl/wayland-protocols.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | Wayland-Protocols-&wayland-protocols-version; 16 | 17 | 18 | wayland-protocols 19 | 20 | 21 | 22 | Introduction to Wayland-Protocols 23 | 24 | 25 | The Wayland-Protocols package contains 26 | additional Wayland protocols that add functionality outside of 27 | protocols already in the Wayland core. 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Download (HTTP): 36 | 37 | 38 | 39 | 40 | Download (FTP): 41 | 42 | 43 | 44 | 45 | Wayland-protocols Dependencies 46 | 47 | Required 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | Installation of Wayland-protocols 56 | 57 | 58 | Install Wayland-protocols by running the following 59 | commands: 60 | 61 | 62 | mkdir build && 63 | cd build && 64 | 65 | meson setup --prefix=/usr --buildtype=release && 66 | ninja 67 | 68 | 69 | To test the results, issue: ninja test. 70 | 71 | 72 | 73 | Now, as the root user: 74 | 75 | 76 | ninja install 77 | 78 | 79 | 80 | Contents 81 | 82 | 83 | Installed Programs 84 | Installed Libraries 85 | Installed Directories 86 | 87 | 88 | 89 | None 90 | 91 | 92 | None 93 | 94 | 95 | /usr/share/wayland-protocols 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /shareddeps/drivers/mako.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | Mako-&mako-version; 16 | 17 | 18 | mako 19 | 20 | 21 | 22 | Introduction to Mako 23 | 24 | 25 | Mako is a Python module that implements hyperfast 26 | and lightweight templating for the Python platform. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Installation of Mako 48 | 49 | 50 | Build the module: 51 | 52 | 53 | pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD 54 | 55 | 56 | Install the module as the root user: 57 | 58 | 59 | pip3 install --no-index --find-links=dist --no-cache-dir --no-user Mako 60 | 61 | 62 | 63 | 64 | Contents 65 | 66 | 67 | Installed Programs 68 | Installed Libraries 69 | Installed Directories 70 | 71 | 72 | 73 | mako-render 74 | 75 | 76 | None 77 | 78 | 79 | /usr/lib/python&python3-majorver;/site-packages/mako and 80 | /usr/lib/python&python3-majorver;/site-packages/Mako-&mako-version;.dist-info 81 | 82 | 83 | 84 | 85 | 86 | Short Descriptions 87 | 88 | 89 | 90 | 91 | mako-render 92 | 93 | 94 | renders a template 95 | 96 | 97 | mako-render 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /shareddeps/dps/x/x7driver.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Xorg Input Drivers 13 | 14 | 15 | xorg7-input-driver 16 | 17 | 18 | 19 | Introduction to Xorg Input Drivers 20 | 21 | 22 | The Xorg Input Drivers page contains the 23 | instructions for building Xorg input drivers that are necessary in 24 | order for Xorg Server to respond user inputs. 25 | 26 | 27 | 28 | Xorg Input Drivers 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 80 | 81 | 83 | 84 | 86 | 87 | 89 | 90 | 92 | 93 | 95 | 96 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/pdf/lfs-admon.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | always 26 | 27 | 28 | 0.6em 29 | 0.4em 30 | 0.8em 31 | 0.6em 32 | 0.4em 33 | 0.8em 34 | 5pt 35 | 5pt 36 | 5pt 37 | solid 38 | 0.5pt 39 | #FFFFE6 40 | 41 | 42 | #E0E0E0 43 | #DCC 44 | 45 | 46 | 47 | 48 | 49 | 50 | 14pt 51 | bold 52 | false 53 | always 54 | 55 | 56 | #500 58 | #000 59 | 60 | 61 | 62 | 63 | 64 | 65 | 5pt 66 | 67 | 68 | 70 | 71 | 72 | 73 | 24pt 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /multilib/pkgconf.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Pkgconf Personalties 13 | 14 | 15 | The pkgconf compilation in the multilib 16 | mirror does not cover pkgconf personalities 17 | which are needed for some lib32 variants of packages such as 18 | Gstreamer. This part is not necessary if you only intend to 19 | follow the Steam chapter and not the Wine chapter. 20 | 21 | 22 | 23 | The pkgconf personalities allow for 24 | pkgconf to be ran without having to specify 25 | the pkgconfig path. 26 | 27 | 28 | 29 | Creating the personalites 30 | 31 | 32 | Create the following personalties as the 33 | root 34 | user: 35 | 36 | 37 | mkdir -pv /usr/share/pkgconfig/personality.d 38 | 39 | cat > /usr/share/pkgconfig/personality.d/x86_64-pc-linux-gnu.personality << "EOF" 40 | Triplet: x86_64-pc-linux-gnu 41 | SysrootDir: / 42 | DefaultSearchPaths: /usr/lib/pkgconfig:/usr/share/pkgconfig 43 | SystemIncludePaths: /usr/include 44 | SystemLibraryPaths: /usr/lib 45 | EOF 46 | 47 | cat > /usr/share/pkgconfig/personality.d/i686-pc-linux-gnu.personality << "EOF" 48 | Triplet: i686-pc-linux-gnu 49 | SysrootDir: / 50 | DefaultSearchPaths: /usr/lib32/pkgconfig:/usr/share/pkgconfig 51 | SystemIncludePaths: /usr/include 52 | SystemLibraryPaths: /usr/lib32 53 | EOF 54 | 55 | 56 | Again as the root user, 57 | create the symlinks that enable pkgconf to find the personalites: 58 | 59 | 60 | ln -sv pkgconf /usr/bin/x86_64-pc-linux-gnu-pkg-config 61 | ln -sv pkgconf /usr/bin/i686-pc-linux-gnu-pkg-config 62 | 63 | 64 | Now verify that the x86_64 pkg-config is using the right 65 | personality: 66 | 67 | 68 | x86_64-pc-linux-gnu-pkg-config --dump-personality 69 | 70 | 71 | The result should be: 72 | 73 | 74 | Triplet: x86_64-pc-linux-gnu 75 | SysrootDir: / 76 | DefaultSearchPaths: /usr/lib/pkgconfig /usr/share/pkgconfig 77 | SystemIncludePaths: /usr/include 78 | SystemLibraryPaths: /usr/lib 79 | 80 | 81 | Then verify the i686 pkg-config is using the right personality: 82 | 83 | 84 | i686-pc-linux-gnu-pkg-config --dump-personality 85 | 86 | 87 | The result should be: 88 | 89 | 90 | Triplet: i686-pc-linux-gnu 91 | SysrootDir: / 92 | DefaultSearchPaths: /usr/lib32/pkgconfig /usr/share/pkgconfig 93 | SystemIncludePaths: /usr/include 94 | SystemLibraryPaths: /usr/lib32 95 | 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /shareddeps/security/duktape.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | duktape-&duktape-version; 16 | 17 | 18 | duktape 19 | 20 | 21 | 22 | Introduction to duktape 23 | 24 | 25 | duktape is an embeddable Javascript 26 | engine, with a focus on portability and compact footprint. 27 | 28 | 29 | 31 | 32 | 33 | Package Information 34 | 35 | 36 | 37 | Download (HTTP): 38 | 39 | 40 | 41 | 42 | Download (FTP): 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | Installation of duktape 52 | 53 | 54 | Install duktape by running the 55 | following commands: 56 | 57 | 58 | sed -i 's/-Os/-O2/' Makefile.sharedlibrary 59 | make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr 60 | 61 | 62 | Now, as the root user: 63 | 64 | 65 | make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr install 66 | 67 | 68 | 69 | 70 | Contents 71 | 72 | 73 | Installed Programs 74 | Installed Libraries 75 | Installed Directories 76 | 77 | 78 | 79 | None 80 | 81 | 82 | libduktape.so and libduktaped.so 83 | 84 | 85 | None 86 | 87 | 88 | 89 | 90 | 91 | Short Descriptions 92 | 93 | 94 | 95 | 96 | libduktape.so 97 | 98 | 99 | is an embeddable Javascript engine 100 | 101 | 102 | libduktape.so 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /stylesheets/lfs-xsl/xhtml/lfs-legalnotice.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 |
30 | 46 | 47 | 48 |
49 |
50 |
51 | 52 | 54 | 55 | 56 |

57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | copyright 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |

75 |
76 | 77 |
78 | -------------------------------------------------------------------------------- /stylesheets/test-options.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | ------------------- 26 | 27 | 28 | 29 | ------------------- 30 | 31 | 32 | 34 | 35 | 36 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | 49 | 50 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | is a parameter, but is not in config string 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 73 | 74 | 75 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | is an option, but is in config string 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /introduction/welcome/rationale.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | ]> 7 | 8 | 9 | 10 | 11 | 12 | Rationale for Packages 13 | 14 | 15 | Upon reading through some of the sections in this book, you may notice 16 | that a lot of the packages linked in some of the sections aren't in 17 | this book but rather in BLFS, and that some optional dependencies aren't 18 | even listed. Furthermore, some packages may be outdated. Lastly, some 19 | packages that have test suites don't have test instructions. These 20 | choices are very much deliberate. 21 | 22 | 23 | 24 | Why Are Many Packages Not in the Book? 25 | 26 | 27 | Many packages linked on some of the packages' sections aren't in 28 | the book but rather in the BLFS book. There are multiple reasons 29 | for this, but the most notable one is the packages that aren't in 30 | the book aren't important for the main packages in the book, those 31 | being Steam and Wine 32 | . They are still listed anyway if users want more 33 | support out of the specific packages not specific to the main 34 | packages, like media playback for example. Another reason for 35 | packages not being in the book is that the packages take a lot 36 | of work to install and require jumping around. They can also require 37 | a lot of choice or take up space or RAM for no real benefit for a 38 | lot of users when there are more simple solutions. 39 | 40 | 41 | 42 | 43 | 44 | Why Are Some Optional Dependencies Not Listed? 45 | 46 | 47 | There are some optional dependencies that aren't listed, and the 48 | main reason for this is that they just would take up unnecessary 49 | space. If on the offchance you desire even more out of your system, 50 | there are plenty more packages in BLFS and BLFS is more geared for 51 | everyone, although this book focuses more on gaming. 52 | 53 | 54 | 55 | 56 | 57 | Packages That Are Outdated and Why 58 | 59 | 60 | No packages are currently outdated. 61 | 62 | 63 | 64 | 65 | 66 | Some Package Test Instructions Aren't Included 67 | 68 | 69 | Many packages have Test Suites, which offer as a way to see if 70 | a package you just compiled doesn't have any bugs. However, in 71 | GLFS, a lot of these packages have test suites that depend on 72 | packages that aren't necessary in the book and would make this 73 | book larger than it needs to be. Part of the appeal of LFS is 74 | that you install only what you need and this book aims to reflect 75 | that. A lot of the tests as well aren't involved with critical 76 | components of the system but rather graphical binaries. If you 77 | wish to do test suites, BLFS has good instructions for them and 78 | covers all the required dependencies. However, some packages 79 | such as have test suite instructions due 80 | to their system critical nature and if things go wrong can render 81 | your system unusable in some cases. 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xcb-util.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | xcb-util-&xcb-util-version; 16 | 17 | 18 | xcb-util 19 | 20 | 21 | 22 | Introduction to xcb-util 23 | 24 | 25 | The xcb-util package provides additional 26 | extensions to the XCB library, many that were 27 | previously found in Xlib, but are not part of 28 | core X protocol. 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Download (HTTP): 37 | 38 | 39 | 40 | 41 | Download (FTP): 42 | 43 | 44 | 45 | 46 | xcb-util Dependencies 47 | 48 | Required 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | Installation of xcb-util 57 | 58 | 59 | Install xcb-util by running the following 60 | commands: 61 | 62 | 63 | ./configure $XORG_CONFIG && 64 | make 65 | 66 | 67 | This package does not come with a test suite. 68 | 69 | 70 | 71 | Now, as the root user: 72 | 73 | 74 | make install 75 | 76 | 77 | 78 | 79 | Contents 80 | 81 | 82 | Installed Programs 83 | Installed Library 84 | Installed Directories 85 | 86 | 87 | None 88 | libxcb-util.so 89 | None 90 | 91 | 92 | 93 | 94 | Short Descriptions 95 | 96 | 97 | 98 | 99 | libxcb-util.so 100 | 101 | 102 | Provides utility functions for other XCB utilities 103 | 104 | 105 | libxcb-util.so 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /shareddeps/drivers/rust-bindgen.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | rust-bindgen-&rust-bindgen-version; 16 | 17 | 18 | rust-bindgen 19 | 20 | 21 | 22 | Introduction to rust-bindgen 23 | 24 | 25 | Automatically generates Rust FFI 26 | bindings to C (and some C++) libraries. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | rust-bindgen Dependencies 45 | 46 | Required 47 | 48 | with Clang and 49 | 50 | 51 | 52 | &build-use-internet; 53 | 54 | 55 | 56 | 57 | Installation of rust-bindgen 58 | 59 | Install rust-bindgen by running the following 60 | commands: 61 | 62 | 63 | cargo build --release 64 | 65 | 66 | Now, as the root user: 67 | 68 | 69 | install -Dm755 target/release/bindgen /usr/bin/ 70 | 71 | 72 | 73 | 74 | Contents 75 | 76 | 77 | Installed Program 78 | Installed Library 79 | Installed Directory 80 | 81 | 82 | 83 | bindgen 84 | 85 | 86 | none 87 | 88 | 89 | none 90 | 91 | 92 | 93 | 94 | 95 | Short Descriptions 96 | 97 | 98 | 99 | 100 | bindgen 101 | 102 | 103 | generates Rust FFI bindings to 104 | C (and some C++) libraries 105 | 106 | 107 | bindgen 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /shareddeps/dps/basicx/x/xcb-proto.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | xcb-proto-&xcb-proto-version; 16 | 17 | 18 | xcb-proto 19 | 20 | 21 | 22 | Introduction to xcb-proto 23 | 24 | 25 | The xcb-proto package provides the 26 | XML-XCB protocol descriptions that libxcb 27 | uses to generate the majority of its code and API. 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Download (HTTP): 36 | 37 | 38 | 39 | 40 | Download (FTP): 41 | 42 | 43 | 44 | 45 | 46 | xcb-proto Dependencies 47 | 48 | Recommended 49 | 50 | (needed for the instructions below) 51 | 52 | 53 | Optional 54 | 55 | libxml2 56 | (required to run the tests) 57 | 58 | 59 | 60 | 61 | 62 | 63 | Installation of xcb-proto 64 | 65 | 66 | Install xcb-proto by running the following 67 | commands: 68 | 69 | 70 | PYTHON=python3 ./configure $XORG_CONFIG 71 | 72 | 73 | To test the results, issue: make check. 74 | 75 | 76 | 77 | Now, as the root user: 78 | 79 | 80 | make install 81 | 82 | 83 | If you are upgrading from version 1.15.1 or lower, the old pkgconfig 84 | file needs to be removed. Issue, as the 85 | root user: 86 | 87 | 88 | rm -f $XORG_PREFIX/lib/pkgconfig/xcb-proto.pc 89 | 90 | 91 | 92 | 93 | Contents 94 | 95 | 96 | Installed Programs 97 | Installed Libraries 98 | Installed Directory 99 | 100 | 101 | None 102 | None 103 | $XORG_PREFIX/share/xcb and 104 | $XORG_PREFIX/lib/python&python3-majorver;/site-packages/xcbgen 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /shareddeps/dps/x/xcb-util-image.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | %general-entities; 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 13 | 14 | 15 | xcb-util-image-&xcb-util-image-version; 16 | 17 | 18 | xcb-util-image 19 | 20 | 21 | 22 | Introduction to xcb-util-image 23 | 24 | 25 | The xcb-util-image package provides additional 26 | extensions to the XCB library. 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Download (HTTP): 35 | 36 | 37 | 38 | 39 | Download (FTP): 40 | 41 | 42 | 43 | 44 | xcb-util-image Dependencies 45 | 46 | Required 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | Installation of xcb-util-image 55 | 56 | 57 | Install xcb-util-image by running the following 58 | commands: 59 | 60 | 61 | ./configure $XORG_CONFIG && 62 | make 63 | 64 | 65 | To test the results, issue: 66 | LD_LIBRARY_PATH=$XORG_PREFIX/lib make check. 67 | 68 | 69 | 70 | Now, as the root user: 71 | 72 | 73 | make install 74 | 75 | 76 | 77 | 78 | Contents 79 | 80 | 81 | Installed Programs 82 | Installed Library 83 | Installed Directories 84 | 85 | 86 | None 87 | libxcb-image.so 88 | None 89 | 90 | 91 | 92 | 93 | Short Descriptions 94 | 95 | 96 | 97 | 98 | libxcb-image.so 99 | 100 | 101 | Is a port of Xlib's XImage and XShmImage functions 102 | 103 | 104 | libxcb-image.so 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | --------------------------------------------------------------------------------