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

Sinan Kaya
2020-12-17T00:30:51Z

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.

>
> //Peter
>