Skip to content

Commit

Permalink
version 0.2-1
Browse files Browse the repository at this point in the history
  • Loading branch information
tomoakin authored and gaborcsardi committed Nov 15, 2011
1 parent d680b0e commit 2157d2c
Show file tree
Hide file tree
Showing 97 changed files with 36,288 additions and 72 deletions.
41 changes: 41 additions & 0 deletions ChangeLog
@@ -1,3 +1,44 @@
2011-11-16 Tomoaki NISHIYAMA <tomoakin@kenroku.asrc.kanazawa-u.ac.jp>

add LICENSE file

* ChangeLog
* inst/NEWS: Change the release date.
* LICENSE

2011-11-15 Tomoaki NISHIYAMA <tomoakin@kenroku.asrc.kanazawa-u.ac.jp>

Edit DESCRIPTION for LICENSE format, Copyright notice, and
requirements for installation.

* DESCRIPTION

2011-11-14 Tomoaki NISHIYAMA <tomoakin@kenroku.asrc.kanazawa-u.ac.jp>

Remove make 3.80 dependency, so that the library can be compiled with
Rtools214 without newer MinGW/MSYS installation.

* ChangeLog
* src/libpq/.gitignore: remove
* src/libpq/Makefile.global.win32: remove recursion support
* src/libpq/Makefile.global.win64: remove recursion support
* src/libpq/Makefile.shlib: remove '| $(SHLIB_PREREQS)'

2011-11-12 Tomoaki NISHIYAMA <tomoakin@kenroku.asrc.kanazawa-u.ac.jp>

Bundle libpq source for compilation on windows.

* libpq/:
src/interfaces/libpq from postgresql-9.1.1
configured on MinGW-w64 environment with some additional files
required and Makefile edited to remove reference to other
paths. Makefile.global.win32 is from postgesql-9.1.1
configured on MinGW 32-bit envionment.
* configure.win: not depending on PG_HOME on windows.
* src/Makevars.win: depend on libpq/
* src/install.libs.R: derived from R-2.14.0/src/library/tools/R
copy libpq/libpq.dll to the destination same as RPostgreSQL.dll.

2011-10-03 Tomoaki NISHIYAMA <tomoakin@kenroku.asrc.kanazawa-u.ac.jp>

Use try() not to abort on error to write spacial/kanji characters.
Expand Down
34 changes: 19 additions & 15 deletions DESCRIPTION
@@ -1,26 +1,30 @@
Package: RPostgreSQL
Version: 0.2-0
Date: $Date: 2011-10-03 19:13:01 +0900 (Mon, 03 Oct 2011) $
Version: 0.2-1
Date: $Date: 2011-11-15 10:05:36 +0900 (Tue, 15 Nov 2011) $
Title: R interface to the PostgreSQL database system
Author: Joe Conway, Dirk Eddelbuettel, Tomoaki Nishiyama, Sameer Kumar
Prayaga (during 2008), Neil Tiffin
Author: Joe Conway, Dirk Eddelbuettel, Tomoaki Nishiyama, Sameer Kumar Prayaga (during 2008), Neil Tiffin
Maintainer: Tomoaki Nishiyama <tomoakin@kenroku.kanazawa-u.ac.jp>
Description: Database interface and PostgreSQL driver for R This
package provides a Database Interface (DBI) compliant driver
for R to access PostgreSQL database systems.
Description: Database interface and PostgreSQL driver for R
This package provides a Database Interface (DBI) compliant
driver for R to access PostgreSQL database systems.
.
In order to build and install this package from source, PostgreSQL
itself must be present your system to provide PostgreSQL
functionality via through its libraries and header files.
In order to build and install this package from source, PostgreSQL
itself must be present your system to provide PostgreSQL functionality
via its libraries and header files. These files are provided as
postgresql-devel package under some Linux distributions.
.
A wiki and issue tracking system for the package are available at
Google Code at https://code.google.com/p/rpostgresql/ .
On Microsoft Windows system the attached libpq library source will be used.
.
A wiki and issue tracking system for the package are available
at Google Code at https://code.google.com/p/rpostgresql/ .
LazyLoad: true
Depends: R (>= 2.9.0), methods, DBI (>= 0.1-4)
License: GPL-2
License: GPL-2 | file LICENSE
Copyright: Authors listed above, PostgreSQL Global Development Group,
and The Regents of the University of California
Collate: S4R.R zzz.R PostgreSQLSupport.R dbObjectId.R PostgreSQL.R
URL: https://code.google.com/p/rpostgresql/,
http://www.stat.bell-labs.com/RS-DBI, http://www.postgresql.org
Packaged: 2011-10-04 09:44:26 UTC; tomoaki
Packaged: 2011-11-16 13:29:58 UTC; tomoaki
Repository: CRAN
Date/Publication: 2011-10-04 13:14:45
Date/Publication: 2011-11-17 11:25:30
30 changes: 30 additions & 0 deletions LICENSE
@@ -0,0 +1,30 @@
Most of this package are distributed under GPL-2 (GNU GENERAL PUBLIC LICENSE
version 2) with the exception for files under src/libpq/ and libpq.dll.
See the file COPYING in the top level of the R directory tree for further details.

