pkgsrc/databases/guile-pg/Makefile

26 lines
587 B
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.46 2013/03/13 23:30:42 gdt Exp $
#
DISTNAME= guile-pg-0.45
CATEGORIES= databases
Update to 0.44. Because guile-pg now works with mainstream guile, switch from guile16 to guile (currently 1.8), and remove the special accomodations for 1.6. - 0.44 | 2012-04-20 - distribution now .tar.xz If you have GNU tar, you can use "tar xf" and it will DTRT. If not, you can use "xz -dc TARBALL | tar xf -" to unpack. - bugfix: ‘pg-get-copy-data’ handles unspecified ‘async?’ Previously, if ‘async?’ was unspecified, it was incorrectly interpreted as true (i.e., "not false"). Now, if unspecified, it is interpreted correctly as false. - testing slack for pre-8.1 ‘pg-client-encoding’ Previously, the types-table test was too strict when checking the ‘pg-client-encoding’ return value, expecting "UTF-8" only. Now, it accepts also "UNICODE", which is the norm for PostgreSQL prior to 8.1. - support for ‘make check KEEPD=1’ If you run "make check" many times, you can avoid daemon bounce overhead by specifying ‘KEEPD=1’, which inhibits daemon killing. - maintenance tools - GNU Autoconf 2.68 - GNU Automake 1.11.5 - GNU Libtool 2.4.2 - Guile-BAUX 20120309.1509.1c4bb92 - SNUGGLE 0.1 - 0.43 | 2012-02-06 [PBI] means "WARNING: potentially backward-incompatible". - bugfix: ‘sql-quote’ translates backslash (#\\) to ‘\134’ Previously, backslash characters were passed through unmodified. Now, they are translated to the string "\134" (i.e., the four characters ‘#\\’, ‘#\1’, ‘#\3’, ‘#\4’). - [PBI] ‘bytea’ stringifier outputs only one backslash If the ‘bytea’ stringifier from ‘(database postgres-types)’ is used standalone, this represents a BACKWARD INCOMPATIBLE change. In the normal case, however, where the stringifier is used in conjunction with ‘sql-quote’, this change is transparent. - new (database postgres-qcons) proc: string-xrep Some versions of Guile emit ‘\xXX’ to represent the octet with hex value XX when constructing the external representation of a string, for certain octets. Furthermore, some versions of PostgreSQL cannot grok such escape sequences anyway. The new procedure ‘string-xrep’ is like ‘object->string’ (for a string arg) except that it explicitly emits the octet itself, except for ‘#\\’ and and ‘#\"’, which are backslash-escaped as normal. - ‘(database postgres-qcons) idquote’ no longer emits ‘\xXX’ Before, ‘idquote’ used ‘object->string’ internally, and thus suffered from the problems described in the preceding NEWS entry. Now, it uses ‘string-xrep’. - ‘(database postgres-col-defs) validate-def’ more permissive A column name may now be any symbol that does not contain whitespace. Previously it was restricted to a symbol whose constituent characters were alphanumeric or underscore. This change makes Guile-PG less strict (in some sense) than PostgreSQL, which imposes other rules. Overarching is the recommendation from PostgreSQL to consistently use a "delimited identifier" (aka "quoted identifier") rather than a naked name. That's what ‘idquote’ and ‘string-xrep’, both used extensively in Guile-PG, do. See section "Identifiers and Key Words" in chapter "SQL Syntax" in the PostgreSQL documentation, for more information. - ‘pgtable-manager’ and ‘pgtable-worker’ likewise relaxed These use ‘(database postgres-col-defs)’ procs and new proc ‘string-xrep’ internally, and thus benefit from the changes mentioned in the preceding NEWS entries. Notably, table and column names are less constrained. For example, see file test/types-table.scm, proc ‘test-m2’. [Probably "relaxed" is not as good as "strictness relaxed and multi-byte-fu enhanced", but that does not fit on one line.] - fake cluster created on-demand for "make check" In addition to a fake installation, "make check" now also creates a cluster under test/fake-cluster/ configured for Unix-domain connections, and kicks/kills the daemon around the actual ‘runtest TEST’ invocations. This means it is no longer necessary to set env var ‘PGDATABASE’. In fact, that and env var ‘PGHOST’ are now silently ignored, since ‘runtest’ clobbers them internally. If you previously tested Guile-PG against different PostgreSQL versions by varying ‘PGDATABASE’, you now need to vary env var ‘INITDB’ instead, and zonk the cluster before the "make check" invocation. Something like: $(MAKE) delete-cluster $(MAKE) check DEBUG=1 INITDB=/a/particular/initdb in directory test/ would be fine. See README section "Testing". - 0.42 | 2011-10-04 - bugfix: "make check" no longer clobbers installed file For Guile versions that require a Scheme wrapper for .so loading (i.e., Guile 1.8 and later), "make check" does a fake install w/ a ‘prefix’ in the build tree. Unfortunately, in Guile-PG 0.41, that dir was not specified to the Scheme wrapper, resulting in its installation under the "real" (as determined / set by the configure script) ‘prefix’. The system would reamin in this inconsistent state, with the wrapper pointing into the build tree, until "make install", at which point everything was resynchronized. Obviously, if you never do "make install", the problem persists (silently, until the build tree is deleted). This has now been fixed. If you did a "make check" but NOT "make install" of Guile-PG 0.41, the best way forward is to configure Guile-PG 0.42 and then "make install; make uninstall". - ‘pg-print’ now does ‘fflush’ after each operation This probably kills performance, but it is safer, given Guile's direct use of ‘write(2)’ et al. - ‘pg-set-client-encoding!’ also accepts symbolic encoding - 0.41 | 2011-09-29 - Bugs fixed - Make ‘idquote’ special-case ‘*’ in second part. was: (display (idquote 'a.*)) |= "a"."*" now: (display (idquote 'a.*)) |= "a".* - Call ‘string-append’ with strings, not symbols. We no longer rely on this particular Guile 1.4 slack. - Portability fixes (tested w/ Guile 1.8.7) With the following (and other, non-user-visible) changes, "make check" no longer displays "foo is deprecated" messages with Guile 1.8.7. If you see them for your system, for either "make check" or subsequent Guile-PG use, please report that as a bug. - Don't do "defer/allow ints" for Guile 1.8+. - Revamped Scheme object to C byte range for Guile 1.8+ Access to Scheme string representation was curtailed in Guile 1.8 (API available but deprecated), so all operations that pass a C byte range to libpq functions now incur an extra conversion step. The unfortunate user-visible result is performance loss. - Planned retirement - procedure ‘(database postgres) pg-getline’ - procedure ‘(database postgres) pg-getlineasync’ These procedures are obsoleted by ‘pg-get-copy-data’ and WILL BE REMOVED by 2012-12-31. - New fluid to control ‘(database postgres-qcons) sql-quote’ The fluid ‘sql-quote-auto-E?’ controls whether or not ‘sql-quote’ should check for ‘\’ (backslash) characters and prefix an "E" in that case. This is relevant if you use PostgreSQL 8.2+. - New support for "hex format" in ‘bytea’ objectifier PostgreSQL 9.0 introduces a more efficient "hex format" for ‘bytea’ output. This is now recognized and parsed, falling back to handling the traditional "escape format" if not recognized. - Doc improvements - Fix omission: Document ‘pg-get-copy-data’ arg ‘async?’. - Indices merged into one - Builtin type converters listed and indexed - Builtin type converter array variants listed - For ‘make check DEBUG=1’, display the guile(1) invocation. - Tested w/ latest server versions: 8.[01234], 9.[01] Additionally, the entries in file test/OK now include the associated Guile-PG version, and some include a subheading "other pg" to list the precise server version numbers. - 0.40 | 2011-06-05 - Changes to configuration - Bug fixed in finding ‘pg_encoding_to_char’, ‘pg_char_to_encoding’ - Now seeks and arranges to use <postgresql/foo> headers - No longer clobbers user vars ‘CPPFLAGS’, ‘LDFLAGS’ - Changes to build / test / install - Bug fixed: Delete everything on "make uninstall" - Scheme code now punified for install - Add "no C module" mode for build / install - Changes to "make check" - Flaky symlinking replaced w/ partial in-tree installation - runtest now honors env var ‘GUILE’ - runtest now shows loaded files if env var ‘DEBUG’ set - New (database postgres-qcons) proc: idquote - Docs now explicitly UTF-8 - Tested on more platforms (see file test/OK) - Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
2012-11-07 14:45:35 +01:00
MASTER_SITES= http://download.savannah.nongnu.org/releases/guile-pg/
EXTRACT_SUFX= .tar.xz
MAINTAINER= gdt@NetBSD.org
Update to 0.44. Because guile-pg now works with mainstream guile, switch from guile16 to guile (currently 1.8), and remove the special accomodations for 1.6. - 0.44 | 2012-04-20 - distribution now .tar.xz If you have GNU tar, you can use "tar xf" and it will DTRT. If not, you can use "xz -dc TARBALL | tar xf -" to unpack. - bugfix: ‘pg-get-copy-data’ handles unspecified ‘async?’ Previously, if ‘async?’ was unspecified, it was incorrectly interpreted as true (i.e., "not false"). Now, if unspecified, it is interpreted correctly as false. - testing slack for pre-8.1 ‘pg-client-encoding’ Previously, the types-table test was too strict when checking the ‘pg-client-encoding’ return value, expecting "UTF-8" only. Now, it accepts also "UNICODE", which is the norm for PostgreSQL prior to 8.1. - support for ‘make check KEEPD=1’ If you run "make check" many times, you can avoid daemon bounce overhead by specifying ‘KEEPD=1’, which inhibits daemon killing. - maintenance tools - GNU Autoconf 2.68 - GNU Automake 1.11.5 - GNU Libtool 2.4.2 - Guile-BAUX 20120309.1509.1c4bb92 - SNUGGLE 0.1 - 0.43 | 2012-02-06 [PBI] means "WARNING: potentially backward-incompatible". - bugfix: ‘sql-quote’ translates backslash (#\\) to ‘\134’ Previously, backslash characters were passed through unmodified. Now, they are translated to the string "\134" (i.e., the four characters ‘#\\’, ‘#\1’, ‘#\3’, ‘#\4’). - [PBI] ‘bytea’ stringifier outputs only one backslash If the ‘bytea’ stringifier from ‘(database postgres-types)’ is used standalone, this represents a BACKWARD INCOMPATIBLE change. In the normal case, however, where the stringifier is used in conjunction with ‘sql-quote’, this change is transparent. - new (database postgres-qcons) proc: string-xrep Some versions of Guile emit ‘\xXX’ to represent the octet with hex value XX when constructing the external representation of a string, for certain octets. Furthermore, some versions of PostgreSQL cannot grok such escape sequences anyway. The new procedure ‘string-xrep’ is like ‘object->string’ (for a string arg) except that it explicitly emits the octet itself, except for ‘#\\’ and and ‘#\"’, which are backslash-escaped as normal. - ‘(database postgres-qcons) idquote’ no longer emits ‘\xXX’ Before, ‘idquote’ used ‘object->string’ internally, and thus suffered from the problems described in the preceding NEWS entry. Now, it uses ‘string-xrep’. - ‘(database postgres-col-defs) validate-def’ more permissive A column name may now be any symbol that does not contain whitespace. Previously it was restricted to a symbol whose constituent characters were alphanumeric or underscore. This change makes Guile-PG less strict (in some sense) than PostgreSQL, which imposes other rules. Overarching is the recommendation from PostgreSQL to consistently use a "delimited identifier" (aka "quoted identifier") rather than a naked name. That's what ‘idquote’ and ‘string-xrep’, both used extensively in Guile-PG, do. See section "Identifiers and Key Words" in chapter "SQL Syntax" in the PostgreSQL documentation, for more information. - ‘pgtable-manager’ and ‘pgtable-worker’ likewise relaxed These use ‘(database postgres-col-defs)’ procs and new proc ‘string-xrep’ internally, and thus benefit from the changes mentioned in the preceding NEWS entries. Notably, table and column names are less constrained. For example, see file test/types-table.scm, proc ‘test-m2’. [Probably "relaxed" is not as good as "strictness relaxed and multi-byte-fu enhanced", but that does not fit on one line.] - fake cluster created on-demand for "make check" In addition to a fake installation, "make check" now also creates a cluster under test/fake-cluster/ configured for Unix-domain connections, and kicks/kills the daemon around the actual ‘runtest TEST’ invocations. This means it is no longer necessary to set env var ‘PGDATABASE’. In fact, that and env var ‘PGHOST’ are now silently ignored, since ‘runtest’ clobbers them internally. If you previously tested Guile-PG against different PostgreSQL versions by varying ‘PGDATABASE’, you now need to vary env var ‘INITDB’ instead, and zonk the cluster before the "make check" invocation. Something like: $(MAKE) delete-cluster $(MAKE) check DEBUG=1 INITDB=/a/particular/initdb in directory test/ would be fine. See README section "Testing". - 0.42 | 2011-10-04 - bugfix: "make check" no longer clobbers installed file For Guile versions that require a Scheme wrapper for .so loading (i.e., Guile 1.8 and later), "make check" does a fake install w/ a ‘prefix’ in the build tree. Unfortunately, in Guile-PG 0.41, that dir was not specified to the Scheme wrapper, resulting in its installation under the "real" (as determined / set by the configure script) ‘prefix’. The system would reamin in this inconsistent state, with the wrapper pointing into the build tree, until "make install", at which point everything was resynchronized. Obviously, if you never do "make install", the problem persists (silently, until the build tree is deleted). This has now been fixed. If you did a "make check" but NOT "make install" of Guile-PG 0.41, the best way forward is to configure Guile-PG 0.42 and then "make install; make uninstall". - ‘pg-print’ now does ‘fflush’ after each operation This probably kills performance, but it is safer, given Guile's direct use of ‘write(2)’ et al. - ‘pg-set-client-encoding!’ also accepts symbolic encoding - 0.41 | 2011-09-29 - Bugs fixed - Make ‘idquote’ special-case ‘*’ in second part. was: (display (idquote 'a.*)) |= "a"."*" now: (display (idquote 'a.*)) |= "a".* - Call ‘string-append’ with strings, not symbols. We no longer rely on this particular Guile 1.4 slack. - Portability fixes (tested w/ Guile 1.8.7) With the following (and other, non-user-visible) changes, "make check" no longer displays "foo is deprecated" messages with Guile 1.8.7. If you see them for your system, for either "make check" or subsequent Guile-PG use, please report that as a bug. - Don't do "defer/allow ints" for Guile 1.8+. - Revamped Scheme object to C byte range for Guile 1.8+ Access to Scheme string representation was curtailed in Guile 1.8 (API available but deprecated), so all operations that pass a C byte range to libpq functions now incur an extra conversion step. The unfortunate user-visible result is performance loss. - Planned retirement - procedure ‘(database postgres) pg-getline’ - procedure ‘(database postgres) pg-getlineasync’ These procedures are obsoleted by ‘pg-get-copy-data’ and WILL BE REMOVED by 2012-12-31. - New fluid to control ‘(database postgres-qcons) sql-quote’ The fluid ‘sql-quote-auto-E?’ controls whether or not ‘sql-quote’ should check for ‘\’ (backslash) characters and prefix an "E" in that case. This is relevant if you use PostgreSQL 8.2+. - New support for "hex format" in ‘bytea’ objectifier PostgreSQL 9.0 introduces a more efficient "hex format" for ‘bytea’ output. This is now recognized and parsed, falling back to handling the traditional "escape format" if not recognized. - Doc improvements - Fix omission: Document ‘pg-get-copy-data’ arg ‘async?’. - Indices merged into one - Builtin type converters listed and indexed - Builtin type converter array variants listed - For ‘make check DEBUG=1’, display the guile(1) invocation. - Tested w/ latest server versions: 8.[01234], 9.[01] Additionally, the entries in file test/OK now include the associated Guile-PG version, and some include a subheading "other pg" to list the precise server version numbers. - 0.40 | 2011-06-05 - Changes to configuration - Bug fixed in finding ‘pg_encoding_to_char’, ‘pg_char_to_encoding’ - Now seeks and arranges to use <postgresql/foo> headers - No longer clobbers user vars ‘CPPFLAGS’, ‘LDFLAGS’ - Changes to build / test / install - Bug fixed: Delete everything on "make uninstall" - Scheme code now punified for install - Add "no C module" mode for build / install - Changes to "make check" - Flaky symlinking replaced w/ partial in-tree installation - runtest now honors env var ‘GUILE’ - runtest now shows loaded files if env var ‘DEBUG’ set - New (database postgres-qcons) proc: idquote - Docs now explicitly UTF-8 - Tested on more platforms (see file test/OK) - Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
2012-11-07 14:45:35 +01:00
HOMEPAGE= http://savannah.nongnu.org/projects/guile-pg/
COMMENT= PostgreSQL interface for Guile
LICENSE= gnu-gpl-v3
USE_LIBTOOL= YES
USE_TOOLS+= gmake
GNU_CONFIGURE= YES
Update to 0.39. Resolves type errors vs newer pgsql. (approval to update during freeze by agc@) - 0.39 | 2010-01-11 - Dropped (database postgres) procs - pg-lo-get-connection - pg-get-client-data - pg-set-client-data! These were pre-announced in Guile-PG 0.38 (2009-06-22) NEWS. - Proc `(database postgres) pg-parameter-status' no longer takes keyword This was pre-announced in Guile-PG 0.38 (2009-06-22) NEWS. - Maintenance uses autoconf 2.65, automake 1.11, libtool 2.2.6b - 0.38 | 2009-06-22 - Support for PostgreSQL 7.3 and earlier dropped Sorry, this was not pre-announced. Note that the subsequent version, i.e. PostgreSQL 7.4, was released 2003-11-17, over five years ago. - Dropped (database postgres) proc: pg-get-connection This was pre-announced in 0.37 (2008-05-24) NEWS. - External rep no longer includes "serial number" - Connection - Result These were pre-announced in 0.37 (2008-05-24) NEWS. - Planned retirement - pg-lo-get-connection - pg-get-client-data - pg-set-client-data! These (database postgres) procs provide or rely on associations that can better be expressed using normal Scheme facilities such as object properties, hash tables, etc, and thus are deemed a redundant maintenance burden; they WILL BE REMOVED by 2009-12-31. - Proc `(database postgres) pg-parameter-status' takes symbol `parm' These are equivalent: (pg-parameter-status CONN #:session_authorization) (pg-parameter-status CONN 'session_authorization) Note, however, that support for keyword `parm' is a misfeature, and WILL BE REMOVED by 2009-12-31. - Proc `(database postgres-qcons) sql-quote' more standards compliant Previously, this did single-quote escaping by inserting a backslash character prior to every single-quote. The result is acceptable by PostgreSQL, but is not standards compliant. Now, it does the escaping by doubling each single-quote, which is standards compliant and less prone to trigger warnings from the more recent PostgreSQL versions (8.2 and later). bef: (sql-quote "a'b") => "'a\\'b'" now: (sql-quote "a'b") => "'a''b'" - Changes to `pgtable-manager' (and thus `pgtable-worker') - Support for DEFAULT You can now use the keyword #:DEFAULT to specify DEFAULT as the value to insert into a table, or to update a column. Indeed, for column values, any keyword now expands to its name (sans `#:'). - #:insert-values no longer filters "serial" Previously, columns with "serial" type were filtered, so that it was possible to #:insert-values specifying only values for the other columns. Now, such usage raises a "column count mismatch" error; you must explicitly use #:DEFAULT. For example, given a table with column types "text", "serial", "text": bef: (W #:insert-values "foo" "bar") => ok now: (W #:insert-values "foo" "bar") => error (W #:insert-values "foo" #:DEFAULT "bar") => ok Although technically speaking the new behavior is incompatible, the previous behavior was never documented (secret misfeature), so the impact on your code is likely to be zero (no worries). - Connection object xrep omits "port" if "host" is a socket dir When the connection is Unix-domain (i.e., the "host" is a string that begins with slash that names a directory), the concept of "port" makes no sense. - Manual table-of-contents moved forward It used to be (strangely but perhaps following some outdated convention) at the end of the document. - New (database postgres) procs - pg-mblen While we wait for Guile to go multibyte (and stay there), this is a small building-block that eases "mostly ignorant" string processing. - pg-server-version This returns an integer representation of the server version of a connection, or `#f' if the connection is closed. - New (database postgres-resx) proc: object<-result This is useful for `SELECT EXPR;' where the result tuple consists of one row and one column. - Maintenance uses autoconf 2.63, automake 1.11, libtool 2.2.6
2010-03-19 12:26:57 +01:00
INFO_FILES= YES
Update to 0.44. Because guile-pg now works with mainstream guile, switch from guile16 to guile (currently 1.8), and remove the special accomodations for 1.6. - 0.44 | 2012-04-20 - distribution now .tar.xz If you have GNU tar, you can use "tar xf" and it will DTRT. If not, you can use "xz -dc TARBALL | tar xf -" to unpack. - bugfix: ‘pg-get-copy-data’ handles unspecified ‘async?’ Previously, if ‘async?’ was unspecified, it was incorrectly interpreted as true (i.e., "not false"). Now, if unspecified, it is interpreted correctly as false. - testing slack for pre-8.1 ‘pg-client-encoding’ Previously, the types-table test was too strict when checking the ‘pg-client-encoding’ return value, expecting "UTF-8" only. Now, it accepts also "UNICODE", which is the norm for PostgreSQL prior to 8.1. - support for ‘make check KEEPD=1’ If you run "make check" many times, you can avoid daemon bounce overhead by specifying ‘KEEPD=1’, which inhibits daemon killing. - maintenance tools - GNU Autoconf 2.68 - GNU Automake 1.11.5 - GNU Libtool 2.4.2 - Guile-BAUX 20120309.1509.1c4bb92 - SNUGGLE 0.1 - 0.43 | 2012-02-06 [PBI] means "WARNING: potentially backward-incompatible". - bugfix: ‘sql-quote’ translates backslash (#\\) to ‘\134’ Previously, backslash characters were passed through unmodified. Now, they are translated to the string "\134" (i.e., the four characters ‘#\\’, ‘#\1’, ‘#\3’, ‘#\4’). - [PBI] ‘bytea’ stringifier outputs only one backslash If the ‘bytea’ stringifier from ‘(database postgres-types)’ is used standalone, this represents a BACKWARD INCOMPATIBLE change. In the normal case, however, where the stringifier is used in conjunction with ‘sql-quote’, this change is transparent. - new (database postgres-qcons) proc: string-xrep Some versions of Guile emit ‘\xXX’ to represent the octet with hex value XX when constructing the external representation of a string, for certain octets. Furthermore, some versions of PostgreSQL cannot grok such escape sequences anyway. The new procedure ‘string-xrep’ is like ‘object->string’ (for a string arg) except that it explicitly emits the octet itself, except for ‘#\\’ and and ‘#\"’, which are backslash-escaped as normal. - ‘(database postgres-qcons) idquote’ no longer emits ‘\xXX’ Before, ‘idquote’ used ‘object->string’ internally, and thus suffered from the problems described in the preceding NEWS entry. Now, it uses ‘string-xrep’. - ‘(database postgres-col-defs) validate-def’ more permissive A column name may now be any symbol that does not contain whitespace. Previously it was restricted to a symbol whose constituent characters were alphanumeric or underscore. This change makes Guile-PG less strict (in some sense) than PostgreSQL, which imposes other rules. Overarching is the recommendation from PostgreSQL to consistently use a "delimited identifier" (aka "quoted identifier") rather than a naked name. That's what ‘idquote’ and ‘string-xrep’, both used extensively in Guile-PG, do. See section "Identifiers and Key Words" in chapter "SQL Syntax" in the PostgreSQL documentation, for more information. - ‘pgtable-manager’ and ‘pgtable-worker’ likewise relaxed These use ‘(database postgres-col-defs)’ procs and new proc ‘string-xrep’ internally, and thus benefit from the changes mentioned in the preceding NEWS entries. Notably, table and column names are less constrained. For example, see file test/types-table.scm, proc ‘test-m2’. [Probably "relaxed" is not as good as "strictness relaxed and multi-byte-fu enhanced", but that does not fit on one line.] - fake cluster created on-demand for "make check" In addition to a fake installation, "make check" now also creates a cluster under test/fake-cluster/ configured for Unix-domain connections, and kicks/kills the daemon around the actual ‘runtest TEST’ invocations. This means it is no longer necessary to set env var ‘PGDATABASE’. In fact, that and env var ‘PGHOST’ are now silently ignored, since ‘runtest’ clobbers them internally. If you previously tested Guile-PG against different PostgreSQL versions by varying ‘PGDATABASE’, you now need to vary env var ‘INITDB’ instead, and zonk the cluster before the "make check" invocation. Something like: $(MAKE) delete-cluster $(MAKE) check DEBUG=1 INITDB=/a/particular/initdb in directory test/ would be fine. See README section "Testing". - 0.42 | 2011-10-04 - bugfix: "make check" no longer clobbers installed file For Guile versions that require a Scheme wrapper for .so loading (i.e., Guile 1.8 and later), "make check" does a fake install w/ a ‘prefix’ in the build tree. Unfortunately, in Guile-PG 0.41, that dir was not specified to the Scheme wrapper, resulting in its installation under the "real" (as determined / set by the configure script) ‘prefix’. The system would reamin in this inconsistent state, with the wrapper pointing into the build tree, until "make install", at which point everything was resynchronized. Obviously, if you never do "make install", the problem persists (silently, until the build tree is deleted). This has now been fixed. If you did a "make check" but NOT "make install" of Guile-PG 0.41, the best way forward is to configure Guile-PG 0.42 and then "make install; make uninstall". - ‘pg-print’ now does ‘fflush’ after each operation This probably kills performance, but it is safer, given Guile's direct use of ‘write(2)’ et al. - ‘pg-set-client-encoding!’ also accepts symbolic encoding - 0.41 | 2011-09-29 - Bugs fixed - Make ‘idquote’ special-case ‘*’ in second part. was: (display (idquote 'a.*)) |= "a"."*" now: (display (idquote 'a.*)) |= "a".* - Call ‘string-append’ with strings, not symbols. We no longer rely on this particular Guile 1.4 slack. - Portability fixes (tested w/ Guile 1.8.7) With the following (and other, non-user-visible) changes, "make check" no longer displays "foo is deprecated" messages with Guile 1.8.7. If you see them for your system, for either "make check" or subsequent Guile-PG use, please report that as a bug. - Don't do "defer/allow ints" for Guile 1.8+. - Revamped Scheme object to C byte range for Guile 1.8+ Access to Scheme string representation was curtailed in Guile 1.8 (API available but deprecated), so all operations that pass a C byte range to libpq functions now incur an extra conversion step. The unfortunate user-visible result is performance loss. - Planned retirement - procedure ‘(database postgres) pg-getline’ - procedure ‘(database postgres) pg-getlineasync’ These procedures are obsoleted by ‘pg-get-copy-data’ and WILL BE REMOVED by 2012-12-31. - New fluid to control ‘(database postgres-qcons) sql-quote’ The fluid ‘sql-quote-auto-E?’ controls whether or not ‘sql-quote’ should check for ‘\’ (backslash) characters and prefix an "E" in that case. This is relevant if you use PostgreSQL 8.2+. - New support for "hex format" in ‘bytea’ objectifier PostgreSQL 9.0 introduces a more efficient "hex format" for ‘bytea’ output. This is now recognized and parsed, falling back to handling the traditional "escape format" if not recognized. - Doc improvements - Fix omission: Document ‘pg-get-copy-data’ arg ‘async?’. - Indices merged into one - Builtin type converters listed and indexed - Builtin type converter array variants listed - For ‘make check DEBUG=1’, display the guile(1) invocation. - Tested w/ latest server versions: 8.[01234], 9.[01] Additionally, the entries in file test/OK now include the associated Guile-PG version, and some include a subheading "other pg" to list the precise server version numbers. - 0.40 | 2011-06-05 - Changes to configuration - Bug fixed in finding ‘pg_encoding_to_char’, ‘pg_char_to_encoding’ - Now seeks and arranges to use <postgresql/foo> headers - No longer clobbers user vars ‘CPPFLAGS’, ‘LDFLAGS’ - Changes to build / test / install - Bug fixed: Delete everything on "make uninstall" - Scheme code now punified for install - Add "no C module" mode for build / install - Changes to "make check" - Flaky symlinking replaced w/ partial in-tree installation - runtest now honors env var ‘GUILE’ - runtest now shows loaded files if env var ‘DEBUG’ set - New (database postgres-qcons) proc: idquote - Docs now explicitly UTF-8 - Tested on more platforms (see file test/OK) - Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
2012-11-07 14:45:35 +01:00
CONFIGURE_ARGS+= --with-libpq=${PREFIX}
Update to 0.44. Because guile-pg now works with mainstream guile, switch from guile16 to guile (currently 1.8), and remove the special accomodations for 1.6. - 0.44 | 2012-04-20 - distribution now .tar.xz If you have GNU tar, you can use "tar xf" and it will DTRT. If not, you can use "xz -dc TARBALL | tar xf -" to unpack. - bugfix: ‘pg-get-copy-data’ handles unspecified ‘async?’ Previously, if ‘async?’ was unspecified, it was incorrectly interpreted as true (i.e., "not false"). Now, if unspecified, it is interpreted correctly as false. - testing slack for pre-8.1 ‘pg-client-encoding’ Previously, the types-table test was too strict when checking the ‘pg-client-encoding’ return value, expecting "UTF-8" only. Now, it accepts also "UNICODE", which is the norm for PostgreSQL prior to 8.1. - support for ‘make check KEEPD=1’ If you run "make check" many times, you can avoid daemon bounce overhead by specifying ‘KEEPD=1’, which inhibits daemon killing. - maintenance tools - GNU Autoconf 2.68 - GNU Automake 1.11.5 - GNU Libtool 2.4.2 - Guile-BAUX 20120309.1509.1c4bb92 - SNUGGLE 0.1 - 0.43 | 2012-02-06 [PBI] means "WARNING: potentially backward-incompatible". - bugfix: ‘sql-quote’ translates backslash (#\\) to ‘\134’ Previously, backslash characters were passed through unmodified. Now, they are translated to the string "\134" (i.e., the four characters ‘#\\’, ‘#\1’, ‘#\3’, ‘#\4’). - [PBI] ‘bytea’ stringifier outputs only one backslash If the ‘bytea’ stringifier from ‘(database postgres-types)’ is used standalone, this represents a BACKWARD INCOMPATIBLE change. In the normal case, however, where the stringifier is used in conjunction with ‘sql-quote’, this change is transparent. - new (database postgres-qcons) proc: string-xrep Some versions of Guile emit ‘\xXX’ to represent the octet with hex value XX when constructing the external representation of a string, for certain octets. Furthermore, some versions of PostgreSQL cannot grok such escape sequences anyway. The new procedure ‘string-xrep’ is like ‘object->string’ (for a string arg) except that it explicitly emits the octet itself, except for ‘#\\’ and and ‘#\"’, which are backslash-escaped as normal. - ‘(database postgres-qcons) idquote’ no longer emits ‘\xXX’ Before, ‘idquote’ used ‘object->string’ internally, and thus suffered from the problems described in the preceding NEWS entry. Now, it uses ‘string-xrep’. - ‘(database postgres-col-defs) validate-def’ more permissive A column name may now be any symbol that does not contain whitespace. Previously it was restricted to a symbol whose constituent characters were alphanumeric or underscore. This change makes Guile-PG less strict (in some sense) than PostgreSQL, which imposes other rules. Overarching is the recommendation from PostgreSQL to consistently use a "delimited identifier" (aka "quoted identifier") rather than a naked name. That's what ‘idquote’ and ‘string-xrep’, both used extensively in Guile-PG, do. See section "Identifiers and Key Words" in chapter "SQL Syntax" in the PostgreSQL documentation, for more information. - ‘pgtable-manager’ and ‘pgtable-worker’ likewise relaxed These use ‘(database postgres-col-defs)’ procs and new proc ‘string-xrep’ internally, and thus benefit from the changes mentioned in the preceding NEWS entries. Notably, table and column names are less constrained. For example, see file test/types-table.scm, proc ‘test-m2’. [Probably "relaxed" is not as good as "strictness relaxed and multi-byte-fu enhanced", but that does not fit on one line.] - fake cluster created on-demand for "make check" In addition to a fake installation, "make check" now also creates a cluster under test/fake-cluster/ configured for Unix-domain connections, and kicks/kills the daemon around the actual ‘runtest TEST’ invocations. This means it is no longer necessary to set env var ‘PGDATABASE’. In fact, that and env var ‘PGHOST’ are now silently ignored, since ‘runtest’ clobbers them internally. If you previously tested Guile-PG against different PostgreSQL versions by varying ‘PGDATABASE’, you now need to vary env var ‘INITDB’ instead, and zonk the cluster before the "make check" invocation. Something like: $(MAKE) delete-cluster $(MAKE) check DEBUG=1 INITDB=/a/particular/initdb in directory test/ would be fine. See README section "Testing". - 0.42 | 2011-10-04 - bugfix: "make check" no longer clobbers installed file For Guile versions that require a Scheme wrapper for .so loading (i.e., Guile 1.8 and later), "make check" does a fake install w/ a ‘prefix’ in the build tree. Unfortunately, in Guile-PG 0.41, that dir was not specified to the Scheme wrapper, resulting in its installation under the "real" (as determined / set by the configure script) ‘prefix’. The system would reamin in this inconsistent state, with the wrapper pointing into the build tree, until "make install", at which point everything was resynchronized. Obviously, if you never do "make install", the problem persists (silently, until the build tree is deleted). This has now been fixed. If you did a "make check" but NOT "make install" of Guile-PG 0.41, the best way forward is to configure Guile-PG 0.42 and then "make install; make uninstall". - ‘pg-print’ now does ‘fflush’ after each operation This probably kills performance, but it is safer, given Guile's direct use of ‘write(2)’ et al. - ‘pg-set-client-encoding!’ also accepts symbolic encoding - 0.41 | 2011-09-29 - Bugs fixed - Make ‘idquote’ special-case ‘*’ in second part. was: (display (idquote 'a.*)) |= "a"."*" now: (display (idquote 'a.*)) |= "a".* - Call ‘string-append’ with strings, not symbols. We no longer rely on this particular Guile 1.4 slack. - Portability fixes (tested w/ Guile 1.8.7) With the following (and other, non-user-visible) changes, "make check" no longer displays "foo is deprecated" messages with Guile 1.8.7. If you see them for your system, for either "make check" or subsequent Guile-PG use, please report that as a bug. - Don't do "defer/allow ints" for Guile 1.8+. - Revamped Scheme object to C byte range for Guile 1.8+ Access to Scheme string representation was curtailed in Guile 1.8 (API available but deprecated), so all operations that pass a C byte range to libpq functions now incur an extra conversion step. The unfortunate user-visible result is performance loss. - Planned retirement - procedure ‘(database postgres) pg-getline’ - procedure ‘(database postgres) pg-getlineasync’ These procedures are obsoleted by ‘pg-get-copy-data’ and WILL BE REMOVED by 2012-12-31. - New fluid to control ‘(database postgres-qcons) sql-quote’ The fluid ‘sql-quote-auto-E?’ controls whether or not ‘sql-quote’ should check for ‘\’ (backslash) characters and prefix an "E" in that case. This is relevant if you use PostgreSQL 8.2+. - New support for "hex format" in ‘bytea’ objectifier PostgreSQL 9.0 introduces a more efficient "hex format" for ‘bytea’ output. This is now recognized and parsed, falling back to handling the traditional "escape format" if not recognized. - Doc improvements - Fix omission: Document ‘pg-get-copy-data’ arg ‘async?’. - Indices merged into one - Builtin type converters listed and indexed - Builtin type converter array variants listed - For ‘make check DEBUG=1’, display the guile(1) invocation. - Tested w/ latest server versions: 8.[01234], 9.[01] Additionally, the entries in file test/OK now include the associated Guile-PG version, and some include a subheading "other pg" to list the precise server version numbers. - 0.40 | 2011-06-05 - Changes to configuration - Bug fixed in finding ‘pg_encoding_to_char’, ‘pg_char_to_encoding’ - Now seeks and arranges to use <postgresql/foo> headers - No longer clobbers user vars ‘CPPFLAGS’, ‘LDFLAGS’ - Changes to build / test / install - Bug fixed: Delete everything on "make uninstall" - Scheme code now punified for install - Add "no C module" mode for build / install - Changes to "make check" - Flaky symlinking replaced w/ partial in-tree installation - runtest now honors env var ‘GUILE’ - runtest now shows loaded files if env var ‘DEBUG’ set - New (database postgres-qcons) proc: idquote - Docs now explicitly UTF-8 - Tested on more platforms (see file test/OK) - Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
2012-11-07 14:45:35 +01:00
TEST_TARGET= check
Update to 0.44. Because guile-pg now works with mainstream guile, switch from guile16 to guile (currently 1.8), and remove the special accomodations for 1.6. - 0.44 | 2012-04-20 - distribution now .tar.xz If you have GNU tar, you can use "tar xf" and it will DTRT. If not, you can use "xz -dc TARBALL | tar xf -" to unpack. - bugfix: ‘pg-get-copy-data’ handles unspecified ‘async?’ Previously, if ‘async?’ was unspecified, it was incorrectly interpreted as true (i.e., "not false"). Now, if unspecified, it is interpreted correctly as false. - testing slack for pre-8.1 ‘pg-client-encoding’ Previously, the types-table test was too strict when checking the ‘pg-client-encoding’ return value, expecting "UTF-8" only. Now, it accepts also "UNICODE", which is the norm for PostgreSQL prior to 8.1. - support for ‘make check KEEPD=1’ If you run "make check" many times, you can avoid daemon bounce overhead by specifying ‘KEEPD=1’, which inhibits daemon killing. - maintenance tools - GNU Autoconf 2.68 - GNU Automake 1.11.5 - GNU Libtool 2.4.2 - Guile-BAUX 20120309.1509.1c4bb92 - SNUGGLE 0.1 - 0.43 | 2012-02-06 [PBI] means "WARNING: potentially backward-incompatible". - bugfix: ‘sql-quote’ translates backslash (#\\) to ‘\134’ Previously, backslash characters were passed through unmodified. Now, they are translated to the string "\134" (i.e., the four characters ‘#\\’, ‘#\1’, ‘#\3’, ‘#\4’). - [PBI] ‘bytea’ stringifier outputs only one backslash If the ‘bytea’ stringifier from ‘(database postgres-types)’ is used standalone, this represents a BACKWARD INCOMPATIBLE change. In the normal case, however, where the stringifier is used in conjunction with ‘sql-quote’, this change is transparent. - new (database postgres-qcons) proc: string-xrep Some versions of Guile emit ‘\xXX’ to represent the octet with hex value XX when constructing the external representation of a string, for certain octets. Furthermore, some versions of PostgreSQL cannot grok such escape sequences anyway. The new procedure ‘string-xrep’ is like ‘object->string’ (for a string arg) except that it explicitly emits the octet itself, except for ‘#\\’ and and ‘#\"’, which are backslash-escaped as normal. - ‘(database postgres-qcons) idquote’ no longer emits ‘\xXX’ Before, ‘idquote’ used ‘object->string’ internally, and thus suffered from the problems described in the preceding NEWS entry. Now, it uses ‘string-xrep’. - ‘(database postgres-col-defs) validate-def’ more permissive A column name may now be any symbol that does not contain whitespace. Previously it was restricted to a symbol whose constituent characters were alphanumeric or underscore. This change makes Guile-PG less strict (in some sense) than PostgreSQL, which imposes other rules. Overarching is the recommendation from PostgreSQL to consistently use a "delimited identifier" (aka "quoted identifier") rather than a naked name. That's what ‘idquote’ and ‘string-xrep’, both used extensively in Guile-PG, do. See section "Identifiers and Key Words" in chapter "SQL Syntax" in the PostgreSQL documentation, for more information. - ‘pgtable-manager’ and ‘pgtable-worker’ likewise relaxed These use ‘(database postgres-col-defs)’ procs and new proc ‘string-xrep’ internally, and thus benefit from the changes mentioned in the preceding NEWS entries. Notably, table and column names are less constrained. For example, see file test/types-table.scm, proc ‘test-m2’. [Probably "relaxed" is not as good as "strictness relaxed and multi-byte-fu enhanced", but that does not fit on one line.] - fake cluster created on-demand for "make check" In addition to a fake installation, "make check" now also creates a cluster under test/fake-cluster/ configured for Unix-domain connections, and kicks/kills the daemon around the actual ‘runtest TEST’ invocations. This means it is no longer necessary to set env var ‘PGDATABASE’. In fact, that and env var ‘PGHOST’ are now silently ignored, since ‘runtest’ clobbers them internally. If you previously tested Guile-PG against different PostgreSQL versions by varying ‘PGDATABASE’, you now need to vary env var ‘INITDB’ instead, and zonk the cluster before the "make check" invocation. Something like: $(MAKE) delete-cluster $(MAKE) check DEBUG=1 INITDB=/a/particular/initdb in directory test/ would be fine. See README section "Testing". - 0.42 | 2011-10-04 - bugfix: "make check" no longer clobbers installed file For Guile versions that require a Scheme wrapper for .so loading (i.e., Guile 1.8 and later), "make check" does a fake install w/ a ‘prefix’ in the build tree. Unfortunately, in Guile-PG 0.41, that dir was not specified to the Scheme wrapper, resulting in its installation under the "real" (as determined / set by the configure script) ‘prefix’. The system would reamin in this inconsistent state, with the wrapper pointing into the build tree, until "make install", at which point everything was resynchronized. Obviously, if you never do "make install", the problem persists (silently, until the build tree is deleted). This has now been fixed. If you did a "make check" but NOT "make install" of Guile-PG 0.41, the best way forward is to configure Guile-PG 0.42 and then "make install; make uninstall". - ‘pg-print’ now does ‘fflush’ after each operation This probably kills performance, but it is safer, given Guile's direct use of ‘write(2)’ et al. - ‘pg-set-client-encoding!’ also accepts symbolic encoding - 0.41 | 2011-09-29 - Bugs fixed - Make ‘idquote’ special-case ‘*’ in second part. was: (display (idquote 'a.*)) |= "a"."*" now: (display (idquote 'a.*)) |= "a".* - Call ‘string-append’ with strings, not symbols. We no longer rely on this particular Guile 1.4 slack. - Portability fixes (tested w/ Guile 1.8.7) With the following (and other, non-user-visible) changes, "make check" no longer displays "foo is deprecated" messages with Guile 1.8.7. If you see them for your system, for either "make check" or subsequent Guile-PG use, please report that as a bug. - Don't do "defer/allow ints" for Guile 1.8+. - Revamped Scheme object to C byte range for Guile 1.8+ Access to Scheme string representation was curtailed in Guile 1.8 (API available but deprecated), so all operations that pass a C byte range to libpq functions now incur an extra conversion step. The unfortunate user-visible result is performance loss. - Planned retirement - procedure ‘(database postgres) pg-getline’ - procedure ‘(database postgres) pg-getlineasync’ These procedures are obsoleted by ‘pg-get-copy-data’ and WILL BE REMOVED by 2012-12-31. - New fluid to control ‘(database postgres-qcons) sql-quote’ The fluid ‘sql-quote-auto-E?’ controls whether or not ‘sql-quote’ should check for ‘\’ (backslash) characters and prefix an "E" in that case. This is relevant if you use PostgreSQL 8.2+. - New support for "hex format" in ‘bytea’ objectifier PostgreSQL 9.0 introduces a more efficient "hex format" for ‘bytea’ output. This is now recognized and parsed, falling back to handling the traditional "escape format" if not recognized. - Doc improvements - Fix omission: Document ‘pg-get-copy-data’ arg ‘async?’. - Indices merged into one - Builtin type converters listed and indexed - Builtin type converter array variants listed - For ‘make check DEBUG=1’, display the guile(1) invocation. - Tested w/ latest server versions: 8.[01234], 9.[01] Additionally, the entries in file test/OK now include the associated Guile-PG version, and some include a subheading "other pg" to list the precise server version numbers. - 0.40 | 2011-06-05 - Changes to configuration - Bug fixed in finding ‘pg_encoding_to_char’, ‘pg_char_to_encoding’ - Now seeks and arranges to use <postgresql/foo> headers - No longer clobbers user vars ‘CPPFLAGS’, ‘LDFLAGS’ - Changes to build / test / install - Bug fixed: Delete everything on "make uninstall" - Scheme code now punified for install - Add "no C module" mode for build / install - Changes to "make check" - Flaky symlinking replaced w/ partial in-tree installation - runtest now honors env var ‘GUILE’ - runtest now shows loaded files if env var ‘DEBUG’ set - New (database postgres-qcons) proc: idquote - Docs now explicitly UTF-8 - Tested on more platforms (see file test/OK) - Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
2012-11-07 14:45:35 +01:00
.include "../../lang/guile/buildlink3.mk"
.include "../../mk/pgsql.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"