Code Monkey home page Code Monkey logo

ancient-history's Introduction

The Ladybird web browser has moved into the SerenityOS monorepo.

You'll find it under /Ladybird

ancient-history's People

Contributors

aarondewes avatar adkaster avatar atkinssj avatar awesomekling avatar baitinq avatar bertaland avatar davidgannerud avatar davidot avatar elcuco avatar filiphsps avatar fluxth avatar gunnarbeutner avatar hexeption avatar idanho avatar itamar8910 avatar jonaski avatar julen avatar kalenikaliaksandr avatar kemzeb avatar linusg avatar lubrsi avatar macdue avatar moustafaraafat avatar mrkct avatar networkexception avatar niek avatar orpheustaken avatar son-link avatar trflynn89 avatar ucosty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ancient-history's Issues

Segmentation fault on ARM64

On Arch Linux ARM64, I get a Segmentation fault on a fresh checkout (2ebaaf5):

Building (with clang, since ldd+gcc results in build error):

$ git clone [email protected]:SerenityOS/ladybird.git
$ cd ladybird
$ cmake -GNinja -B Build -DCMAKE_CXX_COMPILER=clang++
$ cmake --build Build
$ ninja -C Build debug

Running (no window showing up, crashing immediately):

(gdb) run
Starting program: /home/grav/repo/ladybird/Build/ladybird 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0xfffff00eef00 (LWP 81829)]
[New Thread 0xffffe3ed1f00 (LWP 81830)]

Thread 1 "ladybird" received signal SIGSEGV, Segmentation fault.
is_function () at serenity/Userland/Libraries/LibJS/Runtime/Value.cpp:224
224	   return is_object() && as_object().is_function();
(gdb) bt
#0  is_function () at serenity/Userland/Libraries/LibJS/Runtime/Value.cpp:224
#1  as_function () at serenity/Userland/Libraries/LibJS/Runtime/Value.cpp:229
#2  0x0000fffff5610260 in initialize_intrinsics () at serenity/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp:310
#3  0x0000fffff560ce28 in create () at serenity/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp:157
#4  0x0000fffff5664400 in create () at serenity/Userland/Libraries/LibJS/Runtime/Realm.cpp:24
#5  initialize_host_defined_realm () at serenity/Userland/Libraries/LibJS/Runtime/Realm.cpp:40
#6  0x0000fffff7a78a94 in main_thread_vm () at serenity/Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp:308
#7  0x0000fffff7cc0eb0 in main_thread_event_loop () at serenity/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp:49
#8  0x0000fffff7b32550 in create_a_new_browsing_context () at serenity/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp:97
#9  0x0000fffff7c3aa9c in Page () at serenity/Userland/Libraries/LibWeb/Page/Page.cpp:16
#10 0x0000aaaaaaae4420 in make<Web::Page, HeadlessBrowserPageClient&> () at serenity/AK/NonnullOwnPtr.h:161
#11 HeadlessBrowserPageClient () at /home/grav/repo/ladybird/WebView.cpp:342
#12 create () at /home/grav/repo/ladybird/WebView.cpp:93
#13 WebView () at /home/grav/repo/ladybird/WebView.cpp:362
#14 0x0000aaaaaaaeca18 in Tab () at /home/grav/repo/ladybird/Tab.cpp:28
#15 0x0000aaaaaaad4e18 in make<Tab, BrowserWindow*> () at serenity/AK/NonnullOwnPtr.h:161
#16 new_tab () at /home/grav/repo/ladybird/BrowserWindow.cpp:213
#17 0x0000aaaaaaad4ccc in BrowserWindow () at /home/grav/repo/ladybird/BrowserWindow.cpp:199
#18 0x0000aaaaaaae3e84 in serenity_main () at /home/grav/repo/ladybird/main.cpp:33
#19 0x0000fffff75616b0 in main () at serenity/Userland/Libraries/LibMain/Main.cpp:39

Build Failure

Working with Ubuntu 22.04.1 LTS
done:
apt install build-essential cmake libgl1-mesa-dev ninja-build qt6-base-dev qt6-tools-dev-tools
apt install qt6-wayland
apt install qt6

"cmake --build Build" fails with this error-message:
ladybird-master/WebView.cpp:46:10: fatal error: LibWeb/ImageDecoding.h: No such file or directory
46 | #include <LibWeb/ImageDecoding.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.

Any help is welcomed