The files under src/libpq/ and libpq.dll are distributed under the
PostgreSQL License:

PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)

Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
104 changes: 96 additions & 8 deletions MD5
@@ -1,5 +1,6 @@
ed2bdb3755d14c51ffd035cdfc174054 *ChangeLog
b6c476657eb6f57015dfa600dece0db0 *DESCRIPTION
f1217e6c31e71c068b3571b935f1492f *ChangeLog
df16d8e79cc7ad4b7d59b1c4b39b724e *DESCRIPTION
2627b2b4195d23fd892e25c925a01f93 *LICENSE
a083b892f1d4735d8fb7c1249de4079c *NAMESPACE
971309a88657cd2b87c444edc7a240c8 *R/PostgreSQL.R
d490653d2c1a17c3cf756717b6ba91c1 *R/PostgreSQLSupport.R
Expand All @@ -9,10 +10,10 @@ c2656a583e3cdce783d45843fcff2dbf *R/zzz.R
4b5e59c53d38086590d8d8553853ab04 *cleanup
773d62a37eb2e922460f0341b07bdcf5 *configure
c367fd46241b4d4df7ebb91c21035a4e *configure.in
9ba3abb87f597319d09cf5245be58cae *configure.win
507159b14167493f6f21155a0c49608e *inst/ANNOUNCEMENT
af8702b4d771a6bd56db2e3bf66b4ecb *inst/NEWS
fc843494de4f8b139f9f6c115a03cb67 *inst/README
d41d8cd98f00b204e9800998ecf8427e *configure.win
a93eb17deebc9c9f4831891d57225b88 *inst/ANNOUNCEMENT
6419c9e50f2b5da2e8e2bc1a35f21914 *inst/NEWS
86063092fe732dcbc47a4830ca72703c *inst/README
b73cbf6aae0e4d6ece79307f8a86713f *inst/THANKS
f9bf927d77f5afe307d48292d82b935f *inst/TODO
4d641c77d10b666e344bba4f2fafaa7c *inst/devTests/PostgreSQLDataTypeTest.r
Expand All @@ -22,7 +23,7 @@ b42cfbf562a28612beb8acfe0f716c61 *inst/devTests/demo.r
0cda913b0e5e9141de5ee02ce25bff4d *inst/devTests/timeTypeComparison.r
5c86f87f1eb660bf799f2a6e49e75175 *inst/devTests/transactionManagement.r
cb8f0f0ce13da24f66f2ac2422cdbc01 *inst/devTests/typeTest.r
1b63c8b5feb983180bf3037eeb79f584 *inst/doc/DBI.pdf
77eac735f644004b6edac1586d7b11b6 *inst/doc/DBI.pdf
3189110650497edadc574cf9deda2e7a *man/PostgreSQL.Rd
34be8b01589cc63c1e2c14fc923a0296 *man/PostgreSQLConnection-class.Rd
0c1f3f1574eb65bb535771cdf1445264 *man/PostgreSQLDriver-class.Rd
Expand Down Expand Up @@ -51,7 +52,7 @@ dc62aab5a4ce07716e7cbd69c82cb070 *man/postgresqlSupport.Rd
e22aeddbc1c8d8d04ee0f536166713eb *man/safe.write.Rd
1fa83980e75922372ce35309a6d37ab7 *man/summary-methods.Rd
24aa0fad49df0e4479cdfd2f99cd1f64 *src/Makevars.in
67a85b2da4e07cf4fc383a9eb0436259 *src/Makevars.win
93e644d809bb329b6fd170d73bc6d989 *src/Makevars.win
360d56ab8e16e5ad9f01681f6df2e9ab *src/RS-DBI.c
998b2d43ef87d0b5b6e5e286b1766d8f *src/RS-DBI.h
5b488ef734010f7afc260ad6c304727b *src/RS-PQescape.c
Expand All @@ -61,6 +62,93 @@ a097d25581003eb54dba6f63338e0ad4 *src/RS-PostgreSQL.h
6422d3349928db0c1b94509e8b1d7557 *src/RS-pgsql-getResult.c
3029b173216fd1941bc6c9d4fbbd3249 *src/RS-pgsql-pqexec.c
25f7757eb3ce49bd5c0faf5d38995a84 *src/S4R.h
77057ba352b034dc40f586b1d1bc366e *src/install.libs.R
ef344a9f1740fa86ca1465e306fc30bf *src/libpq/COPYRIGHT
5b90ef53641b473c86c005bc67f187dd *src/libpq/Makefile
1713343aee2a98ddd61575d234296d3c *src/libpq/Makefile.global.win32
8f0de03c91bc82b1e1aeb7db7887615e *src/libpq/Makefile.global.win64
27f3f61b48248452f421f708fcc383ca *src/libpq/Makefile.port
647192f64017e456bf5e06f3863e5b6a *src/libpq/Makefile.shlib
92c6d2478320dcb7596b189e1404f462 *src/libpq/README
4cae11cc0c3bf77885b72b91efbee2fa *src/libpq/arpa/inet.h
81fa40bc86309f5f19a5173a0691fc0e *src/libpq/bcc32.mak
f6603683fd65a79d90fe3e5036416d98 *src/libpq/blibpqdll.def
7e3d6085467e76c82e87bdea1d207cfa *src/libpq/c.h
8c1864c274b66b0b9ee86360bc69cc40 *src/libpq/chklocale.c
a136bad0db3049adfdb6427e5a71e003 *src/libpq/crypt.c
5b01b0fceaff0e0744dda81db4a557e2 *src/libpq/encnames.c
18eb6554589f4b28308ec33e04b11fc0 *src/libpq/exports.txt
caed6c7c7ca3bba344a6651fb530614e *src/libpq/fe-auth.c
0980f2f606a489c7cf628664e461535f *src/libpq/fe-auth.h
6d33f07c44e05a2acfa54b777aa919bb *src/libpq/fe-connect.c
18f794fca077daa4e13b155279a3b7f1 *src/libpq/fe-exec.c
9d8420fcd4daf54a38fa49fd2a82e5a2 *src/libpq/fe-lobj.c
8b30c827e58ac1cc6b9af8f5bcf8078d *src/libpq/fe-misc.c
b6912e592c3cd685ff215a02b5c5c57c *src/libpq/fe-print.c
ca4db5c3bed90289825dc97c1645089f *src/libpq/fe-protocol2.c
8002a285b31897f9ab2140a8f33e9809 *src/libpq/fe-protocol3.c
b42de4a87499436f38f4dc990f08d2b7 *src/libpq/fe-secure.c
7795b5dc08f93c87d874926f8c654afe *src/libpq/getaddrinfo.c
76855922e8fd0f21cc447dde44a0049a *src/libpq/getaddrinfo.h
320944de061a55634f09b43d114fde9f *src/libpq/inet_aton.c
432749fd6aec100b5f505eedc59b77d8 *src/libpq/inet_net_ntop.c
30a26446249c4d896e21bc296154caa4 *src/libpq/ip.c
d360c0096fea3d40a9e30d301e75e2d6 *src/libpq/libpq-dist.rc
8ce61fe52cabb3b5e207b94f18c9f69b *src/libpq/libpq-events.c
4e034f61abfbcb0b2b406a06ebf82c92 *src/libpq/libpq-events.h
f0916ce17f26a197442fcc362a2a8266 *src/libpq/libpq-fe.h
e5088316cb91185f60e0966cf1746ef8 *src/libpq/libpq-int.h
006be1656b963c89f42e9e319a9508c5 *src/libpq/libpq.rc
33f08f69c00a2d521283846ba13805f5 *src/libpq/libpq.rc.in
b778fffcc85a1a1d117e10b0e1bf5672 *src/libpq/libpq/auth.h
ab3602b78db70993aa5328580a3c6d05 *src/libpq/libpq/be-fsstubs.h
6c80e679af9b1aeec19a6b76b0821158 *src/libpq/libpq/crypt.h
459c24cca99e57c8826f00db6536ac78 *src/libpq/libpq/hba.h
df0b12651bba2e39be079a05820b5c65 *src/libpq/libpq/ip.h
9105345fb512b8ca3f4c72cf9d2212af *src/libpq/libpq/libpq-be.h
9fb5ec06a5add40ea44285bbeb7f9ae8 *src/libpq/libpq/libpq-fs.h
1b62b74134a923abcb1a0cb308604676 *src/libpq/libpq/libpq.h
dae625c0859abe055affa9c6ea36bb30 *src/libpq/libpq/md5.h
f462f30f5e2ccd9ea96cf0286a90128a *src/libpq/libpq/pqcomm.h
9dc4fff9d646f11b72fdc61a33761cb3 *src/libpq/libpq/pqformat.h
df5e18f46a6386c191caf8314b2b8ccf *src/libpq/libpq/pqsignal.h
c544bf6c9ee787e0fbf5ca281f19b3c9 *src/libpq/libpqddll.def
5dbd31ecc66e578f0975bd09f5893f4f *src/libpq/libpqdll.def
a0dac5fc25df3d478c46fcdf859a4a77 *src/libpq/mb/pg_wchar.h
58ea4a0910632af9a7c5bc1bdfbc5119 *src/libpq/md5.c
cfed432d1e862194c9d7d4ad3825152c *src/libpq/netdb.h
598821c8d2b484bb02ac46b9bd19b6bf *src/libpq/netinet/in.h
0f530ef990e31c4d1d8846355b21433d *src/libpq/nls.mk
591fcbd4602ea8aa38d3933a2fd8edc8 *src/libpq/noblock.c
53c7cba0a18f270cb27ca5cd0a8fe39a *src/libpq/open.c
a7f14b752cf6cfc80f5805462f097445 *src/libpq/pg_config.h
6e87ad70bd75ee52979dbd79dd2757ed *src/libpq/pg_config_manual.h
e3a99f96132aaa565ebfac0b422c4373 *src/libpq/pg_config_os.h
5d38f79637e5d954690553ea6c886b81 *src/libpq/pg_config_paths.h
67dd9d47c05e99220210707dbbe8fe13 *src/libpq/pg_service.conf.sample
2fc8987699670052720f0e50d9aa65b7 *src/libpq/pgsleep.c
1ddedb705fd0c2d3dac3ac4007583795 *src/libpq/pgstrcasecmp.c
e7629acdfe627335381defd82d6c6d36 *src/libpq/port.h
49b1a8226c7f0d3c89de874baa26826f *src/libpq/postgres_ext.h
4dcb82bdf25f69dc07545ede7d20b739 *src/libpq/postgres_fe.h
37107eff1c6654ab7286dea62d1870bb *src/libpq/pqexpbuffer.c
dce5ee7a0dc21e9e8f9900833862a979 *src/libpq/pqexpbuffer.h
783cd7b7525d6764ad390f6baba56411 *src/libpq/pqsignal.c
c6509da073988f5cf798504688442e63 *src/libpq/pqsignal.h
c18860b10e49a49e546ac4c081a2bb7c *src/libpq/pthread-win32.c
1508c7669b0ecac16eb52594ce521b03 *src/libpq/pthread-win32.h
ee8cd495cd23d4dec2eefbdc537f33f4 *src/libpq/pwd.h
9a0df9e44a33b8a4dba5f37c7fbf375b *src/libpq/snprintf.c
074de10a61155a67b9f2414a516e8bbb *src/libpq/strlcpy.c
d982865355149572df8b37929da4894a *src/libpq/sys/socket.h
328dc7600d5a2acd6b82acc37cb6b7ce *src/libpq/sys/wait.h
b16f3a73527079d3dbf0470f80c96a3f *src/libpq/thread.c
80097bb3b80795f3a1f79c5569fece88 *src/libpq/wchar.c
ae5ff84a1464a71dc36f0030c7c93423 *src/libpq/win32.c
6411c74abfb7e08ff4ea01a680cbb346 *src/libpq/win32.h
19c6c698b953b2ae1a55834df9e9a032 *src/libpq/win32.mak
35c3dfe3358e7534e18549b2d70bfe24 *src/libpq/win32error.c
09c2f2968550edddb77f5a1213f939f5 *src/libpq/win32setlocale.c
f62197ce4f6f73cf0f62b9c99493d736 *tests/connectWithNull.R
bc4feb5f45590b44f80befe2930a8a21 *tests/connectWithNull.Rout.save
3f379b98fb19a5875ee1f50bfaa4401a *tests/createTableMixedCaseTest.R
Expand Down
9 changes: 0 additions & 9 deletions configure.win
@@ -1,9 +0,0 @@
# configure.win for RPostgreSQL
# Dirk Eddelbuettel, 02 Nov 2008
#
# idea copied from XML/configure.win
if test -z "$PG_HOME" ; then
echo "Please define PG_HOME (i.e. directory above Postgresql headers and library)"
exit 1
fi

