* [PATCH V2 0/2] add perl database support packages
@ 2013-08-08 9:51 Hongxu Jia
2013-08-08 9:51 ` [PATCH 1/2] libdbi-perl: add version 1.628 Hongxu Jia
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Hongxu Jia @ 2013-08-08 9:51 UTC (permalink / raw)
To: openembedded-core
Change in V2:
* Rename recipe to use libdbd-sqlite-perl instead of libdbm-sqlite-perl
In oe-core, only SQLite is supported, so we add perl-DBI and perl-DBD-SQLite.
Test Case:
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" in target
...
root@qemuarm:~# sqlite-perl-test.pl
Connect to SQLite's in-memory database
Create table tbl1(name varchar(10), id smallint)
Insert into tbl1 values('yocto',10)
Insert into tbl1 values('windriver', 20)
Select * from tbl1
-----------------------------------
yocto: 10
windriver: 20
Update tbl1 set name = 'oe-core' where id = 10
Delete from tbl1 where id = 20
Select * from tbl1
-----------------------------------
oe-core: 10
Test Success
...
//Hongxu
The following changes since commit 9de0ad47462c13ac4a2d73e12e92be6c1b4e0415:
genericx86: ship all the driver firmware by default (2013-07-31 07:00:00 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib hongxu/perl-dbi
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/perl-dbi
Hongxu Jia (2):
libdbi-perl: add version 1.628
libdbd-sqlite-perl: add version 1.40
.../perl/files/sqlite-perl-test.pl | 69 ++++++++++++++++++++++
.../perl/libdbd-sqlite-perl_1.40.bb | 40 +++++++++++++
meta/recipes-extended/perl/libdbi-perl_1.628.bb | 27 +++++++++
3 files changed, 136 insertions(+)
create mode 100755 meta/recipes-extended/perl/files/sqlite-perl-test.pl
create mode 100644 meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb
create mode 100644 meta/recipes-extended/perl/libdbi-perl_1.628.bb
--
1.8.1.2
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 1/2] libdbi-perl: add version 1.628 2013-08-08 9:51 [PATCH V2 0/2] add perl database support packages Hongxu Jia @ 2013-08-08 9:51 ` Hongxu Jia 2013-08-08 9:51 ` [PATCH 2/2] libdbd-sqlite-perl: add version 1.40 Hongxu Jia 2013-08-09 21:01 ` [PATCH V2 0/2] add perl database support packages Saul Wold 2 siblings, 0 replies; 4+ messages in thread From: Hongxu Jia @ 2013-08-08 9:51 UTC (permalink / raw) To: openembedded-core 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 `-------' | |... `-' [YOCTO #4128] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/recipes-extended/perl/libdbi-perl_1.628.bb | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 meta/recipes-extended/perl/libdbi-perl_1.628.bb diff --git a/meta/recipes-extended/perl/libdbi-perl_1.628.bb b/meta/recipes-extended/perl/libdbi-perl_1.628.bb new file mode 100644 index 0000000..c115fac --- /dev/null +++ b/meta/recipes-extended/perl/libdbi-perl_1.628.bb @@ -0,0 +1,27 @@ +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 \ +" +PR = "r0" + +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" -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] libdbd-sqlite-perl: add version 1.40 2013-08-08 9:51 [PATCH V2 0/2] add perl database support packages Hongxu Jia 2013-08-08 9:51 ` [PATCH 1/2] libdbi-perl: add version 1.628 Hongxu Jia @ 2013-08-08 9:51 ` Hongxu Jia 2013-08-09 21:01 ` [PATCH V2 0/2] add perl database support packages Saul Wold 2 siblings, 0 replies; 4+ messages in thread From: Hongxu Jia @ 2013-08-08 9:51 UTC (permalink / raw) To: openembedded-core 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. 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] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- .../perl/files/sqlite-perl-test.pl | 69 ++++++++++++++++++++++ .../perl/libdbd-sqlite-perl_1.40.bb | 40 +++++++++++++ 2 files changed, 109 insertions(+) create mode 100755 meta/recipes-extended/perl/files/sqlite-perl-test.pl create mode 100644 meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb diff --git a/meta/recipes-extended/perl/files/sqlite-perl-test.pl b/meta/recipes-extended/perl/files/sqlite-perl-test.pl new file mode 100755 index 0000000..40f5916 --- /dev/null +++ b/meta/recipes-extended/perl/files/sqlite-perl-test.pl @@ -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" diff --git a/meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb b/meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb new file mode 100644 index 0000000..f3a05d2 --- /dev/null +++ b/meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb @@ -0,0 +1,40 @@ +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 \ +" +PR = "r0" + +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 +} + -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH V2 0/2] add perl database support packages 2013-08-08 9:51 [PATCH V2 0/2] add perl database support packages Hongxu Jia 2013-08-08 9:51 ` [PATCH 1/2] libdbi-perl: add version 1.628 Hongxu Jia 2013-08-08 9:51 ` [PATCH 2/2] libdbd-sqlite-perl: add version 1.40 Hongxu Jia @ 2013-08-09 21:01 ` Saul Wold 2 siblings, 0 replies; 4+ messages in thread From: Saul Wold @ 2013-08-09 21:01 UTC (permalink / raw) To: Hongxu Jia; +Cc: openembedded-core I believe the plan is to create a meta-cpan in which recipes like this can then live, not in oe-core. Sau! On 08/08/2013 02:51 AM, Hongxu Jia wrote: > Change in V2: > * Rename recipe to use libdbd-sqlite-perl instead of libdbm-sqlite-perl > > In oe-core, only SQLite is supported, so we add perl-DBI and perl-DBD-SQLite. > > Test Case: > > 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" in target > ... > root@qemuarm:~# sqlite-perl-test.pl > Connect to SQLite's in-memory database > Create table tbl1(name varchar(10), id smallint) > Insert into tbl1 values('yocto',10) > Insert into tbl1 values('windriver', 20) > Select * from tbl1 > ----------------------------------- > yocto: 10 > windriver: 20 > > Update tbl1 set name = 'oe-core' where id = 10 > Delete from tbl1 where id = 20 > Select * from tbl1 > ----------------------------------- > oe-core: 10 > > Test Success > ... > > //Hongxu > > The following changes since commit 9de0ad47462c13ac4a2d73e12e92be6c1b4e0415: > > genericx86: ship all the driver firmware by default (2013-07-31 07:00:00 +0100) > > are available in the git repository at: > > git://git.pokylinux.org/poky-contrib hongxu/perl-dbi > http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/perl-dbi > > Hongxu Jia (2): > libdbi-perl: add version 1.628 > libdbd-sqlite-perl: add version 1.40 > > .../perl/files/sqlite-perl-test.pl | 69 ++++++++++++++++++++++ > .../perl/libdbd-sqlite-perl_1.40.bb | 40 +++++++++++++ > meta/recipes-extended/perl/libdbi-perl_1.628.bb | 27 +++++++++ > 3 files changed, 136 insertions(+) > create mode 100755 meta/recipes-extended/perl/files/sqlite-perl-test.pl > create mode 100644 meta/recipes-extended/perl/libdbd-sqlite-perl_1.40.bb > create mode 100644 meta/recipes-extended/perl/libdbi-perl_1.628.bb > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-08-09 21:01 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-08-08 9:51 [PATCH V2 0/2] add perl database support packages Hongxu Jia 2013-08-08 9:51 ` [PATCH 1/2] libdbi-perl: add version 1.628 Hongxu Jia 2013-08-08 9:51 ` [PATCH 2/2] libdbd-sqlite-perl: add version 1.40 Hongxu Jia 2013-08-09 21:01 ` [PATCH V2 0/2] add perl database support packages Saul Wold
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.