<div dir="ltr">NOTE: by convention, OE perl recipes follow debian naming so this should be <a href="http://librpm2-perl_1.3.bb">librpm2-perl_1.3.bb</a><div>Obviously, in your own layer you are free to do what you want, but it will require the name change if you want it to go into meta-perl.<br><div><br></div><div>For dependencies, since you are looking at CentOS rpms, you can look at, e.g. [0] to see the DEPENDS (BuildRequires:) and RDEPENDS (Requires:). This would have shown you the need for rpm-devel.</div><div><br></div><div>I also use metacpan, e.g. [1], to look for dependencies in perl modules. It also has a very slick ElasticSearch JSON API that you can use to automatically query data [2].</div><div><br></div><div>To pass in the extra variables, for 'inherit cpan' you probably need to set EXTRA_CPANFLAGS [3] or for 'inherit cpan_build' EXTRA_CPAN_BUILD_FLAGS [4], e.g. [5].</div><div><br></div><div>You might want to file a documentation bug for the next release? </div><div><br></div></div><div>[0] <a href="http://pkgs.fedoraproject.org/cgit/rpms/perl-RPM2.git/tree/perl-RPM2.spec?h=epel7">http://pkgs.fedoraproject.org/cgit/rpms/perl-RPM2.git/tree/perl-RPM2.spec?h=epel7</a></div><div>[1] <a href="https://metacpan.org/pod/RPM2">https://metacpan.org/pod/RPM2</a></div><div>[2] <a href="https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md">https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md</a></div><div>[3] <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/cpan.bbclass#n20">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/cpan.bbclass#n20</a></div><div>[4] <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/cpan_build.bbclass#n21">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/cpan_build.bbclass#n21</a></div><div>[5] <a href="http://git.openembedded.org/meta-openembedded/tree/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0121.bb#n37">http://git.openembedded.org/meta-openembedded/tree/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0121.bb#n37</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 8, 2016 at 3:17 AM, Robert P. J. Day <span dir="ltr"><<a href="mailto:rpjday@crashcourse.ca" target="_blank">rpjday@crashcourse.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
replying to my earlier post with additional info ... man, i want to<br>
debug this ...<br>
<div><div class="h5"><br>
On Tue, 8 Nov 2016, Robert P. J. Day wrote:<br>
<br>
> following on my earlier post, here's the specific issue i'm<br>
> tackling. having found no existing OE recipe equivalent to a centos<br>
> "perl-RPM2" RPM, i wrote my own. here's the info about that RH RPM on<br>
> my fedora system, so i know what the final result should look like:<br>
><br>
> $ rpm -ql perl-RPM2<br>
> /usr/lib64/perl5/vendor_perl/<wbr>RPM2.pm<br>
> /usr/lib64/perl5/vendor_perl/<wbr>auto/RPM2<br>
> /usr/lib64/perl5/vendor_perl/<wbr>auto/RPM2/RPM2.so<br>
> /usr/share/doc/perl-RPM2<br>
> /usr/share/doc/perl-RPM2/<wbr>Changes<br>
> /usr/share/doc/perl-RPM2/<wbr>README<br>
> /usr/share/man/man3/RPM2.3pm.<wbr>gz<br>
> $<br>
><br>
> so, as before, track down the source at cpan:<br>
><br>
> <a href="https://metacpan.org/pod/RPM2" rel="noreferrer" target="_blank">https://metacpan.org/pod/RPM2</a><br>
><br>
> and write a boilerplate recipe, "perl-rpm2", containing the following<br>
> line since it's an older style recipe:<br>
><br>
> inherit cpan_build<br>
><br>
> fetching works fine:<br>
><br>
> $ bitbake -c fetchall perl-rpm2<br>
><br>
> but here's the problem:<br>
><br>
> $ bitbake perl-rpm2<br>
><br>
> ... snip ...<br>
><br>
> | DEBUG: Executing shell function do_compile<br>
> | Copying lib/RPM2.pm -> blib/lib/RPM2.pm<br>
> | lib/RPM2.xs -> lib/RPM2.c<br>
> | powerpc-poky-linux-gcc -m32 -mhard-float -mcpu=7400 -mno-spe<br>
> --sysroot=/home/rpjday/oe/<wbr>builds/msm_qemuppc/tmp/<wbr>sysroots/qemuppc<br>
> -I/home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/lib/perl/5.22.1/CORE<br>
> -DVERSION="1.3" -DXS_VERSION="1.3" -fPIC -DRPM2_API=5004<br>
> -I/home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/include/rpm<br>
> -c -O2 -pipe -g -feliminate-unused-debug-types<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/work/ppc7400-poky-linux/<wbr>perl/5.22.1-r0=/usr/src/debug/<wbr>perl/5.22.1-r0<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/sysroots/x86_64-linux=<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/sysroots/qemuppc=<br>
> -DDEBIAN -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe<br>
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2<br>
> -pipe -g -feliminate-unused-debug-types<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/work/ppc7400-poky-linux/<wbr>perl-rpm2/1.3-r0=/usr/src/<wbr>debug/perl-rpm2/1.3-r0<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/sysroots/x86_64-linux=<br>
> -fdebug-prefix-map=/home/<wbr>rpjday/oe/builds/msm_qemuppc/<wbr>tmp/sysroots/qemuppc=<br>
> -O2 -o lib/RPM2.o lib/RPM2.c<br>
> | In file included from<br>
> /home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/include/rpm/rpmcli.h:9:0,<br>
> | from lib/RPM2.xs:3:<br>
> |<br>
> /home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/include/rpm/rpmmacro.h:<br>
> In function 'rpmExpand':<br>
> |<br>
> /home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/include/rpm/rpmmacro.h:<wbr>249:2:<br>
> error: expected declaration specifiers before<br>
> 'RPM_GNUC_NULL_TERMINATED'<br>
> | RPM_GNUC_NULL_TERMINATED<br>
> | ^~~~~~~~~~~~~~~~~~~~~~~~<br>
> |<br>
> /home/rpjday/oe/builds/msm_<wbr>qemuppc/tmp/sysroots/qemuppc/<wbr>usr/include/rpm/rpmmacro.h:<wbr>260:2:<br>
> error: expected '=', ',', ';', 'asm' or '__attribute__' before<br>
> 'RPM_GNUC_NULL_TERMINATED'<br>
> | RPM_GNUC_NULL_TERMINATED<br>
> | ^~~~~~~~~~~~~~~~~~~~~~~~<br>
><br>
> ... big snip, lots more errors ...<br>
<br>
</div></div> ok, here's my wildly-uneducated record of what is going on:<br>
<br>
first, unpacking and configuring perl-RPM2 source (and running XS<br>
processor) gives me the source file "lib/RPM2.c" (which is what is<br>
generating the first build error above), which includes the header<br>
file:<br>
<br>
#include <rpm/rpmcli.h><br>
<br>
next, wander over to the qemuppc sysroot, to usr/include/rpm/, to<br>
check out that header file, which contains (among other things):<br>
<br>
#include <popt.h><br>
#include <rpmmacro.h> <----- there<br>
#include <rpmtypes.h><br>
#include <rpmtag.h><br>
#include <rpmps.h><br>
#include <rpmrc.h><br>
#include <rpmfi.h> /* XXX rpmfileAttrs */<br>
#include <rpmts.h> /* XXX rpmdepFlags *<br>
<br>
next, in the same directory, examine rpmmacro.h, which contains:<br>
<br>
#if defined(_MACRO_INTERNAL)<br>
#include <rpmiotypes.h><br>
... snip ...<br>
<br>
at this point, inclusion is now conditional on _MACRO_INTERNAL, so<br>
move on to rpmiotypes.h, which contains:<br>
<br>
#include <rpmutil.h><br>
<br>
and finally visit that header file in the qemuppc sysroot to find:<br>
<br>
#if __GNUC__ >= 4<br>
#define RPM_GNUC_NULL_TERMINATED __attribute__((__sentinel__))<br>
#else<br>
#define RPM_GNUC_NULL_TERMINATED<br>
#endif<br>
<br>
where we find the definition of that macro.<br>
<br>
now, is it my imagination, or could a lot of this compile-time error<br>
be resolved by simply defining the macro "_MACRO_INTERNAL" for the<br>
build? and if so, what is the proper way to add that setting to the<br>
compile step for this recipe?<br>
<br>
would i use the standard EXTRA_* variables? or are there<br>
perl-specific variables one would use when build CPAN recipes? or am i<br>
totally off-track here?<br>
<div class="HOEnZb"><div class="h5"><br>
rday<br>
<br>
--<br>
<br>
==============================<wbr>==============================<wbr>============<br>
Robert P. J. Day Ottawa, Ontario, CANADA<br>
<a href="http://crashcourse.ca" rel="noreferrer" target="_blank">http://crashcourse.ca</a><br>
<br>
Twitter: <a href="http://twitter.com/rpjday" rel="noreferrer" target="_blank">http://twitter.com/rpjday</a><br>
LinkedIn: <a href="http://ca.linkedin.com/in/rpjday" rel="noreferrer" target="_blank">http://ca.linkedin.com/in/<wbr>rpjday</a><br>
==============================<wbr>==============================<wbr>============<br>
<br>
<br>
<br>
--<br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</div></div></blockquote></div><br></div>