Commit graph

193 commits

Author SHA1 Message Date
Kenneth Myhra 7fa71fb7eb Documentation: Remove '$' character from build instruction commands
This removes the '$' character so that it is easier to copy commands
directly from the build instructions and then executing them without
first having to remove the '$' character.
2021-07-14 19:51:23 +02:00
Gunnar Beutner b805708c6f Documentation: Make sure Windows have QEMU tools in their WSL2 system
They don't need QEMU to run the VM but they do at least need the QEMU
tools to build the image.
2021-07-13 12:57:21 +02:00
Andrew Kaster 8ae425cec8 Meta+CI: Use wabt version 1.0.23 for all CI jobs
The WASM spec tests caused a stack overflow when generated with wat2wasm
version 1.0.23, which ships with homebrew. To give feature parity,
manually download the same version from GitHub packages for Ubuntu.

Document the dependencies of the WASM spec tests option, as well.
2021-07-12 18:42:45 +04:30
Gunnar Beutner 4db286e63f Documentation: Condense the Windows build instructions some more 2021-07-12 12:28:01 +02:00
Gunnar Beutner 0da89376b7 Documentation: Remove obsolete CMake option 2021-07-12 12:28:01 +02:00
Gunnar Beutner 1f229b45a9 Documentation: Show users how to build specific ninja targets directly 2021-07-12 12:28:01 +02:00
Gunnar Beutner 7f6e148e17 Documentation: Shuffle around systems in the build instruction docs
The crowd has spoken and it's clear they want... Windows and Arch Linux.
2021-07-12 12:28:01 +02:00
Andrew Kaster ca920ba082 Meta+Documentation: Remove unused -DDEBUG from build 2021-07-12 12:26:52 +02:00
Gunnar Beutner e2299b52de Documentation: Move the QEMU troubleshooting section
This is no longer relevant for most users because due to an
unrelated change to Meta/run.sh the default display backend is now
SDL which does not exhibit this problem.
2021-07-10 23:24:45 +02:00
Gunnar Beutner c3e8866118 Documentation: Add screenshot for WHPX 2021-07-10 23:24:45 +02:00
Gunnar Beutner baf40ad96d Documentation+Meta: Automatically add disable_virtio on Windows 2021-07-10 23:24:45 +02:00
Gunnar Beutner cc87bf46c1 Documentation+Meta: Automatically set vmx=off on Windows 2021-07-10 23:24:45 +02:00
Gunnar Beutner 2c392669c6 Documentation: Remove another redundant chapter
Clearly nobody has used this in a while because cpuinfo.c
for GCC 11 does not contain the code that's mentioned here.
2021-07-10 23:24:45 +02:00
Gunnar Beutner d23d81d075 Documentation: Remove redundant information
These workarounds are already mentioned in the "Hardware acceleration"
section.
2021-07-10 23:24:45 +02:00
Gunnar Beutner df84550b8f Documentation: Suggest using x86_64 QEMU on Windows
The x86_64 QEMU binary supports both i386 as well as x86_64 guests.
By using the x86_64 binary users won't have to change anything when
switching between i386 and x86_64 builds.
2021-07-10 23:24:45 +02:00
Gunnar Beutner ee7e9f05a8 Meta: Automatically use WSL paths on Windows 2021-07-10 23:24:45 +02:00
Gunnar Beutner 9026dbbfd6 Documentation: Reorganize the build documentation 2021-07-10 23:24:45 +02:00
networkException eedee151ab Documentation: Add a package manager section to the FAQ
People are commonly asking about a package manager in
serenity. This patch adds an answer the FAQ, explaining
why there is no need for packages as well as different
possible ways to add or remove software installed on the
system.
2021-07-09 19:45:08 +01:00
Yori 897ca104f9 Documentation: Added build instructions for Void Linux 2021-07-09 20:17:30 +02:00
Luke c94b0e80e7 Kernel: Stop booting and print if PAE is not supported by the processor
We currently require PAE and not having it causes us to crash.
This turns that crash into an error message.
2021-07-09 01:29:52 +02:00
Liav A 2900c8cf09 Documentation: Add simple troubleshooting guide
In this guide, we explain two boot errors that can occur and what can be
done to solve them.
2021-07-07 22:18:36 +02:00
Max Wipfli d3a2e492fb Documentation: Document the ConfigureComponents utility
This adds documentation for the ConfigureComponents utility to the build
instructions.
2021-07-06 21:54:51 +02:00
Idan Horowitz e9ab9ca5a0 Documentation: Add git to the list of self-hosted runner requirements
Github-hosted runners have this pre-installed, so our actions script
do not install it themselves.
2021-07-03 19:45:04 +01:00
Gunnar Beutner f2dca54bf0 Documentation: Increase recommended amount of RAM
The VM won't boot with 32MB because GRUB won't be able to load the
kernel which is about 114MB.
2021-07-03 20:08:54 +02:00
Gunnar Beutner 48f8dea28f Documentation: Update VirtualBox documentation for x86_64
The machine type "Other/Unknown (64-bit)" works for both the x86_64 as
well as the i686 build architecture.
2021-07-03 20:08:54 +02:00
Idan Horowitz 969b717e17 Documentation: Add instructions for setting up self-hosted runners 2021-07-03 18:32:39 +01:00
Tristan Menke 9f117a79f6 Documentation: Add workaround for blackscreen using WSL+QEMU6.x
This workaround disables the in-kernel interrupt controller.
This impacts the VM performance and should probably be removed
when the workaround is no longer needed.

