Re: [OE-core] [meta-oe][PATCH v4] iproute2: split ip to individual package

Peter Kjellerstedt
2020-12-17T01:20:47Z

> -----Original Message-----
> From: Sinan Kaya <okaya@kernel.org>
> Sent: den 17 december 2020 01:31
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; openembedded-
> core@lists.openembedded.org
> Subject: Re: [OE-core] [meta-oe][PATCH v4] iproute2: split ip to
> individual package
>
> On 12/16/2020 6:19 PM, Peter Kjellerstedt wrote:
> >>
> >> -PACKAGES =+ "\
> >> +IPROUTE2_PACKAGES =+ "\
> >> ${PN}-devlink \
> >> ${PN}-genl \
> >> ${PN}-ifstat \
> >> + ${PN}-ip \
> >> ${PN}-lnstat \
> >> ${PN}-nstat \
> >> ${PN}-rtacct \
> >> @@ -58,12 +59,16 @@ PACKAGES =+ "\
> >> ${PN}-tipc \
> >> "
> >>
> >> +PACKAGE_BEFORE_PN = "${IPROUTE2_PACKAGES}"
> >> +RDEPENDS_${PN} += "${IPROUTE2_PACKAGES}"
> >
> > This breaks backwards compatibility. The iproute2 package today
> > does not bring in all the sub-packages.
> >
>
> OK, Let me fix this.
>
> >> +
> >> FILES_${PN}-tc = "${base_sbindir}/tc* \
> >> ${libdir}/tc/*.so"
> >> FILES_${PN}-lnstat = "${base_sbindir}/lnstat \
> >> ${base_sbindir}/ctstat \
> >> ${base_sbindir}/rtstat"
> >> FILES_${PN}-ifstat = "${base_sbindir}/ifstat"
> >> +FILES_${PN}-ip = "${base_sbindir}/ip.${PN} ${sysconfdir}/iproute2"
> >> FILES_${PN}-genl = "${base_sbindir}/genl"
> >> FILES_${PN}-rtacct = "${base_sbindir}/rtacct"
> >> FILES_${PN}-nstat = "${base_sbindir}/nstat"
> >> @@ -71,7 +76,7 @@ FILES_${PN}-ss = "${base_sbindir}/ss"
> >> FILES_${PN}-tipc = "${base_sbindir}/tipc"
> >> FILES_${PN}-devlink = "${base_sbindir}/devlink"
> >>
> >> -ALTERNATIVE_${PN} = "ip"
> >> +ALTERNATIVE_${PN}-ip = "ip"
> >> ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}"
> >> ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip"
> >> ALTERNATIVE_PRIORITY = "100"
> >> --
> >> 2.17.1
> >
> > If you are this space constrained, I would suggest adding bbappend
> files
> > to your own layer for these recipes instead. That is what we do so we
> can
> > control exactly what files we want or not. E.g., this is what we have
> in
> > our iproute2_%.bbappend:
> >
> > EXTRA_OEMAKE += "SUBDIRS='lib tc ip'"
> >
> > do_install_append() {
> > # Remove unused files
> > rm -f ${D}${base_sbindir}/ifcfg
> > rm -f ${D}${base_sbindir}/rtmon
> > rm -f ${D}${base_sbindir}/routef
> > rm -f ${D}${base_sbindir}/routel
> > rm -f ${D}${base_sbindir}/rtpr
> > }
> >
> > With the above bbappend, the only binary left in the iproute2 package
> is in
> > fact "ip".
>
> I do something very similar in my bbappend now. On the other hand, we
> have an upstream first principle in the company. I would rather try to
> find an upstream friendly solution that works for everybody without
> breaking existing users before falling back to bbappend route that I
> need to maintain forever.

Well, the problem as I see it is that some of these changes are pretty
invasive to the recipes. And when most seem fine with them as they are
(based on the fact that there has not been any push to split any of
them before AFAIK), the value of these changes are questionable, given
that more complicated recipes increase the maintenance burden.

> > //Peter

//Peter