* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox