1require conf/distro/include/phosphor-defaults.inc
2
3# Match the distro codename from upstream poky.
4DISTRO_CODENAME ?= "scarthgap"
5
6DISTROOVERRIDES .= ":openbmc-phosphor"
7
8TCLIBCAPPEND = ""
9
10QEMU_TARGETS ?= "arm aarch64 i386 riscv32 riscv64 ppc64le x86_64"
11
12PREMIRRORS ??= "\
13bzr://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
14cvs://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
15git://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
16gitsm://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
17hg://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n \
18osc://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
19p4://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n \
20svn://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n"
21
22MIRRORS =+ "\
23ftp://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n \
24http://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
25https://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n"
26
27# The CONNECTIVITY_CHECK_URI's are used to test whether we can successfully
28# fetch from the network (and warn you if not). To disable the test set
29# the variable to be empty.
30# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=https;rev=master
31CONNECTIVITY_CHECK_URIS ?= "https://yoctoproject.org/connectivity.html"
32
33SANITY_TESTED_DISTROS ?= " \
34            poky-4.2 \n \
35            poky-4.3 \n \
36            ubuntu-18.04 \n \
37            ubuntu-20.04 \n \
38            ubuntu-22.04 \n \
39            ubuntu-23.04 \n \
40            fedora-38 \n \
41            centosstream-8 \n \
42            debian-11 \n \
43            debian-12 \n \
44            opensuseleap-15.4 \n \
45            almalinux-8.8 \n \
46            almalinux-9.2 \n \
47            rocky-9 \n \
48            "
49#
50# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
51# an incompatible way. Such changes should usually be detailed in the commit
52# that breaks the format and have been previously discussed on the mailing list
53# with general agreement from the core team.
54#
55OELAYOUT_ABI = "15"
56
57# QA check settings - a little stricter than the OE-Core defaults
58WARN_TO_ERROR_QA = "already-stripped compile-host-path install-host-path \
59                    installed-vs-shipped ldflags pn-overrides rpaths staticdev \
60                    useless-rpaths"
61WARN_QA:remove = "${WARN_TO_ERROR_QA}"
62ERROR_QA:append = " ${WARN_TO_ERROR_QA}"
63
64require conf/distro/include/no-static-libs.inc
65require conf/distro/include/yocto-uninative.inc
66
67DISTRO_NAME ?= "Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro)"
68TARGET_VENDOR="-openbmc"
69
70
71VIRTUAL-RUNTIME_keymaps = ""
72
73# Phosphor OpenBMC uses systemd and udev
74INIT_MANAGER = "systemd"
75# systemd doesn't like us using /home/root instead of /root but we've been
76# doing it a long time.  The `INIT_MANAGER = systemd` switches the default to
77# /root, but we should switch it back (and maybe adjust in another commit).
78ROOT_HOME = "/home/root"
79
80# We want to persist /var/log, which is likely to be used for
81# obmc-console and/or journald.
82VOLATILE_LOG_DIR = "no"
83
84DISTRO_FEATURES_BACKFILL_CONSIDERED = " \
85        bluez5 \
86        ldconfig \
87        gobject-introspection-data \
88        pulseaudio \
89        "
90
91DISTRO_FEATURES_OBMC = " \
92        obmc-host-ctl \
93        obmc-host-ipmi \
94        obmc-phosphor-chassis-mgmt \
95        obmc-phosphor-fan-mgmt \
96        obmc-phosphor-flash-mgmt \
97        obmc-phosphor-system-mgmt \
98        "
99
100DISTRO_FEATURES_DEFAULT = " \
101        avahi \
102        ipv4 \
103        ipv6 \
104        pam \
105        security \
106        slp \
107        seccomp \
108        "
109
110DISTRO_FEATURES += " \
111        ${DISTRO_FEATURES_DEFAULT} \
112        ${DISTRO_FEATURES_OBMC} \
113        "
114
115DISTRO_EXTRA_RDEPENDS:remove:qemuarm = "packagegroup-core-device-devel"
116
117include conf/distro/include/openbmc-phosphor/${MACHINE}.inc
118
119IMAGE_CLASSES:append = " image_types_phosphor phosphor-rootfs-postcommands"
120IMAGE_CLASSES:append:npcm7xx = " image_types_phosphor_nuvoton"
121IMAGE_CLASSES:append:npcm8xx = " image_types_phosphor_nuvoton_npcm8xx"
122
123IMAGE_INSTALL:append = " dbus-broker libnss-systemd"
124
125# Skip the udev database by default.  It adds around 2MB
126# compressed to the root filesystem, and probably doesn't
127# make sense on a BMC anyway.
128BAD_RECOMMENDATIONS += "udev-hwdb"
129BAD_RECOMMENDATIONS += "shared-mime-info"
130
131# e2fsprogs isn't needed on a BMC without MMC, where it gets explicitly added
132BAD_RECOMMENDATIONS += "e2fsprogs-e2fsck"
133
134LAYER_CONF_VERSION ?= "8"
135
136KERNEL_CLASSES:append = " obmc-phosphor-kernel-version"
137
138# Some packages have directory trees of YAML files arranged based on
139# canonical organization names.  'org/freedesktop' and 'xyz/openbmc_project'
140# should be used everywhere in phosphor, but some layers may append this with
141# their own organization(s).
142OBMC_ORG_YAML_SUBDIRS += " org/freedesktop xyz/openbmc_project"
143
144PREFERRED_VERSION_libgpiod = "1.6.4"
145
146# Enable SBOM: https://docs.yoctoproject.org/next/dev-manual/sbom.html
147INHERIT += "create-spdx"
148