# Vertex Linux Patches This directory is a working collection of old and current patch sets used for Vertex Linux packaging. It spans two broad eras of the distro: - The older `musl + mimalloc + LibreSSL` era. - The current `glibc + x86_64-v3` era. Some patches are clearly tied to one period, while others are carry patches that remained useful across both. ## What This Tree Contains The patches here are not a pristine historical archive of a single release. They are a maintained patch bucket for packages Vertex Linux has needed to adjust over time, including: - libc and toolchain integration fixes - `clang` and `compiler-rt` compatibility work - `x86_64-v3` policy and platform-specific changes - `LibreSSL` compatibility patches from the older stack - POSIX and `/bin/sh` cleanups for build scripts - packaging, portability, and local distro behavior changes ## Era Notes ### Older Era: `musl + mimalloc + LibreSSL + LLVM/Clang` This was the earlier Vertex Linux direction. Patches from that period generally reflect: - `musl`-oriented portability work - `LibreSSL` compatibility, especially for older Qt and network/crypto consumers - runtime and allocator decisions that matched the `mimalloc` period - build-system cleanup for a smaller, less GNU-specific base ### Current Era: `glibc + x86_64-v3 + LLVM/Clang` This is the current Vertex Linux direction. Patches from this period generally reflect: - `glibc`-based userland assumptions - `x86_64-v3` baseline policy - modern `LLVM/Clang`, `lld`, `compiler-rt`, and `libc++` integration - removing hardcoded GNU toolchain assumptions where they break modern Clang-based builds Examples in this tree include the kernel-side `x86_64-v3` enforcement patch in [linux/0001-x86-setup-enforce-x86_64-v3.patch](linux/0001-x86-setup-enforce-x86_64-v3.patch) and newer `glibc`/`valgrind` compiler-runtime fixes such as [glibc/glibc-2.43-use-compiler-reported-libgcc.patch](glibc/glibc-2.43-use-compiler-reported-libgcc.patch) and [valgrind/valgrind-3.26.0-ungnuify.patch](valgrind/valgrind-3.26.0-ungnuify.patch). ## Reading The Layout Directories are package-oriented. In general, each subdirectory holds local patches for one upstream project, for example: - [glibc patches](glibc) - [qt5 patches](qt5) - [util-linux](util-linux) - [valgrind](valgrind) ## Practical Note Not every patch maps cleanly to exactly one era. This tree should be read as "Vertex Linux patches that accumulated through the older `musl/mimalloc/LibreSSL` period and into the current `glibc/x86_64-v3` period", not as a strict release-by-release archive. ## PS: And yes I used ai for these, not because I don't know how to write patches/code, but because I PROMISE I dont have the time to do all of this by hand. I have to maintain the distro, do the packaging, code a bunch of more stuff, and also write the documentation. The patches are just a small part of the work, and using ai helps me get them done faster so I can focus on the other important tasks.