summaryrefslogtreecommitdiff
path: root/Documentation/BuildInstructions.md
AgeCommit message (Collapse)Author
2022-05-24Meta+Documentation: Bump required QEMU versionNathan Wallace
This commit bumps the required QEMU version to 6.2 and updates the version checking logic in Meta/run.sh to support checking against major and minor version numbers instead of checking against the major version only
2022-05-20Documentation: Only install the x86 and AArch64 qemu backends on ArchDaniel Bertalan
The qemu-emulators-full package installs qemu backends for *all* supported architectures, but we only need x86 and AArch64. This decreases the installed size of dependencies by 800 MiB.
2022-05-09Documentation: Update the required packages for arch based systemsnetworkException
Since qemu 7 the Arch Linux repository is using a different naming system for the various required packages. This patch updates the required dependencies for running serenity. See https://archlinux.org/news/qemu-700-changes-split-package-setup/
2022-04-04Documentation: Add instructions for building images without rootBrandon Doornbos
I could not find the fuse2fs or equivalent packages for the other distros, so it is represented separately for each distro that does have it.
2022-02-22Documentation: Add `sudo apt update` step to build instructionsJT
This adds the necessary `sudo apt update` to the build instructions after adding the GCC 11 respository.
2022-01-07Meta+CI+Documentation: Bump host gcc requirement up to gcc 11Andrew Kaster
Bump macOS CI version to macOS 11 while we're here.
2021-11-20Toolchain: Add Qemu build dependencies to DockerfileJelle Raaijmakers
Also add `libsdl2-dev` as a required dependency and reorder the list of packages passed to `apt-get`.
2021-11-11Documentation: Update Debian dependency listBen Wiederhake
Apparently, qemu-system-* changed its name. On Debian/Ubuntu, genext2fs does not make a difference: The only user of this command, Meta/build-image-qemu.sh, runs as root anyway, and tries to do 'mount _disk_image mnt/' first. Debian/Ubuntu always have drivers for ext2 available, so this command has no good reason to fail, and trying to use genext2fs might only obscure any problems that mount encountered. Finally, Debian Bullseye (released 2021-08-14) contains gcc-10, so the instructions on how to upgrade are now obsolete.
2021-11-02Documentation: Update required Qemu dev packagesJelle Raaijmakers
Without `libspice-server-dev`, Qemu will build without SPICE support.
2021-10-20Meta: Document anon user's passwordTom
2021-10-04Documentation: Added unzip to arch install listPatrick Wilmes
After setting up the toochain on manjaro linux (new install) the build of the toolchain failed as unzip was not found. The unzip package is listed in the documentation for debian (apt) but is was missing for arch linux.
2021-09-30Documentation: Add texinfo to build instructionsNico Weber
`Meta/serenity.sh rebuild-toolchain aarch64` failed with the gdb build complaining about missing `makeinfo` without this.
2021-08-30Documentation: Add unzip package to BuildInstructionsLepkoQQ
2021-08-29Documentation: Escape asterisk ("*NIX") in BuildInstructions.mdLinus Groh
Even though Markdown renderers should handle this fine as-is, not escaping the asterisk makes vim render a lot of text in italics, for example.
2021-08-15Documentation: Add genext2fs package for BuildInstructionsvdjagilev
2021-07-30Documentation: Remove more potentially harmful Debian adviceThomas Wagenveld
Serenity build tooling autodetects gcc 10 so update-alternatives is not necessary. Also, switching apt repositories on the fly can cause issues with dependencies, package downgrades and leave the system in a broken state.
2021-07-30Documentation: Update instructions for DebianThomas Wagenveld
Simply adding a 'testing' repo on a Debian stable system is destructive to the system. Add better hints on building Serenity on Debian.
2021-07-14Documentation: Remove '$' character from build instruction commandsKenneth Myhra
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-12Documentation: Shuffle around systems in the build instruction docsGunnar Beutner
The crowd has spoken and it's clear they want... Windows and Arch Linux.
2021-07-10Documentation: Reorganize the build documentationGunnar Beutner
2021-07-09Documentation: Added build instructions for Void LinuxYori
2021-07-06Documentation: Document the ConfigureComponents utilityMax Wipfli
This adds documentation for the ConfigureComponents utility to the build instructions.
2021-06-17Meta: Add support for declaring componentsGunnar Beutner
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-13Documentation: Move Ubuntu/Debian specific build instructionsAdam Hodgen
Ubuntu/Debian specific instructions should live under the Ubuntu/Debian header
2021-06-13Documentation: Fix QEMU 5 Ubuntu version confusionAdam Hodgen
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-10Documentation: Specify minimum required QEMU versionApoorv Mishra
2021-06-07Documentation: Add ccache and rsync to the packages to installGunnar Beutner
These aren't hard dependencies but make building and working with SerenityOS significantly faster.
2021-05-31Documentation: Remove outdated info about `pls` from build instructionsAndreas Kling
2021-05-29Userland: Check sudoers file perms and owner in plsJesse Buhagiar
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-29Userland: Implement `pls`, a sudo cloneJesse Buhagiar
2021-05-29Meta: Add `binutils-devel` to fedora build docsJacob Lindgren
2021-05-27Meta/CI: Add ENABLE_ALL_DEBUG_FACILITIES CMake optionAndrew Kaster
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-27Kernel: Add ENABLE_EXTRA_KERNEL_DEBUG_SYMBOLS option to set Og and ggdb3Andrew Kaster
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-21LibWasm+Meta: Add test-wasm and optionally test the conformance testsAli Mohammad Pur
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-16Documentation: Add Sanitizer section to RunningTestsAndrew Kaster
Also, add link to RunningTests BuildInstructions, and clean up stale commands in RunningTests to align to current build strategies.
2021-05-15Documentation: Document CMake build optionsDaniel Bertalan
Closes #7107.
2021-05-12Documentation: Add Alpine Linux build instructionsJagger De Leo
2021-05-09Documentation: Update sync-local.sh keyboard layout exampleLinus Groh
2021-05-09Documentation: Suggest using genext2fs on macosEric Butler
This is a nice alternative to dealing with fuse, and a step forward towards not requiring root.
2021-04-28Documentation: Fix typo (duplicate osxfuse) from #6069thislooksfun
This fixes part of #6656.
2021-04-28Documentation: Fix typo (ex2 -> ext2) from #6069thislooksfun
2021-04-12Documentation: Fix FreeBSD usage of the pkg commandEmil Engler
2021-04-10Documentation: Improve wording around build directory location (#6168)Samuel Klein
2021-04-04Meta: Removed commas from command in macOS prereqs (#6109)Will
The commas cause Homebrew to attempt to install "osxfuse," instead of osxfuse. "osxfuse," doesn't exist.
2021-04-02Documentation: Split brew install commands into core and fuse+ext2thislooksfun
If you don't need/want to use Fuse+ex2 then half of the existing install command is unnecessary, and it's hard to pick out which you do and don't need to, for example, build Lagom. This makes it clear which commands you can skip if you don't need ex2 support.
2021-04-02Documentation: Add cmake to brew installsthislooksfun
MacOS does not ship with CMake, so we have to install it before it can be used!
2021-04-02Documentation: Update macOS build path in BuildInstructions.mdthislooksfun
This is a follow-up to d0427b610c52a88f2e0a13f76fbe4c7c26769999.
2021-03-11Documentation: Update build path in BuildInstructions.mdLinus Groh
Build/ is now /Build/i686/. No need to mention other targets just yet.
2021-03-11Documentation: Clean up BuildInstructions.md a bitLinus Groh
- Fix headings - Consistent & more accurate code block language specifiers - Add some newlines where appropriate - Remove the strange "run ninja but actually you don't have to run ninja as ninja install takes care of that" part - Don't repeat specific build commands in "Ports" section - Reword "Keymap" section to more generic "Customize disk image"
2021-03-10Documentation: Add Serenity installation guide for VMwareBrendan Coles