Like rustc. Move the unset command out of the <screen> for
installation because if we use sudo --preserve-env=PATH_PY311 -s for a
shell as root to install the package, "unset PATH_PY311" will only
unset it in this shell, not the shell building the package.
Also fix a grammar issue in rustc, and unset LIBSSH2_SYS_USE_PKG_CONFIG
after installing rustc too.
To do this I've created build_fixes-2.patch. This contains:
- Fix for shipped ffmpeg build failure
- Fixes for Python 3.11 changes
- Changes for ICU-74, but modified to allow building on previous
versions of BLFS and their versions of ICU
- The NINJAJOBS change
- Chunks from a patch from ArchLinux32 to prevent instantaneous crashes
in Falkon. Still causes issues with text rendering, so I've created a
note in the Falkon page. However, video playback and images display
perfectly. I will revisit this in February once we have the new glibc.
Unlike previous issues, it no longer crashes, so that's a good start!
This significantly brings down the count of instructions for this page
and should make it a lot easier to follow.
I've tested this on both x86_64 and i686. On i686 there's a major
improvement in that Falkon (and KDE System Monitor) actually start and
run, though in the case of Falkon there is still no text.
The mach of seamonkey is more nasty than FF or TB :(.
Q: Why not just export PATH=/opt/python3.11/bin:$PATH?
A: This will be too easy forgetting to unset it. And an explicit
PATH=$PATH_PY311 also helps sudo (sudo PATH=$PATH_PY311 mach install
will work perfectly fine, but export PATH=$PATH_PY311; sudo ... won't
work as sudo will reset $PATH).
Update to plasma-wayland-protocols-1.12.0.
Update to plasma5-5.27.10.
Update to kde gear-23.08.4 including kate, kwave, and falkon.
Update to kf5-5.113.0.
Note that if you build something relying on $SHELL, it may still fail to
build in chroot.
In the chroot we first use "env -i" to clean the environment variables.
When bash starts with no $SHELL set, it *sets* SHELL=(the login shell
of current user specified in /etc/passwd), but it *does not export this
variable*.
For example:
$ cat > t.c << EOF
#include <stdio.h>
#include <stdlib.h>
int main() { puts (getenv ("SHELL") ?: "(nullptr)"); }
$ ./a.out
/bin/zsh/
$ cc t.c
$ env -i bash -c "echo $SHELL"
/bin/zsh
$ env -i bash -c "./a.out"
(nullptr)
We can remove this now only because Mozilla has added a workaround into
their building system at
https://hg.mozilla.org/mozilla-central/rev/5afe7b911f61 for some Mac
builder, inadvertently fixing our issue.
Link: https://lists.linuxfromscratch.org/sympa/arc/blfs-support/2014-11/msg00050.html
Link: https://lists.linuxfromscratch.org/sympa/arc/blfs-dev/2023-11/msg00136.html
If a newline is inside the comment, it won't be rendered. So we can
avoid an excessive amount of empty lines in seamonkey, and break the
long comments about RELR into multiple lines.
- Remove --enable-optimize=-O2 as it's the default.
- Use RELR for saving several MB from libxul.so, like Firefox.
- Update the comment for --disable-rust-simd.
- Copy a comment with legal implication from Firefox.
"export CC=clang CXX=clang++" is bad because it contaminates the
environment, thus if some packages are built after seamonkey in the same
shell and the user wouldn't have unset CC and CXX, those package may be
built with an untested configuration.
Move them into mozconfig. A test build has shown they still works
there.
1. Drop --enable-optimize because it's the default.
2. Use -Wl,-z,pack-relative-relocs as a replacement for elf-hack.
3. Add --enable-rust-simd for SIMD optimization, like Arch and Gentoo.
4. Make the formatting (captialization and punctuation) of comments more
consistent.