This workaround was posed by stelar7.
See #7523
2021-07-03 17:32:33 +02:00
Diego Garza 5d8585df97 Documentation: Add notes for first time setup of the project in CLion
Mention the "Open Project Wizard" where you can set
the CMake options before making the cache.
Remind users to use the "Default" build type
and to build the Toolchain so CMake does not complain.
2021-07-03 08:24:06 +04:30
Daniel Bertalan 754ddda38a Documentation: Document changes to creating smart pointers
Because of the added complexity of *non-throwing* `new`, helper methods
for correctly constructing smart pointers were added in a previous
commit. This commit changes the documentation to recommend using these,
and adds examples to aid in correctly determining when to use
non-throwing new when manually creating smart pointers.
2021-06-29 22:57:52 +04:30
Stéphane Travostino 35e7c44dd4 Documentation/WSL: add a workaround for slow emulation on HiDPI screens 2021-06-18 10:21:09 +02:00
Gunnar Beutner 0dd03413d6 Meta: Add support for declaring components
Components are a group of build targets that can be built and installed
separately. Whether a component should be built can be configured with
CMake arguments: -DBUILD_<NAME>=ON|OFF, where <NAME> is the name of the
component (in all caps).

Components can be marked as REQUIRED if they're necessary for a
minimally functional base system or they can be marked as RECOMMENDED
if they're not strictly necessary but are useful for most users.

A component can have an optional description which isn't used by the
build system but may be useful for a configuration UI.

Components specify the TARGETS which should be built when the component
is enabled. They can also specify other components which they depend on
(with DEPENDS).

This also adds the BUILD_EVERYTHING CMake variable which lets the user
build all optional components. For now this defaults to ON to make the
transition to the components-based build system easier.

The list of components is exported as an INI file in the build directory
(e.g. Build/i686/components.ini).

Fixes #8048.
2021-06-17 11:03:51 +02:00
Adam Hodgen 6ab48d612a Documentation: Move Ubuntu/Debian specific build instructions
Ubuntu/Debian specific instructions should live under the
Ubuntu/Debian header
2021-06-13 17:16:03 +01:00
Adam Hodgen 9bc0017499 Documentation: Fix QEMU 5 Ubuntu version confusion
PR #7970 added a line clarifying the requirement for QEMU 5.
Unfortunately, this location this line was added changed the meaning
of the following line, referencing the availability of GCC in Ubuntu
20.04.

QEMU 5 is not available in Ubuntu 20.04, so this change is incorrect,
as well as misleading.
2021-06-13 17:16:03 +01:00
Idan Horowitz a898e01d4d Kernel: Add driver for RTL8168 & RTL8111 NICs
These are pretty common on older LGA1366 & LGA1150 motherboards.

