xref: /openbmc/openbmc/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.5.bb (revision 8460358c3d24c71d9d38fd126c745854a6301564)
1*8460358cSPatrick WilliamsSUMMARY = "OpenZFS on Linux and FreeBSD"
2*8460358cSPatrick WilliamsDESCRIPTION = "OpenZFS on Linux and FreeBSD"
3*8460358cSPatrick WilliamsLICENSE = "CDDL-1.0"
4*8460358cSPatrick WilliamsLIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
5*8460358cSPatrick WilliamsHOMEPAGE ="https://github.com/openzfs/zfs"
6*8460358cSPatrick Williams
7*8460358cSPatrick WilliamsSRCREV = "33174af15112ed5c53299da2d28e763b0163f428"
8*8460358cSPatrick WilliamsSRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=zfs-2.2-release \
9*8460358cSPatrick Williams           file://0001-Define-strndupa-if-it-does-not-exist.patch \
10*8460358cSPatrick Williams           file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
11*8460358cSPatrick Williams           file://0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch \
12*8460358cSPatrick Williams"
13*8460358cSPatrick Williams
14*8460358cSPatrick WilliamsS = "${WORKDIR}/git"
15*8460358cSPatrick Williams
16*8460358cSPatrick Williams# Using both 'module' and 'autotools' classes seems a bit odd, they both
17*8460358cSPatrick Williams# define a do_compile function.
18*8460358cSPatrick Williams# That's why we opt for module-base, also this prevents module splitting.
19*8460358cSPatrick Williamsinherit module-base pkgconfig autotools bash-completion
20*8460358cSPatrick Williams
21*8460358cSPatrick WilliamsDEPENDS = "virtual/kernel zlib util-linux libtirpc openssl curl"
22*8460358cSPatrick Williams
23*8460358cSPatrick WilliamsPACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd sysvinit', d)}"
24*8460358cSPatrick Williams
25*8460358cSPatrick WilliamsPACKAGECONFIG[pam] = "--enable-pam --with-pamconfigsdir=${datadir}/pam-configs --with-pammoduledir=${libdir}/security, --disable-pam"
26*8460358cSPatrick WilliamsPACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,"
27*8460358cSPatrick WilliamsPACKAGECONFIG[sysvinit] = "--enable-sysvinit,--disable-sysvinit,"
28*8460358cSPatrick Williams
29*8460358cSPatrick WilliamsEXTRA_OECONF:append = " \
30*8460358cSPatrick Williams    --disable-pyzfs \
31*8460358cSPatrick Williams    --with-linux=${STAGING_KERNEL_DIR} --with-linux-obj=${STAGING_KERNEL_BUILDDIR} \
32*8460358cSPatrick Williams    --with-mounthelperdir=${base_sbin} \
33*8460358cSPatrick Williams    --with-udevdir=${base_libdir}/udev \
34*8460358cSPatrick Williams    --with-systemdunitdir=${systemd_system_unitdir} \
35*8460358cSPatrick Williams    --with-systemdgeneratordir=${nonarch_base_libdir}/systemd/system-generators \
36*8460358cSPatrick Williams    --with-systemdpresetdir=${nonarch_base_libdir}/systemd/system-preset \
37*8460358cSPatrick Williams    --with-systemdmodulesloaddir=${sysconfdir}/module-load.d \
38*8460358cSPatrick Williams    --without-dracutdir --enable-linux-builtin \
39*8460358cSPatrick Williams"
40*8460358cSPatrick Williams
41*8460358cSPatrick Williams# Reproducibility: Force target distribution ("vendor") to Debian to match
42*8460358cSPatrick Williams# default values for things like: NFS server service name, bash completion
43*8460358cSPatrick Williams# path, configuration files, ...
44*8460358cSPatrick Williams# The Debian values do match the OpenEmbedded ones.
45*8460358cSPatrick WilliamsEXTRA_OECONF:append = " --with-vendor=debian"
46*8460358cSPatrick Williams
47*8460358cSPatrick WilliamsEXTRA_OEMAKE:append = " \
48*8460358cSPatrick Williams    INSTALL_MOD_PATH=${D}${root_prefix} \
49*8460358cSPatrick Williams"
50*8460358cSPatrick Williams
51*8460358cSPatrick Williamsdo_install:append() {
52*8460358cSPatrick Williams    # /usr/share/zfs contains the zfs-tests folder which we do not need:
53*8460358cSPatrick Williams    rm -rf ${D}${datadir}/zfs
54*8460358cSPatrick Williams
55*8460358cSPatrick Williams    rm -rf ${D}${datadir}/initramfs-tools
56*8460358cSPatrick Williams}
57*8460358cSPatrick Williams
58*8460358cSPatrick WilliamsFILES:${PN} += "\
59*8460358cSPatrick Williams    ${nonarch_base_libdir}/modules \
60*8460358cSPatrick Williams    ${systemd_system_unitdir} \
61*8460358cSPatrick Williams    ${nonarch_base_libdir}/systemd/system-generators \
62*8460358cSPatrick Williams    ${nonarch_base_libdir}/systemd/system-preset \
63*8460358cSPatrick Williams    ${sysconfdir}/modules-load.d/${BPN}.conf \
64*8460358cSPatrick Williams    ${sysconfdir}/default/${BPN} \
65*8460358cSPatrick Williams    ${sysconfdir}/sudoers.d/${BPN} \
66*8460358cSPatrick Williams    ${sysconfdir}/${BPN} \
67*8460358cSPatrick Williams    ${base_libdir}/udev \
68*8460358cSPatrick Williams    ${sbindir} \
69*8460358cSPatrick Williams    ${bindir} \
70*8460358cSPatrick Williams    ${libexecdir}/${BPN} \
71*8460358cSPatrick Williams    ${libdir} \
72*8460358cSPatrick Williams"
73*8460358cSPatrick Williams
74*8460358cSPatrick WilliamsFILES:${PN}-dev += "\
75*8460358cSPatrick Williams    ${prefix}/src/zfs-${PV} \
76*8460358cSPatrick Williams    ${prefix}/src/spl-${PV} \
77*8460358cSPatrick Williams"
78*8460358cSPatrick Williams# Not yet ported to rv32
79*8460358cSPatrick WilliamsCOMPATIBLE_HOST:riscv32 = "null"
80*8460358cSPatrick Williams# conflicting definition of ABS macro from asm/asm.h from kernel
81*8460358cSPatrick WilliamsCOMPATIBLE_HOST:mips = "null"
82*8460358cSPatrick Williams# FTBFS on aarch64 with 6.2+ kernel see https://github.com/openzfs/zfs/issues/14555
83*8460358cSPatrick WilliamsCOMPATIBLE_HOST:aarch64 = "null"
84