blob: b7fe7ae3ed560da0cdea1bff5f74062d36bfa5ff [file] [log] [blame]
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001SUMMARY = "The network configuration abstraction renderer"
2DESCRIPTION = "Netplan is a utility for easily configuring networking on a \
3linux system. You simply create a YAML description of the required network \
4interfaces and what each should be configured to do. From this description \
5Netplan will generate all the necessary configuration for your chosen renderer \
6tool."
7HOMEPAGE = "https://netplan.io"
8SECTION = "net/misc"
9
Andrew Geissler9aee5002022-03-30 16:27:02 +000010LICENSE = "GPL-3.0-only"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000011LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
12
13S = "${WORKDIR}/git"
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060014SRCREV = "15ce044d1df27b5057556d84d0d14beef8dd4e4d"
15PV = "0.106"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000016
17SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
18 file://0001-Makefile-do-not-use-Werror.patch \
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000019 "
20
21SRC_URI:append:libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch"
22
23DEPENDS = "glib-2.0 libyaml ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
24
25PACKAGECONFIG ?= ""
26
27PACKAGECONFIG[tests] = ",,,python3-nose python3-coverage python3-netifaces python3-pycodestyle python3-pyflakes python3-pyyaml"
28
29RDEPENDS:${PN} = "python3 python3-core python3-netifaces python3-pyyaml util-linux-libuuid libnetplan"
30
31inherit pkgconfig systemd
32
33TARGET_CC_ARCH += "${LDFLAGS}"
34
35EXTRA_OEMAKE = "generate netplan/_features.py"
36EXTRA_OEMAKE =+ "${@bb.utils.contains('DISTRO_FEATURES','systemd','netplan-dbus dbus/io.netplan.Netplan.service','',d)}"
37
38do_install() {
39 install -d ${D}${sbindir} ${D}${libdir} ${D}${base_libdir}/netplan ${D}${datadir}/netplan/netplan/cli/commands ${D}${sysconfdir}/netplan
40 install -m 755 ${S}/generate ${D}${base_libdir}/netplan/
41 install -m 644 ${S}/netplan/*.py ${D}${datadir}/netplan/netplan
42 install -m 644 ${S}/netplan/cli/*.py ${D}${datadir}/netplan/netplan/cli
43 install -m 644 ${S}/netplan/cli/commands/*.py ${D}${datadir}/netplan/netplan/cli/commands
44 install -m 755 ${S}/src/netplan.script ${D}${datadir}/netplan/
45 ln -srf ${D}${datadir}/netplan/netplan.script ${D}${sbindir}/netplan
46 sed -i -e "s#/lib/netplan/generate#${base_libdir}/netplan/generate#" ${D}${datadir}/netplan/netplan/cli/utils.py
47
48 install -d ${D}/${systemd_unitdir}/system ${D}${systemd_unitdir}/system-generators
49 ln -srf ${D}/${base_libdir}/netplan/generate ${D}${systemd_unitdir}/system-generators
50
51 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
52 install -d ${D}${datadir}/dbus-1/system.d ${D}${datadir}/dbus-1/system-services
53 install -m 755 ${S}/netplan-dbus ${D}${base_libdir}/netplan
54 install -m 644 ${S}/dbus/io.netplan.Netplan.conf ${D}${datadir}/dbus-1/system.d
55 install -m 644 ${S}/dbus/io.netplan.Netplan.service ${D}${datadir}/dbus-1/system-services
56 sed -i -e "s#^Exec=/lib/#Exec=${base_libdir}/#" ${D}${datadir}/dbus-1/system-services/io.netplan.Netplan.service
57 fi
58
59 install -m 755 ${S}/libnetplan.so.0.0 ${D}${libdir}
60 ln -rfs ${D}${libdir}/libnetplan.so.0.0 ${D}${libdir}/libnetplan.so
61}
62
63PACKAGES += "${PN}-dbus libnetplan"
64
65FILES:libnetplan = "${libdir}/libnetplan.so.0.0"
66FILES:${PN} = "${sbindir} ${base_libdir}/netplan/generate ${datadir}/netplan ${sysconfdir}/netplan ${systemd_unitdir}"
67FILES:${PN}-dbus = "${base_libdir}/netplan/netplan-dbus ${datadir}/dbus-1"