On 11/8/16 12:19 AM, Robert P. J. Day wrote: > > (NOTE: i'm fighting with a compile error in a perl recipe i've > written, but rather than ask about that right this instant, i want to > explain my general methodology for writing these sorts of recipes so > that, in the future, i'll have a much better idea of how to solve > issues like this, so i apologize for the verbosity, and if people want > to chime in with advice, i'll be delighted to write all this up later > for everyone else's benefit. *then* i'll ask about my compile error.) > > at the moment, for a "qemuppc" core-image-minimal target, i'm trying > to write OE-equivalent perl and/or python recipes for 200+ x86_64 > centos RPMs -- effectively trying to reproduce (for powerpc) a running > centos 7 system. in short, trying to port a centos 7 system to an > OE-based powerpc box, which involves reproducing with OE equivalents > quite a number of stock RPMs for which there are no obvious available > recipes. from that initial list of 200+ RPMs, i'm down to less than 60 > to go, so that's progress. > > most of what's left is perl, so here's my methodology for creating a > perl recipe, and i'll use a specific example, "perl-Net-IP", and even > though i'm doing this on my fedora system, there's not much difference > between this system and a centos box, other than RPM version > differences. > > first, i typically pop over to the OE layers page, and do a search > to see if there's already a recipe for what i'm looking for -- in this > case, i didn't see an equivalent for "perl-Net-IP": > > https://layers.openembedded.org/layerindex/branch/master/recipes/?q=perl+net+ip > > (Q: is that a reasonably comprehensive search approach? oh, and i've > already been advised to avoid using the meta-debian layer.) > > next, since it looks like i'll need to write a recipe, i install the > equivalent recipe on my fedora box, just to see what i'm aiming for as > a final result (or something reasonably equivalent): > > $ sudo dnf install perl-Net-IP > $ rpm -ql perl-Net-IP > /usr/bin/ipcount > /usr/bin/iptab > /usr/share/doc/perl-Net-IP > /usr/share/doc/perl-Net-IP/COPYING > /usr/share/doc/perl-Net-IP/Changes > /usr/share/doc/perl-Net-IP/README > /usr/share/man/man3/Net::IP.3pm.gz > /usr/share/perl5/vendor_perl/Net > /usr/share/perl5/vendor_perl/Net/IP.pm > $ > > ok, now i have an idea of what my final OE build should produce. > > next, pop over to metacpan.org and search for corresponding source > to find: > > https://metacpan.org/pod/Net::IP > > at which point, write a fairly boilerplate recipe (the "noarch" RPMs > are the easy ones), filling in among other things: > > * "SRC_URI" > * checksums > * "S" > * "inherit cpan allarch" > > ///// start ///// > > DESCRIPTION = "Net::IP" > > SECTION = "libs" > LICENSE = "Artisticv1 | GPLv1+" > PR = "r0" > > MAINTAINER= "rday" > HOMEPAGE= "https://metacpan.org/pod/Net::IP" > > LIC_FILES_CHKSUM = > "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 > \ > file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d" > > SRC_URI = "https://cpan.metacpan.org/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz" > > SRC_URI[md5sum] = "3a98e3ac45d69ea38a63a7e678bd716d" > SRC_URI[sha256sum] = > "040f16f3066647d761b724a3b70754d28cbd1e6fe5ea01c63ed1cd857117d639" > > S = "${WORKDIR}/Net-IP-${PV}" > > inherit cpan allarch > > BBCLASSEXTEND = "native" > > ///// end ///// > > at this point, i run: > > $ bitbake -c fetchall perl-net-ip > > to make sure the fetch works (and adjust checksums to taste), then: > > $ bitbake perl-net-ip > > to build, and check the contents of the resulting rpm file to see that > it matches: > > $ rpm -qpl perl-net-ip-1.26-r0.all.rpm > /usr > /usr/bin > /usr/bin/ipcount > /usr/bin/iptab > /usr/lib > /usr/lib/perl > /usr/lib/perl/vendor_perl > /usr/lib/perl/vendor_perl/5.22.1 > /usr/lib/perl/vendor_perl/5.22.1/Net > /usr/lib/perl/vendor_perl/5.22.1/Net/IP.pm > $ > > looks good, so that gets added to my build, and on to the next recipe. > > couple final notes: > > * i'm currently ignoring all the dependencies i should be adding to > those recipes; i'll put them in later > > * it's easy to see when i should use "inherit cpan_build" for the > older-style Build.PL-based recipes > > * about to get into the arch-specific recipes, so that will get more > interesting ... back shortly with my recipe that's causing the build > error > > thoughts? >
this seems OK approach to me. I wonder how would recipe-tool fair doing the new recipe work of this sort of usecase. ( devtool add ) > rday >
signature.asc
Description: OpenPGP digital signature
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core