2 changes: 1 addition & 1 deletion inst/ANNOUNCEMENT
@@ -1,5 +1,5 @@

RPostgreSQL version 0.2-0
RPostgreSQL version 0.2-1

We are pround to announce the availability of the RPostgreSQL package on CRAN
and its mirrors. This package provides an a DBI-compliant interface between
Expand Down
6 changes: 6 additions & 0 deletions inst/NEWS
@@ -1,3 +1,9 @@
Version 0.2-1 -- 2010-11-16

o libpq source codes are bundled for Windows.
In other envirionment, this code is not used and existence of libpq as
specified by PG_HOME is still required.

Version 0.2-0 -- 2010-10-04

o Error check for dbWriteTable
Expand Down
39 changes: 2 additions & 37 deletions inst/README
Expand Up @@ -44,43 +44,8 @@ For a more complete example, refer to the file demo.r in the devTests folder.

Important Information:

1. Postgresql _must_ be configured for network access rather than just
unix domain sockets as is the default on most installations.

To activate network access you need at least to

a) in postgresql.conf uncomment the entry for
listen_address = '*'
where '*' listen to all network traffic, otherwise a comma-separated
list of IP address can be given.

b) in pg_hba.conf add something like
host all all 127.0.0.1/32 ident sameuser
host all all 192.168.1.0/24 ident passwd
which would provide network access from the same machine (per the
127.0.0.1 localhost address) to the same user, and from any machine
on the same network (assuming 192.168.1.0 is your local network) when
authenticated by a passwd.

See the Postgresql documentation for much, much more on this.

c) run an identd server like gidentd, oidentd, slidentd, ...

2. dbWriteTable method is found to fail in some flavours of Linux like RedHat
distributions because of SELinux. SELinux is preventing PostgreSQL to
access data from locations other than it's data folder. So one of the
possible quick solutions is to turn off SELinux temporarily while using
this method and turn on later.

## To turn off the SELinux, type the following at the command prompt
$ echo 0 > /selinux/enforce/
## To turn on the SElinux, type the following at the command prompt
$ echo 1 > /selinux/enforce/

3. The present version of RPostgreSQL can handle only one resultset per connection.

4. PostgreSQL treats table and column names as case insensitive. So always
lowercase names are returned in PostgreSQL and hence in RPostgreSQL.
1. The present version of RPostgreSQL can handle only one resultset per connection.
Thus dbSendQuery/fetch usually do not have speed merit over dbGetQuery.

=============================================================================

Expand Down
Binary file modified inst/doc/DBI.pdf
Binary file not shown.
11 changes: 9 additions & 2 deletions src/Makevars.win
@@ -1,2 +1,9 @@
PKG_CPPFLAGS=-I"${PG_HOME}"/include
PKG_LIBS=-L"${PG_HOME}"/lib -llibpq
PKG_CPPFLAGS=-I./libpq
PKG_LIBS=libpq/libpq.a