NOTE: Since the registers datasheets for all versions of the chip
besides versions 1 - 3  are still under NDAs i had to collect
several "magical vendor constants" from the *BSD driver and the
linux driver that i was not able to name verbosely, and as such
these are labeled with the comment "vendor magic values".
2021-06-10 21:54:51 +02:00
Apoorv Mishra 73cf16f643
Documentation: Specify minimum required QEMU version 2021-06-10 17:28:26 +01:00
Liav A d183f4b03f Documentation: Add a list of supported network cards 2021-06-09 22:44:09 +04:30
Gunnar Beutner 2d38d56e29 Documentation: Add ccache and rsync to the packages to install
These aren't hard dependencies but make building and working with
SerenityOS significantly faster.
2021-06-07 09:50:26 +02:00
kemzeb b9980ffd07 Documentation: Remove redundancy in CodingStyle.md
This is a fairly small change; removed the statement "Pointer and
reference types in C++ code" as it does not provide any additional
knowledge that contributors are or will be aware of after further
reading into the "Pointers and References" section. It seems
unnecessary and redundant given the sentence adjacent to it.
2021-06-06 00:18:02 +01:00
Scott Antipa 7dab58ac3b
Documentation: Fix a typo by removing an extra word 2021-06-04 08:22:41 +01:00
Siddhant Rao 566d3cb393 Documentation: Correct some typos in kernel and browser docs 2021-06-02 18:02:59 +02:00
Andreas Kling dd9b8ee7ef Documentation: Add rule about "east const" to CodingStyle.md
Unfortunately we cannot enforce this with clang-format yet, as that
feature is not available. Until then, let's try to write new code
with this in mind, and convert old code as we go.
2021-06-01 08:55:47 +02:00
Liav A 10c747f2be Documentation: Add explanation about AHCI locking 2021-05-31 18:28:25 +01:00
Andreas Kling 89dceb178b Documentation: Remove outdated info about pls from build instructions 2021-05-31 08:53:21 +02:00
Jesse Buhagiar d44e2c9ad9 Userland: Check sudoers file perms and owner in pls
As per comment found in #6319 by @bcoles, `pls` should check the
permissions and owner of the sudoers file to ensure that it hasn't
been compromised.
2021-05-29 22:33:12 +04:30
Jesse Buhagiar 82b48d867d Userland: Implement pls, a sudo clone 2021-05-29 22:33:12 +04:30
Jacob Lindgren 8f22af087e Meta: Add binutils-devel to fedora build docs 2021-05-29 17:22:01 +01:00
Liav A e679530380 Documentation: Add another working laptop model to the list 2021-05-29 15:51:52 +02:00
Andrew Kaster 2ec302ea22 Meta/CI: Add ENABLE_ALL_DEBUG_FACILITIES CMake option
This option replaces the use of ENABLE_ALL_THE_DEBUG_MACROS in CI runs,
and enables all debug options that might be broken by developers
unintentionally that are only used in specific debugging situations.
2021-05-27 10:21:30 +02:00
Andrew Kaster dda8afcb90 Kernel: Add ENABLE_EXTRA_KERNEL_DEBUG_SYMBOLS option to set Og and ggdb3
When debugging kernel code, it's necessary to set extra flags. Normal
advice is to set -ggdb3. Sometimes that still doesn't provide enough
debugging information for complex functions that still get optimized.
Compiling with -Og gives the best optimizations for debugging, but can
sometimes be broken by changes that are innocuous when the compiler gets
more of a chance to look at them. The new CMake option enables both
compile options for kernel code.
2021-05-27 10:21:30 +02:00
Ali Mohammad Pur b3c13c3e8a LibWasm+Meta: Add test-wasm and optionally test the conformance tests
This only tests "can it be parsed", but the goal of this commit is to
provide a test framework that can be built upon :)
The conformance tests are downloaded, compiled* and installed only if
the INCLUDE_WASM_SPEC_TESTS cmake option is enabled.
(*) Since we do not yet have a wast parser, the compilation is delegated
to an external tool from binaryen, `wasm-as`, which is required for the
test suite download/install to succeed.
This *does* run the tests in CI, but it currently does not include the
spec conformance tests.
2021-05-21 00:15:23 +01:00