add perl database library to create meta-cpan layer
cover add perl database library to create meta-cpan layer
The following changes are available in the git repository at:
git://git.pokylinux.org/poky-contrib hongxu/meta-cpan
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=hongxu/meta-cpan
Hongxu Jia (3):
meta-cpan creation
libdbi-perl: add version 1.628
libdbd-sqlite-perl: add version 1.40
PATCH 1/3 meta-cpan creation
--- COPYING.MIT | 17 +++++++++++ README | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ conf/layer.conf | 10 +++++++ 3 files changed, 115 insertions(+) create mode 100644 COPYING.MIT create mode 100644 README create mode 100644 conf/layer.conf
COPYING.MIT new file +17 -0
@@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.
README new file +88 -0
88 lines not on this page · raw message
conf/layer.conf new file +10 -0
@@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "perl" +BBFILE_PATTERN_perl = "^${LAYERDIR}/" +BBFILE_PRIORITY_perl = "6"
Signature · 1 line
1.8.1.2
Re: [meta-cpan 1/3] meta-cpan creation
Quoted 106 lines · Hongxu Jia
--- COPYING.MIT | 17 +++++++++++ README | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ conf/layer.conf | 10 +++++++ 3 files changed, 115 insertions(+) create mode 100644 COPYING.MIT create mode 100644 README create mode 100644 conf/layer.confCOPYING.MIT new file +17
-0@@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.README new file +68
-0@@ -0,0 +1,88 @@ +meta-cpan +========= +This layer provides commonly-used perl libraries in the Comprehensive +Perl Archive Network. + +Contents and Help +----------------- + +In this section the contents of the layer is listed, along with a short +help for each package. + + -- libdbi-perl -- + The DBI is a database access module for the Perl programming language. + It defines a set of methods, variables, and conventions that provide + a consistent database interface, independent of the actual database + being used. + |<- Scope of DBI ->| + .-. .--------------. .-------------. + .-------. | |---| XYZ Driver |---| XYZ Engine | + | Perl | | | `--------------' `-------------' + | script| |A| |D| .--------------. .-------------. + | using |--|P|--|B|---|Oracle Driver |---|Oracle Engine| + | DBI | |I| |I| `--------------' `-------------' + | API | | |... + |methods| | |... Other drivers + `-------' | |... + `-' + + -- libdbd-sqlite-perl -- + DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire + thing in the distribution. So in order to get a fast transaction capable + RDBMS working for your perl project you simply have to install this + module, and nothing else. + + usage: there is a test case to show you how it works + + 1) vim local.conf: + ... + IMAGE_INSTALL_append = " libdbd-sqlite-perl" + PERL_DBM_TEST = "1" + ... + 2) build core-image-sato and boot the target + + 3) run "sqlite-perl-test.pl" on target. This script includes five + operations create/insert/update/delete/select to do with a table. + + More information can be found in the recipe's git log. + +Dependencies +------------ + +This layer depends on: + + URI: git://git.openembedded.org/openembedded-core + branch: master + revision: HEAD + prio: default + +Adding the meta-cpan layer to your build +--------------------------------------- + +In order to use this layer, you need to make the build system aware of +it. + +Assuming the meta-cpan layer exists at the top-level of your +yocto build tree, you can add it to the build system by adding the +location of the meta-cpan layer to bblayers.conf, along with any +other layers needed. e.g.:
README line 78
Quoted 10 lines
README new file +10
-0+ + BBLAYERS ?= " \ + /path/to/oe-core/meta \ + /path/to/layer/meta-cpan \ + +Maintenance +----------- + +Send patches / pull requests to [email protected] with +'[meta-cpan]' in the subject.
Looks good, but it would be nice to add git send-email example like other layer/README have in meta-oe (maybe except meta-networking).
Quoted 16 lines
README new file +10
-0+ +Layer maintainer: Hongxu Jia <[email protected]> + +License +------- + +All metadata is MIT licensed unless otherwise stated. Source code included +in tree for individual recipes is under the LICENSE stated in each recipe +(.bb file) unless otherwise stated. +conf/layer.conf new file +0
-0
conf/layer.conf line 8
Quoted 8 lines
conf/layer.conf new file +8
-0@@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "perl"
I don't have strong opinion either way, but lets call this layer meta-perl or meta-cpan and use the same name in BBFILE_COLLECTIONS.
meta-perl would be more generic (matching with meta-ruby) and maybe we'll need to add some perl related recipes which aren't from cpan?
Quoted 9 lines
conf/layer.conf new file +2
-0+BBFILE_PATTERN_perl = "^${LAYERDIR}/" +BBFILE_PRIORITY_perl = "6"Signature · 6 lines
1.8.1.2 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [meta-cpan 1/3] meta-cpan creation
Thank you for pointing out, I have updated the branch to add this:
+When sending single patches, please using something like:
+'git send-email -M -1 --to [email protected] --subject-prefix=meta-cpan][PATCH' +
Thanks,
Hongxu
Quoted 165 lines · Martin Jansa
Quoted 106 lines · Hongxu Jia
--- COPYING.MIT | 17 +++++++++++ README | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ conf/layer.conf | 10 +++++++ 3 files changed, 115 insertions(+)create mode 100644 COPYING.MIT
create mode 100644 README
create mode 100644conf/layer.confCOPYING.MIT new file +17
-0@@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.README new file +68
-0@@ -0,0 +1,88 @@ +meta-cpan +========= +This layer provides commonly-used perl libraries in the Comprehensive +Perl Archive Network. + +Contents and Help +----------------- + +In this section the contents of the layer is listed, along with a short +help for each package. + + -- libdbi-perl -- + The DBI is a database access module for the Perl programming language. + It defines a set of methods, variables, and conventions that provide + a consistent database interface, independent of the actual database + being used. + |<- Scope of DBI ->| + .-. .--------------. .-------------. + .-------. | |---| XYZ Driver |---| XYZ Engine | + | Perl | | | `--------------' `-------------' + | script| |A| |D| .--------------. .-------------. + | using |--|P|--|B|---|Oracle Driver |---|Oracle Engine| + | DBI | |I| |I| `--------------' `-------------' + | API | | |... + |methods| | |... Other drivers + `-------' | |... + `-' + + -- libdbd-sqlite-perl -- + DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire + thing in the distribution. So in order to get a fast transaction capable + RDBMS working for your perl project you simply have to install this + module, and nothing else. + + usage: there is a test case to show you how it works + + 1) vim local.conf: + ... + IMAGE_INSTALL_append = " libdbd-sqlite-perl" + PERL_DBM_TEST = "1" + ... + 2) build core-image-sato and boot the target + + 3) run "sqlite-perl-test.pl" on target. This script includes five + operations create/insert/update/delete/select to do with a table. + + More information can be found in the recipe's git log. + +Dependencies +------------ + +This layer depends on: + + URI: git://git.openembedded.org/openembedded-core + branch: master + revision: HEAD + prio: default + +Adding the meta-cpan layer to your build +--------------------------------------- + +In order to use this layer, you need to make the build system aware of +it. + +Assuming the meta-cpan layer exists at the top-level of your +yocto build tree, you can add it to the build system by adding the +location of the meta-cpan layer to bblayers.conf, along with any +other layers needed. e.g.:README line 78
Quoted 10 lines
README new file +10
-0+ + BBLAYERS ?= " \ + /path/to/oe-core/meta \ + /path/to/layer/meta-cpan \ + +Maintenance +----------- + +Send patches / pull requests to [email protected] with +'[meta-cpan]' in the subject.Looks good, but it would be nice to add git send-email example like other layer/README have in meta-oe (maybe except meta-networking).
Quoted 16 lines
README new file +10
-0+ +Layer maintainer: Hongxu Jia <[email protected]> + +License +------- + +All metadata is MIT licensed unless otherwise stated. Source code included +in tree for individual recipes is under the LICENSE stated in each recipe +(.bb file) unless otherwise stated. +conf/layer.conf new file +0
-0conf/layer.conf line 8
Quoted 8 lines
conf/layer.conf new file +8
-0@@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "perl"I don't have strong opinion either way, but lets call this layer meta-perl or meta-cpan and use the same name in
BBFILE_COLLECTIONS.meta-perl would be more generic (matching with meta-ruby) and maybe we'll need to add some perl related recipes which aren't from cpan?
Quoted 9 lines
conf/layer.conf new file +2
-0+BBFILE_PATTERN_perl = "^${LAYERDIR}/" +BBFILE_PRIORITY_perl = "6"Signature · 6 lines
1.8.1.2 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Re: [meta-cpan 1/3] meta-cpan creation
Review
Quoted 6 lines · Hongxu Jia
Thank you for pointing out, I have updated the branch to add this:
(quoted diff) +3
-1+When sending single patches, please using something like: +'git send-email -M -1 --to [email protected] --subject-prefix=meta-cpan][PATCH' +
What about the name question? cpan or perl?
Quoted 18 lines
Quoted 18 lines
conf/layer.conf line 8
Quoted 12 lines
index 0000000..11da11f
conf/layer.conf new file +8
-0@@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "perl"I don't have strong opinion either way, but lets call this layer meta-perl or meta-cpan and use the same name in
BBFILE_COLLECTIONS.meta-perl would be more generic (matching with meta-ruby) and maybe we'll need to add some perl related recipes which aren't from cpan?
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [meta-cpan 1/3] meta-cpan creation
Quoted 8 lines · Martin Jansa
Review
Quoted 6 lines · Hongxu Jia
Thank you for pointing out, I have updated the branch to add this:
(quoted diff) +3
-1+When sending single patches, please using something like: +'git send-email -M -1 --to [email protected] --subject-prefix=meta-cpan][PATCH' +What about the name question? cpan or perl?
'meta-perl' is ok, I will rename the layer and resend the pull request latter.
Thanks,
Hongxu
Quoted 18 lines
Quoted 18 lines
Quoted 18 lines
conf/layer.conf line 8
Quoted 12 lines
index 0000000..11da11f
conf/layer.conf new file +8
-0@@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "perl"I don't have strong opinion either way, but lets call this layer meta-perl or meta-cpan and use the same name in
BBFILE_COLLECTIONS.meta-perl would be more generic (matching with meta-ruby) and maybe we'll need to add some perl related recipes which aren't from cpan?
PATCH 2/3 libdbi-perl: add version 1.628
In reply to Hongxu JiaThe DBI is a database access module for the Perl programming language. It defines a set of methods, variables, and conventions that provide a consistent database interface, independent of the actual database being used.
|<- Scope of DBI ->|
.-. .--------------. .-------------.
.-------. | |---| XYZ Driver |---| XYZ Engine |
| Perl | | | `--------------' `-------------'
| script| |A| |D| .--------------. .-------------.
| using |--|P|--|B|---|Oracle Driver |---|Oracle Engine|
| DBI | |I| |I| `--------------' `-------------'
| API | | |...
|methods| | |... Other drivers
`-------' | |...
`-'[YOCTO #4128]
--- recipes-perl/libdb/libdbi-perl_1.628.bb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 recipes-perl/libdb/libdbi-perl_1.628.bb
recipes-perl/libdb/libdbi-perl_1.628.bb new file +26 -0
@@ -0,0 +1,26 @@ +SUMMARY = "The Perl Database Interface" +DESCRIPTION = "DBI is a database access Application Programming Interface \ +(API) for the Perl Language. The DBI API Specification defines a set \ +of functions, variables and conventions that provide a consistent \ +database interface independent of the actual database being used. \ +" +HOMEPAGE = "http://search.cpan.org/dist/DBI/" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +RDEPENDS_${PN} = " perl-module-carp \ + perl-module-exporter \ + perl-module-exporter-heavy \ + perl-module-dynaloader \ +" + +LIC_FILES_CHKSUM = "file://DBI.pm;beginline=8147;endline=8151;md5=7d9e154a9ca3c093d2422f7c692d5861" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz" +SRC_URI[md5sum] = "4273f8cc6ee3979ce448c7eb3f8a6a5a" +SRC_URI[sha256sum] = "46c834f4ba1b28c8d8a2db8095835a67fc69a9585761523aea3a74437a969b52" + +S = "${WORKDIR}/DBI-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native"
Signature · 1 line
1.8.1.2
PATCH 3/3 libdbd-sqlite-perl: add version 1.40
In reply to Hongxu JiaDBD::SQLite is a Perl DBI driver for SQLite, that includes the entire thing in the distribution. So in order to get a fast transaction capable RDBMS working for your perl project you simply have to install this module, and nothing else.
There is a perl script for test, while variable PERL_DBM_TEST is assigned the value '1', the script will be added, and you could run the script to test whether DBD::SQLite is working properly.
[YOCTO #4128]
--- recipes-perl/libdb/files/sqlite-perl-test.pl | 69 +++++++++++++++++++++++++++ recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb | 39 +++++++++++++++ 2 files changed, 108 insertions(+) create mode 100755 recipes-perl/libdb/files/sqlite-perl-test.pl create mode 100644 recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb
recipes-perl/libdb/files/sqlite-perl-test.pl new file +69 -0
@@ -0,0 +1,69 @@ +#! /usr/bin/env perl +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation. +# +# Copyright (C) 2013 Wind River Systems, Inc. +# +# - It tests DBI and DBD::SQLite could work correctly which means one could +# manipulate sqlite database in perl +# - The test includes create/insert/update/delete/select, the five important +# things one can do with a table +use DBI; + +sub execute_sql { + my $dbh = $_[0]; + my $sql = $_[1]; + my $sth = $dbh->prepare($sql) + or die "Couldn't prepare statement: " . $dbh->errstr; + $sth->execute(); + print "$sql\n"; + return $sth; +} + +sub select_all { + my $dbh = $_[0]; + my $table = $_[1]; + my $sth = &execute_sql($dbh, "Select * from $table"); + + print "-----------------------------------\n"; + while (@data = $sth->fetchrow_array()) { + my $name = $data[0]; + my $id = $data[1]; + print "$name: $id\n"; + } + print "\n"; + + $sth->finish; + return $sth; +} + +# A private, temporary in-memory database is created for the connection. +# This in-memory database will vanish when the database connection is +# closed. It is handy for your library tests. +my $dbfile = ":memory:"; +my $dbh = DBI->connect("DBI:SQLite:dbname=$dbfile","","") + or die "Couldn't connect to database: " . DBI->errstr; +print "Connect to SQLite's in-memory database\n"; + +&execute_sql($dbh, "Create table tbl1(name varchar(10), id smallint)"); +&execute_sql($dbh, "Insert into tbl1 values('yocto',10)"); +&execute_sql($dbh, "Insert into tbl1 values('windriver', 20)"); +&select_all($dbh, "tbl1"); + +&execute_sql($dbh, "Update tbl1 set name = 'oe-core' where id = 10"); +&execute_sql($dbh, "Delete from tbl1 where id = 20"); +&select_all($dbh, "tbl1"); + +$dbh->disconnect; +print "Test Success\n"
recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb new file +39 -0
@@ -0,0 +1,39 @@ +SUMMARY = "A Perl DBI driver for SQLite" +DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \ +thing in the distribution. So in order to get a fast transaction capable \ +RDBMS working for your perl project you simply have to install this \ +module, and nothing else. \ +" +HOMEPAGE = "http://search.cpan.org/~ishigaki/DBD-SQLite/" + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +DEPENDS += "libdbi-perl-native" +RDEPENDS_${PN} += "libdbi-perl \ + sqlite3 \ + perl-module-constant \ + perl-module-locale \ + perl-module-tie-hash \ +" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \ + file://sqlite-perl-test.pl \ +" + +SRC_URI[md5sum] = "b9876882186499583428b14cf5c0e29c" +SRC_URI[sha256sum] = "21fb65e740b6265512c82232b4ad8f75c19ac84c216830112656274eb8e375fb" + +S = "${WORKDIR}/DBD-SQLite-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" + +do_install_append() { + if [ ${PERL_DBM_TEST} = "1" ]; then + install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl + fi +} +
Signature · 1 line
1.8.1.2