summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Hill <ahill@breadpudding.dev>2025-07-20 16:52:32 -0400
committerAlexander Hill <ahill@breadpudding.dev>2025-07-20 16:52:32 -0400
commitdca6769cfdc0b5f2ae1d0c1636a9a8318fea2506 (patch)
tree1e24288270dc3f27aa16872ed9c8d53dca623f74
parent9a562846c03b64ca63d1b1414a6b500942b975c7 (diff)
Successfully built Xlibre!
-rwxr-xr-xbuild-chroot.sh82
-rw-r--r--sources.list5
2 files changed, 84 insertions, 3 deletions
diff --git a/build-chroot.sh b/build-chroot.sh
index c053a37..13acdf5 100755
--- a/build-chroot.sh
+++ b/build-chroot.sh
@@ -903,7 +903,14 @@ cd ..
# Pixman Build
tar xf ../sources/pixman-*.tar*
cd pixman-*/
-muon setup -Dprefix=/usr build
+# NOTE: Pixman builds as a static library by default, but appears to be missing
+# the MMX, SSE2, and SSE3 symbols upon installation. Telling it to build a
+# shared library fixes the problem, but the question is why this happens
+# in the first place... ~ahill
+muon setup \
+ -Ddefault_library=shared \
+ -Dprefix=/usr \
+ build
muon samu -C build
muon -C build install
cd ..
@@ -911,7 +918,10 @@ cd ..
# libxkbfile Build
tar xf ../sources/libxkbfile-libxkbfile-*.tar*
cd libxkbfile-libxkbfile-*/
-muon setup -Dprefix=/usr build
+muon setup \
+ -Ddefault_library=shared \
+ -Dprefix=/usr \
+ build
muon samu -C build
muon -C build install
cd ..
@@ -1287,6 +1297,7 @@ cd glslang-*/
cmake -B build \
-DALLOW_EXTERNAL_SPIRV_TOOLS=true \
-DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_LIBDIR=/lib \
-DCMAKE_INSTALL_PREFIX=/usr \
-DGLSLANG_TESTS=false
make -C build -j $THREADS
@@ -1432,6 +1443,73 @@ muon samu -C build
muon -C build install
cd ..
+# XCB Util Build
+tar xf ../sources/libxcb-util-xcb-util-*.tar*
+cd libxcb-util-xcb-util-*/
+# NOTE: For some reason, configure.ac attempts to use LIBTOOL without invoking
+# LT_INIT anywhere. The following line adds the line to the file so it can
+# build properly. ~ahill
+sed -i "/AM_INIT_AUTOMAKE/a LT_INIT" configure.ac
+# NOTE: Makefile.am can't be built because pkgconfig_DATA and xcbinclude_HEADERS
+# are used without having pkgconfigdir or xcbincludedir defined. This
+# patches the files. ~ahill
+sed -i "/pkgconfig_DATA/i pkgconfigdir=/lib/pkgconfig" Makefile.am
+sed -i "/xcbinclude_HEADERS/i xcbincludedir=/usr/include/xcb" src/Makefile.am
+# NOTE: XCB Util requires XCB Util M4 to build, which is software without a
+# release tag and is only ever referred to by the commit hash. It fails to
+# configure if this isn't present. ~ahill
+tar xf ../../sources/xcb-util-m4-*.tar*
+rm -rf m4/
+mv xcb-util-m4-*/ m4
+./autogen.sh \
+ --disable-static \
+ --exec-prefix="" \
+ --libexecdir=/lib \
+ --localstatedir=/var \
+ --prefix=/usr \
+ --sysconfdir=/etc
+make -j $THREADS
+make -j $THREADS install
+cd ..
+
+# XCB Util WM Build
+tar xf ../sources/libxcb-wm-xcb-util-wm-*.tar*
+cd libxcb-wm-xcb-util-wm-*/
+# NOTE: XCB Util WM requires XCB Util M4 to build. We went over this with XCB
+# Util already, and thankfully, it uses the same commit hash. ~ahill
+tar xf ../../sources/xcb-util-m4-*.tar*
+rm -rf m4/
+mv xcb-util-m4-*/ m4
+./autogen.sh \
+ --disable-static \
+ --exec-prefix="" \
+ --libexecdir=/lib \
+ --localstatedir=/var \
+ --prefix=/usr \
+ --sysconfdir=/etc
+make -j $THREADS
+make -j $THREADS install
+cd ..
+
+# Xlibre Build
+tar xf ../sources/xlibre-xserver-*.tar*
+cd xserver-xlibre-xserver-*/
+# NOTE: Once again, muon doesn't like a simple "sh" so we need to replace it
+# with /bin/sh to make it happy. ~ahill
+sed -i "s|'sh'|'/bin/sh'|" hw/xfree86/meson.build
+muon setup \
+ -Dglamor=false \
+ -Dprefix=/usr \
+ build
+# FIXME: For some reason, "muon setup" defines HAVE_ARC4RANDOM_BUF in
+# build/dix-config.h, despite musl not having the function available. To
+# fix this, we simply undef the symbol in the configuration file that was
+# just generated. ~ahill
+sed -i "s/#define HAVE_ARC4RANDOM_BUF.*/#undef HAVE_ARC4RANDOM_BUF/" build/dix-config.h
+muon samu -C build
+muon -C build install
+cd ..
+
# Basic Configuration
echo "root::0:0::/:/bin/zsh" > /etc/passwd
echo "root:x:0:root" > /etc/group
diff --git a/sources.list b/sources.list
index c49bad6..aa717a5 100644
--- a/sources.list
+++ b/sources.list
@@ -107,8 +107,11 @@ cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff,https://files.p
be9ad9a276f4305ab7dd2f5225c8be1ff54352f565ff4dede9628c1aaa7dec57,https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.1.tar.xz,
661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729,https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz,
479447448281cfb6585ad780f23bd75311af20daf344fb9209c8a87ea77e296a,https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz,
+7b56592b339d47809cbefb9f46721705c662de1a001bc773d335975cd2eba34f,https://gitlab.freedesktop.org/xorg/lib/libxcb-util/-/archive/xcb-util-0.4.1/libxcb-util-xcb-util-0.4.1.tar.gz,
+c1b792306874c36b535413a33edc71a0ac46e78adcf6ddb1a34090a07393d717,https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/-/archive/xcb-util-wm-0.4.2/libxcb-wm-xcb-util-wm-0.4.2.tar.gz,
+6389dae32d7d772245fed7c76d3f83cb7ffa88eb447dbb4db8400c2220e42c2a,https://gitlab.freedesktop.org/xorg/util/xcb-util-m4/-/archive/c617eee22ae5c285e79e81ec39ce96862fd3262f/xcb-util-m4-c617eee22ae5c285e79e81ec39ce96862fd3262f.tar.gz,
13b91f74beef8ad11137f7d9d71055573d91e961bc55bb0245956f69b84cd704,https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-6.15.0.tar.xz,
-3910f5a5f6a0788788885d0fa016ada28182c3fc45ba91df83cffdd2b09dea32,https://github.com/X11Libre/xserver/archive/refs/tags/xlibre-xserver-25.0.0.4.tar.gz,
+0d599978d2bc911d199d5f18755297ec2d216a41f91c746b74a1caaf57b5ebd3,https://github.com/X11Libre/xserver/archive/refs/tags/xlibre-xserver-25.0.0.5.tar.gz,
c92466091663b68d93997eab4f329d0be511cb448a61b61fe74a738f2698b77c,https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/archive/xorgproto-2024.1/xorgproto-xorgproto-2024.1.tar.gz,
0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e,https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz,
a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166,https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz,