summaryrefslogtreecommitdiffstats
path: root/tools (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* contrib: include co-authors to the contributor list of NEWSYu Watanabe2023-11-301-1/+6
| | | | Closes #30261.
* hwdb: rename .html=>.csvZbigniew Jędrzejewski-Szmek2023-11-151-2/+2
| | | | The old suffix is now confusing.
* fuzz: don't panic without a C++ compilerFrantisek Sumsal2023-11-151-1/+1
| | | | | | | meson's `cpp_args` option is defined only if it detects a C++ compiler, otherwise we get an error: ../test/fuzz/meson.build:56:28: ERROR: Tried to access unknown option 'cpp_args'.
* fuzz: pass -Dc_args=/-Dcpp_args= to fuzzer targetsFrantisek Sumsal2023-11-101-15/+14
| | | | | | | | | | | | | | | | | Prompted by #29972, because right now it's practically impossible to pass -fno-sanitize=function to the fuzzer targets without some extensive sed'ing. This splits both c_args and cpp_args to separate arguments for tools/meson-build.sh, because the other way would be to use `eval`, so the space-separated but quoted strings passed to these options are not split where they shouldn't, and I'd rather avoid using `eval` if possible. Also, this switches the positional arguments we pass to `meson setup`, as they were in incorrect order (docs say it should be buildir followed by sourcedir); meson is apparently clever enough to figure this out and switch the arguments around if necessary, so it didn't complain.
* tools: syscall tables moved to a subdirectoryLuca Boccassi2023-11-011-2/+2
|
* Update hwdb autosuspend rulesLuca Boccassi2023-11-011-0/+2
|
* meson: generate proper version tag when git fails on permission errorsZbigniew Jędrzejewski-Szmek2023-10-191-5/+10
| | | | | | | | | | | | | | | | | | | | | | | When building with mkosi I would get the following: [1/477] Generating version.h with a custom command fatal: detected dubious ownership in repository at '/work/src' To add an exception for this directory, call: git config --global --add safe.directory /work/src and then the tag would be generated as 'v254-'. This is obviously some problem with the setup, but we should handle this gracefully. Let's fall back to 'v254' instead. In the case where we have a repo but no tags, use --dirty=^ too, as in the case with tags. I tested four cases: - normal checkout - checkout with .git removed - checkout with .git chowned to root - checkout wiht all tags removed
* doc-sync: add support for uploading the documentation for mainAbderrahim Kitouni2023-10-101-5/+13
| | | | | | It will refuse running on any other branch than main or stable branches. Also update the release instructions to run it on the stable branch.
* doc-sync: automatically detect whether we're updating the latest versionAbderrahim Kitouni2023-10-091-4/+13
| | | | also update the release instructions to push release candidates to -stable
* doc-sync: add man/ to the passed directoryAbderrahim Kitouni2023-10-091-2/+2
| | | | This mirrors the behaviour before multiple version support
* man: support multiple versions of the documentation on the websiteAbderrahim Kitouni2023-10-091-0/+134
| | | | | | | | | | | This changes the doc-sync meson target from a simple rsync command to a script that: * puts the documentation in a subdirectory according to the version * injects a bit of javascript to add a drop-down to switch between versions * updates an index.json file with the newly uploaded version * keeps the latest/ directory up to date with the latest version * supports a --no-latest switch to be used when uploading older versions
* man: add checks for missing version informationAbderrahim Kitouni2023-10-013-0/+696
| | | | | | | | | | | This adds a new script tools/check-version-history.py and a corresponding test when building in developer mode. It checks manpages (except dbus documentation which is handled by update-dbus-docs) for missing version history information. It also adds ignore lists based on version 183 (the version that our version annotations go back to). These can be augmented if we want to ignore other elements if it doesn't make sense for them to have version annotations.
* elf2efi: Add GNU_RELRO supportJan Janssen2023-09-291-0/+11
|
* elf2efi: Add --copy-sections optionJan Janssen2023-09-291-0/+33
| | | | | | | | | | This makes the special PE sections available again in our output EFI images. Since the compiler provides no way to mark a section as not allocated, we use GNU assembler syntax to emit the sections instead. This ensures the section data isn't emitted twice as load segments will only contain allocating input sections.
* elf2efi: Add next_section_address helperJan Janssen2023-09-291-6/+9
|
* elf2efi: Check ELF image base if possibleJan Janssen2023-09-291-1/+7
|
* elf2efi: Rework ELF section conversionJan Janssen2023-09-292-135/+122
| | | | | | | | | | | | | | | | | | | | | | | The main reason we need to apply a whole lot of logic to the section conversion logic is because PE sections have to be aligned to the page size (although, currently not even EDK2 enforces this). The process of achieving this with a linker script is fraught with errors, they are a pain to set up correctly and suck in general. They are also not supported by mold, which requires us to forcibly use bfd, which also means that linker feature detection is easily at odds as meson has a differnt idea of what linker is in use. Instead of forcing a manual ELF segment layout with a linker script we just let the linker do its thing. We then simply copy/concatenate the sections while observing proper page boundaries. Note that we could just copy the ELF load *segments* directly and achieve the same result. Doing this manually allows us to strip sections we don't need at runtime like the dynamic linking information (the elf2efi conversion is effectively the dynamic loader). Important sections like .sbat that we emit directly from code will currently *not* be exposed as individual PE sections as they are contained within the ELF segments. A future commit will fix this.
* update-dbus-docs: Test that items are documented in the History sectionAbderrahim Kitouni2023-09-262-19/+2200
| | | | | | | This also adds an ignore list, which currently contains the whole API as of version 250, since that's the base we used for dbus interfaces. See d9d2d16aeaf7c18a7b2486cd7c2db484c99050df
* elf2efi: fix a typoMike Yuan2023-09-211-1/+1
|
* update-dbus-docs: don't consider mentions in the HistoryAbderrahim Kitouni2023-09-191-3/+9
| | | | | Being mentioned in the History section as added in a specific version isn't enough to consider a member documented.
* meson: restore tools/meson-vcs-tag.shZbigniew Jędrzejewski-Szmek2023-09-181-0/+28
| | | | | | | | | | | | | | | | | | | This conceptually reverts e95acdfe1d3a790e18617bb992a712b34f41800d, but the actual contents of the script are taken from the command invocation in meson with all the updates that happened in the meantime. One small change is that I replaced () by {}: this avoids one subprocess spawn. People were worried about the cost of vcs_tag(), and this microoptimization may help a bit. I measured the speed on machine, and noop rebuilds are still about 100–120 ms. The logic is entirely moved to the script. This makes the meson config simpler and also makes it easier to use it externally. The script is needed for in-place rpm builds, see README.build-in-place.md [1], where it is invoked from the spec file to determine the project version. [1] https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/README.build-in-place.md
* meson: Drop skip-deps optionJan Janssen2023-08-231-3/+5
| | | | | | | | | | Now that we use meson feature options for our dependencies, we can just rely on '--auto-features=disabled' to do the same. One benefit of this is that specific features can still be force-enabled by overriding it with the appropriate '-Dfeature=enabled' flag. The two remaining uses for skip-deps can simply rely on their default logic that sets the value to 'no' when the dependency is disabled.
* hwdb: update autosuspend rulesLuca Boccassi2023-08-161-122/+183
| | | | ninja -C build update-hwdb-autosuspend
* tools: update-hwdb-autosuspend.sh: Point at HEAD, not master branchBrian Norris2023-08-161-1/+1
| | | | | | | | | Many Chromium projects have moved from 'master' to 'main', where 'master' is no longer updated. Point at HEAD instead, which should always represent the default branch. I don't actually rerun/regenerate the database, since I don't really run systemd environments to test that update on.
* Add .pylintrc to globally suppress warnings we don't really care aboutFrantisek Sumsal2023-08-101-1/+1
| | | | Also, drop the respective disable directives from existing files.
* tools: pylint meson-render-jinja2.pyFrantisek Sumsal2023-08-101-1/+5
|
* tools: pylint analyze-dump-sort.pyFrantisek Sumsal2023-08-101-0/+1
|
* tools: pylint dump-auxv.pyFrantisek Sumsal2023-08-101-4/+8
|
* tools: pylint gdb-sd_dump_hashmaps.pyFrantisek Sumsal2023-08-101-1/+2
|
* tools: pylint list-discoverable-partitions.pyFrantisek Sumsal2023-08-101-16/+16
|
* tools: pylint xml_helper.pyFrantisek Sumsal2023-08-101-1/+5
|
* tools: pylint update-man-rules.pyFrantisek Sumsal2023-08-101-5/+9
|
* tools: pylint update-dbus-docs.pyFrantisek Sumsal2023-08-101-40/+45
|
* tools: pylint make-man-index.pyFrantisek Sumsal2023-08-101-9/+10
|
* tools: pylint make-directive-index.pyFrantisek Sumsal2023-08-101-9/+10
|
* tools: pylint make-autosuspend-rules.pyFrantisek Sumsal2023-08-101-2/+2
|
* tools: pylint generate-gperfs.pyFrantisek Sumsal2023-08-101-7/+12
|
* tools: pylint dbus_exporter.pyFrantisek Sumsal2023-08-101-1/+2
|
* tools: pylint check-includes.pyFrantisek Sumsal2023-08-101-3/+3
|
* tools: pylint catalog-report.pyFrantisek Sumsal2023-08-101-40/+40
|
* tools: pylint analyze-dump-sort.pyFrantisek Sumsal2023-08-101-1/+2
|
* meson: use install_emptydir() and drop meson-make-symlink.shYu Watanabe2023-08-081-22/+0
| | | | | | The script is mostly equivalent to 'mkdir -p' and 'ln -sfr'. Let's replace it with install_emptydir() builtin function and inline meson call.
* Merge pull request #28595 from medhefgo/elf2efi-fixesLuca Boccassi2023-07-311-2/+10
|\ | | | | elf2efi: Fixes
| * elf2efi: Fix header size calculationJan Janssen2023-07-301-2/+10
| | | | | | | | | | | | The PE header size calculation failed to take the PE magic and coff header size into account, which will lead to header truncation if we are writing only 5 sections.
* | meson: drop short script to generate vcs tagYu Watanabe2023-07-291-19/+0
|/
* elf2efi: Make compatible with python 3.6 againDaan De Meyer2023-07-141-8/+8
| | | | | | | CentOS 8 ships python 3.6 so let's try and stay compatible with that since the only feature we're using that requires python 3.9 is the streamlined type annotations which are trivial to convert back to the older stuff to stay compatible with python 3.6.
* man: generate link mode list dynamicallyZbigniew Jędrzejewski-Szmek2023-05-301-0/+2
| | | | | | | | The entries are sorted by speed. Some fields are left empty when there is no clear value to use. The table is much longer now, but I think it's better to document the allowed values, even if some are not terribly useful. Fixes #26256.
* elf2efi: ensure minimum gap between .text and other sectionsLuca Boccassi2023-05-241-0/+7
| | | | | When linking an almost empty binary the linker can merged .text with a later section, creating a RWE segment, that then it rejects.
* elf2efi: add parameter to increase reserved space for headersLuca Boccassi2023-05-241-1/+8
| | | | | | When building a minimal empty addon it would not have enough space to append sections. Add an option that will later be used to reserve enough space.
* elf2efi: Do not emit an empty relocation sectionJan Janssen2023-05-231-4/+9
| | | | | | | At least shim will choke on an empty relocation section when loading the binary. Note that the binary is still considered relocatable (just with no base relocations to apply) as we do not set the IMAGE_FILE_RELOCS_STRIPPED DLL characteristic.