[yocto] Fix 'PACKAGES' in net-snmp recipe

Huang, Jie (Jackie) Jackie.Huang at windriver.com
Mon Mar 19 00:38:40 PDT 2018


> 
> 
> From: Kosta Zertsekel [mailto:KZertsekel at advaoptical.com] 
> Sent: Monday, March 19, 2018 14:17
> To: Huang, Jie (Jackie); Khem Raj
> Cc: yocto at yoctoproject.org; Enache, Catalin; Zhou, Li
> Subject: Re: [yocto] Fix 'PACKAGES' in net-snmp recipe
> 
> > are there specific issue you are seeing besides the packages being empty ?
> > I would suggest to apply _remove operation to remove the empty packages
> > if needed from PACKAGES variable
> 
> No any other specific issues are seen.
> 
> > I agree, I don't think it's an issue that the packages
> > being empty, and actually they're handled properly with:
> > 
> > ALLOW_EMPTY_${PN} = "1"
> > ALLOW_EMPTY_${PN}-server = "1"
> > 
> > RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
> > RDEPENDS_${PN} += "net-snmp-client"
> > RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
> > 
> > So you can assume that "net-snmp" = "net-snmp-client" ( plus 'net-snmp-perl-modules'
> > if 'perl' packgeconfig is enabled ), and "net-snmp-server" = " net-snmp-server-snmpd"
> > +"net-snmp-server-snmptrapd " 
> 
> So, you mean that 'PACKAGEs = ...' was changed to 'PACKAGES += ...' in order
> to create the default packages (${PN}, ${PN}-doc, ${PN}-locale, etc.) that are

It was changed for two reasons referred to the commit 5eec0615e:

"""
    - Change to use append for PACKAGES so that:
      * ptest package is added from ptest bbcalss
      * the PN is back, allow empty and add rdepends on net-snmp-client
        in case the user try to add net-snmp to the image
"""

1) The 'PACKAGEs = ...' will override the definition from bbclass like ptest.bbclass
2) We had customers assume that the ${PN} package for each recipe always exist so when they wanted to
    use net-snmp clients, they tried to install net-snmp but failed.

If you don't like the solution, you can use _remove operation to remove PN from PACKAGES.

Other default packages like ${PN}-doc and ${PN}-locale, them are also empty for many other recipes,
I don't think it's an issue, so no need to re-define the PACKAGES or remove them with _remove operation.

Thanks,
Jackie



> empty? Is there a chance it was done to satisfy a default dependencies in
> bitbake.conf? I just fail to see the original meaning...
> --- Kosta Z.
> ________________________________________
> From: Huang, Jie (Jackie) <Jackie.Huang at windriver.com>
> Sent: Monday, March 19, 2018 3:56:28 AM
> To: Khem Raj; Kosta Zertsekel
> Cc: yocto at yoctoproject.org; Enache, Catalin; Zhou, Li
> Subject: RE: [yocto] Fix 'PACKAGES' in net-snmp recipe 
>  
> 
> 
> > -----Original Message-----
> > From: Huang, Jie (Jackie)
> > Sent: Monday, March 19, 2018 09:51
> > To: 'Khem Raj'; Kosta Zertsekel
> > Cc: yocto at yoctoproject.org; Enache, Catalin; Zhou, Li
> > Subject: RE: [yocto] Fix 'PACKAGES' in net-snmp recipe
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: Khem Raj [mailto:raj.khem at gmail.com]
> > > Sent: Monday, March 19, 2018 05:54
> > > To: Kosta Zertsekel
> > > Cc: yocto at yoctoproject.org; Huang, Jie (Jackie); Enache, Catalin; Zhou, Li
> > > Subject: Re: [yocto] Fix 'PACKAGES' in net-snmp recipe
> > >
> > > On Sat, Mar 17, 2018 at 11:46 PM, Kosta Zertsekel
> > > <KZertsekel at advaoptical.com> wrote:
> > > > Hi guys,
> > > >
> > > >
> > > > As for now (master branch) 'PACKAGES' variable in net-snmp equals to:
> > > >
> > > > ```
> > > >
> > > > $ bitbake -e net-snmp | grep "^PACKAGES="
> > > >
> > > > PACKAGES="net-snmp-dbg net-snmp-staticdev net-snmp-dev net-snmp-doc
> > > > net-snmp-locale  net-snmp net-snmp-libs net-snmp-mibs net-snmp-server
> > > > net-snmp-client net-snmp-server-snmpd net-snmp-server-snmptrapd "
> > > > ```
> > > >
> > > > This seems to be wrong as many built packages from 'packages-split'
> > > > directory of net-snmp are empty:
> > > >
> > > > ```
> > > > $ du -a --max-depth=1 . | sort -n
> > > > 4    ./net-snmp
> > > > 4    ./net-snmp-client.shlibdeps
> > > > 4    ./net-snmp-doc
> > > > 4    ./net-snmp-libs.shlibdeps
> > > > 4    ./net-snmp-locale
> > > > 4    ./net-snmp-server
> > > > 4    ./net-snmp-server-snmpd.shlibdeps
> > > > 4    ./net-snmp-server-snmptrapd.shlibdeps
> > > > 4    ./net-snmp-staticdev
> > > > 48    ./net-snmp-server-snmptrapd
> > > > 72    ./net-snmp-server-snmpd
> > > > 1208    ./net-snmp-dev
> > > > 1480    ./net-snmp-client
> > > > 1812    ./net-snmp-mibs
> > > > 2872    ./net-snmp-libs
> > > > 15308    ./net-snmp-dbg
> > > > ```
> > > >
> > > > Well, the culprit commit is 5eec0615e548f58ecdfadfc45af5805eeb58f69c where
> > > > the below change has happened:
> > > > ```
> > > > -PACKAGES = "${PN}-dbg ${PN}-doc ${PN}-dev ${PN}-staticdev ${PN}-static
> > > > ${PN}-libs \
> > > > -            ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd
> > > > ${PN}-server-snmptrapd"
> > > > +PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client
> > > > ${PN}-server-snmpd ${PN}-server-snmptrapd"
> > > > ```
> > > >
> > > > This new 'PACKAGES' variable is wrong IMHO, because it contains
> > > > the 'net-snmp' package and other empty packages.
> > > >
> > > >
> > > > Please review (and apply if ok) the attached commit that fixes it.
> > > >
> > >
> > > are there specific issue you are seeing besides the packages being empty ?
> > > I would suggest to apply _remove operation to remove the empty packages
> > > if needed from PACKAGES variable
> > 
> > I agree, I don't think it's an issue that the packages being empty, and actually they're handled properly with:
> > 
> > ALLOW_EMPTY_${PN} = "1"
> > ALLOW_EMPTY_${PN}-server = "1"
> > 
> > RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
> > RDEPENDS_${PN} += "net-snmp-client"
> > RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
> > 
> > So you can assume that "net-snmp" = "net-snmp-client" ( plus 'net-snmp-perl-modules' if 'perl' packgeconfig
> > is enabled ), and "net-snmp-server" = " net-snmp-server-snmpd" + "net-snmp-server-snmptrapd "
> 
> And if you really want to remove them with _remove operations, you may also need to remove the RDEPENDS.
> 
> Thanks,
> Jackie
> 
> > 
> > Thanks,
> > Jackie
> > 
> > >
> > > >
> > > > Thanks,
> > > >
> > > > --- Kosta Z.
> > > >
> > > >
> > > > --
> > > > _______________________________________________
> > > > yocto mailing list
> > > > yocto at yoctoproject.org
> > > > https://lists.yoctoproject.org/listinfo/yocto
> > > >
>



More information about the yocto mailing list