summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2020-08-16Meta: Actually exclude the Build/ directory from QtCreator refreshAndreas Kling
2020-08-15Meta: Lint for duplicate endpoint IDsBen Wiederhake
We currently have 16 endpoints. The IDs are typed by a human at creation time. This check will detect with we ever use an endpoint ID twice. Since the large irrelevant directories are ignored, this should be quick enough.
2020-08-15Meta: Don't require setting SERENITY_ROOT for refresh scriptBen Wiederhake
The need for SERENITY_ROOT was basically eliminated in 73c953b674c9caad40f3bf77dc44c229ef48bc0d. The existing guess 'git rev-parse --show-toplevel' should be correct in all conceivable cases. Most code just assumes the layout in git, or depends on SERENITY_ROOT as set in the CMakeLists.txt. *Requiring* the user to set it doesn't make sense anymore. While I was in there anyway, I added exit code propagation. Also, 'find' should be a tad faster now, because it doesn't enumerate files in the large ignored directories Build/ and Toolchain/ anymore.
2020-08-15Lagom: Add LibHTTP to Lagom (it builds fine without changes)Andreas Kling
2020-08-14Meta: allow override of QEMU -cpu argument via environment variablePeter Nelson
Introduces a SERENITY_QEMU_CPU environment variable that allows overriding of the qemu -cpu command line parameter. If not specified, the argument defaults to "max". The primary motivation behind this is to be able to enable or disable specific features for the vCPU in order to workaround QEMU issues with certain hardware accelerators. For example, QEMU on Windows with WPHX sometimes fails to start unless Virtual Machine eXtensions are disabled. This can now be done with: export SERENITY_QEMU_CPU="max,vmx=off"
2020-08-12Meta: Check that "#include <LibM/math.h>" is not being usedLinus Groh
2020-08-10Lagom+LibELF: Add an ELF fuzzer, and tweak the code to survive a few minutes ↵Nico Weber
of fuzzing (#3071) If a buffer smaller than Elf32_Ehdr was passed to Image, header() would do an out-of-bounds read. Make parse() check for that. Make most Image methods assert that the image is_valid(). For that to work, set m_valid early in Image::parse() instead of only at its end. Also reorder a few things so that the fuzzer doesn't hit (valid) assertions, which were harmless from a security PoV but which still allowed userspace to crash the kernel with an invalid ELF file. Make dbgprintf()s configurable at run time so that the fuzzer doesn't produce lots of logspam.
2020-08-09Lagom: Pass -Wno-deprecated-copy to clang tooNico Weber
Due to Serenity's use of concepts, it now requires clang 10 or newer, and clang 10 or newer both understands and requires -Wno-deprecated-copy.
2020-08-09disasm: For ELF files, disassemble .text sectionNico Weber
Since disasm is built in lagom, this requires adding LibELF to lagom.
2020-08-06Meta: Update CLion configuration to include LibM and generated filesLuke
Also bumps the CXX Standard to C++20.
2020-08-04Build: Make things build with clang without needing local changesNico Weber
Useful for sanitizer fuzzer builds. clang doesn't have a -fconcepts switch (I'm guessing it just enables concepts automatically with -std=c++2a, but I haven't checked), and at least the version on my system doesn't understand -Wno-deprecated-move, so pass these two flags only to gcc. In return, disable -Woverloaded-virtual which fires in many places. The preceding commits fixed the handful of -Wunused-private-field warnings that clang emitted.
2020-08-04Meta: Provide a way to only update a file if the output changesBen Wiederhake
This is only useful for build commands that update their destination in all cases and thus sometimes confuse cmake into rebuilding everything needlessly.
2020-08-04LibCompress: Add LibCompressstelar7
For now this only contains DEFLATE, and a very simple Zlib Eventually GZip, etc. can go here as well.
2020-07-29Meta: make check-style.sh ignore Libraries/LibCore/puff.cppEmanuele Torre
This file was formerly named `Libraries/LibCore/puff.c` and it was not checked by `check-style.sh` because it only checks .h and .cpp files. Since this file was not written by us, we shouldn't check its style. This file was also causing our Travis builds to fail.
2020-07-29Lagom: Clean up glob after puff.c -> puff.cpp renameNico Weber
2020-07-29Meta: Find potentially missing resourcesBen Wiederhake
2020-07-29Meta: Ensure that icons and other resources remain non-executableBen Wiederhake
2020-07-28Meta: Fix style of image building scriptsPeter Elliott
Oops. I didn't know there was a style guide for the scripts.
2020-07-28Meta: Calculate image size based on size of Build/Root and BasePeter Elliott
This reduces the size of the default build, while allowing people to install as many ports as they want, without having to manually specify disk size.
2020-07-28Userland: Add passwd utilityPeter Elliott
2020-07-27Lagom: Build with -std=c++2a -Wno-deprecated-copyAndreas Kling
2020-07-23Lagom: Add LibGemini, LibGfxNico Weber
They are dependencies of LibWeb and might be useful for running test-web on GitHub actions one day.
2020-07-23LibWeb+test-web: Create test-web program, add doctype testLuke
LibWeb currently has no test suite or program. Let's change that :^) test-web is mostly a copy of test-js, but modified for LibWeb. test-web imports both LibJS/Tests/test-common.js and LibWeb/Test/test-common.js LibWeb's suite provides the ability to specify the page to load, what to do before the page is loaded, and what to do after it's loaded. This also provides a test of document.doctype and its close sibling document.compatMode. Currently, this isn't added to Lagom because of CodeGenerators.
2020-07-14Lagom: Add a markdown fuzzerNico Weber
2020-07-14Lagom: Add a note on how to build the fuzzers to readmeNico Weber
2020-07-07Base: Turn a whole bunch of /bin symlinks into shell aliases :^)Andreas Kling
2020-07-06LibJS/test-js: Create test-js program, prepare for test suite refactorMatthew Olsson
This moves most of the work from run-tests.sh to test-js.cpp. This way, we have a lot more control over how the test suite runs, as well as how it outputs. This should result in some cool functionality! This commit also refactors test-common.js to mimic the jest library. This should allow tests to be much more expressive :)
2020-07-06run.sh: Remove cpu_reset debug outputNico Weber
It's fairly wordy and early OS startup seems to work well, so this doesn't have to be on by default.
2020-07-05Meta: Do not run shellcheck on our Shell's scriptsAnotherTest
2020-07-05Shell: Build as part of Lagom as wellAnotherTest
Bringing the Serenity Shell to your very own host system :^)
2020-07-01Profiler: Rename from ProfileViewer :^)Andreas Kling
2020-07-01Meta: make `Meta/run.sh qgrub` work.Emanuele Torre
2020-07-01Meta: Give SERENITY_ROOT a default value in `CLion/run.sh`Emanuele Torre
2020-07-01Meta: `run.sh`: fix usage commentsEmanuele Torre
2020-07-01Meta: Allow running run.sh from any where by setting SERENITY_BUILDEmanuele Torre
If SERENITY_BUILD is not set or empty, SERENITY_BUILD is treated as if it was set to '.'. `run.sh` will cd to SERENITY_BUILD before running the emulator. Also, export SERENITY_BUILD in `Meta/CLion/run.sh` since we are using it in `Meta/run.sh`. Also, allow using a different bochs configuration file by setting the SERENITY_BOCHSRC variable.
2020-07-01Meta: move Kernel/.bochsrc => Meta/bochsrcEmanuele Torre
The run script is not in Kernel/ anymore, let's move `.bochsrc` in Meta/ so that it can be used with the new build system. Also make bochs use `grub_disk_image` instead of `_disk_image`
2020-07-01Meta: CLion/run.sh should be executableEmanuele Torre
2020-07-01Meta: make `CLion/run.sh` use `run.sh`Emanuele Torre
We don't need to copy `run.sh` and modify it: we can just set environment variables. Now, we don't have to modify two files everytime we make a change to the run.sh script. Also make SERENITY_BUILD overridable with environment variables,why not?
2020-07-01Meta: use "better" syntax to set SERENITY_KERNEL_CMDLINE in run.sh :^)Emanuele Torre
This removes some FIXMEs. In bash, we could avoid `shift`: SERENITY_KERNEL_CMDLINE="${@:2}" But let's stick to POSIX sh for now.
2020-07-01Meta: quote variables in `run.sh` where it makes senseEmanuele Torre
2020-06-27Userland: Add a 'test' utilityAnotherTest
This adds an incomplete implementation of the test util, missing some user/group checks, and `-l STRING`. It also symlinks '[' to 'test'.
2020-06-21Meta: default SUDO_UID and SUDO_GID to 0 in build-image-*.sh scriptsEmanuele Torre
In the GNU coreutils version of chown, ":" is a valid argument (the command will result in a no-op), but POSIX chown does not consider that valid. If the user who ran build-image-*.sh was root, SUDO_UID and SUDO_GID would not be set and, if the version of chown installed on the system did not allow passing just a ":" as argument, the script would fail. Let's default the value of SUDO_UID and SUDO_GID to 0 just in case.
2020-06-21Meta: get rid of sync.sh using the technique used in the previous commitEmanuele Torre
2020-06-21Meta: tweak build-image-grub.sh to allow running `make grub-image`..Emanuele Torre
without sudo.
2020-06-21Meta: Tweak QtCreator .files sync script to include .idl filesAndreas Kling
2020-06-18keymap: Add back a tiny utility for setting the system keyboard layoutAndreas Kling
This patch removes the setuid-root flag from the KeyboardSettings GUI application and adds back the old "keymap" program. It doesn't feel very safe and sound to have a GUI program runnable as setuid-root, so in the next patch I'll be making KeyboardSettings call out to the "keymap" program to do its bidding.
2020-06-17WebContent: Start work on browser process separation :^)Andreas Kling
The "WebContent" service provides a very restricted instance of LibWeb running as an unprivileged user account. This will be used to implement process separation in Browser, among other things. This first cut of the service only spawns a single WebContent process when someone connects to /tmp/portal/webcontent. We will soon switch this over to spawning a new process for each connection. Since this feature is very immature, we'll be bringing it up inside of Demos/WebView as a separate demo program. Eventually this will become a reusable widget that anyone can embed and easily get out-of-process web content in their GUI. This is pretty, pretty cool! :^)
2020-06-17Meta: Scale back overly informal user-facing stringsAndreas Kling
We were getting a little overly memey in some places, so let's scale things back to business-casual. Informal language is fine in comments, commits and debug logs, but let's keep the runtime nice and presentable. :^)
2020-06-17Base+Meta: Rename the wheel group to goodboys :^)Sergey Bugaev
2020-06-13AK: JsonParser improvementsMatthew Olsson
- Parsing invalid JSON no longer asserts Instead of asserting when coming across malformed JSON, JsonParser::parse now returns an Optional<JsonValue>. - Disallow trailing commas in JSON objects and arrays - No longer parse 'undefined', as that is a purely JS thing - No longer allow non-whitespace after anything consumed by the initial parse() call. Examples of things that were valid and no longer are: - undefineddfz - {"foo": 1}abcd - [1,2,3]4 - JsonObject.for_each_member now iterates in original insertion order