summaryrefslogtreecommitdiff
path: root/Userland/Utilities/CMakeLists.txt
AgeCommit message (Collapse)Author
2023-03-13headless-browser: Re-implement headless-browser using an OOPWVTimothy Flynn
headless-browser currently uses its own PageClient to load web pages in-process. Due to this, it also needs to set up a whole bunch of other objects needed to run LibWeb, e.g. image decoders, request servers, etc. This changes headless-browser to instead implement a WebView to launch WebContent out-of-process. This implementation is almost entirely empty, but can be filled in as-needed. For example, we may want to print JavaScript console messages.
2023-03-12Userland: Add an `image` utilityNico Weber
At the moment, all it can do is read all image formats that LibGfx can read and save to any image format that LibGfx can write (currently bmp, png, qoi). Currently, it drops all image metadata (including color profiles). Over time, this could learn tricks like keeping color profiles, converting an image to a different color profile, cropping out a part of an image, and so on.
2023-02-26LibWasm+LibWeb: Sneak a JS::Completion into Wasm::ResultAli Mohammad Pur
Imported functions in Wasm may throw JS exceptions, and we need to preserve these exceptions so we can pass them to the calling JS code. This also adds a `assert_wasm_result()` API to Result for cases where only Wasm traps or values are expected (e.g. internal uses) to avoid making LibWasm (pointlessly) handle JS exceptions that will never show up in reality.
2023-02-08LibGfx+icc: Read cicpTypeNico Weber
This is a very new tag used for HDR content. The only files I know that use it are the jpegs on https://ccameron-chromium.github.io/hdr-jpeg/ But they have an invalid ICC creation date, so `icc` can't process them. (Commenting out the check for that does allow to print them.) If the CIPC tag is present, it takes precedence about the actual data in the profile and from what I understand, the ICC profile is basically ignored. See https://www.color.org/events/HDR_experts.xalter for background, in particular https://www.color.org/hdr/02-Luke_Wallis.pdf (but the other talks are very interesting too). (PNG also has a cICP chunk that's supposed to take precedence over iCCP.)
2023-02-04Utilities: Rename special target binaries only if they existKarol Kosek
Before 6490529ef76ebf37f9e58bf76c6271be6842afa1, all programs in the SPECIAL_TARGETS list were built because they didn't have an EXCLUDE_FROM_ALL property set. That commit set the property for all targets, but because of this, the minimal "Required" build configuration no longer built, as CMake failed to rename every special target. Even the not built ones. This commit makes the rename action run only if the executable exists, which makes us build Serenity without the `install` utility, and also by using the minimal configuration set. :^) :^)
2023-01-19Utilities: Replace fgrep with grep --fixed-stringsPeter Elliott
2023-01-15Utilities: Add new utility for converting images to raw bitmap binariesLiav A
I used this utility to check if the possible TGA images' cases for different origins (explictly the Y origin) are generating the same bitmap, as I felt that my eyes are not a good-enough measurement tool for this kind of task. This might be useful in the future for testing other implementations so I rather have this nice utility in our codebase.
2023-01-12Utilities: Add ttfdisasm for disassembling OpenType instructionsMacDue
This utility when given a .tff font provides options for disassembling: - The 'fpgm' table, this a program that's run once when the font is loaded. It's used to define instructions and functions used by used by other programs. - The 'prep' table, this is a general program that's run when ever the font size (or other properties) changes. - And the programs associated with any individual glyph. The disassembly is printed in a format that matches the examples from: https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions I'm mainly adding this because I think it's neat to be able to look at these things, and think it'll be helpful for debugging an interpreter. With this you can see that all of the LiberationSerif-XXX.tff fonts in Serenity have these programs ready to go.
2023-01-06Userland: Add a sed utilityEli Youngs
2022-12-27LibGfx: Start adding a utility for handling ICC color profilesNico Weber
For now, this dumps file version and device class. https://github.com/saucecontrol/compact-icc-profiles has good test inputs.
2022-12-23pro: Add ability to log request/response metadata for HTTP URLsThomas Keppler
In order to debug WebServer and responses we can't handle yet, it's beneficial to being able to see what we request and what we get back. As a first measure, we just log URL, response code, reason phrase and headers.
2022-12-20unzip: Verify extracted files against CRC32 checksumsimplicitfield
This removes one TODO.
2022-12-11man: Refactor with LibManual and Core::Streamkleines Filmröllchen
2022-12-04Utilities: Add stringsAlec Murphy
2022-11-26Utilities+Base: Add unveil utilityLiav A
This utility essentially creates a filesystem sandbox for a specified command, so it can be tested with only the unveiled paths the user specifies beforehand.
2022-11-24headless-browser: Add a mode for being controlled by WebDriverTimothy Flynn
This adds command line flags for WebDriver to pass its IPC socket path (if running on Serenity) or its FD passing socket (if running elsewhere) for the headless-browser to connect to.
2022-11-10less: Use LibLine to compute line arrangement with fixed line widthLucas CHOLLET
2022-11-05Userland: Add support for jailsLiav A
This happens in two ways: 1. LibCore now has two new methods for creating Jails and attaching processes to a Jail. 2. We introduce 3 new utilities - lsjails, jail-create and jails-attach, which list jails, create jails and attach processes to a Jail, respectively.
2022-11-01Utilities: Clean up CMakeLists.txtTim Schumacher
We previously had a lot of duplication (and mismatched settings) around whether a target was "special" or not, although the only special thing about it was that its name was a reserved keyword and therefore had to be renamed later. Fix that by mostly consolidating the different configuration paths and then purging all duplicated linking libraries from the bottom of the file.
2022-11-01Everywhere: Mark dependencies of most targets as PRIVATETim Schumacher
Otherwise, we end up propagating those dependencies into targets that link against that library, which creates unnecessary link-time dependencies. Also included are changes to readd now missing dependencies to tools that actually need them.
2022-11-01Everywhere: Explicitly link all binaries against the LibC targetTim Schumacher
Even though the toolchain implicitly links against -lc, it does not know where it should get LibC from except for the sysroot. In the case of Clang this causes it to pick up the LibC stub instead, which might be slightly outdated and feature missing symbols. This is currently not an issue that manifests because we pass through the dependency on LibC and other libraries by accident, which causes CMake to link against the LibC target (instead of just the library), and thus points the linker at the build output directory. Since we are looking to fix that in the upcoming commits, let's make sure that everything will still be able to find the proper LibC first.
2022-10-31Utilities: Add nologin applicationBeckett Normington
This adds the `nologin` application to the system. This application will look for `/etc/nologin`. If it is present, it will display the message in the file. Otherwise, it will display an error about the current account being unavailable.
2022-10-22Utilities: Rename `jp` to `json`Maxwell Trussell
With the scope of `jp` expanding beyond just printing JSON (e.g. querying JSON), `json` seems to be a more fitting name.
2022-10-13Utilities: Add pkillMaxwell Trussell
2022-09-09Meta: Update jakt build support for fully bootstrapped compilerAndrew Kaster
Remove the Corrosion dependency, and use the now-builtin add_jakt_executable function from the Jakt install rules to build our example application. By using find_package(Jakt), we now have to set ENABLE_JAKT manually on both serenity and Lagom at the same time, so the preferred method to do this for now is: cmake -B Build/superbuild<arch><toolchain> \ -S Meta/CMake/Superbuild \ -DENABLE_JAKT=ON \ -DJAKT_SOURCE_DIR=/path/to/jakt Where omitting JAKT_SOURCE_DIR will still pull from the main branch of SerenityOS/jakt. This can be done after runing Meta/serenity.sh run.
2022-09-05LibUnicode+Userland: Migrate generated CLDR data to LibLocaleDataTimothy Flynn
Currently, LibUnicodeData contains the generated UCD and CLDR data. Move the UCD data to the main LibUnicode library, and rename LibUnicodeData to LibLocaleData. This is another prepatory change to migrate to LibLocale.
2022-08-02Utilities+Base: Rename `pape` utility to `wallpaper`networkException
2022-07-19Utilities: Remove the edid-dump utilityLiav A
This short-lived utility was essential when we had to use the ioctl interface to fetch the EDID from a DisplayConnector, but now that we can simply read it from SysFS, this utility is no longer needed and can be removed.
2022-07-19LibC: Remove the `LibPthread` interface targetTim Schumacher
2022-07-15Userland: Introduce the lsblk utility to show list of storage devicesLiav A
2022-07-14Utilities: Add "pledge" utility for launching a sandboxed commandAndreas Kling
This new command allows you to run any command with an initial set of pledge promises. Note that dynamically linked executables won't be able to bootstrap without at least "stdio rpath prot_exec". Inspired by http://justine.lol/pledge/ :^)
2022-06-15Utilities: Remove `ddate` joke programAndreas Kling
2022-05-29Utilities: Add networking to headless-browserDexesTTP
With this, the headless browser can now connect to the web. Thanks a lot to Ali and Sin-ack for their help with this! Co-authored-by: Ali Mohammad Pur <mpfard@serenityos.org> Co-authored-by: sin-ack <sin-ack@users.noreply.github.com>
2022-05-29Utilities: Add a simple headless-browserDexesTTP
This utility creates a 'screenshot' of the given page after a few seconds of loading.
2022-05-27Utilities: Add edid-dump program to dump EDID from Display connectorsLiav A
2022-05-23Meta+Userland: Add jakt as an optional Lagom ToolAndrew Kaster
We can now use ENABLE_JAKT to pull jakt as a host tool and use it to pre-process .jakt files into .cpp files for use in serenity applications
2022-04-28Kernel+Utilities: Add the route utilitybrapru
This exposes the global routing table in the /proc directory and adds the userspace utility to query dynamically add from the table.
2022-04-05js: Convert non-UTF-8 encoded files to UTF-8 before parsingTimothy Flynn
2022-03-30test: Port to LibMainKenneth Myhra
2022-03-29seq: Port to LibMainKenneth Myhra
2022-03-29tty: Port to LibMainKenneth Myhra
2022-03-29tt: Port to LibMainKenneth Myhra
2022-03-29tr: Port to LibMainKenneth Myhra
2022-03-29test_env: Port to LibMainKenneth Myhra
2022-03-29test-unveil: Port to LibMainKenneth Myhra
2022-03-29test-pthread: Port to LibMain and let local functions return ErrorOr<T>Kenneth Myhra
This ports 'test-pthread' to LibMain and converts the local functions of the program to return ErrorOr<T>.
2022-03-29test-fuzz: Port to LibMainKenneth Myhra
Also use StringView in place of raw C strings and String.
2022-03-29test-bindtodevice: Port to LibMainKenneth Myhra
This ports 'test-bindtodevice' to LibMain and convert the local 'test' function to return ErrorOr<T>.
2022-03-29kcov-example: Port to LibMainKenneth Myhra
2022-03-29telws: Port to LibMainKenneth Myhra