{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihulhsplfa2trtvzcqxcbicqpqq6sejqssu57luxtwoyxgqirozze",
"uri": "at://did:plc:hqad6xwuzg7oqfmwylfkvqfm/app.bsky.feed.post/3mlc6mv3tvdr2"
},
"path": "/viewtopic.php?t=33412&p=273647#p273647",
"publishedAt": "2026-05-07T20:38:33.000Z",
"site": "http://forum.palemoon.org",
"tags": [
"@Basilisk-Dev",
"@TOPSRCDIR"
],
"textContent": "Here's my steps for building Basilisk-Qt6. I used GCC just because I'm unfamiliar with Clang:\n\n0. Confirm you are in an X11 session if you build it on KDE like I did -\n\nCODE:\n\n\n echo \"$XDG_SESSION_TYPE\"\n\n1. Update, and Install build dependencies. Note - I had to download and 'sudo apt install' the deb package for autoconf2.13 from Debian Bookworm at packages.debian.org, which installed fine, but it's not available on Debian 13:\n\n\nCODE:\n\n\n sudo apt updatesudo apt install git ca-certificates curl wget build-essential pkgconf autoconf2.13 m4 perl patch python3 python-is-python3 python3-dev python3-dbus yasm zip unzip xz-utils tar bzip2 ccache libasound2-dev libpulse-dev libxt-dev libx11-dev libx11-xcb-dev libxext-dev libxrender-dev libxfixes-dev libxss-dev libxi-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxcb1-dev libxcb-shm0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xfixes0-dev libxcb-glx0-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-cursor0 libxcb-cursor-dev libegl-dev libgl-dev libglu1-mesa-dev mesa-common-dev zlib1g-dev libssl-dev libsqlite3-dev libbz2-dev libffi-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libpango1.0-dev libfontconfig-dev libfreetype-dev libharfbuzz-dev qt6-base-dev qt6-base-dev-tools qt6-base-private-dev qt6-qpa-plugins gdb strace\n\n2. Create a source directory\n\nCODE:\n\n\n mkdir -p ~/srccd ~/src\n\n3. Clone Basilisk-Qt6\n\nCODE:\n\n\n git clone https://repo.palemoon.org/Basilisk-Dev/Basilisk.git basilisk-qt6cd basilisk-qt6\n\n4. Initialize the UXP platform submodule\n\nCODE:\n\n\n git submodule initgit submodule update --init platform\n\n5. Point `platform/` at the Qt6 UXP-contrib repo and branch\n\nCODE:\n\n\n git submodule set-url platform https://repo.palemoon.org/Basilisk-Dev/UXP-contrib.gitcd platformgit fetch origin qt6git checkout -B qt6 origin/qt6cd ..\n\n5.1. Verify:\n\nCODE:\n\n\n git -C platform branch --show-currentgit -C platform log --oneline -5\n\nThe branch should show: qt6\n\n6. Create .mozconfig. Run this from the top-level `basilisk-qt6` directory. This is my GCC version, not @Basilisk-Dev's Clang version, so there's some small differences:\n\n\nCODE:\n\n\n cat > .mozconfig <<'EOF'# Build output directorymk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-qt6# Adjust this for your VM.# -j4 is a safe starting point for many VMs.mk_add_options MOZ_MAKE_FLAGS=\"-j4\"# Set Basilisk version to date timestampexport BASILISK_VERSION=1# Basilisk applicationac_add_options --enable-application=basilisk# Experimental Qt6 backendac_add_options --enable-default-toolkit=cairo-qt6# Conservative first build: GCC, no LTO, no Clang, no ThinLTOac_add_options --enable-optimize=\"-O2 -w\"# Standard-ish Basilisk optionsac_add_options --enable-jemallocac_add_options --enable-stripac_add_options --enable-devtoolsac_add_options --enable-av1ac_add_options --enable-webrtcac_add_options --enable-gamepadac_add_options --enable-pieac_add_options --enable-update-channel=releaseac_add_options --disable-testsac_add_options --disable-debugac_add_options --disable-necko-wifiac_add_options --enable-updaterac_add_options --with-pthreads# Branding / official flag.# Fine for private testing. Be careful about redistribution rules.ac_add_options --enable-official-brandingexport MOZILLA_OFFICIAL=1# Debian/MX amd64 library path.# Do not use /usr/lib64 on Debian/MX.ac_add_options --x-libraries=/usr/lib/x86_64-linux-gnu# Mark package flavorexport MOZ_PKG_SPECIAL=qt6EOF\n\n7. Configure\nExplicitly tell Qt to build for X11:\n\nCODE:\n\n\n export QT_QPA_PLATFORM=xcb\n\nThen:\n\nCODE:\n\n\n ./mach configure\n\n8. Build\n\nCODE:\n\n\n ./mach build\n\nThis may take a while. If your VM has low RAM, reduce jobs in `.mozconfig`:\n\n\nCODE:\n\n\n mk_add_options MOZ_MAKE_FLAGS=\"-j2\"\n\nThen rerun:\n\n\nCODE:\n\n\n ./mach build\n\n9. Package [**this failed for me**]:\n\n\nCODE:\n\n\n ./mach package\n\nFind the output:\n\n\nCODE:\n\n\n find obj-qt6/dist -maxdepth 3 -type f \\( -name \"*.tar.*\" -o -name \"*.zip\" \\) -print\n\nSince packaging failed, I ran Basilisk-Qt6 directly via mach run:\n\nCODE:\n\n\n QT_QPA_PLATFORM=xcb ./mach run\n\n10. Clean rebuild command, if needed, if configure/build state gets messy:\n\nCODE:\n\n\n ./mach clobberrm -rf obj-qt6./mach configure./mach build\n\nHere it is. Visually it seems the same as regular Basilisk to me, except that the menus aren't as polished:\n\n* * *",
"title": "Browser Development • Re: Linux Pale Moon with Qt toolkit",
"updatedAt": "2026-05-07T20:46:46.000Z"
}