.PHONY: all
all: $(SHLIB)
$(SHLIB): libpq/libpq.a

libpq/libpq.a:
(cd libpq; make)
20 changes: 20 additions & 0 deletions src/install.libs.R
@@ -0,0 +1,20 @@
## the following variables are defined to be available,
## and to prevent abuse we don't expose anything else
files <- Sys.glob(paste("*", SHLIB_EXT, sep=""))
if (length(files)) {
libarch <- if (nzchar(R_ARCH)) paste("libs", R_ARCH, sep="") else "libs"
dest <- file.path(R_PACKAGE_DIR, libarch)
message('installing to ', dest)
dir.create(dest, recursive = TRUE, showWarnings = FALSE)
file.copy(files, dest, overwrite = TRUE)
if(WINDOWS){
file.copy('libpq/libpq.dll', dest, overwrite = TRUE)
}
## not clear if this is still necessary, but sh version did so
if (!WINDOWS) Sys.chmod(file.path(dest, files), "755")
if (nzchar(Sys.getenv("PKG_MAKE_DSYM")) && length(grep("^darwin", R.version$os))) {
message('generating debug symbols (dSYM)')
dylib <- Sys.glob(paste(dest, "/*", SHLIB_EXT, sep=""))
if (length(dylib)) for (file in dylib) system(paste("dsymutil ", file, sep=""))
}
}
23 changes: 23 additions & 0 deletions src/libpq/COPYRIGHT
@@ -0,0 +1,23 @@
PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)

Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

0 comments on commit 2157d2c

Please sign in to comment.