Skip to content

GNUstep integration #1

@pkgdemon

Description

@pkgdemon
Image

Last Updated January 09 2026

Current Status

  • Builds without errors on Debian Trixie ARM64 using RPI 500+ and builds hours faster than QT version in about 20 minutes!
  • NSToolBar working
  • Need to make all buttons use graphics instead of Unicode characters
  • WebView now rendering proper coloring
  • Fixed support for NSTabView
  • Settings not working yet
  • Help not working yet
  • Address bar is a little unresponsive (to be fixed next)
  • Need to fix ability to input text in web view
  • YouTube does not play videos (does not work on macOS either)
  • Tabs need to be switched to update titles
  • Tab overview button current presents a list rather than a visual overview
  • Needs proper CMAKE module to locate GNUstep
  • Need to copy modified AppKit to new UI subfolder and separate GNUstep from AppKit
  • The ladybird build system does not seem to generate app bundles (It was also this way for the Mac version before I started)
  • I am looking into the possibility of building a windows version as well since GNUstep supports this, though this will move slower than other items above.
  • Need to test a distribution that uses musl to see if vcpkg has to pull in glibc, and confirm whether or not gnustep compiled with CLANG can work with this toolchain.
  • Need to determine how to handle pulling in GNUStep when GNUstep compiled with libobjc2 is not available for the distribution or determine if this can be made to support GCC without much effort.

Installation requirements

  • FreeBSD not yet supported due to it being unable to build ICU. Seems to be upstream issue with vcpkg.
  • Only Debian 13 Trixie working so far and Devuan 6.0 Excaliber
sudo apt install autoconf autoconf-archive automake build-essential ccache cmake curl fonts-liberation2 git libdrm-dev libgl1-mesa-dev libtool nasm ninja-build pkg-config python3-venv qt6-base-dev qt6-tools-dev-tools qt6-wayland tar unzip zip

I think we can safely omit qt6* packages as requirements but I need to determine what else is still required for GNUstep AppKit version

The Ladybird build documentation for CMake 3.25 or newer from KitWare does not work on ARM64, they do not have builds for Trixie ARM64. I skipped this.

Other requirements installed for testing were:

Note this repo did not have work for Devuan when I tried Devuan 6.0 Excalibur so I skipped these packages and the build worked anyway. I did have older clang installed however from gershwin-build.

# Add LLVM GPG signing key
sudo wget -O /usr/share/keyrings/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key

# Optional: Verify the GPG key manually

# Use the key to authorize an entry for apt.llvm.org in apt sources list
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] https://apt.llvm.org/$(lsb_release -sc)/ llvm-toolchain-$(lsb_release -sc)-20 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list

# Update apt package list and install clang and associated packages
sudo apt update -y && sudo apt install clang-20 clangd-20 clang-tools-20 clang-format-20 clang-tidy-20 lld-20 -y

Audio support

sudo apt install libpulse-dev

I believe I installed this but configure still complains it cannot be found.

These are the steps to build and run ladybird using AppKit for GNUstep:

Bootstrap vcpkg

python3 Toolchain/BuildVcpkg.py

Configure with GNUstep support

CC=clang CXX=clang++ cmake --preset Release -DENABLE_QT=OFF

Build

cmake --build Build/release

Run

./Build/release/bin/Ladybird

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions