# xorgbase/cfg - "Build" settings for package #--------------------------------------------------------------------- [technotes] 1. If the "xorgbase" package is built or rebuilt, it deletes the "doxygen" package. A rebuild of the latter package is required subse- quently. This is done because "xorgbase" and/or "doxygen" assume that, if "doxygen" exists, "graphviz" exists. This isn't necessarily the case and the assumption can cause builds of "xorgbase" to fail. The dele- tion of "doxygen" is a work-around for the problem. #--------------------------------------------------------------------- 2. It's normal and expected for a build of "xorgbase" to produce a lot of non-fatal "docbook"-related error messages. These occur due to cir- cular dependencies. If the packages that manifest these errors are rebuilt subsequent to completion of an "xorgbase" build, fewer such errors should occur the second time. #--------------------------------------------------------------------- 3. After rebuilding "xorgbase", the Mesa part in particular, it's highly advisable that the system be rebooted. If all of "xwin" is going to be rebuilt, the reboot can wait until the full rebuild is completed. Failure to reboot may lead to segfaults (crashes) in some GUI pro- grams. The segfaults are related to a null-pointer derefence in the following "libxcb" library function: xcb_glx_query_server_string_string_length This may not be an issue if the Mesa code is unchanged prior to the rebuild. #--------------------------------------------------------------------- 4. The source tarball used for this package was created locally. For more information on the procedure used, go to the top-level directory stored in the tarball and see the file "readme.txt" stored in the fol- der. #--------------------------------------------------------------------- 5. "clang" and "clang++" should not be used to build the Mesa part of "xorgbase". However, the LLVM libraries that underlie the two compil- ers are needed for this purpose. #--------------------------------------------------------------------- 6. If you'd like to rebuild "xorgbase" and/or packages that depend on it, such as the "gtkcore" set, and to delete "xorgbase" and/or the depending packages first, you'll probably need to proceed as fol- lows: * Identify "*.la" files in "/*/lib" that reference "xorgbase", "harf- buzz", "freetype2", "gtkcore", and other packages that depend on "xorgbase". * Delete the associated packages -- binary trees, "bstatus" files, and "*.la" files. This is a general issue, not limited to "xorgbase"", but is known to cause problems in this context. #--------------------------------------------------------------------- 7. Xorg has a forward dependency on "git". There are two related tech- nical points: 7a. The dependency is circular. So, when creating a new distro, you need to get "git" built and/or installed initially without Xorg, then build Xorg, then build "git" again. 7b. Although Xorg depends on "git" -- and it also uses "docbook" files that contain URLs -- if things are properly configured, it doesn't need Internet access to build. #--------------------------------------------------------------------- 8. XOrg requires some boot-time setup operations. These are handled by the script "setupxorg". #--------------------------------------------------------------------- 9. It's proved to be difficult to get serial mice to work correctly. Under some conditions, serial mice stop working entirely immediately after XOrg starts up. Under other conditions, serial mice forget how to do "copy and paste" after a few minutes. The following approach may, or may not, work correctly: 9a. Run "gpm" (outside XOrg) in "repeater" mode. 9b. When a serial mouse is used, set up XOrg's mouse configura- tion as follows: Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "mousesystems" Option "Device" "/dev/gpmdata" Option "ChordMiddle" EndSection #--------------------------------------------------------------------- 10. "freetype2" has weird circular-dependency issues related to "harf- buzz". As part of this, if the "gtkcore" binary tree is deleted, "freetype2" should be rebuilt before "xorgbase" is rebuilt. #--------------------------------------------------------------------- [buildtimes] 01.71 hours (or 102.73 minutes) - 2021 L.A. dedi box: 6x2 CPU 32GB RAM 01.84 hours (or 110.43 minutes) - ThinkPad L390 24GB RAM i5 4x2 02.18 hours (or 130.93 minutes) - ThinkPad E540 i7 4x2 16GB RAM 02.39 hours (or 143.50 minutes) - OpenVZ 1x4 CPU 4GB RAM 02.82 hours (or 169.38 minutes) - HP EliteBook 8560w 32GB RAM #--------------------------------------------------------------------- # Past numbers (not directly comparable to the above): 01.35 hours (or 080.92 minutes) - ThinkPad E540 i7 4x2 16GB RAM 01.58 hours (or 094.65 minutes) - HP EliteBook 8560w 32GB RAM 02.13 hours (or 127.67 minutes) - Dell Inspiron 6400 2.0 GHz Intel Duo 7200 2GB RAM 02.98 hours (or 178.98 minutes) - Toshiba Satellite C655 E-300 CPU 4GB RAM #--------------------------------------------------------------------- [settings] configure = none fortran = disabled license = To be documented nowerror = yes pathmax = yes proddir = none tmpsize = 2268M #--------------------------------------------------------------------- [depends] actools bison3 byacc cpan-xml-parser:forward docbook elfutils # For "libelf" expat exvi flex fontconfig freetype2 gawk gettext git:forward glslang gperf grep intltool:forward kernel # Doesn't appear to need "strict" libgcrypt libpng talloc libbsd libxslt llvmgcc m4 mtdev nettle3 ncurses libvideogfx:forward openssl perl pkgconf prexwin python2-core # Doesn't appear to need "strict" python3-core # May not be needed sed sudo # Used indirectly by "startx" util-linux wayland:forward xmlto zlib #--------------------------------------------------------------------- [build] badlinks -d $PRODTREE/actools rm -fr $PRODTREE/doxygen/ $SYSTREE/status/build/doxygen/ treetextsub \ --pattern="typedef khronos_ssize_t GLsizeiptr;" \ --newtext="typedef ptrdiff_t GLsizeiptr;" \ --keeptimes treetextsub \ --pattern="typedef khronos_ssize_t GLsizeiptARB;" \ --newtext="typedef ptrdiff_t GLsizeiptrARB;" \ --keeptimes treetextsub \ --pattern="typedef khronos_intptr_t GLintptr;" \ --newtext="typedef ptrdiff_t GLintptr;" \ --keeptimes treetextsub \ --pattern="typedef khronos_intptr_t GLintptrARB;" \ --newtext="typedef ptrdiff_t GLintptrARB;" \ --keeptimes #--------------------------------------------------------------------- # This part shouldn't be necessary but it seems to be. export LACARCHBUILD=$LACARCHBUILD export LACARCHHOST=$LACARCHHOST bash $PKGDIR_SPECIAL/build/buildxorg-all #--------------------------------------------------------------------- # Original URLs. These URLs were valid at one point, but may have died # since then. If you download newer versions of tarballs [etc.], don't # delete the original versions, as you may not be able to replace # them. [urls] url_debian = http://packages.debian.org/unstable/source/xorg url_home = http://www.x.org/ url_lfs = http://www.linuxfromscratch.org/blfs/view/stable/\ x/installing.html url_tarball = n/a # See "technotes" in "cfg" file #--------------------------------------------------------------------- [history] 180305 Updated from 171206 to 180305 181112 Updated to 181112 190825 Updated to 190825 210424 Updated to 210424 210613 Updated to 210613 240312 Modified to work with "llvmgcc17"