certificate verification failed :(

Ladybird built successfully on ArchLinux using your 'Basic workflow' build steps. It runs, too, but when I go to any SSL site, I get:

ResourceLoader: Starting load of: "https://google.ca/"
Loaded 0 CA Certificates
verify_chain: No trusted root certificate found before end of certificate chain
verify_chain: Last certificate in chain was signed by /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
certificate verification failed :(
null secret
Possible failure cause(s):
- No one knows.

UX features request

I do know that it's very early for feature requests but I couldn't resist the temptation to suggest the following extra-principle UX features to be considered for being developed in-house.

  1. Built-in multi-row tabbing ie tabs can be placed in more than one horizontal rows where both the number of tabs per row and the number of rows can be set by the user
  2. Built-in (tab) session manager which will support multi-level nesting categories/groups
  3. Built-in tab locking and unloading

Tia

Cannot run on WSL

I try to build Ladybird in WSL2, but I get an error:

$ cmake --build .
[0/2] Re-checking globbed directories...
[1/3] Automatic MOC and UIC for target ladybird
$ ninja run
[0/2] Re-checking globbed directories...
[1/2] cd /mnt/c/Users/xxx/Workspace/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/mnt/c/Users/xxx/Workspace/ladybird/Build/serenity /mnt/c/Users/xxx/Workspace/ladybird/Build/ladybird
Set favicon path to /mnt/c/Users/xxx/Workspace/ladybird/Build/serenity/Base/res/icons/16x16/app-browser.png
ladybird: /mnt/c/Users/xxx/Workspace/ladybird/Build/serenity/AK/Variant.h:366: T &AK::Variant<Core::AnonymousBuffer, AK::Error>::get() [Ts = <Core::AnonymousBuffer, AK::Error>, T = Core::AnonymousBuffer]: Assertion `has<T>()' failed.
Subprocess aborted
FAILED: CMakeFiles/run /mnt/c/Users/xxx/Workspace/ladybird/Build/CMakeFiles/run
cd /mnt/c/Users/xxx/Workspace/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/mnt/c/Users/xxx/Workspace/ladybird/Build/serenity /mnt/c/Users/xxx/Workspace/ladybird/Build/ladybird
ninja: build stopped: subcommand failed.

Which function does invoke AK::Variant<Core::AnonymousBuffer, AK::Error>::get()? How can I show the stack trace?

I am using cmake 3.23.2 and ninja 1.8.2.

macOS build fails due to being unable to dynamically load liblagom-webview.0.dylib

Hi, I wanted to try out Ladybird so I checked out the build instructions and figured out that I could be cheeky and take a shortcut by instead of setting up all of the environment and dependencies, I could just fork the repository, update the CI workflow file to add a step to drop the built binary as an artifact and then download it and try it out as a user. So that's what I did!

https://github.com/TomasHubelbauer/ladybird/actions/runs/3483468763#artifacts
Here's my run with the Ubuntu and macOS artifacts.

After downloading the macOS artifact and making the application executable by running chmod +x ladybird.app/Contents/MacOS/ladybird and enabling Ladybird to run in macOS Security settings, I was greeted with a crash screen.

The crash screen mentioned that this dynamic library was not found: liblagom-webview.0.dylib. I wanted to copy the rest of the details, but now when I run Ladybird again, it doesn't come up anymore, it just silently exits.

I didn't realize Ladybird would be dynamically linking stuff that I'd only have if I set up the build environment beforehand. That's a fair thing to happen so if there is no way to run Ladybird without doing that, that's my loss. However I noticed that the Lagom related mentions in the build instructions are all Android specific? So I wonder if I can make Ladybird run without it, somehow?

Text selection not working

Unable to select text on any website. I think this feature is implemented but it currently doesn't work.

Build failure

GCC 12.2:

2091/2103] Building CXX object CMakeFiles/ladybird.dir/ConsoleGlobalObject.cpp.o
FAILED: CMakeFiles/ladybird.dir/ConsoleGlobalObject.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I./ladybird/Build/ladybird_autogen/include -I./ladybird/Build/serenity/Userland/Libraries -I./ladybird/Build/_deps/lagom-build/Services -I./ladybird/Build/serenity -I./ladybird/Build/_deps/lagom-build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtNetwork -march=native -mtune=native -O3 -pipe -fno-plt -Wno-deprecated-declarations -ggnu-pubnames -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -Wno-unused-command-line-argument -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g1 -O2 -fno-semantic-interposition -Wno-expansion-to-defined -Wno-user-defined-literals -std=c++20 -MD -MT CMakeFiles/ladybird.dir/ConsoleGlobalObject.cpp.o -MF CMakeFiles/ladybird.dir/ConsoleGlobalObject.cpp.o.d -o CMakeFiles/ladybird.dir/ConsoleGlobalObject.cpp.o -c ./ladybird/ConsoleGlobalObject.cpp
./ladybird/ConsoleGlobalObject.cpp:10:10: schwerwiegender Fehler: LibWeb/Bindings/NodeWrapper.h: Datei oder Verzeichnis nicht gefunden
   10 | #include <LibWeb/Bindings/NodeWrapper.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kompilierung beendet.
[2092/2103] Building CXX object CMakeFiles/ladybird.dir/ConsoleClient.cpp.o
FAILED: CMakeFiles/ladybird.dir/ConsoleClient.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I./ladybird/Build/ladybird_autogen/include -I./ladybird/Build/serenity/Userland/Libraries -I./ladybird/Build/_deps/lagom-build/Services -I./ladybird/Build/serenity -I./ladybird/Build/_deps/lagom-build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtNetwork -march=native -mtune=native -O3 -pipe -fno-plt -Wno-deprecated-declarations -ggnu-pubnames -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -Wno-unused-command-line-argument -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g1 -O2 -fno-semantic-interposition -Wno-expansion-to-defined -Wno-user-defined-literals -std=c++20 -MD -MT CMakeFiles/ladybird.dir/ConsoleClient.cpp.o -MF CMakeFiles/ladybird.dir/ConsoleClient.cpp.o.d -o CMakeFiles/ladybird.dir/ConsoleClient.cpp.o -c ./ladybird/ConsoleClient.cpp
./ladybird/ConsoleClient.cpp:15:10: schwerwiegender Fehler: LibWeb/Bindings/WindowObject.h: Datei oder Verzeichnis nicht gefunden
   15 | #include <LibWeb/Bindings/WindowObject.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kompilierung beendet.
[2102/2103] Building CXX object CMakeFiles/ladybird.dir/WebView.cpp.o
FAILED: CMakeFiles/ladybird.dir/WebView.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I./ladybird/Build/ladybird_autogen/include -I./ladybird/Build/serenity/Userland/Libraries -I./ladybird/Build/_deps/lagom-build/Services -I./ladybird/Build/serenity -I./ladybird/Build/_deps/lagom-build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtNetwork -march=native -mtune=native -O3 -pipe -fno-plt -Wno-deprecated-declarations -ggnu-pubnames -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -Wno-unused-command-line-argument -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g1 -O2 -fno-semantic-interposition -Wno-expansion-to-defined -Wno-user-defined-literals -std=c++20 -MD -MT CMakeFiles/ladybird.dir/WebView.cpp.o -MF CMakeFiles/ladybird.dir/WebView.cpp.o.d -o CMakeFiles/ladybird.dir/WebView.cpp.o -c ./ladybird/WebView.cpp
In Datei, eingebunden von ./ladybird/ConsoleClient.h:14,
                 von ./ladybird/WebView.cpp:11:
./ladybird/ConsoleGlobalObject.h:41:18: Fehler: »virtual void Ladybird::ConsoleGlobalObject::initialize_global_object()« als »override« markiert, überschreibt aber nicht
   41 |     virtual void initialize_global_object() override;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
./ladybird/WebView.cpp: In Elementfunktion »void HeadlessBrowserPageClient::initialize_js_console()«:
./ladybird/WebView.cpp:184:38: Fehler: »class Web::DOM::Document« hat kein Element namens »interpreter«
  184 |         auto interpreter = document->interpreter().make_weak_ptr();
      |                                      ^~~~~~~~~~~

BTW: I don't lake Wayland, will never use qt6-wayland

CMake: Add install rules and rpath

If someone wants to run ladybird out of /usr/local or .local/bin (and take advantage of that sweet .local/Lagom default path I added) there should be some install rules added.

  • check whether any modifications are needed to Lagom CMake lists to install from FetchContent'd repos.
  • add install rules to ladybird, probably in a sep CMake file under CMake/ like Jakt has
  • ensure the default rpath rules to make CMake not use build rpath for install are present.

TextField size is wrong

As shown in a recent video where @awesomekling managed to login into discord using lady bird (yay!), the text fields size are a little bit weird, the height shrinks when its empty, and also it should have some default width, if you create a text field in firefox or chrome you can see it adds a default width to it

Speaking of discord, the email and password text fields have the different widths, probably it has something to do with the default width thing

License?

Great project!

What is the license of this project?

Thanks.

sys/cdefs.h is non-standard

/usr/include/sys/cdefs.h:1:2: error: #warning usage of non-standard #include <sys/cdefs.h> is deprecated [-Werror=cpp]
    1 | #warning usage of non-standard #include <sys/cdefs.h> is deprecated
      |  ^~~~~~~

Crashes trying to load pages

The program will open but upon trying to load a page it will crash with this

  • Crash log
ninja: Entering directory `Build'
[0/2] Re-checking globbed directories...
[0/1] cd /home/user/Downloads/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/home/user/Downloads/ladybird/Build/serenity /home/user/Downloads/ladybird/Build/ladybird
Set favoicon path to /home/user/Downloads/ladybird/Build/serenity/Base/res/icons/16x16/app-browser.png
ResourceLoader: Starting load of: "file:///home/user/Downloads/ladybird/Build/serenity/Base/res/html/error.html"
ladybird: /home/user/Downloads/ladybird/Build/serenity/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp:219: void Web::ResourceLoader::load(Web::LoadRequest&, AK::Function<void(AK::Span<const unsigned char>, const AK::HashMap<AK::String, AK::String, AK::CaseInsensitiveStringTraits>&, AK::Optional<unsigned int>)>, AK::Function<void(const AK::String&, AK::Optional<unsigned int>)>, AK::Optional<unsigned int>, AK::Function<void()>): Assertion `m_page.has_value()' failed.
Subprocess aborted
FAILED: CMakeFiles/run /home/user/Downloads/ladybird/Build/CMakeFiles/run
cd /home/user/Downloads/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/home/user/Downloads/ladybird/Build/serenity /home/user/Downloads/ladybird/Build/ladybird
ninja: build stopped: subcommand failed.

p.s. sorry for the program output mixed in with the back trace no idea how to fix that tbh

  • back trace
rt_sigprocmask(SIG_BLOCK, [HUP INT TERM], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x55a070dd1e60, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x55a070dd1e60, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, 8) = 0
rt_sigaction(SIGHUP, {sa_handler=0x55a070dd1e60, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, 8) = 0
ioctl(1, TIOCGWINSZ, {ws_row=47, ws_col=208, ws_xpixel=1878, ws_ypixel=996}) = 0
[0/1] cd /home/user/Downloads/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/home/user/Downloads/ladybird/Build/serenity /home/user/Downloads/ladybird/Build/ladybird) = 183
write(1, "\n", 1
)                       = 1
newfstatat(AT_FDCWD, "CMakeFiles", {st_mode=S_IFDIR|0755, st_size=336, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/user/Downloads/ladybird/Build/CMakeFiles", {st_mode=S_IFDIR|0755, st_size=336, ...}, 0) = 0
pipe2([4, 5], 0)                        = 0
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0
mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fe7c1ada000
rt_sigprocmask(SIG_BLOCK, ~[], [HUP INT TERM], 8) = 0
clone(child_stack=0x7fe7c1ae2ff0, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = 35478
munmap(0x7fe7c1ada000, 36864)           = 0
rt_sigprocmask(SIG_SETMASK, [HUP INT TERM], NULL, 8) = 0
close(5)                                = 0
ppoll([{fd=4, events=POLLIN|POLLPRI}], 1, NULL, [], 8Set favoicon path to /home/user/Downloads/ladybird/Build/serenity/Base/res/icons/16x16/app-browser.png
) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
ppoll([{fd=4, events=POLLIN|POLLPRI}], 1, NULL, [], 8ResourceLoader: Starting load of: "https://google.com/"
ResourceLoader: Failed load of: "https://google.com/", Error: Failed to initiate load, Duration: 13ms
ResourceLoader: Starting load of: "https://google.com/favicon.ico"
ResourceLoader: Failed load of: "https://google.com/favicon.ico", Error: Failed to initiate load, Duration: 0ms
ResourceLoader: Starting load of: "file:///home/user/Downloads/ladybird/Build/serenity/Base/res/html/error.html"
ladybird: /home/user/Downloads/ladybird/Build/serenity/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp:219: void Web::ResourceLoader::load(Web::LoadRequest&, AK::Function<void(AK::Span<const unsigned char>, const AK::HashMap<AK::String, AK::String, AK::CaseInsensitiveStringTraits>&, AK::Optional<unsigned int>)>, AK::Function<void(const AK::String&, AK::Optional<unsigned int>)>, AK::Optional<unsigned int>, AK::Function<void()>): Assertion `m_page.has_value()' failed.
Subprocess aborted
) = 1 ([{fd=4, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=35478, si_uid=1000, si_status=1, si_utime=0, si_stime=0} ---
rt_sigpending([], 8)                    = 0
read(4, "", 4096)                       = 0
close(4)                                = 0
wait4(35478, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 35478
write(1, "\33[31mFAILED: \33[0mCMakeFiles/run "..., 84FAILED: CMakeFiles/run /home/user/Downloads/ladybird/Build/CMakeFiles/run
) = 84
write(1, "cd /home/user/Downloads/ladybird"..., 174cd /home/user/Downloads/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/home/user/Downloads/ladybird/Build/serenity /home/user/Downloads/ladybird/Build/ladybird
) = 174
write(1, "ninja: build stopped: subcommand"..., 41ninja: build stopped: subcommand failed.
) = 41
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, NULL, 8) = 0
rt_sigaction(SIGHUP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe7c16aa8e0}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(1)                           = ?
  • Hardware info
                   -`                    user@archlinux
                  .o+`                   --------------
                 `ooo/                   OS: Arch Linux x86_64
                `+oooo:                  Host: B450 AORUS PRO WIFI
               `+oooooo:                 Kernel: 5.18.9-arch1-1
               -+oooooo+:                Uptime: 1 hour, 2 mins
             `/:-:++oooo+:               Packages: 520 (pacman)
            `/++++/+++++++:              Shell: bash 5.1.16
           `/++++++++++++++:             Resolution: 1920x1080
          `/+++ooooooooooooo/`           WM: LeftWM
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK3]
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK3]
       -osssssso.      :ssssssso.        Terminal: alacritty
      :osssssss/        osssso+++.       Terminal Font: black: '0x282828'
     /ossssssss/        +ssssooo/-       CPU: AMD Ryzen 7 3700X (16) @ 3.600GHz
   `/ossssso+/:-        -:/+osssso+-     GPU: NVIDIA GeForce GTX 1080
  `+sso+:-`                 `.-/+oso:    Memory: 1446MiB / 32042MiB
 `++:.                           `-/+/
 .`                                 `/
  • Packages
acl 2.3.1-2
adobe-source-code-pro-fonts 2.038ro+1.058it+1.018var-1
adwaita-icon-theme 42.0+r1+gc144c3d75-1
alacritty 0.10.1-2
alsa-card-profiles 1:0.3.53-2
alsa-lib 1.2.7.1-1
alsa-topology-conf 1.2.5.1-1
alsa-ucm-conf 1.2.7.1-1
amd-ucode 20220610.7b71b75-1
anki-bin 2.1.54-1
aom 3.4.0-1
archlinux-keyring 20220424-1
argon2 20190702-4
at-spi2-atk 2.38.0-1
at-spi2-core 2.44.1-1
atk 2.38.0-1
attr 2.5.1-2
audit 3.0.8-1
autoconf 2.71-1
automake 1.16.5-1
avahi 0.8+22+gfd482a7-3
base 2-2
bash 5.1.016-1
binutils 2.38-6
bison 3.8.2-4
bluez-libs 5.64-2
bottom 0.6.8-1
brotli 1.0.9-8
btrfs-progs 5.18.1-1
bzip2 1.0.8-4
ca-certificates 20210603-1
ca-certificates-mozilla 3.80-1
ca-certificates-utils 20210603-1
cairo 1.17.6-2
cantarell-fonts 1:0.303.1-1
cava 0.8.2-1
cmake 3.23.2-1
coreutils 9.1-1
cryptsetup 2.4.3-2
curl 7.84.0-1
dav1d 1.0.0-1
db 5.3.28-5
dbus 1.14.0-1
dbus-glib 0.112-2
dconf 0.40.0-1
desktop-file-utils 0.26-2
device-mapper 2.03.16-1
diffutils 3.8-1
double-conversion 3.2.0-1
duktape 2.7.0-2
e2fsprogs 1.46.5-4
efibootmgr 17-2
efivar 38-2
egl-wayland 2:1.1.10-1
eglexternalplatform 1.1-2
ell 0.51-1
expat 2.4.8-1
fakeroot 1.29-1
ffmpeg 2:5.0.1-3
fftw 3.3.10-3
file 5.42-1
filesystem 2021.12.07-1
findutils 4.9.0-1
flac 1.3.4-2
flex 2.6.4-3
fontconfig 2:2.14.0-1
freeglut 3.2.2-2
freeimage 3.18.0-15
freetype2 2.12.1-1
fribidi 1.0.12-1
gawk 5.1.1-1
gc 8.2.0-3
gcc 12.1.0-2
gcc-libs 12.1.0-2
gcc-objc 12.1.0-2
gdbm 1.23-1
gdk-pixbuf2 2.42.8-1
gettext 0.21-2
giflib 5.2.1-2
git 2.37.0-1
glib-networking 1:2.72.1-1
glib2 2.72.3-1
glibc 2.35-6
glslang 11.10.0-1
glu 9.0.2-3
gmp 6.2.1-2
gnupg 2.2.35-2
gnustep-base 1.28.0-4
gnustep-make 2.9.0-1
gnutls 3.7.6-1
gpgme 1.17.1-1
graphite 1:1.3.14-2
grep 3.7-1
groff 1.22.4-7
grub 2:2.06.r261.g2f4430cc0-1
gsettings-desktop-schemas 42.0-1
gsm 1.0.19-1
gst-plugin-pipewire 1:0.3.53-2
gst-plugins-base-libs 1.20.3-1
gstreamer 1.20.3-1
gtk-update-icon-cache 1:4.6.6-1
gtk3 1:3.24.34-1
guile 2.2.7-2
gzip 1.12-1
harfbuzz 4.4.1-1
helix 22.05-3
hicolor-icon-theme 0.17-2
hidapi 0.12.0-1
hwdata 0.360-1
hwloc 2.7.1-1
iana-etc 20220603-1
icu 71.1-1
imath 3.1.5-2
imv 4.3.1-5
iniparser 4.1-4
iproute2 5.18.0-1
iptables 1:1.8.8-1
iputils 20211215-1
iso-codes 4.10.0-1
iwd 1.28-1
jansson 2.14-2
jasper 3.0.4-1
joshuto 0.9.3-1
json-c 0.16-1
json-glib 1.6.6-2
jsoncpp 1.9.5-2
jxrlib 0.2.4-1
kbd 2.5.1-1
keyutils 1.6.3-1
kmod 30-1
krb5 1.19.3-3
l-smash 2.14.5-2
lame 3.100-3
lcms2 2.13.1-1
leftwm 1:0.3.0-1
less 1:590-1
libarchive 3.6.1-1
libass 0.16.0-1
libassuan 2.5.5-1
libasyncns 1:0.8+r3+g68cd5af-1
libavc1394 0.5.4-4
libb2 0.98.1-2
libbluray 1.3.1-1
libbpf 0.8.0-1
libcap 2.64-1
libcap-ng 0.8.3-1
libcddb 1.3.2-6
libcdio 2.1.0-2
libcdio-paranoia 10.2+2.0.1-2
libcloudproviders 0.3.1-2
libcolord 1.4.6-1
libcups 1:2.4.2-3
libdaemon 0.14-5
libdatrie 0.2.13-1
libde265 1.0.8-2
libdrm 2.4.111-1
libdvdnav 6.1.1-1
libdvdread 6.1.3-1
libedit 20210910_3.1-1
libelf 0.187-1
libepoxy 1.5.10-1
libev 4.33-1
libevdev 1.12.1-1
libevent 2.1.12-1
libfdk-aac 2.0.2-1
libffi 3.4.2-5
libfontenc 1.1.4-3
libfreeaptx 0.1.1-1
libgcrypt 1.10.1-1
libglvnd 1.4.0-2
libgpg-error 1.45-2
libgudev 237-2
libheif 1.12.0-3
libice 1.0.10-4
libidn2 2.3.2-1
libiec61883 1.2.0-6
libinih 55-2
libinput 1.21.0-1
libisl 0.24-4
libjpeg-turbo 2.1.3-2
libksba 1.6.0-1
libldac 2.0.2.3-1
libldap 2.6.2-2
libmfx 22.4.4-1
libmnl 1.0.5-1
libmodplug 0.8.9.0-3
libmpc 1.2.1-2
libmpdclient 2.20-2
libnetfilter_conntrack 1.0.9-1
libnfnetlink 1.0.2-1
libnftnl 1.2.2-1
libnghttp2 1.48.0-1
libnl 3.6.0-3
libnotify 0.7.12-1
libnsgif 0.2.1-7
libnsl 2.0.0-2
libogg 1.3.5-1
libomxil-bellagio 0.9.3-3
libp11-kit 0.24.1-1
libpcap 1.10.1-2
libpciaccess 0.16-3
libplacebo 4.192.1-3
libpng 1.6.37-3
libproxy 0.4.18-1
libpsl 0.21.1-1
libpulse 16.1-1
libraw 0.20.2-2
libraw1394 2.1.2-3
librewolf-bin 102.0-2
librsvg 2:2.54.4-1
libsamplerate 0.2.2-1
libsasl 2.1.28-1
libseccomp 2.5.4-1
libsecret 0.20.5-2
libsm 1.2.3-3
libsndfile 1.1.0-2
libsoup 2.74.2-2
libsoup3 3.0.7-1
libsoxr 0.1.3-2
libssh 0.9.6-1
libssh2 1.10.0-1
libstemmer 2.2.0-2
libsysprof-capture 3.44.0-1
libtasn1 4.18.0-1
libthai 0.1.29-1
libtheora 1.1.1-5
libtiff 4.4.0-1
libtirpc 1.3.2-1
libtool 2.4.7-2
libunistring 1.0-1
libunwind 1.6.2-1
libusb 1.0.26-1
libutempter 1.2.1-3
libuv 1.43.0-1
libva 2.15.0-1
libvdpau 1.5-1
libverto 0.3.2-4
libvorbis 1.3.7-3
libvpx 1.12.0-1
libwacom 2.3.0-1
libwebp 1.2.2-1
libx11 1.8.1-2
libxau 1.0.9-4
libxaw 1.0.14-1
libxcb 1.15-1
libxcomposite 0.4.5-4
libxcrypt 4.4.28-2
libxcursor 1.2.1-1
libxcvt 0.1.1-1
libxdamage 1.1.5-4
libxdmcp 1.1.3-4
libxext 1.3.4-4
libxfixes 6.0.0-1
libxfont2 2.0.5-1
libxft 2.3.4-1
libxi 1.8-1
libxinerama 1.1.4-4
libxkbcommon 1.4.1-1
libxkbcommon-x11 1.4.1-1
libxkbfile 1.1.0-3
libxml2 2.9.14-1
libxmu 1.1.3-3
libxnvctrl 515.57-1
libxpm 3.5.13-3
libxrandr 1.5.2-4
libxrender 0.9.10-5
libxshmfence 1.3-3
libxslt 1.1.35-1
libxss 1.2.3-4
libxt 1.2.1-1
libxtst 1.2.3-5
libxv 1.0.11-5
libxxf86vm 1.1.4-5
licenses 20220125-1
lilv 0.24.14-2
linux 5.18.9.arch1-1
linux-api-headers 5.17.5-2
linux-firmware 20220610.7b71b75-1
linux-firmware-whence 20220610.7b71b75-1
llvm-libs 14.0.6-1
lm_sensors 1:3.6.0.r41.g31d1f125-1
lua 5.4.4-1
luajit 2.1.0.beta3.r422.g4c2441c1-1
luit 20220111-1
lv2 1.18.4-2
lz4 1:1.9.3-2
lzo 2.10-3
m4 1.4.19-1
mailcap 2.1.53-1
make 4.3-3
mbedtls 2.28.0-1
md4c 0.4.8-1
mesa 22.1.3-1
minizip 1:1.2.12-2
mkinitcpio 31-2
mkinitcpio-busybox 1.35.0-1
mpfr 4.1.0.p13-2
mpv 1:0.34.1-4
mtdev 1.1.6-2
mujs 1.2.0-2
ncspot-bin 0.10.0-1
ncurses 6.3-3
neofetch 7.1.0-2
nettle 3.8-1
ninja 1.11.0-1
noto-fonts 20220607-1
noto-fonts-cjk 20220126-1
noto-fonts-emoji 20211101-1
noto-fonts-extra 20220607-1
npth 1.6-3
nspr 4.34-1
nss 3.80-1
nushell 0.64.0-1
nvidia 515.57-3
nvidia-settings 515.57-1
nvidia-utils 515.57-1
obs-studio 27.2.4-1
opencore-amr 0.1.5-5
openexr 3.1.5-1
openjpeg2 2.5.0-1
openmpi 4.1.4-1
openpmix 4.1.2-1
openrgb 0.7-6
openssl 1.1.1.p-1
opus 1.3.1-3
orc 0.4.32-1
p11-kit 0.24.1-1
pacman 6.0.1-5
pacman-mirrorlist 20220605-1
pacmixer 0.6.3-4
pam 1.5.2-1
pambase 20211210-1
pango 1:1.50.8-1
paru 1.11.0-1
patch 2.7.6-8
pciutils 3.8.0-2
pcre 8.45-1
pcre2 10.40-1
perl 5.36.0-1
perl-error 0.17029-4
perl-mailtools 2.21-6
perl-timedate 2.33-4
pinentry 1.2.0-1
pipewire 1:0.3.53-2
pipewire-alsa 1:0.3.53-2
pipewire-jack 1:0.3.53-2
pipewire-pulse 1:0.3.53-2
pixman 0.40.0-2
pkgconf 1.8.0-1
polybar 3.6.3-2
popt 1.18-3
procps-ng 3.3.17-1
protobuf 21.2-1
psmisc 23.5-1
python 3.10.5-1
python-appdirs 1.4.4-6
python-attrs 21.4.0-1
python-beautifulsoup4 4.10.0-1
python-cachecontrol 1:0.12.6-4
python-certifi 2022.06.15-1
python-cffi 1.15.1-1
python-chardet 4.0.0-5
python-click 8.1.3-1
python-colorama 0.4.5-1
python-commonmark 0.9.1-5
python-cryptography 37.0.2-1
python-decorator 5.1.1-1
python-distlib 0.3.4-1
python-distro 1.7.0-1
python-docutils 1:0.18.1-1
python-flask 2.1.2-1
python-flask-cors 3.0.10-3
python-future 0.18.2-7
python-html5lib 1.1-11
python-idna 3.3-4
python-importlib-metadata 4.8.1-3
python-itsdangerous 2.1.2-2
python-jaraco.context 4.1.1-2
python-jaraco.functools 3.5.0-2
python-jaraco.text 3.8.0-2
python-jinja 1:3.1.2-1
python-jsonschema 3.2.0-6
python-markdown 3.3.7-1
python-markupsafe 2.1.1-1
python-more-itertools 8.13.0-1
python-msgpack 1.0.3-1
python-nspektr 0.4.0-1
python-ordered-set 4.0.2-6
python-orjson 3.7.6-1
python-packaging 21.3-1
python-pep517 0.12.0-4
python-pip 22.1.2-1
python-platformdirs 2.5.1-1
python-ply 3.11-10
python-protobuf 21.2-1
python-pycparser 2.21-3
python-pygments 2.12.0-1
python-pyopenssl 22.0.0-1
python-pyparsing 3.0.9-1
python-pyqt6 6.3.1-1
python-pyqt6-sip 13.4.0-1
python-pyqt6-webengine 6.3.1-1
python-pyrsistent 0.18.1-1
python-pysocks 1.7.1-7
python-requests 2.27.1-1
python-resolvelib 0.8.1-1
python-rich 12.4.4-1
python-send2trash 1.8.0-3
python-setuptools 1:61.3.1-1
python-six 1.16.0-5
python-soupsieve 2.3.1-1
python-tenacity 8.0.1-3
python-tomli 2.0.1-1
python-trove-classifiers 2022.6.26-1
python-typing_extensions 4.2.0-1
python-urllib3 1.26.9-1
python-validate-pyproject 0.9-1
python-waitress 2.1.2-1
python-webencodings 0.5.1-9
python-werkzeug 2.1.2-1
python-zipp 3.8.0-2
qt5-base 5.15.5+kde+r167-1
qt5-svg 5.15.5+kde+r10-1
qt5-translations 5.15.5+kde+r2-1
qt6-base 6.3.1-1
qt6-declarative 6.3.1-1
qt6-positioning 6.3.1-1
qt6-translations 6.3.1-1
qt6-webchannel 6.3.1-1
qt6-webengine 6.3.1-1
rav1e 0.4.1-2
re2 1:20220601-1
readline 8.1.002-1
rest 0.8.1+r4+ge5ee6ef-1
rhash 1.4.2-1
rlaunch 1.3.13-1
rnnoise 0.4.1-1
rubberband 2.0.2-1
rustup 1.24.3-2
sbc 1.5-2
sdl2 2.0.22-2
sed 4.8-1
serd 0.30.12-2
shaderc 2022.1-4
shadow 4.11.1-1
shared-mime-info 2.0+144+g13695c7-1
snappy 1.1.9-2
sord 0.16.10-2
speex 1.2.1-1
speexdsp 1.2.1-1
spirv-tools 2022.1-1
sqlite 3.39.0-2
sratom 0.6.10-3
srt 1.5.0-1
startup-notification 0.12-7
strace 5.18-1
sudo 1.9.11.p3-1
svt-av1 1.1.0-1
sysfsutils 2.1.1-1
systemd 251.2-1
systemd-libs 251.2-1
systemd-sysvcompat 251.2-1
tar 1.34-1
texinfo 6.8-2
tpm2-tss 3.2.0-1
tracker3 3.3.1-1
tslib 1.22-1
tzdata 2022a-1
uchardet 0.0.7-1
unclutter 1:1.6-2
unzip 6.0-18
util-linux 2.38-1
util-linux-libs 2.38-1
uwufetch 1.7-2
v4l-utils 1.22.1-1
vid.stab 1.1-3
vmaf 2.3.1-1
vulkan-headers 1:1.3.217-1
vulkan-icd-loader 1.3.217-1
wayland 1.21.0-1
webrtc-audio-processing 0.3.1-3
wget 1.21.3-1
which 2.21-5
wired 0.10.2-1
wireplumber 0.4.10-3
x264 3:0.164.r3081.19856cc-2
x265 3.5-3
xbitmaps 1.1.2-3
xcb-proto 1.15.2-1
xcb-util 0.4.0-4
xcb-util-cursor 0.1.3-4
xcb-util-image 0.4.0-4
xcb-util-keysyms 0.4.0-4
xcb-util-renderutil 0.3.9-4
xcb-util-wm 0.4.1-4
xcb-util-xrm 1.3-2
xcompmgr 1.1.8-3
xdg-user-dirs 0.17-3
xdg-utils 1.1.3+21+g1a58bc2-1
xf86-input-libinput 1.2.1-1
xkeyboard-config 2.36-2
xorg-fonts-encodings 1.0.5-2
xorg-server 21.1.3-7
xorg-server-common 21.1.3-7
xorg-setxkbmap 1.3.3-1
xorg-xauth 1.1.2-1
xorg-xinit 1.4.1-3
xorg-xkbcomp 1.4.5-1
xorg-xmodmap 1.0.10-3
xorg-xprop 1.2.5-1
xorg-xrandr 1.5.1-2
xorg-xrdb 1.2.1-1
xorg-xset 1.2.4-3
xorgproto 2022.1-1
xvidcore 1.3.7-2
xwallpaper 0.7.4-1
xz 5.2.5-3
yt-dlp 2022.06.29-1
zimg 3.0.4-1
zlib 1:1.2.12-2
zstd 1.5.2-7

Binary releases

First of all, congratulations on creating a new web browser from scratch!

Could you please provide binary releases for x86(-64) in order to quickly test Ladybird Browser in Linux/Windows? Thanks!

cmake thinks Lagom::WebSocket is an executable?

When I try to build with a fresh clone, I get this cmake error:

$ cmake -GNinja -B Build
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
CMake Error at CMakeLists.txt:43 (target_link_libraries):
  Target "Lagom::WebSocket" of type EXECUTABLE may not be linked into another
  target.  One may link only to INTERFACE, OBJECT, STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.

When I remove Lagom::WebSocket from CMakeLists.txt (and the associated websocket code from WebView, so it will successfully link), I can build and use the browser normally (though presumably without websocket support, if that works normally).

I'm not familiar with cmake-authoring or the Serenity build process, so I'm not sure what's going on here. I tried to dig into the Lagom cmake files but didn't get much traction in 20 minutes of searching around.

master doesn't compile

A clean checkout fails to compile. Simple 'cmake ../../ladybird && make' fails with

[ 16%] Linking CXX shared library liblagom-xml.so
[ 16%] Built target LibXML
[ 16%] Generating CSS/Enums.h, CSS/Enums.cpp
Runtime error: open: No such file or directory (errno=2)
make[2]: *** [_deps/lagom-build/Userland/Libraries/LibWeb/CMakeFiles/generate_Enums.cpp.dir/build.make:75: _deps/lagom-build/Userland/Libraries/LibWeb/CSS/Enums.h] Error 1
make[1]: *** [CMakeFiles/Makefile2:9056: _deps/lagom-build/Userland/Libraries/LibWeb/CMakeFiles/generate_Enums.cpp.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

[Build Error] Segmentation Fault

When running cmake -GNinja -B Build I am getting this error on macOS:

[4/2218] Building CXX object _deps/lag...land/Libraries/LibGUI/GML/Parser.cpp.o
FAILED: _deps/lagom-build/CMakeFiles/LibGUI.dir///Userland/Libraries/LibGUI/GML/Parser.cpp.o
/Library/Developer/CommandLineTools/usr/bin/c++ -DLibGUI_EXPORTS -I/Users/nico/Documents/Dev/ladybird/Build/serenity -I/Users/nico/Documents/Dev/ladybird/Build/serenity/Userland/Libraries -I/Users/nico/Documents/Dev/ladybird/Build/_deps/lagom-build -I/Users/nico/Documents/Dev/ladybird/Build/_deps/lagom-build/Userland/Services -I/Users/nico/Documents/Dev/ladybird/Build/_deps/lagom-build/Userland/Libraries -I/Users/nico/Documents/Dev/ladybird/Build/serenity/Meta/Lagom/../.. -I/Users/nico/Documents/Dev/ladybird/Build/serenity/Meta/Lagom/../../Userland -I/Users/nico/Documents/Dev/ladybird/Build/serenity/Meta/Lagom/../../Userland/Libraries -I/Users/nico/Documents/Dev/ladybird/Build/serenity/Meta/Lagom/../../Userland/Services -I/Users/nico/Documents/Dev/ladybird/Build -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk -fPIC -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -Wno-unused-command-line-argument -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g1 -O2 -Wno-overloaded-virtual -Wno-user-defined-literals -fconstexpr-steps=16777216 -Wno-unused-private-field -std=c++20 -MD -MT _deps/lagom-build/CMakeFiles/LibGUI.dir///Userland/Libraries/LibGUI/GML/Parser.cpp.o -MF _deps/lagom-build/CMakeFiles/LibGUI.dir///Userland/Libraries/LibGUI/GML/Parser.cpp.o.d -o _deps/lagom-build/CMakeFiles/LibGUI.dir///Userland/Libraries/LibGUI/GML/Parser.cpp.o -c /Users/nico/Documents/Dev/ladybird/Build/serenity/Userland/Libraries/LibGUI/GML/Parser.cpp
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Target: arm64-apple-darwin21.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
clang: note: diagnostic msg:


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/d0/3xyb4j252nxfphjnb7wd8sq00000gp/T/Parser-08fa67.cpp
clang: note: diagnostic msg: /var/folders/d0/3xyb4j252nxfphjnb7wd8sq00000gp/T/Parser-08fa67.sh
clang: note: diagnostic msg: Crash backtrace is located in
clang: note: diagnostic msg: /Users/nico/Library/Logs/DiagnosticReports/clang__.crash
clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang: note: diagnostic msg:


Also, I am not sure what repo I should checkout/run the build commands in:

  • should I checkout serenity repo as well as ladybird?

Build error on macOS (ARM): "ld: symbol(s) not found for architecture arm64"

I get this error when I try to build on macOS 12.6.1 on my M1 and have updated the Xcode command line tools to version 14.1.

-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The C compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Removing outdated /Users/paddi/Clones/ladybird/Build/TZDB for version 2022e
-- Downloading file tzdb.tar.gz from https://data.iana.org/time-zones/releases/tzdata2022e.tar.gz
-- Extracting using cmake africa
-- Extracting using cmake antarctica
-- Extracting using cmake asia
-- Extracting using cmake australasia
-- Extracting using cmake backward
-- Extracting using cmake etcetera
-- Extracting using cmake europe
-- Extracting using cmake northamerica
-- Extracting using cmake southamerica
-- Extracting using cmake zone1970.tab
-- Removing outdated /Users/paddi/Clones/ladybird/Build/CLDR for version 42.0.0
-- Downloading file cldr.zip from https://github.com/unicode-org/cldr-json/releases/download/42.0.0/cldr-42.0.0-json-modern.zip
-- Extracting using cmake cldr-bcp47/**
-- Extracting using cmake cldr-core/**
-- Extracting using cmake cldr-dates-modern/**
-- Extracting using cmake cldr-localenames-modern/**
-- Extracting using cmake cldr-misc-modern/**
-- Extracting using cmake cldr-numbers-modern/**
-- Extracting using cmake cldr-units-modern/**
-- Removing outdated /Users/paddi/Clones/ladybird/Build/UCD for version 15.0.0
-- Downloading file UCD.zip from https://www.unicode.org/Public/15.0.0/ucd/UCD.zip
-- Extracting using cmake UnicodeData.txt
-- Extracting using cmake SpecialCasing.txt
-- Extracting using cmake extracted/DerivedGeneralCategory.txt
-- Extracting using cmake PropList.txt
-- Extracting using cmake DerivedCoreProperties.txt
-- Extracting using cmake extracted/DerivedBinaryProperties.txt
-- Extracting using cmake PropertyAliases.txt
-- Extracting using cmake PropertyValueAliases.txt
-- Extracting using cmake NameAliases.txt
-- Extracting using cmake Scripts.txt
-- Extracting using cmake ScriptExtensions.txt
-- Extracting using cmake Blocks.txt
-- Extracting using cmake emoji/emoji-data.txt
-- Extracting using cmake DerivedNormalizationProps.txt
-- Extracting using cmake auxiliary/GraphemeBreakProperty.txt
-- Extracting using cmake auxiliary/WordBreakProperty.txt
-- Extracting using cmake auxiliary/SentenceBreakProperty.txt
-- Downloading file emoji-test.txt from https://unicode.org/Public/emoji/15.0/emoji-test.txt
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/OpenGL.framework
-- Found WrapOpenGL: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/paddi/Clones/ladybird/Build
[0/2] Re-checking globbed directories...
[2234/2248] Linking CXX executable WebContent/WebContent
FAILED: WebContent/WebContent
: && /Library/Developer/CommandLineTools/usr/bin/c++ -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk -mmacosx-version-min=12.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  WebContent/CMakeFiles/WebContent.dir/WebContent_autogen/mocs_compilation.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/ConnectionFromClient.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/ConsoleGlobalObject.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/PageHost.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/WebContentConsoleClient.cpp.o WebContent/CMakeFiles/WebContent.dir/__/EventLoopPluginQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/FontPluginQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/ImageCodecPluginLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/__/RequestManagerQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/TimerQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/Utilities.cpp.o WebContent/CMakeFiles/WebContent.dir/__/WebSocketClientManagerLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/__/WebSocketLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/main.cpp.o -o WebContent/WebContent  -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibWebSocket -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibWeb -Wl,-rpath,/opt/homebrew/lib -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibGfx -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibIPC -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibCore  _deps/lagom-build/liblagom-webview.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibWebSocket/liblagom-websocket.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibWeb/liblagom-web.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibMain/liblagom-main.a  /opt/homebrew/lib/QtNetwork.framework/Versions/A/QtNetwork  /opt/homebrew/lib/QtGui.framework/Versions/A/QtGui  /opt/homebrew/lib/QtCore.framework/Versions/A/QtCore  -framework IOKit  -framework DiskArbitration  -framework  OpenGL  -framework  AGL  -framework AppKit  -framework ImageIO  -framework Metal  _deps/lagom-build/Userland/Libraries/LibGfx/liblagom-gfx.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibIPC/liblagom-ipc.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibCore/liblagom-core.0.0.0.dylib && :
Undefined symbols for architecture arm64:
  "JS::HandleImpl::HandleImpl(JS::Cell*)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::HandleImpl::~HandleImpl()", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
      WebContent::ConnectionFromClient::~ConnectionFromClient() in ConnectionFromClient.cpp.o
      WebContent::WebContentConsoleClient::~WebContentConsoleClient() in ConnectionFromClient.cpp.o
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
      WebContent::WebContentConsoleClient::~WebContentConsoleClient() in WebContentConsoleClient.cpp.o
  "JS::same_value(JS::Value, JS::Value)", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::internal_set(JS::PropertyKey const&, JS::Value, JS::Value) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::initialize(JS::Realm&)", referenced from:
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::GlobalObject(JS::Realm&)", referenced from:
      WebContent::ConsoleGlobalObject::ConsoleGlobalObject(JS::Realm&, Web::HTML::Window&) in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::ConsoleGlobalObject(JS::Realm&, Web::HTML::Window&) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::~GlobalObject()", referenced from:
      WebContent::ConsoleGlobalObject::~ConsoleGlobalObject() in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::~ConsoleGlobalObject() in ConsoleGlobalObject.cpp.o
  "JS::MarkupGenerator::html_from_error(JS::Error const&, bool)", referenced from:
      WebContent::WebContentConsoleClient::report_exception(JS::Error const&, bool) in WebContentConsoleClient.cpp.o
  "JS::MarkupGenerator::html_from_value(JS::Value)", referenced from:
      WebContent::WebContentConsoleClient::handle_input(AK::String const&) in WebContentConsoleClient.cpp.o
  "JS::unregister_safe_function_closure(void*, unsigned long)", referenced from:
      JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>::clear(bool) in ConsoleGlobalObject.cpp.o
  "JS::Heap::undefer_gc(AK::Badge<JS::DeferGC>)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Heap::allocate_cell(unsigned long)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Heap::collect_garbage(JS::Heap::CollectionType, bool)", referenced from:
      WebContent::ConnectionFromClient::debug_request(AK::String const&, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Heap::defer_gc(AK::Badge<JS::DeferGC>)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Object::visit_edges(JS::Cell::Visitor&)", referenced from:
      WebContent::ConsoleGlobalObject::visit_edges(JS::Cell::Visitor&) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_set(JS::PropertyKey const&, JS::Value, JS::Value)", referenced from:
      WebContent::ConsoleGlobalObject::internal_set(JS::PropertyKey const&, JS::Value, JS::Value) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_delete(JS::PropertyKey const&)", referenced from:
      WebContent::ConsoleGlobalObject::internal_delete(JS::PropertyKey const&) in ConsoleGlobalObject.cpp.o
  "JS::Object::define_native_accessor(JS::Realm&, JS::PropertyKey const&, JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>, JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>, JS::PropertyAttributes)", referenced from:
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_prevent_extensions()", referenced from:
      WebContent::ConsoleGlobalObject::internal_prevent_extensions() in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_define_own_property(JS::PropertyKey const&, JS::PropertyDescriptor const&)", referenced from:
      WebContent::ConsoleGlobalObject::internal_define_own_property(JS::PropertyKey const&, JS::PropertyDescriptor const&) in ConsoleGlobalObject.cpp.o
  "JS::ErrorType::NotAnObjectOfType", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
  "JS::TypeError::create(JS::Realm&, AK::String const&)", referenced from:
      JS::Completion JS::VM::throw_completion<JS::TypeError, char const (&) [20]>(JS::ErrorType, char const (&) [20]) in ConsoleGlobalObject.cpp.o
  "JS::Value::to_string_without_side_effects() const", referenced from:
      AK::Formatter<JS::Value, void>::format(AK::FormatBuilder&, JS::Value) in WebContentConsoleClient.cpp.o
  "JS::Value::to_object(JS::VM&) const", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
  "JS::Value::to_string(JS::VM&) const", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Object::internal_get(JS::PropertyKey const&, JS::Value) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
  "JS::Object::has_own_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_has_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_has_property(JS::PropertyKey const&) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_is_extensible() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_is_extensible() const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_get_own_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get_own_property(JS::PropertyKey const&) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_get_prototype_of() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get_prototype_of() const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_own_property_keys() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_own_property_keys() const in ConsoleGlobalObject.cpp.o
  "JS::Object::get(JS::PropertyKey const&) const", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Console::output_debug_message(JS::Console::LogLevel, AK::String const&) const", referenced from:
      WebContent::WebContentConsoleClient::printer(JS::Console::LogLevel, AK::Variant<JS::Console::Group, JS::Console::Trace, JS::MarkedVector<JS::Value, 32ul> >) in WebContentConsoleClient.cpp.o
  "typeinfo for JS::GlobalObject", referenced from:
      typeinfo for WebContent::ConsoleGlobalObject in ConsoleGlobalObject.cpp.o
  "typeinfo for JS::Object", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
ninja: Entering directory `Build'
[0/2] Re-checking globbed directories...
[1/16] Linking CXX executable WebContent/WebContent
FAILED: WebContent/WebContent
: && /Library/Developer/CommandLineTools/usr/bin/c++ -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk -mmacosx-version-min=12.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  WebContent/CMakeFiles/WebContent.dir/WebContent_autogen/mocs_compilation.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/ConnectionFromClient.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/ConsoleGlobalObject.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/PageHost.cpp.o WebContent/CMakeFiles/WebContent.dir/__/serenity/Userland/Services/WebContent/WebContentConsoleClient.cpp.o WebContent/CMakeFiles/WebContent.dir/__/EventLoopPluginQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/FontPluginQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/ImageCodecPluginLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/__/RequestManagerQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/TimerQt.cpp.o WebContent/CMakeFiles/WebContent.dir/__/Utilities.cpp.o WebContent/CMakeFiles/WebContent.dir/__/WebSocketClientManagerLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/__/WebSocketLadybird.cpp.o WebContent/CMakeFiles/WebContent.dir/main.cpp.o -o WebContent/WebContent  -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibWebSocket -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibWeb -Wl,-rpath,/opt/homebrew/lib -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibGfx -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibIPC -Wl,-rpath,/Users/paddi/Clones/ladybird/Build/_deps/lagom-build/Userland/Libraries/LibCore  _deps/lagom-build/liblagom-webview.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibWebSocket/liblagom-websocket.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibWeb/liblagom-web.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibMain/liblagom-main.a  /opt/homebrew/lib/QtNetwork.framework/Versions/A/QtNetwork  /opt/homebrew/lib/QtGui.framework/Versions/A/QtGui  /opt/homebrew/lib/QtCore.framework/Versions/A/QtCore  -framework IOKit  -framework DiskArbitration  -framework  OpenGL  -framework  AGL  -framework AppKit  -framework ImageIO  -framework Metal  _deps/lagom-build/Userland/Libraries/LibGfx/liblagom-gfx.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibIPC/liblagom-ipc.0.0.0.dylib  _deps/lagom-build/Userland/Libraries/LibCore/liblagom-core.0.0.0.dylib && :
Undefined symbols for architecture arm64:
  "JS::HandleImpl::HandleImpl(JS::Cell*)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::HandleImpl::~HandleImpl()", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
      WebContent::ConnectionFromClient::~ConnectionFromClient() in ConnectionFromClient.cpp.o
      WebContent::WebContentConsoleClient::~WebContentConsoleClient() in ConnectionFromClient.cpp.o
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
      WebContent::WebContentConsoleClient::~WebContentConsoleClient() in WebContentConsoleClient.cpp.o
  "JS::same_value(JS::Value, JS::Value)", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::internal_set(JS::PropertyKey const&, JS::Value, JS::Value) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::initialize(JS::Realm&)", referenced from:
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::GlobalObject(JS::Realm&)", referenced from:
      WebContent::ConsoleGlobalObject::ConsoleGlobalObject(JS::Realm&, Web::HTML::Window&) in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::ConsoleGlobalObject(JS::Realm&, Web::HTML::Window&) in ConsoleGlobalObject.cpp.o
  "JS::GlobalObject::~GlobalObject()", referenced from:
      WebContent::ConsoleGlobalObject::~ConsoleGlobalObject() in ConsoleGlobalObject.cpp.o
      WebContent::ConsoleGlobalObject::~ConsoleGlobalObject() in ConsoleGlobalObject.cpp.o
  "JS::MarkupGenerator::html_from_error(JS::Error const&, bool)", referenced from:
      WebContent::WebContentConsoleClient::report_exception(JS::Error const&, bool) in WebContentConsoleClient.cpp.o
  "JS::MarkupGenerator::html_from_value(JS::Value)", referenced from:
      WebContent::WebContentConsoleClient::handle_input(AK::String const&) in WebContentConsoleClient.cpp.o
  "JS::unregister_safe_function_closure(void*, unsigned long)", referenced from:
      JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>::clear(bool) in ConsoleGlobalObject.cpp.o
  "JS::Heap::undefer_gc(AK::Badge<JS::DeferGC>)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Heap::allocate_cell(unsigned long)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Heap::collect_garbage(JS::Heap::CollectionType, bool)", referenced from:
      WebContent::ConnectionFromClient::debug_request(AK::String const&, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Heap::defer_gc(AK::Badge<JS::DeferGC>)", referenced from:
      WebContent::WebContentConsoleClient::WebContentConsoleClient(JS::Console&, JS::Realm&, WebContent::ConnectionFromClient&) in WebContentConsoleClient.cpp.o
  "JS::Object::visit_edges(JS::Cell::Visitor&)", referenced from:
      WebContent::ConsoleGlobalObject::visit_edges(JS::Cell::Visitor&) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_set(JS::PropertyKey const&, JS::Value, JS::Value)", referenced from:
      WebContent::ConsoleGlobalObject::internal_set(JS::PropertyKey const&, JS::Value, JS::Value) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_delete(JS::PropertyKey const&)", referenced from:
      WebContent::ConsoleGlobalObject::internal_delete(JS::PropertyKey const&) in ConsoleGlobalObject.cpp.o
  "JS::Object::define_native_accessor(JS::Realm&, JS::PropertyKey const&, JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>, JS::SafeFunction<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>, JS::PropertyAttributes)", referenced from:
      WebContent::ConsoleGlobalObject::initialize(JS::Realm&) in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_prevent_extensions()", referenced from:
      WebContent::ConsoleGlobalObject::internal_prevent_extensions() in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_define_own_property(JS::PropertyKey const&, JS::PropertyDescriptor const&)", referenced from:
      WebContent::ConsoleGlobalObject::internal_define_own_property(JS::PropertyKey const&, JS::PropertyDescriptor const&) in ConsoleGlobalObject.cpp.o
  "JS::ErrorType::NotAnObjectOfType", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
  "JS::TypeError::create(JS::Realm&, AK::String const&)", referenced from:
      JS::Completion JS::VM::throw_completion<JS::TypeError, char const (&) [20]>(JS::ErrorType, char const (&) [20]) in ConsoleGlobalObject.cpp.o
  "JS::Value::to_string_without_side_effects() const", referenced from:
      AK::Formatter<JS::Value, void>::format(AK::FormatBuilder&, JS::Value) in WebContentConsoleClient.cpp.o
  "JS::Value::to_object(JS::VM&) const", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
  "JS::Value::to_string(JS::VM&) const", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Object::internal_get(JS::PropertyKey const&, JS::Value) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
  "JS::Object::has_own_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get(JS::PropertyKey const&, JS::Value) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_has_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_has_property(JS::PropertyKey const&) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_is_extensible() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_is_extensible() const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_get_own_property(JS::PropertyKey const&) const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get_own_property(JS::PropertyKey const&) const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_get_prototype_of() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_get_prototype_of() const in ConsoleGlobalObject.cpp.o
  "JS::Object::internal_own_property_keys() const", referenced from:
      WebContent::ConsoleGlobalObject::internal_own_property_keys() const in ConsoleGlobalObject.cpp.o
  "JS::Object::get(JS::PropertyKey const&) const", referenced from:
      WebContent::ConnectionFromClient::get_element_property(int, AK::String const&) in ConnectionFromClient.cpp.o
  "JS::Console::output_debug_message(JS::Console::LogLevel, AK::String const&) const", referenced from:
      WebContent::WebContentConsoleClient::printer(JS::Console::LogLevel, AK::Variant<JS::Console::Group, JS::Console::Trace, JS::MarkedVector<JS::Value, 32ul> >) in WebContentConsoleClient.cpp.o
  "typeinfo for JS::GlobalObject", referenced from:
      typeinfo for WebContent::ConsoleGlobalObject in ConsoleGlobalObject.cpp.o
  "typeinfo for JS::Object", referenced from:
      WebContent::ConsoleGlobalObject::inspected_node_getter(JS::VM&) in ConsoleGlobalObject.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Sandboxing and other mitigations

In the modern threat environment, any browser should come with a strong sandbox and other exploit mitigations, for the safety of its users.

I feel a bit bad about making such a complex feature request on a project such as this, but I also want Ladybird’s security, and its users’s safety, to not rely merely on its small market share. While I have not used SerenityOS or Ladybird, the progress that you have made is impressive, and I do not mean to speak negatively of your accomplishments!

StackInfo issues on Alpine (musl-based)

it looks like the stack size returned by StackInfo#size_free() is invalid, causing constant [InternalError] Call stack size limit exceeded on even the smallest scripts. i tried to debug this, but sadly didn't get very far; also haven't tested if the same issue happens on gentoo or void with musl

OpenBSD build problem

When building this project on OpenBSD, following the initial instructions, there is a dependency ldl, which is not needed on OpenBSD because libc already provides this functionality. The build is unsuccessful. I am able to patch the resulting build configuration in the 'Build' directory, but there must be a cleaner way, since I can't find a word 'ldl' in the initial source. I'm not proficient with CMake, so I ask here whether it is possible to add an exception for platforms that already provide ldl functionality (BSD's)? Or is this a problem with the lld linker configuration? Anyhow, here's the output of the build.

Build on FreeBSD fails

# FreeBSD 13.0-RELEASE
sudo pkg install llvm14
git clone https://github.com/awesomekling/ladybird
cd ladybird
nano CMakeLists.txt # Edit Qt 6 down to Qt 5
rm -rf Build || true
env CC=/usr/local/bin/clang14 CXX=/usr/local/bin/clang14 cmake -GNinja -B Build 
env CC=/usr/local/bin/clang14 CXX=/usr/local/bin/clang14 cmake --build Build

(...)

Building CXX object _deps/lagom-build/...__/__/Userland/Libraries/LibCore/DateTime.cpp.o
FAILED: _deps/lagom-build/CMakeFiles/LibCore.dir/__/__/Userland/Libraries/LibCore/DateTime.cpp.o 
/usr/local/bin/clang14 -DLibCore_EXPORTS -I/tmp/ladybird/Build/serenity/Userland/Libraries -I/tmp/ladybird/Build/serenity -I/tmp/ladybird/Build/_deps/lagom-build -I/tmp/ladybird/Build/serenity/Meta/Lagom/../.. -I/tmp/ladybird/Build/serenity/Meta/Lagom/../../Userland -I/tmp/ladybird/Build/serenity/Meta/Lagom/../../Userland/Libraries -I/tmp/ladybird/Build/serenity/Meta/Lagom/../../Userland/Services -I/tmp/ladybird/Build -I/tmp/ladybird/Build/Libraries -I/tmp/ladybird/Build/Services -fPIC -ggnu-pubnames -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g -O2 -fno-semantic-interposition -Wno-overloaded-virtual -Wno-user-defined-literals -fconstexpr-steps=16777216 -Wno-unused-private-field -std=c++20 -MD -MT _deps/lagom-build/CMakeFiles/LibCore.dir/__/__/Userland/Libraries/LibCore/DateTime.cpp.o -MF _deps/lagom-build/CMakeFiles/LibCore.dir/__/__/Userland/Libraries/LibCore/DateTime.cpp.o.d -o _deps/lagom-build/CMakeFiles/LibCore.dir/__/__/Userland/Libraries/LibCore/DateTime.cpp.o -c /tmp/ladybird/Build/serenity/Userland/Libraries/LibCore/DateTime.cpp
/tmp/ladybird/Build/serenity/Userland/Libraries/LibCore/DateTime.cpp:254:39: error: use of undeclared identifier 'daylight'
                builder.append(tzname[daylight]);
                                      ^
1 error generated.

Crash on startup

I am building the project on Debian/Testing (Using Qt5, a PR will follow "soon", as it is quite possible and not intrusive). Compiler is gcc (Debian 11.3.0-3) 11.3.0

I traced the crash here:
https://github.com/awesomekling/ladybird/blob/d216df5da1d5e806823207be68dc8aeb68a646ce/WebView.cpp#L277

The assertion is:

ladybird: /home/diego/src/github/ladybird/build/serenity/AK/Error.h:97: T AK::ErrorOr<T, ErrorType>::release_value_but_fixme_should_propagate_errors() [with T = AK::NonnullRefPtr<Gfx::Bitmap>; ErrorType = AK::Error]: Assertion `!is_error()' failed.

Full backtrace:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff5049546 in __GI_abort () at abort.c:79
#2  0x00007ffff504942f in __assert_fail_base (fmt=0x7ffff51bfdf8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7ffff7d10987 "!is_error()", file=0x7ffff7d0ff88 "/home/diego/src/github/ladybird/build/serenity/AK/Error.h", line=97, 
    function=<optimized out>) at assert.c:92
#3  0x00007ffff5058222 in __GI___assert_fail (assertion=0x7ffff7d10987 "!is_error()", file=0x7ffff7d0ff88 "/home/diego/src/github/ladybird/build/serenity/AK/Error.h", line=97, 
    function=0x7ffff7d0fef8 "T AK::ErrorOr<T, ErrorType>::release_value_but_fixme_should_propagate_errors() [with T = AK::NonnullRefPtr<Gfx::Bitmap>; ErrorType = AK::Error]") at assert.c:101
#4  0x00007ffff7838438 in AK::ErrorOr<AK::NonnullRefPtr<Gfx::Bitmap>, AK::Error>::release_value_but_fixme_should_propagate_errors (this=0x7fffffffd4d0) at /home/diego/src/github/ladybird/build/serenity/AK/Error.h:95
#5  AK::ErrorOr<AK::NonnullRefPtr<Gfx::Bitmap>, AK::Error>::release_value_but_fixme_should_propagate_errors (this=0x7fffffffd4d0) at /home/diego/src/github/ladybird/build/serenity/AK/Error.h:95
#6  Web::FrameLoader::FrameLoader (this=0x5555556c1ab0, browsing_context=...) at /home/diego/src/github/ladybird/build/serenity/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp:41
#7  Web::FrameLoader::FrameLoader (this=this@entry=0x5555556c1ab0, browsing_context=...) at /home/diego/src/github/ladybird/build/serenity/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp:37
#8  0x00007ffff7791f9b in Web::HTML::BrowsingContext::BrowsingContext (this=this@entry=0x5555556c1a70, page=..., container=container@entry=0x0) at /home/diego/src/github/ladybird/build/serenity/AK/RefPtr.h:216
#9  0x00007ffff785d939 in Web::HTML::BrowsingContext::create (page=...) at /home/diego/src/github/ladybird/build/serenity/Userland/Libraries/LibWeb/HTML/BrowsingContext.h:28
#10 Web::Page::Page (this=0x5555556c1e00, client=...) at /home/diego/src/github/ladybird/build/serenity/Userland/Libraries/LibWeb/Page/Page.cpp:15
#11 0x0000555555564da9 in AK::make<Web::Page, HeadlessBrowserPageClient&> () at /home/diego/src/github/ladybird/build/serenity/AK/NonnullOwnPtr.h:161
#12 HeadlessBrowserPageClient::HeadlessBrowserPageClient (view=..., this=0x5555556c2130) at /home/diego/src/github/ladybird/WebView.cpp:277
#13 HeadlessBrowserPageClient::create (view=...) at /home/diego/src/github/ladybird/WebView.cpp:67
#14 WebView::WebView (this=this@entry=0x55555563ae10) at /home/diego/src/github/ladybird/WebView.cpp:293
#15 0x000055555556ddde in Tab::Tab (this=this@entry=0x5555556bd3d0, window=window@entry=0x7fffffffd870) at /home/diego/src/github/ladybird/Tab.cpp:22
#16 0x00005555555609a9 in AK::make<Tab, BrowserWindow*> () at /home/diego/src/github/ladybird/build/serenity/AK/NonnullOwnPtr.h:161
#17 BrowserWindow::new_tab (this=0x7fffffffd870) at /home/diego/src/github/ladybird/BrowserWindow.cpp:47
#18 0x000055555556103f in BrowserWindow::BrowserWindow (this=0x7fffffffd870, event_loop=...) at /home/diego/src/github/ladybird/BrowserWindow.cpp:40
#19 0x0000555555564489 in serenity_main (arguments=...) at /home/diego/src/github/ladybird/main.cpp:31
#20 0x00007ffff7f9917a in main (argc=argc@entry=1, argv=argv@entry=0x7fffffffdf38) at /home/diego/src/github/ladybird/build/serenity/Userland/Libraries/LibMain/Main.cpp:39
#21 0x00007ffff504a7fd in __libc_start_main (main=0x7ffff7f99120 <main(int, char**)>, argc=1, argv=0x7fffffffdf38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf28) at ../csu/libc-start.c:332
#22 0x000055555555ee6a in _start ()

Use lagom from system libraries?

It looks like lagom is already being dynamically linked, so what would it take to build ladybird with a globally installed copy of lagom instead of requiring the serenity source directly?

Browser no longer exits when closing window

After the introduction of the new webcontent process, the browser process no longer exits completely when the GUI is closed with the [x] in the top right corner, requiring a developer to ctrl + c to kill it.

I assume this is related to the reintroduction of dual event loops.

Ladybird loads all fonts present on system

Ladybird-latest (built in a standard way via aur/ladybird-git PKGBUILD) appears to load every font available on the system:

smem -k -m -P '^/usr/share/serenity/Base/bin/ladybird' | grep font | wc -l
2020

On my machine, this produces a 800M+ USS footprint on start with a blank page.

fatal error: LibWeb/CSS/Enums.h: No such file or directory

I checked out ladybird and followed the build steps and described in the BuildInstruction.md file and received the following error:

/usr/bin/ccache /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/home/tilo/code/ladybird/Build/ladybird_autogen/include -I/home/tilo/code/serenity/Userland/Libraries -I/home/tilo/code/ladybird/Build/_deps/lagom-build/Services -I/home/tilo/code/serenity -I/home/tilo/code/ladybird/Build/_deps/lagom-build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtNetwork -ggnu-pubnames -Wall -Wextra -Werror -Wno-implicit-const-int-float-conversion -Wno-literal-suffix -Wno-maybe-uninitialized -Wno-unknown-warning-option -Wno-unused-command-line-argument -fsigned-char -fno-exceptions -fdiagnostics-color=always -fPIC -g1 -O2 -fno-semantic-interposition -Wno-expansion-to-defined -Wno-user-defined-literals -std=c++20 -MD -MT CMakeFiles/ladybird.dir/SimpleWebView.cpp.o -MF CMakeFiles/ladybird.dir/SimpleWebView.cpp.o.d -o CMakeFiles/ladybird.dir/SimpleWebView.cpp.o -c /home/tilo/code/ladybird/SimpleWebView.cpp
In file included from /home/tilo/code/serenity/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.h:12,
                 from /home/tilo/code/serenity/Userland/Libraries/LibWeb/CSS/CSSRule.h:13,
                 from /home/tilo/code/serenity/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h:11,
                 from /home/tilo/code/serenity/Userland/Libraries/LibWeb/DOM/Document.h:20,
                 from /home/tilo/code/ladybird/SimpleWebView.cpp:45:
/home/tilo/code/serenity/Userland/Libraries/LibWeb/CSS/StyleValue.h:29:10: fatal error: LibWeb/CSS/Enums.h: No such file or directory
   29 | #include <LibWeb/CSS/Enums.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

I retried and set the SERENITY_SOURCE_DIR option on cmake to point to a running build of sOS, but received the same error.

It looks like the Enums.h file is generated and is in the build output directory and I don't see a -I on the command line pointing to it. Am I missing a step during build?

add directions for building on Fedora to README

The "Build Prerequisites" section of the README lists packages for building on Arch/Manjaro and Debian/Ubuntu, but no other distro / package manager. It would be nice to include instructions for building on Fedora as well.

I'm currently attempting to build this on Fedora Linux 36 (Workstation Edition) x86_64 on my Framework laptop, so I will try listing packages myself.

  • cmake
  • libglvnd-devel
  • ninja-build
  • qt6-qtbase-devel
  • qt6-qttools-devel
  • qt6-qtwayland-devel

After installing those packages, Ladybird appears to build and run for me. It's possible that not all of these packages are necessary, or that some other combination of packages would also work.

UPDATE: So the command would be:

sudo dnf install cmake libglvnd-devel ninja-build qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland-devel

OSX build

to my surpise, i was able to compile an OSX version using homebrew gcc as compiler. trying to open an page crashes though.
ladybird-osx

Assertion error in ConnectionBase::read_as_much_as_possible_from_socket_without_blocking

When attempting to load a web application, I'm getting an assertion error in the above mentioned function and the browser exits:

The problem can be reproduced by loading the following URL: https://kapdemo.dhsdevelopments.com/clientweb2/

ResourceLoader: Finished load of: "https://kapdemo.dhsdevelopments.com/clientweb2/compute-queue-worker.js", Duration: 14ms
WebContent: /home/elias/src/ladybird/Build/serenity/AK/TypeCasts.h:42: AK::Detail::CopyConst<InputType, OutputType>& AK::verify_cast(InputType&) [with OutputType = Web::HTML::Window; InputType = JS::Object; Detail::CopyConst<InputType, OutputType> = Web::HTML::Window]: Assertion `is<OutputType>(input)' failed.
ConnectionBase::read_as_much_as_possible_from_socket_without_blocking: recv: Connection reset by peer (errno=104)
ConnectionBase::read_as_much_as_possible_from_socket_without_blocking: recv: Connection reset by peer (errno=104)
ladybird: /home/elias/src/ladybird/Build/serenity/Userland/Libraries/LibIPC/Connection.cpp:170: AK::ErrorOr<AK::Vector<unsigned char> > IPC::ConnectionBase::read_as_much_as_possible_from_socket_without_blocking(): Assertion `false' failed.
Subprocess aborted
FAILED: CMakeFiles/run /home/elias/src/ladybird/Build/CMakeFiles/run 
cd /home/elias/src/ladybird/Build && /usr/bin/cmake -E env SERENITY_SOURCE_DIR=/home/elias/src/ladybird/Build/serenity /home/elias/src/ladybird/Build/ladybird

The assertion appears to be the call to VERIFY_NOT_REACHED() that is called if there is an error, and the following expression is not true: error.is_syscall() && error.code() == EAGAIN

Runtime error on WebContentView.cpp:615

After building latest commit, packaging and installing to /usr/... I have this runtime error:

execvp: No such file or directory
ladybird: /home/blmayer/aur/ladybird-git/src/ladybird/WebContentView.cpp:615: void WebContentView::create_client(): Assertion `false' failed.
QSocketNotifier: Invalid socket 10 and type 'Read', disabling...
WebContent process crashed!

The window loads but pages are not rendered.

Maybe the command DESTDIR="$pkgdir" ninja install -C Build is missing a library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.