summaryrefslogtreecommitdiffstats
path: root/mkosi.build (follow)
Commit message (Collapse)AuthorAgeFilesLines
* mkosi: Drop focal workaround in build scriptDaan De Meyer2023-01-291-6/+1
| | | | | Now that jammy is the latest LTS, lets drop the focal workaround from the build script.
* mkosi: Don't modify rootfs in build scriptDaan De Meyer2023-01-291-6/+9
| | | | | | When unprivileged mkosi becomes available, builds will be executed as an unprivileged user, so we won't be able to modify the rootfs anymore. Let's update the build script to account for this.
* mkosi: Fix shellcheck warningsDaan De Meyer2023-01-291-2/+2
|
* mkosi: Update and enable ukify in mkosi buildsDaan De Meyer2023-01-271-1/+2
| | | | | | | We also add the necessary deps for ukify to the mkosi configs. CentOS Stream 8 is dropped from CI because its python version is too old (3.6) to be able to run ukify.
* mkosi: Use meson setupDaan De Meyer2023-01-151-1/+1
|
* mkosi: Make sure selftests bpftool is accessible from $PATHDaan De Meyer2022-12-051-0/+2
|
* mkosi: Rework kconfig handlingDaan De Meyer2022-12-051-32/+4
| | | | | | | | | | | | | | | | Instead of relying on the arch specific kconfigs that enable all kinds of options that are irrelevant for our use case, let's beef up our own config a little so that we don't need to rely on the arch specific configs anymore. Also, instead of using scripts/config to enable options in the mkosi build script, let's add a new kernel.config file that includes all the configs we want enabled/disabled. Finally, let's make sure we can properly run the bpf selftests by making sure we enable all the right configs required to run the bpf selftests successfully. We use the scripts/kconfig/merge_config.sh script to merge the three different config files together.
* Merge pull request #25327 from keszybz/mkosi-less-workFrantisek Sumsal2022-11-141-6/+6
|\ | | | | Skip mkosi runs on docs-only changes and some small cleanups
| * mkosi: drop spaces after shell redirection operatorZbigniew Jędrzejewski-Szmek2022-11-141-6/+6
| |
* | README: note Kconfig for verifying DDIs via MoK keysLuca Boccassi2022-11-141-0/+4
|/ | | | Also note them in the mkosi.build kernel config list
* mkosi: Build and install kernel selftestsDaan De Meyer2022-11-081-2/+13
|
* mkosi: Make sure bpf-framework works on CentOS Stream 8 as wellDaan De Meyer2022-10-171-0/+16
|
* mkosi: Reenable bpf-frameworkDaan De Meyer2022-10-171-1/+1
| | | | | This got changed by mistake by #24511. Since we still support the same libbpf version, we can keep this enabled everywhere.
* Merge pull request #24629 from DaanDeMeyer/mkosi-kernelDaan De Meyer2022-10-111-0/+37
|\ | | | | mkosi: Optionally build a kernel image from mkosi.kernel/
| * mkosi: Optionally build a kernel image from mkosi.kernel/Daan De Meyer2022-09-291-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If mkosi.kernel/ exists, the mkosi script will try to build a kernel image from it. We use the architecture defconfig as a base and add our own extra configuration on top. We also add some extra tooling to the build image required to build the kernel and include some documentation in HACKING.md on how to use this new feature. To avoid the kernel sources from being copied into the build or final image (which we don't want because it takes a while), we put the mkosi.kernel/ directory in .gitignore and use "SourceFileTransfer=mount" so that the sources are still accessible in the build image.
* | Bump libbpf version to 0.7Daan De Meyer2022-10-061-1/+1
|/ | | | | | | | We already depend on the skeleton APIs introduced in libbpf 0.7 so let's bump our minimum version to reflect that. We don't enforce bpf compilation on mkosi anymore since not all distros have sufficiently up-to-date libbpf available.
* mkosi: Print logs of failing testsJan Janssen2022-08-251-1/+1
|
* mkosi: use the just built systemd-sysusers instead of groupaddLuca Boccassi2022-08-251-1/+1
| | | | | It disappeared again from SUSE Tumbleweed. Just use sysusers since we just built it.
* mkosi: Ensure we build all features/components in mkosiDaan De Meyer2022-08-231-1/+88
| | | | | | | | | | | | | | | | | | | | | | Explicitly enable all features/components in the mkosi build to ensure they all get built and we get an error if they can't be built. We also rework the packages sections of all mkosi configs to reduce duplication and cover all the dependencies necessary to build/use all systemd features. Note that for the final image, since systemd is installed by default in base images, we rely on that to install the base library dependencies and we only list extra optional dependencies and tools that aren't already installed by default into the base image. We also drop the centos stream 8 mkosi build as dependencies on that distro are too out-of-date to be able to build all systemd features. Since centos stream 9 has been out for a while, let's focus on that and leave it to downstream to keep systemd building on centos stream 8. Finally, there's a few additions to the mkosi scripts to make sure services don't start by default on boot.
* mkosi: Install tests in final imageDaan De Meyer2022-08-201-1/+2
|
* mkosi: Changes to allow booting with sanitizers in mkosiDaan De Meyer2022-07-181-2/+53
| | | | | | | | | | | | - Extra memory because ASAN needs it - The environment variables to make the sanitizers more useful - LD_PRELOAD because the ASAN DSO needs to be the first in the list - The sanitizer library packages - Disable syscall filters because they interfere with ASAN - Disable systemd-hwdb-update because it's super slow when systemd-hwdb is built with sanitizers - Take the value for meson's b_sanitize option from the SANITIZERS environment variable
* mkosi: Fix build script indentationDaan De Meyer2022-07-181-19/+19
|
* mkosi: Enable meson developer modeDaan De Meyer2022-07-181-1/+2
|
* ci: check for failed services after bootFrantisek Sumsal2021-12-101-0/+9
| | | | | This should, hopefully, catch issues like systemd/systemd#21671 automagically.
* mkosi: Install sd-boot using postinst script instead of in build scriptDaan De Meyer2021-11-251-9/+0
| | | | | This allows us to reuse bootctl install instead of replicating the logic in the build script.
* licensing: add forgotten spdx headersZbigniew Jędrzejewski-Szmek2021-10-011-0/+1
| | | | | Those are all "our" files, but we forgot to add the headers, most likely because of non-standard file extensions.
* mkosi: Remove build script umask workaroundDaan De Meyer2021-09-281-10/+0
| | | | | A fix for this landed in meson 3 years ago so the workaround in the build script can now be removed (https://github.com/mesonbuild/meson/pull/3225).
* mkosi: make mkosi.build shellcheck-cleanZbigniew Jędrzejewski-Szmek2021-09-031-8/+8
| | | | | Also remove the space after redirection operators. (Some redirections were with, some without, and I think it's nicer without.)
* mkosi: drop the code to determine nobody user nameZbigniew Jędrzejewski-Szmek2021-09-031-36/+0
| | | | | | The comments were outdated: at least "nfsnobody" is not used in Fedora since a few years. So I hope we don't need this anymore. The meson build scripts do autodetection on their own.
* mkosi: initialize /usr/lib/os-release' IMAGE_ID + IMAGE_VERSION fields from ↵Lennart Poettering2021-07-031-0/+22
| | | | | | | build If it's passed into the build, use it, so that the mkosi build version is propagated into the image itself.
* mkosi: work-around to make systemd build in Fedora images that lack ↵Lennart Poettering2021-04-071-0/+12
| | | | | | | | | | | | populated /etc On Fedora /usr/bin/ld is a symlink managed via the "alternatives" system. This unfortunately means the binary is not usable in environments where /var or /etc are unpopulated. Let's address this by redirecting "ld" to "ld.bfd" manually if such an environment is detected, via $PATH. This is useful for building systemd in mkosi with UsrOnly=1 set.
* meson: Fix update-man-rules when the build dir is not a subdir of the ↵Daan De Meyer2021-01-241-1/+1
| | | | | | | | | | | | | project dir Until now, update-man-rules assumed that the build directory was a subdirectory of the project directory. When using mkosi, this is not the case. We use find instead of git ls-files because git ls-files does not seem to support outputting absolute paths. Also, this makes update-man-rules a bit more user-friendly as new manpages don't have to be added to the git staging area before they are processed by update-man-rules.py.
* mkosi: Pass build script arguments to ninjaDaan De Meyer2021-01-241-1/+1
| | | | | | mkosi recently gained support to pass arguments to the build script. Let's take advantage of this in systemd's build script to allow passing which target to build to ninja in the build script.
* mkosi: Allow setting version-tag option via VERSION_TAG env variableDaan De Meyer2021-01-151-1/+2
| | | | | | | | With https://github.com/systemd/mkosi/pull/630, we can set environment variables for the build script in mkosi. Let's modify the build script so we can set the version-tag option via an environment variable of the same name. The default is the empty string which causes meson to fall back to the default behavior (git version).
* mkosi: Only reset file permissions when $SRCDIR is not a mountpointDaan De Meyer2021-01-141-2/+4
| | | | | | If $SRCDIR is mounted into the build image (via mkosi overrides), let's not reset the permissions fo the source tree so as to not modify the original files on the host.
* mkosi: Disable translationsDaan De Meyer2021-01-101-1/+7
| | | | | Speeds up incremental builds by half a second. Let's assume translations won't be necessary in the resulting test images.
* mkosi.build: Only create groups if they don't exist yetDaan De Meyer2021-01-091-1/+1
|
* mkosi.build: Silence "Entering directory" message from ninjaDaan De Meyer2021-01-091-2/+4
| | | | | | When using `ninja -C "$BUILDDIR"`, ninja prints an annoying log message about entering the directory that cannot be silenced. Let's manually move in and out of the build directory instead.
* mkosi: Use --only-changed meson option when installingDaan De Meyer2020-12-191-2/+2
| | | | | | | | Recently, mkosi gained support for specifying an --install-directory option to save the contents of the install directory between bulids. By enabling the --only-changed meson install option, meson won't overwrite the contents of files that haven't changed since the last build when using --install-directory.
* mkosi: Silence locale checking in mkosi.buildDaan De Meyer2020-12-061-11/+11
| | | | | | Avoid warning and error logs from locale charmap and export LC_CTYPE by piping to dev/null and checking if locales are available before using them.
* mkosi: Remove explicit default_hierarchy=unified option from mkosi.buildDaan De Meyer2020-12-061-1/+1
| | | | | default_hierarchy is set to unified in meson_options already so we can remove it from mkosi.build.
* mkosi: Add --quiet and --no-rebuild options to meson install in mkosi.buildDaan De Meyer2020-12-061-1/+7
| | | | | | | | | | | | By default, meson install prints a line for every file it installs. This is verbose and doesn't provide much value. Let's silence the meson install step to remove this output from the mkosi build step. The --no-rebuild option removes some additional duplicate output by the meson install step. Ubuntu Focal still has meson 0.53.0 so we add a version check and only use the new feature if the meson version supports it.
* mkosi: Remove bash -x option from mkosi.buildDaan De Meyer2020-12-061-1/+1
| | | | | -x is for debugging purposes. During regular usage, using -x mostly prints useless output when building the mkosi image.
* mkosi: Use meson install instead of ninja install in build scriptDaan De Meyer2020-12-061-1/+1
| | | | Allows using extra options not available when using ninja.
* mkosi: Unify environment for unit testsMichal Koutný2020-04-221-1/+7
| | | | | | | | | | | Some testcases in test-execute rely on existence of user groups with certain gids. However, their existence is not universally granted [1]. Although the test could be skipped in their absence and give up testing some code paths, different approach was chosen -- create dummy groups in the testing image. [1] See how systemd-sysusers allocates gids (e.g. src/test/test-uid-range.c).
* mkosi: Use distro-invariant rootprefixMichal Koutný2020-04-221-1/+9
| | | | | | | Distributions may be build with various configs, e.g. customized rootprefix. It'd be unmaintanable to have specific mkosi.build for each supported distro. Hence, make the build script flexible yet distro oblivious.
* mkosi: let's update the boot loader also in /efiLennart Poettering2019-03-011-0/+4
| | | | This is after all where we preferable mount the ESP today.
* mkosi: update the boot loader from our freshly built oneLennart Poettering2018-10-161-0/+5
|
* tree-wide: remove Lennart's copyright linesLennart Poettering2018-06-141-2/+0
| | | | | | | | | | | These lines are generally out-of-date, incomplete and unnecessary. With SPDX and git repository much more accurate and fine grained information about licensing and authorship is available, hence let's drop the per-file copyright notice. Of course, removing copyright lines of others is problematic, hence this commit only removes my own lines and leaves all others untouched. It might be nicer if sooner or later those could go away too, making git the only and accurate source of authorship information.
* tree-wide: drop 'This file is part of systemd' blurbLennart Poettering2018-06-141-2/+0
| | | | | | | | | | | | | | | | This part of the copyright blurb stems from the GPL use recommendations: https://www.gnu.org/licenses/gpl-howto.en.html The concept appears to originate in times where version control was per file, instead of per tree, and was a way to glue the files together. Ultimately, we nowadays don't live in that world anymore, and this information is entirely useless anyway, as people are very welcome to copy these files into any projects they like, and they shouldn't have to change bits that are part of our copyright header for that. hence, let's just get rid of this old cruft, and shorten our codebase a bit.