openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2009
- 1 participants
- 1215 discussions
Hello community,
here is the log from the commit of package perl-Filter for openSUSE:Factory
checked in at Mon Aug 3 19:39:07 CEST 2009.
--------
--- perl-Filter/perl-Filter.changes 2009-03-09 13:00:06.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-Filter/perl-Filter.changes 2009-08-03 16:50:02.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 3 15:50:48 CEST 2009 - anicka(a)suse.cz
+
+- update to 1.37
+ * No new feature or bug fixes - just sync with perl core.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
Filter-1.36-Call.diff
Filter-1.36.diff
Filter-1.36.tar.bz2
New:
----
Filter-1.37-Call.diff
Filter-1.37.diff
Filter-1.37.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Filter.spec ++++++
--- /var/tmp/diff_new_pack.l8yxby/_old 2009-08-03 19:38:59.000000000 +0200
+++ /var/tmp/diff_new_pack.l8yxby/_new 2009-08-03 19:38:59.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-Filter (Version 1.36)
+# spec file for package perl-Filter (Version 1.37)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,12 +19,12 @@
Name: perl-Filter
-Version: 1.36
+Version: 1.37
Release: 1
Requires: perl = %{perl_version}
AutoReqProv: on
Group: Development/Libraries/Perl
-License: Artistic License
+License: Artistic License ..
Url: http://cpan.org/modules/by-module/Filter/
Summary: Source Filters
Source: Filter-%{version}.tar.bz2
++++++ Filter-1.36-Call.diff -> Filter-1.37-Call.diff ++++++
++++++ Filter-1.36-Call.diff -> Filter-1.37.diff ++++++
--- perl-Filter/Filter-1.36-Call.diff 2009-03-09 13:00:16.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-Filter/Filter-1.37.diff 2009-08-03 16:50:01.000000000 +0200
@@ -1,10 +1,16 @@
---- Makefile.PL
-+++ Makefile.PL
-@@ -12,7 +12,6 @@
- use strict;
+--- decrypt/decr
++++ decrypt/decr
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/perl
- my @files = qw( filter-util.pl
-- Call/Call.pm
- Exec/Exec.pm
- decrypt/decrypt.pm decrypt/decr decrypt/encrypt
- tee/tee.pm
+ # This script will decrypt a Perl script that has been encrypted using the
+ # "encrypt" script. It cannot decrypt any other kind of encrypted Perl script.
+--- examples/filtdef
++++ examples/filtdef
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/perl
+
+ use strict ;
+ use warnings ;
++++++ Filter-1.36.tar.bz2 -> Filter-1.37.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/Changes new/Filter-1.37/Changes
--- old/Filter-1.36/Changes 2009-02-28 12:03:42.000000000 +0100
+++ new/Filter-1.37/Changes 2009-06-10 00:20:23.000000000 +0200
@@ -301,3 +301,8 @@
----
* Fixed install issue [RT #28232]
+
+1.37 9 June 2009
+----
+
+ * No new feature or bug fixes - just sync with perl core.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/META.yml new/Filter-1.37/META.yml
--- old/Filter-1.36/META.yml 2009-02-28 12:11:19.000000000 +0100
+++ new/Filter-1.37/META.yml 2009-06-10 00:21:05.000000000 +0200
@@ -1,10 +1,21 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Filter
-version: 1.36
-version_from:
-installdirs: perl
-requires:
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.30
+--- #YAML:1.0
+name: Filter
+version: 1.37
+abstract: Source Filters
+author:
+ - Paul Marquess <pmqs(a)cpan.org>
+license: perl
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
+requires: {}
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.52
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/Makefile.PL new/Filter-1.37/Makefile.PL
--- old/Filter-1.36/Makefile.PL 2009-02-28 12:06:44.000000000 +0100
+++ new/Filter-1.37/Makefile.PL 2009-06-08 23:42:05.000000000 +0200
@@ -50,7 +50,7 @@
WriteMakefile(
NAME => 'Filter',
- VERSION => '1.36',
+ VERSION => '1.37',
'linkext' => {LINKTYPE => ''},
'dist' => {COMPRESS=>'gzip', SUFFIX=>'gz',
DIST_DEFAULT => 'tardist'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/filter-util.pl new/Filter-1.37/filter-util.pl
--- old/Filter-1.36/filter-util.pl 2009-02-28 12:06:51.000000000 +0100
+++ new/Filter-1.37/filter-util.pl 2009-06-10 00:19:29.000000000 +0200
@@ -45,6 +45,7 @@
$Inc = '' ;
foreach (@INC)
{ $Inc .= "\"-I$_\" " }
+$Inc = "-I::lib" if $^O eq 'MacOS';
$Perl = '' ;
$Perl = ($ENV{'FULLPERL'} or $^X or 'perl') ;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/perlfilter.pod new/Filter-1.37/perlfilter.pod
--- old/Filter-1.36/perlfilter.pod 2001-02-18 21:26:05.000000000 +0100
+++ new/Filter-1.37/perlfilter.pod 2009-06-08 23:33:15.000000000 +0200
@@ -1,7 +1,6 @@
=head1 NAME
perlfilter - Source Filters
-
=head1 DESCRIPTION
@@ -19,12 +18,10 @@
=head1 CONCEPTS
Before the Perl interpreter can execute a Perl script, it must first
-read it from a file into memory for parsing and compilation. (Even
-scripts specified on the command line with the C<-e> option are stored in
-a temporary file for the parser to process.) If that script itself
-includes other scripts with a C<use> or C<require> statement, then each
-of those scripts will have to be read from their respective files as
-well.
+read it from a file into memory for parsing and compilation. If that
+script itself includes other scripts with a C<use> or C<require>
+statement, then each of those scripts will have to be read from their
+respective files as well.
Now think of each logical connection between the Perl parser and an
individual file as a I<source stream>. A source stream is created when
@@ -57,7 +54,7 @@
A source filter is a special kind of Perl module that intercepts and
modifies a source stream before it reaches the parser. A source filter
-changes the our diagram like this:
+changes our diagram like this:
file ----> filter ----> parser
@@ -84,18 +81,17 @@
modules, a source filter is invoked with a use statement.
Say you want to pass your Perl source through the C preprocessor before
-execution. You could use the existing C<-P> command line option to do
-this, but as it happens, the source filters distribution comes with a C
-preprocessor filter module called Filter::cpp. Let's use that instead.
+execution. As it happens, the source filters distribution comes with a C
+preprocessor filter module called Filter::cpp.
Below is an example program, C<cpp_test>, which makes use of this filter.
Line numbers have been added to allow specific lines to be referenced
easily.
- 1: use Filter::cpp ;
+ 1: use Filter::cpp;
2: #define TRUE 1
- 3: $a = TRUE ;
- 4: print "a = $a\n" ;
+ 3: $a = TRUE;
+ 4: print "a = $a\n";
When you execute this script, Perl creates a source stream for the
file. Before the parser processes any of the lines from the file, the
@@ -125,18 +121,18 @@
The parser then sees the following code:
- use Filter::cpp ;
- $a = 1 ;
- print "a = $a\n" ;
+ use Filter::cpp;
+ $a = 1;
+ print "a = $a\n";
Let's consider what happens when the filtered code includes another
module with use:
- 1: use Filter::cpp ;
+ 1: use Filter::cpp;
2: #define TRUE 1
- 3: use Fred ;
- 4: $a = TRUE ;
- 5: print "a = $a\n" ;
+ 3: use Fred;
+ 4: $a = TRUE;
+ 5: print "a = $a\n";
The C<cpp> filter does not apply to the text of the Fred module, only
to the text of the file that used it (C<cpp_test>). Although the use
@@ -163,7 +159,7 @@
possible to stack a uudecode filter and an uncompression filter like
this:
- use Filter::uudecode ; use Filter::uncompress ;
+ use Filter::uudecode; use Filter::uncompress;
M'XL(".H<US4''V9I;F%L')Q;>7/;1I;_>_I3=&E=%:F*I"T?22Q/
M6]9*<IQCO*XFT"0[PL%%'Y+IG?WN^ZYN-$'J.[.JE$,20/?K=_[>
...
@@ -200,7 +196,7 @@
C<decrypt> filter (which unscrambles the source before Perl parses it)
included with the source filter distribution is an example of a C
source filter (see Decryption Filters, below).
-
+
=over 5
@@ -248,9 +244,9 @@
Here is an example script that uses C<Filter::sh>:
- use Filter::sh 'tr XYZ PQR' ;
- $a = 1 ;
- print "XYZ a = $a\n" ;
+ use Filter::sh 'tr XYZ PQR';
+ $a = 1;
+ print "XYZ a = $a\n";
The output you'll get when the script is executed:
@@ -277,23 +273,23 @@
becomes M.)
- package Rot13 ;
+ package Rot13;
- use Filter::Util::Call ;
+ use Filter::Util::Call;
sub import {
- my ($type) = @_ ;
- my ($ref) = [] ;
- filter_add(bless $ref) ;
+ my ($type) = @_;
+ my ($ref) = [];
+ filter_add(bless $ref);
}
sub filter {
- my ($self) = @_ ;
- my ($status) ;
+ my ($self) = @_;
+ my ($status);
tr/n-za-mN-ZA-M/a-zA-Z/
- if ($status = filter_read()) > 0 ;
- $status ;
+ if ($status = filter_read()) > 0;
+ $status;
}
1;
@@ -342,16 +338,16 @@
the source file in rot13 format. The script below, C<mkrot13>, does
just that.
- die "usage mkrot13 filename\n" unless @ARGV ;
- my $in = $ARGV[0] ;
- my $out = "$in.tmp" ;
+ die "usage mkrot13 filename\n" unless @ARGV;
+ my $in = $ARGV[0];
+ my $out = "$in.tmp";
open(IN, "<$in") or die "Cannot open file $in: $!\n";
open(OUT, ">$out") or die "Cannot open file $out: $!\n";
- print OUT "use Rot13;\n" ;
+ print OUT "use Rot13;\n";
while (<IN>) {
- tr/a-zA-Z/n-za-mN-ZA-M/ ;
- print OUT ;
+ tr/a-zA-Z/n-za-mN-ZA-M/;
+ print OUT;
}
close IN;
@@ -361,12 +357,12 @@
If we encrypt this with C<mkrot13>:
- print " hello fred \n" ;
+ print " hello fred \n";
the result will be this:
use Rot13;
- cevag "uryyb serq\a" ;
+ cevag "uryyb serq\a";
Running it produces this output:
@@ -388,7 +384,7 @@
## DEBUG_BEGIN
if ($year > 1999) {
- warn "Debug: millennium bug in year $year\n" ;
+ warn "Debug: millennium bug in year $year\n";
}
## DEBUG_END
@@ -403,7 +399,7 @@
## DEBUG_BEGIN
#if ($year > 1999) {
- # warn "Debug: millennium bug in year $year\n" ;
+ # warn "Debug: millennium bug in year $year\n";
#}
## DEBUG_END
@@ -413,62 +409,62 @@
use strict;
use warnings;
- use Filter::Util::Call ;
+ use Filter::Util::Call;
- use constant TRUE => 1 ;
- use constant FALSE => 0 ;
+ use constant TRUE => 1;
+ use constant FALSE => 0;
sub import {
- my ($type) = @_ ;
+ my ($type) = @_;
my (%context) = (
Enabled => defined $ENV{DEBUG},
InTraceBlock => FALSE,
Filename => (caller)[1],
LineNo => 0,
LastBegin => 0,
- ) ;
- filter_add(bless \%context) ;
+ );
+ filter_add(bless \%context);
}
sub Die {
- my ($self) = shift ;
- my ($message) = shift ;
- my ($line_no) = shift || $self->{LastBegin} ;
+ my ($self) = shift;
+ my ($message) = shift;
+ my ($line_no) = shift || $self->{LastBegin};
die "$message at $self->{Filename} line $line_no.\n"
}
sub filter {
- my ($self) = @_ ;
- my ($status) ;
- $status = filter_read() ;
- ++ $self->{LineNo} ;
+ my ($self) = @_;
+ my ($status);
+ $status = filter_read();
+ ++ $self->{LineNo};
# deal with EOF/error first
if ($status <= 0) {
$self->Die("DEBUG_BEGIN has no DEBUG_END")
- if $self->{InTraceBlock} ;
- return $status ;
+ if $self->{InTraceBlock};
+ return $status;
}
if ($self->{InTraceBlock}) {
if (/^\s*##\s*DEBUG_BEGIN/ ) {
$self->Die("Nested DEBUG_BEGIN", $self->{LineNo})
} elsif (/^\s*##\s*DEBUG_END/) {
- $self->{InTraceBlock} = FALSE ;
+ $self->{InTraceBlock} = FALSE;
}
# comment out the debug lines when the filter is disabled
- s/^/#/ if ! $self->{Enabled} ;
+ s/^/#/ if ! $self->{Enabled};
} elsif ( /^\s*##\s*DEBUG_BEGIN/ ) {
- $self->{InTraceBlock} = TRUE ;
- $self->{LastBegin} = $self->{LineNo} ;
+ $self->{InTraceBlock} = TRUE;
+ $self->{LastBegin} = $self->{LineNo};
} elsif ( /^\s*##\s*DEBUG_END/ ) {
$self->Die("DEBUG_END has no DEBUG_BEGIN", $self->{LineNo});
}
- return $status ;
+ return $status;
}
- 1 ;
+ 1;
The big difference between this filter and the previous example is the
use of context data in the filter object. The filter object is based on
@@ -484,23 +480,23 @@
essence of the filter is as follows:
sub filter {
- my ($self) = @_ ;
- my ($status) ;
- $status = filter_read() ;
+ my ($self) = @_;
+ my ($status);
+ $status = filter_read();
# deal with EOF/error first
- return $status if $status <= 0 ;
+ return $status if $status <= 0;
if ($self->{InTraceBlock}) {
if (/^\s*##\s*DEBUG_END/) {
$self->{InTraceBlock} = FALSE
}
# comment out debug lines when the filter is disabled
- s/^/#/ if ! $self->{Enabled} ;
+ s/^/#/ if ! $self->{Enabled};
} elsif ( /^\s*##\s*DEBUG_BEGIN/ ) {
- $self->{InTraceBlock} = TRUE ;
+ $self->{InTraceBlock} = TRUE;
}
- return $status ;
+ return $status;
}
Be warned: just as the C-preprocessor doesn't know C, the Debug filter
@@ -511,8 +507,7 @@
EOM
Such things aside, you can see that a lot can be achieved with a modest
-amount of code. I<[Note that Tuomas' toy VRML parser on p. 17 had the
-same difficulty parsing VRML strings that look like comments. -Jon]>
+amount of code.
=head1 CONCLUSION
@@ -531,7 +526,7 @@
Once you can identify individual blocks, try allowing them to be
nested. That isn't difficult either.
-Here is a interesting idea that doesn't involve the Debug filter.
+Here is an interesting idea that doesn't involve the Debug filter.
Currently Perl subroutines have fairly limited support for formal
parameter lists. You can specify the number of parameters and their
type, but you still have to manually take them out of the C<@_> array
@@ -543,9 +538,9 @@
into this:
sub MySub($$@) {
- my ($first) = shift ;
- my ($second) = shift ;
- my (@rest) = @_ ;
+ my ($first) = shift;
+ my ($second) = shift;
+ my (@rest) = @_;
...
}
@@ -555,12 +550,31 @@
you know. The tricky bit will be choosing how much knowledge of Perl's
syntax you want your filter to have.
+=head1 THINGS TO LOOK OUT FOR
+
+=over 5
+
+=item Some Filters Clobber the C<DATA> Handle
+
+Some source filters use the C<DATA> handle to read the calling program.
+When using these source filters you cannot rely on this handle, nor expect
+any particular kind of behavior when operating on it. Filters based on
+Filter::Util::Call (and therefore Filter::Simple) do not alter the C<DATA>
+filehandle.
+
+=back
+
=head1 REQUIREMENTS
The Source Filters distribution is available on CPAN, in
CPAN/modules/by-module/Filter
+Starting from Perl 5.8 Filter::Util::Call (the core part of the
+Source Filters distribution) is part of the standard Perl distribution.
+Also included is a friendlier interface called Filter::Simple, by
+Damian Conway.
+
=head1 AUTHOR
Paul Marquess E<lt>Paul.Marquess(a)btinternet.comE<gt>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Filter-1.36/t/call.t new/Filter-1.37/t/call.t
--- old/Filter-1.36/t/call.t 2009-02-28 12:06:51.000000000 +0100
+++ new/Filter-1.37/t/call.t 2009-06-10 00:19:29.000000000 +0200
@@ -1,10 +1,26 @@
+BEGIN {
+ if ($ENV{PERL_CORE}){
+ chdir('t') if -d 't';
+ @INC = ('.', '../lib');
+
+ require Config; import Config;
+ %Config=%Config if 0; # cease -w
+ if ($Config{'extensions'} !~ m{\bFilter/Util/Call\b}) {
+ print "1..0 # Skip: Filter::Util::Call was not built\n";
+ exit 0;
+ }
+ require 'lib/filter-util.pl';
+ }
+ else {
+ require 'filter-util.pl';
+ }
+}
+
use strict;
use warnings;
use vars qw($Inc $Perl);
-require 'filter-util.pl';
-
print "1..32\n" ;
$Perl = "$Perl -w" ;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-File-Which for openSUSE:Factory
checked in at Mon Aug 3 19:38:47 CEST 2009.
--------
--- perl-File-Which/perl-File-Which.changes 2006-12-20 14:07:16.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-File-Which/perl-File-Which.changes 2009-08-03 16:48:53.000000000 +0200
@@ -1,0 +2,15 @@
+Mon Aug 3 15:45:01 CEST 2009 - anicka(a)suse.cz
+
+- update to 1.07
+ * CPAN Testers looks good for 1.06_01, moving to production release
+ * Taking over this hugely old and very popular module to clean it
+ up a bit.
+ * Moved from Test.pm to Test::More.
+ * Updated Changes
+ * Cleaned up some code a bit to make it more readable.
+ * Added an explicit minimum Perl version
+ * Changed platform detection code to constants for less code size
+ and compile-time if () optimisation.
+ * Removed non-leading tabs and other whitespace nigglies.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
File-Which-0.05.tar.bz2
New:
----
File-Which-1.07.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-File-Which.spec ++++++
--- /var/tmp/diff_new_pack.oHCHzU/_old 2009-08-03 19:38:34.000000000 +0200
+++ /var/tmp/diff_new_pack.oHCHzU/_new 2009-08-03 19:38:34.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-File-Which (Version 0.05 )
+# spec file for package perl-File-Which (Version 1.07 )
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,12 +20,12 @@
Name: perl-File-Which
Url: http://cpan.org/modules/by-module/File/
-Version: 0.05
-Release: 103
+Version: 1.07
+Release: 1
Requires: perl = %{perl_version}
AutoReqProv: on
Group: Development/Libraries/Perl
-License: Artistic License
+License: Artistic License ..
Summary: Portable implementation of the `which' utility
Source: File-Which-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ File-Which-0.05.tar.bz2 -> File-Which-1.07.tar.bz2 ++++++
++++ 1868 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-DBD-mysql for openSUSE:Factory
checked in at Mon Aug 3 19:38:21 CEST 2009.
--------
--- perl-DBD-mysql/perl-DBD-mysql.changes 2009-04-14 11:41:04.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-DBD-mysql/perl-DBD-mysql.changes 2009-08-03 16:38:56.000000000 +0200
@@ -1,0 +2,20 @@
+Mon Aug 3 16:12:06 CEST 2009 - anicka(a)suse.cz
+
+- update to 4.012
+ * Patch to bind_type_guessing from Craigslist,
+ Thanks to Chris! Happiness is no quoted numbers.
+ Fixed ChopBlanks to work with bind_type_guessing
+ * Patch for win32 strawberry build
+ Thanks to Curtis Jewell! Windows needs love
+ * Patch for auto-reconnect to set active flag
+ Thanks to Doug Fischer!
+ * Fixed bug 32464 http://bugs.mysql.com/bug.php?id=32464.
+ See https://rt.cpan.org/Ticket/Display.html?id=46308
+ Add connection flag mysql_no_autocommit_cmd which users of
+ MySQL Proxy can use to prevent 'set autocommit=#' from being
+ issued by the driver. 'perldoc DBD::mysql' to see how to use
+ this new flag
+ * Added bind-type-guessing options to Makefile.PL so the entire
+ test suite can be run with bind_type_guessing set.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
DBD-mysql-4.011.tar.bz2
New:
----
DBD-mysql-4.012.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-DBD-mysql.spec ++++++
--- /var/tmp/diff_new_pack.mxtarI/_old 2009-08-03 19:38:11.000000000 +0200
+++ /var/tmp/diff_new_pack.mxtarI/_new 2009-08-03 19:38:11.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-DBD-mysql (Version 4.011)
+# spec file for package perl-DBD-mysql (Version 4.012)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -21,14 +21,14 @@
Name: perl-DBD-mysql
BuildRequires: mysql-devel perl-DBI perl-Data-ShowTable
Url: http://cpan.org/modules/by-module/DBD/
-License: Artistic License
+License: Artistic License ..
Group: Development/Libraries/Perl
Obsoletes: mysqperl perl-Msql-Mysql-modules
Provides: mysqperl perl-Msql-Mysql-modules
Requires: perl-DBI perl-Data-ShowTable
Requires: perl = %{perl_version}
AutoReqProv: on
-Version: 4.011
+Version: 4.012
Release: 1
Summary: Interface to the MySQL database
Group: Development/Libraries/Perl
++++++ DBD-mysql-4.011.tar.bz2 -> DBD-mysql-4.012.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/ChangeLog new/DBD-mysql-4.012/ChangeLog
--- old/DBD-mysql-4.011/ChangeLog 2009-04-13 18:09:46.000000000 +0200
+++ new/DBD-mysql-4.012/ChangeLog 2009-06-19 03:54:47.000000000 +0200
@@ -1,3 +1,21 @@
+2009-06-18 Patrick Galbraith <patg(a)patg.net> (4.012)
+
+* Patch to bind_type_guessing from Craigslist,
+ Thanks to Chris! Happiness is no quoted numbers.
+ Fixed ChopBlanks to work with bind_type_guessing
+* Patch for win32 strawberry build
+ Thanks to Curtis Jewell! Windows needs love
+* Patch for auto-reconnect to set active flag
+ Thanks to Doug Fischer!
+* Fixed bug 32464 http://bugs.mysql.com/bug.php?id=32464.
+ See https://rt.cpan.org/Ticket/Display.html?id=46308
+ Add connection flag mysql_no_autocommit_cmd which users of
+ MySQL Proxy can use to prevent 'set autocommit=#' from being
+ issued by the driver. 'perldoc DBD::mysql' to see how to use
+ this new flag
+* Added bind-type-guessing options to Makefile.PL so the entire
+ test suite can be run with bind_type_guessing set.
+
2009-04-13 Patrick Galbraith <patg(a)patg.net> (4.011)
* Renamed unsafe_bind_type_guessing, fixed some of the logic. This
can be used to deal with bug 43822
@@ -1102,7 +1120,7 @@
* lib/Msql/Statement.pm: Fixed use of Msql::TEXT_TYPE without
checking whether we are running Msql 1.
-$Id: ChangeLog 12696 2009-04-14 02:28:12Z capttofu $
+$Id: ChangeLog 12860 2009-06-19 01:52:29Z capttofu $
DBD::mysql for DBI - Written by Jochen Wiedmann <joe(a)ispsoft.de>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/INSTALL.html new/DBD-mysql-4.012/INSTALL.html
--- old/DBD-mysql-4.011/INSTALL.html 2009-04-13 18:14:31.000000000 +0200
+++ new/DBD-mysql-4.012/INSTALL.html 2009-06-19 03:54:54.000000000 +0200
@@ -4,7 +4,7 @@
<head>
<title>INSTALL - How to install and configure DBD::mysql</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<link rev="made" href="mailto:root@localhost" />
+<link rev="made" href="mailto:_www@b04.apple.com" />
</head>
<body style="background-color: white">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/META.yml new/DBD-mysql-4.012/META.yml
--- old/DBD-mysql-4.011/META.yml 2009-04-13 18:14:31.000000000 +0200
+++ new/DBD-mysql-4.012/META.yml 2009-06-19 03:54:54.000000000 +0200
@@ -1,7 +1,7 @@
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: DBD-mysql
-version: 4.011
+version: 4.012
version_from: lib/DBD/mysql.pm
installdirs: site
requires:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/Makefile.PL new/DBD-mysql-4.012/Makefile.PL
--- old/DBD-mysql-4.011/Makefile.PL 2009-04-13 14:10:40.000000000 +0200
+++ new/DBD-mysql-4.012/Makefile.PL 2009-06-19 03:09:17.000000000 +0200
@@ -1,9 +1,9 @@
# -*- cperl -*-
+use Config;
BEGIN {
- use Config;
- if ($] == 5.008 && $ENV{"LANG"} ne "C") {
+ if ($] == 5.008 && $ENV{"LANG"} ne "C" && $^O ne 'MSWin32') {
$ENV{LANG} = "C";
print STDERR "\n\n\n\$ENV{LANG} is not 'C' execing 'perl Makefile.PL'".
" with ENV{LANG} == 'C'\n You can skip this check by: 'export ".
@@ -20,6 +20,7 @@
use Data::Dumper ();
use File::Path;
use File::Copy;
+use File::Basename;
require DBI::DBD;
my $TESTDB = "test";
@@ -40,22 +41,24 @@
"libs=s",
"verbose",
"ps-protocol",
+ "bind-type-guessing",
"nocatchstderr",
"ssl!",
"nofoundrows!",
"embedded=s",
"mysql_config=s",
- "force-embedded"
+ "force-embedded",
+ "with-mysql=s"
) || die Usage();
my $source = {};
-if ($^O !~ /mswin32/i)
-{
#Check for mysql_config first
$source->{'mysql_config'}="guessed";
if ($opt->{'mysql_config'})
- {
+ {
+ $opt->{'mysql_config'} = Win32::GetShortPathName($opt->{'mysql_config'})
+ if $^O eq 'MSWin32';
if (-f $opt->{'mysql_config'})
{
$source->{'mysql_config'} = "Users choice";
@@ -73,6 +76,9 @@
}
else
{
+ if ($^O eq 'MSWin32') {
+ win32_mysql_config($opt->{'with-mysql'});
+ }
if (! `mysql_config`)
{
print <<MSG;
@@ -83,11 +89,10 @@
}
$opt->{'mysql_config'} = "mysql_config";
}
-}
for my $key (qw/testdb testhost testuser testpassword testsocket
cflags embedded libs nocatchstderr ssl nofoundrows
- ps-protocol force-embedded/)
+ ps-protocol bind-type-guessing force-embedded/)
{
Configure($opt, $source, $key);
}
@@ -186,10 +191,12 @@
sleep 5;
eval { require File::Spec };
-my $ps_dsn= "";
-if (exists $opt->{'ps-protocol'})
-{
- $ps_dsn = "\$::test_dsn .= \";mysql_server_prepare=1\";\n";
+my $dsn= '';
+if (exists $opt->{'ps-protocol'}) {
+ $dsn = "\$::test_dsn .= \";mysql_server_prepare=1\";\n";
+}
+elsif (exists $opt->{'bind-type-guessing'}) {
+ $dsn= "\$::test_dsn .= \";mysql_bind_type_guessing=1\";\n";
}
my $fileName = $@ ?
"t/mysql.mtest" : File::Spec->catfile("t", "mysql.mtest");
@@ -205,7 +212,7 @@
"\$::test_dsn .= \";mysql_socket=\$::test_socket\" if \$::test_socket;\n" .
"\$::test_dsn .= \":\$::test_host\" if \$::test_host;\n" .
"\$::test_dsn .= \":\$::test_port\" if \$::test_port;\n".
- $ps_dsn .
+ $dsn .
"} 1;\n")) &&
close(FILE)) || die "Failed to create $fileName: $!";
@@ -391,7 +398,7 @@
by default the port number is choosen from the
mysqlclient library
--mysql_config=<path> Specify <path> for mysql_config script
- (Not supported on Win32)
+ --with-mysql=<path> Specify <path> for the root of the MySQL installation.
--nocatchstderr Supress using the "myld" script that redirects
STDERR while running the linker.
--nofoundrows Change the behavior of \$sth->rows() so that it
@@ -400,7 +407,11 @@
--ps-protocol Toggle the use of driver emulated prepared statements
prepare, requires MySQL server >= 4.1.3 for
server side prepared statements, off by default
- --ssl Enable SSL support
+ --bind-type-guessing Toggle the use of driver attribute mysql_bind_type_guessing
+ This feature makes it so driver-emulated prepared statements
+ try to "guess" if a value being bound is numeric, in which
+ case, quotes will not be put around the value.
+ --ssl Enable SSL support
--help Print this message and exit
All options may be configured on the command line. If they are
@@ -430,103 +441,93 @@
#
############################################################################
-sub Configure
-{
- my($opt, $source, $param) = @_;
+sub Configure {
+ my($opt, $source, $param) = @_;
- if ($param eq 'ps-protocol')
- {
- $source->{$param}= ($opt->{$param}) ? "User's choice" : 'default';
- return;
- }
- if (exists($opt->{$param}))
- {
- $source->{$param} = "User's choice";
- return;
- }
+ if ($param eq 'bind-type-guessing') {
+ $source->{$param}= ($opt->{$param}) ? "User's choice" : 'default';
+ return;
+ }
+ if ($param eq 'ps-protocol') {
+ $source->{$param}= ($opt->{$param}) ? "User's choice" : 'default';
+ return;
+ }
+ if (exists($opt->{$param})) {
+ $source->{$param} = "User's choice";
+ return;
+ }
- if ($^O !~ /mswin32/i)
- {
- # First try to get options values from mysql_config
+# First try to get options values from mysql_config
my $command = $opt->{'mysql_config'} . " --$param";
eval
{
- open(PIPE, "$command |") or die "Can't find mysql_config.";
+ open(PIPE, "$command |") or die "Can't find mysql_config.";
};
- if (!$@)
- {
- my $str = "";
- while (defined(my $line = <PIPE>))
- {
- $str .= $line;
- }
- if ($str ne "" && $str !~ /Options:/)
- {
- $str =~ s/\s+$//s;
- $str =~ s/^\s+//s;
-
- # Unfortunately ExtUtils::MakeMaker doesn't deal very well
- # with -L'...'
- $str =~ s/\-L\'(.*?)\'/-L$1/sg;
- $str =~ s/\-L\"(.*?)\"/-L$1/sg;
-
- $opt->{$param} = $str;
- $source->{$param} = "mysql_config";
- return;
- }
- }
- else
- {
- print "Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located\n";
- }
- }
-
- # Ok, mysql_config doesn't work. We need to do our best
- if ($param eq 'testuser') {
- unless ($opt->{$param}) {
+ if (!$@) {
+ my $str = "";
+ while (defined(my $line = <PIPE>)) { $str .= $line; }
+
+ if ($str ne "" && $str !~ /Options:/) {
+ $str =~ s/\s+$//s;
+ $str =~ s/^\s+//s;
+
+ # Unfortunately ExtUtils::MakeMaker doesn't deal very well
+ # with -L'...'
+ $str =~ s/\-L\'(.*?)\'/-L$1/sg;
+ $str =~ s/\-L\"(.*?)\"/-L$1/sg;
+
+ $opt->{$param} = $str;
+ $source->{$param} = "mysql_config";
+ return;
+ }
+ }
+ else {
+ print "Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located\n";
+ }
+
+# Ok, mysql_config doesn't work. We need to do our best
+ if ($param eq 'testuser') {
+ unless ($opt->{$param}) {
+ my $user = $ENV{USER} || '';
print "
PLEASE NOTE:
For 'make test' to run properly, you must ensure that the
-database user '$ENV{USER}' can connect to your MySQL server
+database user '$user' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.
-mysql> grant all privileges on test.* to '$ENV{USER}'\@'localhost' identified by 's3kr1t';
+mysql> grant all privileges on test.* to '$user'\@'localhost' identified by 's3kr1t';
You can also optionally set the user to run 'make test' with:
perl Makefile.pl --testuser=username
";
- $opt->{$param}= $ENV{USER};
+ $opt->{$param} = $user;
+ $source->{$param} = 'guessed';
}
}
- elsif ($param eq "nocatchstderr" || $param eq "nofoundrows")
- {
+ elsif ($param eq "nocatchstderr" || $param eq "nofoundrows") {
$source->{$param} = "default";
$opt->{$param} = 0;
}
- elsif ($param eq "testdb")
- {
+ elsif ($param eq "testdb") {
$source->{$param} = "default";
$opt->{$param} = $TESTDB;
}
elsif ($param eq "testhost" || $param eq "testport" ||
- $param eq "testpassword" || $param eq "testsocket" )
- {
+ $param eq "testpassword" || $param eq "testsocket" ) {
$source->{$param} = "default";
$opt->{$param} = "";
}
- elsif($param eq 'force-embedded')
- {
+ elsif($param eq 'force-embedded') {
$source->{$param} = $opt->{$param} ? "default" : 'not set';
}
- elsif ($param eq "cflags")
- {
+ elsif ($param eq "cflags") {
$source->{$param} = "guessed";
my $dir = SearchFor('include', 'mysql.h');
if ($dir) {
@@ -544,26 +545,22 @@
perl Makefile.PL --help
MSG
}
- elsif ($param eq "libs" || $param eq "embedded")
- {
+ elsif ($param eq "libs" || $param eq "embedded") {
$source->{$param} = "guessed";
- if ($param eq "embedded" && !$opt->{'embedded'})
- {
+ if ($param eq "embedded" && !$opt->{'embedded'}) {
$opt->{$param}="";
return;
}
my @files=();
my $default_libs;
- if ($param eq "embedded")
- {
+ if ($param eq "embedded") {
$default_libs= "-lmysqld -lpthread -lz -lm -lcrypt -lnsl";
@files = ($^O =~ /mswin32/i) ? qw(mysqlclient.lib) :
qw(libmysqld.a);
}
- else
- {
+ else {
$default_libs= "-lmysqlclient -lz -lm -lcrypt -lnsl";
@files = ($^O =~ /mswin32/i) ? qw(mysqlclient.lib) :
qw(libmysqlclient.a libmysqlclient.so);
@@ -587,13 +584,11 @@
perl Makefile.PL --help
MSG
}
- elsif ($param eq "ssl")
- {
+ elsif ($param eq "ssl") {
$opt->{$param} = ($opt->{"libs"} =~ /ssl/) ? 1 : 0;
$source->{$param} = "guessed";
}
- else
- {
+ else {
die "Unknown configuration parameter: $param";
}
}
@@ -735,6 +730,166 @@
close(LOG);
}
+sub win32_mysql_config {
+ my ($mysql_dir) = @_;
+ my $mysqladmin;
+
+ if ($mysql_dir) {
+ unless (-d $mysql_dir) {
+ die qq{"$mysql_dir" does not exist};
+ }
+ $mysqladmin = File::Spec->catfile($mysql_dir, 'bin', 'mysqladmin.exe');
+ unless (-f $mysqladmin) {
+ die qq{"bin/mysqladmin.exe" not found under "$mysql_dir"};
+ }
+ }
+
+ my (@path_ext) = path_ext();
+ unless ($mysqladmin) {
+ $mysqladmin = which('mysqladmin', @path_ext);
+ unless ($mysqladmin) {
+ die << 'DEATH';
+mysqladmin.exe was not found in your PATH.
+Please either add the directory containing mysqladmin.exe
+to your PATH environment variable, or rerun this script
+with the --with-mysql=C:\Path\to\Mysql option, giving the
+root directory of your MySQL installation.
+DEATH
+ }
+ ($mysql_dir = dirname($mysqladmin)) =~ s{[/\\]bin[/\\]?$}{};
+ }
+
+ my $basedir = Win32::GetShortPathName($mysql_dir);
+ my $ldata = File::Spec->catdir($basedir, 'data');
+ my $execdir = File::Spec->catdir($basedir, 'bin');
+ my $bindir = File::Spec->catdir($basedir, 'bin');
+ my $pkglibdir= File::Spec->catdir($basedir, 'lib', 'opt');
+ my $pkgincludedir = File::Spec->catdir($basedir, 'include');
+ my $ldflags = '';
+ my $client_libs = $Config{'cc'} eq 'gcc' ? '-lmysql -lzlib' : '-lmysqlclient -lzlib';
+
+ if (($Config{'_a'} eq '.a') and (! -e File::Spec->catfile($pkglibdir, 'libmysql.a'))) {
+ # This is done because ExtUtils::Liblist expects .a files, not .lib files.
+ copy(File::Spec->catfile($pkglibdir, 'libmysql.lib'), File::Spec->catfile($pkglibdir, 'libmysql.a'));
+ copy(File::Spec->catfile($pkglibdir, 'zlib.lib'), File::Spec->catfile($pkglibdir, 'libzlib.a'));
+ }
+
+ $mysqladmin = Win32::GetShortPathName($mysqladmin);
+ my $v = qx($mysqladmin version);
+ unless ($v) {
+ print STDERR "Problem running $mysqladmin - aborting ...\n";
+ exit(1);
+ }
+
+ my ($version, $port);
+ if ($v =~ /Server version\s+(.*?)\n/m) {
+ $version = $1;
+ }
+ if ($v =~ /TCP port\s+(.*?)\n/m) {
+ $port = $1;
+ }
+
+ my $libs = qq{$ldflags -L"$pkglibdir" $client_libs};
+ my $cflags = qq{-I"$pkgincludedir"};
+ my $embedded_libs = qq{$ldflags -L"$pkglibdir"};
+
+ my $license = <<'EOL';
+# Copyright (C) 2005 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+#
+# 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+# This script reports various configuration settings that may be needed
+# when using the MySQL client library.
+EOL
+
+ my $mysql_config = File::Spec->catfile($basedir, 'bin', 'mysql_config.pl');
+ open(my $fh, '>', $mysql_config)
+ or die "Cannot open $mysql_config for writing: $!";
+
+ print $fh <<"EOL";
+#!$^X
+use strict;
+use warnings;
+use Getopt::Long;
+
+$license
+
+my \$basedir = q{$basedir};
+my \$ldata = q{$ldata};
+my \$execdir = q{$execdir};
+my \$bindir = q{$bindir};
+my \$pkglibdir = q{$pkglibdir};
+my \$pkgincludedir = q{$pkgincludedir};
+my \$ldflags = q{$ldflags};
+my \$client_libs = q{$client_libs};
+my \$version = q{$version};
+my \$port = q{$port};
+my \$libs = q{$libs};
+my \$cflags = q{$cflags};
+my \$embedded_libs = q{$embedded_libs};
+EOL
+
+ while (<DATA>) {
+ print $fh $_;
+ }
+ close $fh;
+ my @args = ('pl2bat', $mysql_config);
+ system(@args) == 0 or die "System @args failed: $?";
+
+ print << "END";
+
+mysql_config.pl, and an associated bat file, has been
+successfully created under
+ $basedir\\bin
+
+END
+
+ return;
+}
+
+sub path_ext {
+ my @path_ext;
+
+ if ($ENV{PATHEXT}) {
+ push @path_ext, split ';', $ENV{PATHEXT};
+ for my $ext (@path_ext) {
+ $ext =~ s/^\.*(.+)$/$1/;
+ }
+ }
+ else {
+ #Win9X: doesn't have PATHEXT
+ push @path_ext, qw(com exe bat);
+ }
+
+ return @path_ext;
+}
+
+sub which {
+ my $program = shift;
+ my @path_ext = @_;
+ return unless $program;
+ my @a = map {File::Spec->catfile($_, $program) } File::Spec->path();
+ for my $base (@a) {
+ return $base if -x $base;
+ for my $ext (@path_ext) {
+ return "$base.$ext" if -x "$base.$ext";
+ }
+ }
+ return;
+}
+
package MY;
sub libscan {
@@ -760,3 +915,67 @@
}
return $result;
}
+
+package main;
+
+__DATA__
+
+my %opts = ();
+GetOptions(\%opts,
+ 'cflags',
+ 'libs',
+ 'port',
+ 'version',
+ 'libmysqld-libs',
+ 'embedded',
+ 'embedded-libs',
+ 'help',
+ ) or usage();
+
+usage() if ($opts{help} or not %opts);
+
+SWITCH : {
+ local $\ = "\n";
+ $opts{cflags} and do {
+ print $cflags;
+ last SWITCH;
+ };
+ $opts{libs} and do {
+ print $libs;
+ last SWITCH;
+ };
+ $opts{port} and do {
+ print $port;
+ last SWITCH;
+ };
+ $opts{version} and do {
+ print $version;
+ last SWITCH;
+ };
+ ($opts{'libmysqld-libs'} or $opts{embedded} or $opts{'libmysqld-libs'} )
+ and do {
+ print $embedded_libs;
+ last SWITCH;
+ };
+ usage();
+}
+
+exit(0);
+
+sub usage {
+ print << "EOU";
+Usage: $0 [OPTIONS]
+
+Options:
+ --cflags [$cflags]
+ --libs [$libs]
+ --port [$port]
+ --version [$version]
+ --libmysqld-libs [$embedded_libs]
+EOU
+ exit(1);
+}
+
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/dbdimp.c new/DBD-mysql-4.012/dbdimp.c
--- old/DBD-mysql-4.011/dbdimp.c 2009-04-13 14:39:38.000000000 +0200
+++ new/DBD-mysql-4.012/dbdimp.c 2009-06-19 03:54:47.000000000 +0200
@@ -8,7 +8,7 @@
* You may distribute this under the terms of either the GNU General Public
* License or the Artistic License, as specified in the Perl README file.
*
- * $Id: dbdimp.c 12689 2009-04-13 19:19:25Z capttofu $
+ * $Id: dbdimp.c 12860 2009-06-19 01:52:29Z capttofu $
*/
@@ -24,6 +24,8 @@
typedef short WORD;
#endif
+static int parse_number(char *string, STRLEN len, char **end);
+
DBISTATE_DECLARE;
typedef struct sql_type_info_s
@@ -557,6 +559,17 @@
break;
}
+ /* (note this sets *end, which we use if is_num) */
+ if( parse_number(valbuf, vallen, &end) != 0 && is_num)
+ {
+ if (bind_type_guessing) {
+ /* .. not a number, so apparerently we guessed wrong */
+ is_num = 0;
+ ph->type = SQL_VARCHAR;
+ }
+ }
+
+
/* we're at the end of the query, so any placeholders if */
/* after a LIMIT clause will be numbers and should not be quoted */
if (limit_flag == 1)
@@ -570,7 +583,6 @@
}
else
{
- parse_number(valbuf, vallen, &end);
for (cp= valbuf; cp < end; cp++)
*ptr++= *cp;
}
@@ -1384,7 +1396,8 @@
if ((server_groups_cnt=count_embedded_options(options)))
{
/* number of server_groups always server_groups+1 */
- server_groups=fill_out_embedded_options(options, 0, (int)lna, ++server_groups_cnt);
+ server_groups=fill_out_embedded_options(options, 0,
+ (int)lna, ++server_groups_cnt);
if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
{
PerlIO_printf(DBILOGFP,
@@ -1465,66 +1478,83 @@
DBIc_set(imp_dbh, DBIcf_AutoCommit, &sv_yes);
if (sv && SvROK(sv))
{
- HV* hv = (HV*) SvRV(sv);
- SV** svp;
- STRLEN lna;
+ HV* hv = (HV*) SvRV(sv);
+ SV** svp;
+ STRLEN lna;
- if ((svp = hv_fetch(hv, "mysql_compression", 17, FALSE)) &&
- *svp && SvTRUE(*svp))
+ if ((svp = hv_fetch(hv, "mysql_compression", 17, FALSE)) &&
+ *svp && SvTRUE(*svp))
{
if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
PerlIO_printf(DBILOGFP,
"imp_dbh->mysql_dr_connect: Enabling" \
" compression.\n");
- mysql_options(sock, MYSQL_OPT_COMPRESS, NULL);
- }
- if ((svp = hv_fetch(hv, "mysql_connect_timeout", 21, FALSE))
- && *svp && SvTRUE(*svp))
+ mysql_options(sock, MYSQL_OPT_COMPRESS, NULL);
+ }
+ if ((svp = hv_fetch(hv, "mysql_connect_timeout", 21, FALSE))
+ && *svp && SvTRUE(*svp))
{
- int to = SvIV(*svp);
- if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
- PerlIO_printf(DBILOGFP,
- "imp_dbh->mysql_dr_connect: Setting" \
- " connect timeout (%d).\n",to);
- mysql_options(sock, MYSQL_OPT_CONNECT_TIMEOUT,
- (const char *)&to);
- }
- if ((svp = hv_fetch(hv, "mysql_read_default_file", 23, FALSE)) &&
- *svp && SvTRUE(*svp))
+ int to = SvIV(*svp);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
+ "imp_dbh->mysql_dr_connect: Setting" \
+ " connect timeout (%d).\n",to);
+ mysql_options(sock, MYSQL_OPT_CONNECT_TIMEOUT,
+ (const char *)&to);
+ }
+ if ((svp = hv_fetch(hv, "mysql_read_default_file", 23, FALSE)) &&
+ *svp && SvTRUE(*svp))
{
- char* df = SvPV(*svp, lna);
- if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
- PerlIO_printf(DBILOGFP,
- "imp_dbh->mysql_dr_connect: Reading" \
- " default file %s.\n", df);
- mysql_options(sock, MYSQL_READ_DEFAULT_FILE, df);
- }
- if ((svp = hv_fetch(hv, "mysql_read_default_group", 24,
- FALSE)) &&
- *svp && SvTRUE(*svp)) {
- char* gr = SvPV(*svp, lna);
- if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
- PerlIO_printf(DBILOGFP,
+ char* df = SvPV(*svp, lna);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
+ "imp_dbh->mysql_dr_connect: Reading" \
+ " default file %s.\n", df);
+ mysql_options(sock, MYSQL_READ_DEFAULT_FILE, df);
+ }
+ if ((svp = hv_fetch(hv, "mysql_read_default_group", 24,
+ FALSE)) &&
+ *svp && SvTRUE(*svp)) {
+ char* gr = SvPV(*svp, lna);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
"imp_dbh->mysql_dr_connect: Using" \
" default group %s.\n", gr);
- mysql_options(sock, MYSQL_READ_DEFAULT_GROUP, gr);
- }
- if ((svp = hv_fetch(hv, "mysql_client_found_rows", 23, FALSE)) && *svp)
+ mysql_options(sock, MYSQL_READ_DEFAULT_GROUP, gr);
+ }
+ if ((svp = hv_fetch(hv, "mysql_client_found_rows", 23, FALSE)) && *svp)
{
- if (SvTRUE(*svp))
- client_flag |= CLIENT_FOUND_ROWS;
+ if (SvTRUE(*svp))
+ client_flag |= CLIENT_FOUND_ROWS;
else
client_flag &= ~CLIENT_FOUND_ROWS;
- }
- if ((svp = hv_fetch(hv, "mysql_use_result", 16, FALSE)) && *svp)
+ }
+ if ((svp = hv_fetch(hv, "mysql_use_result", 16, FALSE)) && *svp)
{
imp_dbh->use_mysql_use_result = SvTRUE(*svp);
- if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
- PerlIO_printf(DBILOGFP,
- "imp_dbh->use_mysql_use_result: %d\n",
- imp_dbh->use_mysql_use_result);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
+ "imp_dbh->use_mysql_use_result: %d\n",
+ imp_dbh->use_mysql_use_result);
}
+ if ((svp = hv_fetch(hv, "mysql_bind_type_guessing", 24, FALSE)) && *svp)
+ {
+ imp_dbh->bind_type_guessing= SvTRUE(*svp);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
+ "imp_dbh->bind_type_guessing: %d\n",
+ imp_dbh->bind_type_guessing);
+ }
+ if ((svp = hv_fetch(hv, "mysql_no_autocommit_cmd", 23, FALSE)) && *svp)
+ {
+ imp_dbh->no_autocommit_cmd= SvTRUE(*svp);
+ if (DBIc_TRACE_LEVEL(imp_xxh) >= 2)
+ PerlIO_printf(DBILOGFP,
+ "imp_dbh->no_autocommit_cmd: %d\n",
+ imp_dbh->no_autocommit_cmd);
+ }
+
#if defined(CLIENT_MULTI_STATEMENTS)
if ((svp = hv_fetch(hv, "mysql_multi_statements", 22, FALSE)) && *svp)
@@ -2064,32 +2094,38 @@
return TRUE;
#if MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION
- if (mysql_autocommit(imp_dbh->pmysql, bool_value))
+ if (!imp_dbh->no_autocommit_cmd)
{
- do_error(dbh, TX_ERR_AUTOCOMMIT,
- bool_value ?
- "Turning on AutoCommit failed" :
- "Turning off AutoCommit failed"
- ,NULL);
- return FALSE;
+ if (mysql_autocommit(imp_dbh->pmysql, bool_value))
+ {
+ do_error(dbh, TX_ERR_AUTOCOMMIT,
+ bool_value ?
+ "Turning on AutoCommit failed" :
+ "Turning off AutoCommit failed"
+ ,NULL);
+ return FALSE;
+ }
}
#else
/* if setting AutoCommit on ... */
- if (bool_value)
+ if (!imp_dbh->no_autocommit_cmd)
{
- /* Setting autocommit will do a commit of any pending statement */
- if (mysql_real_query(imp_dbh->pmysql, "SET AUTOCOMMIT=1", 16))
+ if (bool_value)
{
- do_error(dbh, TX_ERR_AUTOCOMMIT, "Turning on AutoCommit failed", NULL);
- return FALSE;
+ /* Setting autocommit will do a commit of any pending statement */
+ if (mysql_real_query(imp_dbh->pmysql, "SET AUTOCOMMIT=1", 16))
+ {
+ do_error(dbh, TX_ERR_AUTOCOMMIT, "Turning on AutoCommit failed", NULL);
+ return FALSE;
+ }
}
- }
- else
- {
- if (mysql_real_query(imp_dbh->pmysql, "SET AUTOCOMMIT=0", 16))
+ else
{
- do_error(dbh, TX_ERR_AUTOCOMMIT, "Turning off AutoCommit failed", NULL);
- return FALSE;
+ if (mysql_real_query(imp_dbh->pmysql, "SET AUTOCOMMIT=0", 16))
+ {
+ do_error(dbh, TX_ERR_AUTOCOMMIT, "Turning off AutoCommit failed", NULL);
+ return FALSE;
+ }
}
}
#endif
@@ -2115,10 +2151,10 @@
imp_dbh->auto_reconnect = bool_value;
else if (kl == 20 && strEQ(key, "mysql_server_prepare"))
imp_dbh->use_server_side_prepare=SvTRUE(valuesv);
-
+ else if (kl == 23 && strEQ(key,"mysql_no_autocommit_cmd"))
+ imp_dbh->no_autocommit_cmd= SvTRUE(valuesv);
else if (kl == 24 && strEQ(key,"mysql_bind_type_guessing"))
- imp_dbh->bind_type_guessing = SvIV(valuesv);
- /*HELMUT */
+ imp_dbh->bind_type_guessing = SvTRUE(valuesv);
#if defined(sv_utf8_decode) && MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION
else if (kl == 17 && strEQ(key, "mysql_enable_utf8"))
imp_dbh->enable_utf8 = bool_value;
@@ -2257,6 +2293,11 @@
/* We cannot return an IV, because the insertid is a long. */
result= sv_2mortal(my_ulonglong2str(mysql_insert_id(imp_dbh->pmysql)));
break;
+ case 'n':
+ if (kl == strlen("no_autocommit_cmd") &&
+ strEQ(key, "no_autocommit_cmd"))
+ result = sv_2mortal(newSViv(imp_dbh->no_autocommit_cmd));
+ break;
case 'p':
if (kl == 9 && strEQ(key, "protoinfo"))
@@ -4420,6 +4461,12 @@
++imp_dbh->stats.auto_reconnects_failed;
return FALSE;
}
+
+ /*
+ * Tell DBI, that dbh->disconnect should be called for this handle
+ */
+ DBIc_ACTIVE_on(imp_dbh);
+
++imp_dbh->stats.auto_reconnects_ok;
return TRUE;
}
@@ -4608,7 +4655,7 @@
#endif
-int parse_number(char *string, STRLEN len, char **end)
+static int parse_number(char *string, STRLEN len, char **end)
{
int seen_neg;
int seen_dec;
@@ -4626,57 +4673,58 @@
/* Skip leading whitespace */
while (*cp && isspace(*cp))
- cp++;
+ cp++;
for ( ; *cp; cp++)
{
- if ('-' == *cp)
- {
- if (seen_neg >= 2)
- {
- /*
- third '-'. number can contains two '-'.
- because -1e-10 is valid number */
- break;
- }
- seen_neg += 1;
- }
- else if ('.' == *cp)
+ if ('-' == *cp)
+ {
+ if (seen_neg >= 2)
{
- if (seen_dec)
- {
- /* second '.' */
- break;
- }
- seen_dec= 1;
+ /*
+ third '-'. number can contains two '-'.
+ because -1e-10 is valid number */
+ break;
}
- else if ('e' == *cp)
+ seen_neg += 1;
+ }
+ else if ('.' == *cp)
+ {
+ if (seen_dec)
{
- if (seen_e)
- {
- /* second 'e' */
- break;
- }
- seen_e= 1;
+ /* second '.' */
+ break;
}
- else if ('+' == *cp)
+ seen_dec= 1;
+ }
+ else if ('e' == *cp)
+ {
+ if (seen_e)
{
- if (seen_plus)
- {
- /* second '+' */
- break;
- }
- seen_plus= 1;
+ /* second 'e' */
+ break;
}
- else if (!isdigit(*cp))
+ seen_e= 1;
+ }
+ else if ('+' == *cp)
+ {
+ if (seen_plus)
{
- break;
+ /* second '+' */
+ break;
}
+ seen_plus= 1;
+ }
+ else if (!isdigit(*cp))
+ {
+ break;
+ }
}
*end= cp;
- if (cp - string < (int) len) {
+ /* length 0 -> not a number */
+ if (len == 0 || cp - string < (int) len) {
return -1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/dbdimp.h new/DBD-mysql-4.012/dbdimp.h
--- old/DBD-mysql-4.011/dbdimp.h 2009-04-13 14:10:40.000000000 +0200
+++ new/DBD-mysql-4.012/dbdimp.h 2009-06-19 03:54:47.000000000 +0200
@@ -12,7 +12,7 @@
* You may distribute this under the terms of either the GNU General Public
* License or the Artistic License, as specified in the Perl README file.
*
- * $Id: dbdimp.h 11150 2008-04-28 23:36:14Z capttofu $
+ * $Id: dbdimp.h 12860 2009-06-19 01:52:29Z capttofu $
*/
/*
@@ -143,9 +143,7 @@
MYSQL *pmysql;
int has_transactions; /* boolean indicating support for
- * transactions, currently always
- * TRUE for MySQL and always FALSE
- * for mSQL.
+ * transactions, currently always TRUE for MySQL
*/
bool auto_reconnect;
struct {
@@ -153,6 +151,7 @@
unsigned int auto_reconnects_failed;
} stats;
unsigned short int bind_type_guessing;
+ unsigned short int no_autocommit_cmd;
int use_mysql_use_result; /* TRUE if execute should use
* mysql_use_result rather than
* mysql_store_result
Files old/DBD-mysql-4.011/eg/._bug14979.pl and new/DBD-mysql-4.012/eg/._bug14979.pl differ
Files old/DBD-mysql-4.011/eg/._bug21028.pl and new/DBD-mysql-4.012/eg/._bug21028.pl differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/lib/DBD/mysql/GetInfo.pm new/DBD-mysql-4.012/lib/DBD/mysql/GetInfo.pm
--- old/DBD-mysql-4.011/lib/DBD/mysql/GetInfo.pm 2009-04-13 14:10:40.000000000 +0200
+++ new/DBD-mysql-4.012/lib/DBD/mysql/GetInfo.pm 2006-12-23 19:03:30.000000000 +0100
@@ -4,9 +4,9 @@
#
#
# Generated by DBI::DBD::Metadata
-# $Author: rlippan $ <-- the person to blame
-# $Revision: 1108 $
-# $Date: 2003-03-31 20:17:27 -0500 (Mon, 31 Mar 2003) $
+# $Author: capttofu $ <-- the person to blame
+# $Revision: 8435 $
+# $Date: 2006-12-23 14:03:49 -0500 (Sat, 23 Dec 2006) $
use strict;
use DBD::mysql;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/lib/DBD/mysql.pm new/DBD-mysql-4.012/lib/DBD/mysql.pm
--- old/DBD-mysql-4.011/lib/DBD/mysql.pm 2009-04-13 18:06:27.000000000 +0200
+++ new/DBD-mysql-4.012/lib/DBD/mysql.pm 2009-06-19 03:19:06.000000000 +0200
@@ -9,7 +9,7 @@
use Carp ();
@ISA = qw(DynaLoader);
-$VERSION = '4.011';
+$VERSION = '4.012';
bootstrap DBD::mysql $VERSION;
@@ -1301,6 +1301,31 @@
$dbh->{mysql_bind_type_guessing} = 1;
+=item mysql_no_autocommit_cmd
+
+This attribute causes the driver to not issue 'set autocommit'
+either through explicit or using mysql_autocommit(). This is
+particularly useful in the case of using MySQL Proxy.
+
+See the bug report:
+
+https://rt.cpan.org/Public/Bug/Display.html?id=46308
+
+As well as:
+
+http://bugs.mysql.com/bug.php?id=32464
+
+C<mysql_no_autocommit_cmd> can be turned on via
+
+ - through DSN
+
+ my $dbh= DBI->connect('DBI:mysql:test', 'username', 'pass',
+ { mysql_no_autocommit_cmd => 1})
+
+ - OR after handle creation
+
+ $dbh->{mysql_no_autocommit_cmd} = 1;
+
=head1 STATEMENT HANDLES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/t/51bind_type_guessing.t new/DBD-mysql-4.012/t/51bind_type_guessing.t
--- old/DBD-mysql-4.011/t/51bind_type_guessing.t 2009-04-13 17:59:40.000000000 +0200
+++ new/DBD-mysql-4.012/t/51bind_type_guessing.t 2009-06-19 03:36:22.000000000 +0200
@@ -18,7 +18,7 @@
plan skip_all =>
"ERROR: $DBI::errstr. Can't continue test";
}
-plan tests => 16;
+plan tests => 25;
ok $dbh->do("DROP TABLE IF EXISTS $table"), "drop table if exists $table";
@@ -62,4 +62,24 @@
cmp_ok $retref->[0][0], '==', 9999999999999998;
cmp_ok $retref->[1][0], '==', 9999999999999996;
+# checking varchars/empty strings/misidentification:
+$create= <<"EOTABLE";
+create table $table (
+ str varchar(80),
+ num bigint
+ )
+EOTABLE
+ok $dbh->do("DROP TABLE IF EXISTS $table"), "drop table if exists $table";
+ok $dbh->do($create), "creating table w/ varchar";
+my $sth3;
+ok $sth3= $dbh->prepare("insert into $table (str, num) values (?, ?)");
+ok $rows= $sth3->execute(52.3, 44);
+ok $rows= $sth3->execute('', ' 77');
+ok $rows= $sth3->execute(undef, undef);
+
+ok $sth3= $dbh->prepare("select * from $table limit ?");
+ok $rows= $sth3->execute(1);
+ok $rows= $sth3->execute(' 1');
+$sth3->finish();
+
ok $dbh->disconnect;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.011/t/mysql.mtest new/DBD-mysql-4.012/t/mysql.mtest
--- old/DBD-mysql-4.011/t/mysql.mtest 2009-04-13 14:31:52.000000000 +0200
+++ new/DBD-mysql-4.012/t/mysql.mtest 2009-06-19 03:48:09.000000000 +0200
@@ -1,13 +1,14 @@
{ local $opt = {
'mysql_config' => 'mysql_config',
+ 'bind-type-guessing' => 1,
'embedded' => '',
'ssl' => 0,
'nocatchstderr' => 0,
- 'libs' => '-rdynamic -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm',
+ 'libs' => '-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm',
'testhost' => '',
'nofoundrows' => 0,
+ 'cflags' => '-I/usr/local/mysql/include/mysql -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL',
'testdb' => 'test',
- 'cflags' => '-I/usr/local/mysql/include/mysql -DUNIV_LINUX',
'testuser' => 'root',
'testpassword' => 'root',
'testsocket' => ''
@@ -22,4 +23,5 @@
$::test_dsn .= ";mysql_socket=$::test_socket" if $::test_socket;
$::test_dsn .= ":$::test_host" if $::test_host;
$::test_dsn .= ":$::test_port" if $::test_port;
+$::test_dsn .= ";mysql_bind_type_guessing=1";
} 1;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-DBD-ODBC for openSUSE:Factory
checked in at Mon Aug 3 19:37:57 CEST 2009.
--------
--- perl-DBD-ODBC/perl-DBD-ODBC.changes 2009-05-18 17:55:10.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-DBD-ODBC/perl-DBD-ODBC.changes 2009-08-03 16:41:28.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 3 16:09:21 CEST 2009 - anicka(a)suse.cz
+
+- update to 1.22
+ * bugfixes
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
DBD-ODBC-1.21.tar.bz2
perl-DBD-ODBC-1.21-Makefile.diff
New:
----
DBD-ODBC-1.22.tar.bz2
perl-DBD-ODBC-1.22-Makefile.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-DBD-ODBC.spec ++++++
--- /var/tmp/diff_new_pack.9bA1hM/_old 2009-08-03 19:37:50.000000000 +0200
+++ /var/tmp/diff_new_pack.9bA1hM/_new 2009-08-03 19:37:50.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-DBD-ODBC (Version 1.21)
+# spec file for package perl-DBD-ODBC (Version 1.22)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -27,7 +27,7 @@
Requires: perl-DBI unixODBC
Requires: perl = %{perl_version}
Summary: Perl DBD module for interfacing with ODBC databases
-Version: 1.21
+Version: 1.22
Release: 1
Source: DBD-ODBC-%{version}.tar.bz2
Patch: %{name}-%{version}-Makefile.diff
++++++ DBD-ODBC-1.21.tar.bz2 -> DBD-ODBC-1.22.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/Changes new/DBD-ODBC-1.22/Changes
--- old/DBD-ODBC-1.21/Changes 2009-04-27 18:19:34.000000000 +0200
+++ new/DBD-ODBC-1.22/Changes 2009-06-10 15:16:40.000000000 +0200
@@ -2,7 +2,7 @@
DBD::ODBC::Changes - Log of significant changes to the DBD::ODBC
-(As of $LastChangedDate: 2009-04-20 16:21:32 +0100 (Mon, 20 Apr 2009) $ $Revision: 10667 $)
+(As of $LastChangedDate: 2009-06-10 14:16:37 +0100 (Wed, 10 Jun 2009) $ $Revision: 10667 $)
=cut
@@ -40,9 +40,48 @@
http://groups.google.com/group/perl.dbd.pg.changes/browse_thread/thread/820…
http://www.nntp.perl.org/group/perl.dbi.users/2008/10/msg33322.html
Add a perlcritic test - see DBD::Pg
+ Why doesn't http://www.presicient.com/dbidocs/ display DBD::ODBC docs
+ properly.
=head1 CHANGES
+=head2 Changes in DBD::ODBC 1.22 June 10, 2009
+
+Fixed bug which led to "Use of uninitialized value in subroutine
+entry" warnings when writing a NULL into a NVARCHAR with a
+unicode-enabled DBD::ODBC. Thanks to Jirka Novak and Pavel Richter who
+found, reported and patched a fix.
+
+Fixed serious bug in unicode_helper.c for utf16_len which I'm ashamed to say
+was using an unsigned short to return the length. This meant you could
+never have UTF16 strings of more than ~64K without risking serious
+problems. The DBD::ODBC test code actually got a
+
+*** glibc detected *** /usr/bin/perl: double free or corruption
+(out): 0x406dd008 ***
+
+If you use a UNICODE enabled DBD::ODBC (the default on Windows) and
+unicode strings larger than 64K you should definitely upgrade now.
+
+=head2 Changes in DBD::ODBC 1.21_1 June 2, 2009
+
+Fixed bug referred to in rt 46597 reported by taioba and identified by
+Tim Bunce. In Calls to bind_param for a given statement handle if you
+specify a SQL type to bind as, this should be "sticky" for that
+parameter. That means if you do:
+
+$sth->bind_param(1, $param, DBI::SQL_LONGVARCHAR)
+
+and follow it up with execute calls that also specify the parameter:
+
+$sth->execute("a param");
+
+then the parameter should stick with the SQL_LONGVARCHAR type and not
+revert to the default parameter type. The DBI docs (from 1.609)
+make it clear the parameter type is sticky for the duration of the
+statement but some DBDs allow the parameter to be rebound with a
+different type - DBD::ODBC is one of those drivers.
+
=head2 Changes in DBD::ODBC 1.21 April 27, 2009
Change 02simple test to output Perl, DBI and DBD::ODBC versions.
@@ -56,6 +95,8 @@
Added FAQ entry about SQL Server and calling procedures with named
parameters out of order.
+Added test_results.txt containing some supplied make test results.
+
=head2 Changes in DBD::ODBC 1.20 April 20, 2009
Fix bug in handling of SQL_WLONGVARCHAR when not built with unicode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/FAQ new/DBD-ODBC-1.22/FAQ
--- old/DBD-ODBC-1.21/FAQ 2009-04-27 18:08:33.000000000 +0200
+++ new/DBD-ODBC-1.22/FAQ 2009-06-02 17:56:57.000000000 +0200
@@ -8,7 +8,7 @@
=head1 VERSION
-($Revision: 12168 $)
+($Revision: 12806 $)
=head1 QUESTIONS
@@ -554,6 +554,74 @@
etc. This can lead to data truncation errors and all sort of other
problems it is impossible for DBD::ODBC spot or workaround.
+=head2 Why do I get "Numeric value out of range" when binding dates in Oracle?
+
+Also see "Why do I get "Datetime field overflow" when attempting to insert a
+date into Oracle?".
+
+Here is some example code binding dates; some work, some don't, see comments.
+
+ use DBI;
+ use strict;
+
+ # table is "create table martin (a date, b int)"
+
+ my $h = DBI->connect;
+
+ $h->do(q{alter session set nls_date_format='DD-MON-YY'});
+
+ my $s = $h->prepare(q{select * from v$nls_parameters where parameter = 'NLS_DATE_FORMAT'});
+ $s->execute;
+ print DBI::dump_results($s);
+
+ my $date = '30-DEC-99';
+ my $dateodbc = qq/{ d '1999-12-30'}/;
+
+ # the following works ok - resulting in 2099-12-30 being inserted
+ $h->do(qq{insert into martin values ('$date', 1)});
+
+ # the following works resulting in 1999-12-30 being inserted
+ $h->do(qq{insert into martin values ($dateodbc, 2)});
+
+ # fails
+ eval {
+ my $s = $h->prepare(q{insert into martin values(?,3)});
+ $s->bind_param(1, $date);
+ # fails
+ # Numeric value out of range: invalid character in date/time string (SQL-22003)
+ $s->execute;
+ };
+
+ # works resulting in 2099-12-30 being inserted
+ eval {
+ my $s = $h->prepare(q{insert into martin values(?,4)});
+ $s->bind_param(1, $date, DBI::SQL_VARCHAR);
+ $s->execute;
+ };
+
+ # works resulting in 1999-12-30 being inserted
+ eval {
+ my $s = $h->prepare(q{insert into martin values(?,5)});
+ $s->bind_param(1, $dateodbc);
+ $s->execute;
+ };
+
+In general, when using an ODBC driver you should use the ODBC syntax
+for dates, times and timestamps as those are the only formats an ODBC
+has to support.
+
+In the above case with Oracle, the date parameter is described as a
+SQL_TYPE_DATE SQL type so by default DBD::ODBC binds your parameter as
+a SQL_TYPE_DATE. If you use '30-DEC-99' then that means the C type is
+SQL_CHAR and the SQL type is SQL_TYPE_DATE so the driver is forced to
+parse the date before sending it to Oracle (that would mean knowing
+what your NLS_DATE_FORMAT is and it would also mean knowing all the
+magic special characters Oracle can use to define date formats).
+
+If you override the bind type to SQL_VARCHAR then the driver sees
+SQL_CHAR => SQL_VARCHAR, nothing to do and hence Oracle itself does
+the translation - that is why the SQL_VARCHAR works.
+
=head1 AUTHOR
Parts of this document were written by Tim Bunce,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/MANIFEST new/DBD-ODBC-1.22/MANIFEST
--- old/DBD-ODBC-1.21/MANIFEST 2009-04-27 18:22:14.000000000 +0200
+++ new/DBD-ODBC-1.22/MANIFEST 2009-06-10 14:18:26.000000000 +0200
@@ -98,5 +98,7 @@
t/rt_39841.t
t/rt_39897.t
t/rt_43384.t
+t/rt_46597.t
+t/rt_null_nvarchar.t
unicode_helper.c
unicode_helper.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/META.yml new/DBD-ODBC-1.22/META.yml
--- old/DBD-ODBC-1.21/META.yml 2009-04-27 18:20:02.000000000 +0200
+++ new/DBD-ODBC-1.22/META.yml 2009-06-10 14:14:30.000000000 +0200
@@ -1,7 +1,7 @@
--- #YAML:1.0
name: DBD-ODBC
abstract: ODBC DBD for Perl DBI
-version: 1.21
+version: 1.22
version_from: ODBC.pm
author:
- Tim Bunce
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/ODBC.pm new/DBD-ODBC-1.22/ODBC.pm
--- old/DBD-ODBC-1.21/ODBC.pm 2009-04-27 18:19:53.000000000 +0200
+++ new/DBD-ODBC-1.22/ODBC.pm 2009-06-10 14:20:42.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: ODBC.pm 12674 2009-04-07 09:04:09Z mjevans $
+# $Id: ODBC.pm 12819 2009-06-10 12:20:40Z mjevans $
#
# Copyright (c) 1994,1995,1996,1998 Tim Bunce
# portions Copyright (c) 1997-2004 Jeff Urlwin
@@ -12,7 +12,7 @@
require 5.006;
-$DBD::ODBC::VERSION = '1.21';
+$DBD::ODBC::VERSION = '1.22';
{
package DBD::ODBC;
@@ -23,7 +23,7 @@
@ISA = qw(Exporter DynaLoader);
- # my $Revision = substr(q$Id: ODBC.pm 12674 2009-04-07 09:04:09Z mjevans $, 13,2);
+ # my $Revision = substr(q$Id: ODBC.pm 12819 2009-06-10 12:20:40Z mjevans $, 13,2);
require_version DBI 1.21;
@@ -1216,6 +1216,29 @@
be made optional and there were no basic objections but it has not
made it's way into the pod yet.
+=head3 Sticky Parameter Types
+
+The DBI specification post 1.608 says in bind_param:
+
+ The data type is 'sticky' in that bind values passed to execute()
+ are bound with the data type specified by earlier bind_param()
+ calls, if any. Portable applications should not rely on being able
+ to change the data type after the first C<bind_param> call.
+
+DBD::ODBC does allow a parameter to be rebound with another data type as
+ODBC inherently allows this. Therefore you can do:
+
+ # parameter 1 set as a SQL_LONGVARCHAR
+ $sth->bind_param(1, $data, DBI::SQL_LONGVARCHAR);
+ # without the bind above the $data parameter would be either a DBD::ODBC
+ # internal default or whatever the ODBC driver said it was but because
+ # parameter types are sticky, the type is still SQL_LONGVARCHAR.
+ $sth->execute($data);
+ # change the bound type to SQL_VARCHAR
+ # some DBDs will ignore the type in the following, DBD::ODBC does not
+ $sth->bind_param(1, $data, DBI::SQL_VARCHAR);
+
+
=head2 Unicode
The ODBC specification supports wide character versions (a postfix of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/dbdimp.c new/DBD-ODBC-1.22/dbdimp.c
--- old/DBD-ODBC-1.21/dbdimp.c 2009-04-27 17:45:48.000000000 +0200
+++ new/DBD-ODBC-1.22/dbdimp.c 2009-06-10 14:20:42.000000000 +0200
@@ -1,4 +1,4 @@
-/* $Id: dbdimp.c 12710 2009-04-20 15:21:32Z mjevans $
+/* $Id: dbdimp.c 12819 2009-06-10 12:20:40Z mjevans $
*
* portions Copyright (c) 1994,1995,1996,1997 Tim Bunce
* portions Copyright (c) 1997 Thomas K. Wenrich
@@ -23,6 +23,9 @@
* and some internal information from the DBI.
* 4 - As above, adding more detailed information from the driver.
* 5 to 15 - As above but with more and more obscure information.
+ *
+ * SV Manipulation Functions
+ * http://perl.active-venture.com/pod/perlapi-svfunctions.html
*/
#include "ODBC.h"
@@ -3146,9 +3149,18 @@
" Need to modify phs->sv in place: old length = %i\n",
value_len);
}
- SV_toWCHAR(phs->sv); /* may modify SvPV(phs->sv), ... */
- /* ... so phs->sv_buf must be updated */
- phs->sv_buf=SvPV(phs->sv,value_len);
+ /* Convert the sv in place to UTF-16 encoded characters
+ NOTE: the SV_toWCHAR may modify SvPV(phs->sv */
+ if (SvOK(phs->sv)) {
+ SV_toWCHAR(phs->sv);
+ /* get new buffer and length */
+ phs->sv_buf = SvPV(phs->sv, value_len);
+ } else { /* it is undef */
+ /* need a valid buffer at least */
+ phs->sv_buf = SvPVX(phs->sv);
+ value_len = 0;
+ }
+
if (DBIc_TRACE(imp_sth, 0, 0, 8)) {
TRACE1(imp_dbh,
" Need to modify phs->sv in place: new length = %i\n",
@@ -3423,7 +3435,7 @@
(phs->strlen_or_ind < 0) &&
(phs->param_size == 0)) {
column_size = 0;
- }
+ }
if (DBIc_TRACE(imp_sth, 0, 0, 5)) {
PerlIO_printf(
DBIc_LOGPIO(imp_dbh),
@@ -3489,9 +3501,11 @@
if (DBIc_TRACE(imp_sth, 0, 0, 4)) {
PerlIO_printf(
DBIc_LOGPIO(imp_dbh),
- "+dbd_bind_ph(%p, %s, value='%.200s', attribs=%s, sql_type=%ld, is_inout=%d, maxlen=%ld\n",
+ "+dbd_bind_ph(%p, name=%s, value='%.200s', attribs=%s, "
+ "sql_type=%ld(%s), is_inout=%d, maxlen=%ld\n",
sth, name, SvOK(newvalue) ? SvPV_nolen(newvalue) : "undef",
- attribs ? SvPV_nolen(attribs) : "", sql_type, is_inout, maxlen);
+ attribs ? SvPV_nolen(attribs) : "", sql_type,
+ S_SqlTypeToString(sql_type), is_inout, maxlen);
}
/* the problem with the code below is we are getting SVt_PVLV when
@@ -3517,10 +3531,9 @@
croak("Can't bind unknown placeholder '%s'", name);
phs = (phs_t*)SvPVX(*phs_svp); /* placeholder struct */
- phs->requested_type = sql_type; /* save type requested */
-
if (phs->sv == &sv_undef) { /* first bind for this placeholder */
phs->value_type = SQL_C_CHAR; /* default */
+ phs->requested_type = sql_type; /* save type requested */
phs->maxlen = maxlen; /* 0 if not inout */
phs->is_inout = is_inout;
@@ -3532,7 +3545,14 @@
imp_sth->out_params_av = newAV();
av_push(imp_sth->out_params_av, SvREFCNT_inc(*phs_svp));
}
+ } else if (sql_type) {
+ /* parameter attributes are supposed to be sticky until overriden
+ so only replace requested_type if sql_type specified.
+ See https://rt.cpan.org/Ticket/Display.html?id=46597 */
+ phs->requested_type = sql_type; /* save type requested */
}
+
+
/* check later rebinds for any changes */
/*
* else if (is_inout || phs->is_inout) {
@@ -5227,7 +5247,7 @@
imp_dbh->driver_type = DT_DONT_CARE;
}
}
-
+
if (DBIc_TRACE(imp_dbh, 0x04000000, 0, 0))
TRACE1(imp_dbh, "DRIVER_NAME = %s\n", imp_dbh->odbc_driver_name);
@@ -5302,6 +5322,8 @@
/* can't find stricmp on my Linux, nor strcmpi. must be a
* portable way to do this*/
if (!strcmp(imp_dbh->odbc_dbname, "Microsoft SQL Server")) {
+ if (DBIc_TRACE(imp_dbh, 0x04000000, 0, 0))
+ TRACE0(imp_dbh, "Deferring Binding\n");
imp_dbh->odbc_defer_binding = 1;
}
} else {
@@ -5331,6 +5353,8 @@
/* check to see if SQLDescribeParam is supported */
rc = SQLGetFunctions(imp_dbh->hdbc, SQL_API_SQLDESCRIBEPARAM, &supported);
if (SQL_SUCCEEDED(rc)) {
+ if (DBIc_TRACE(imp_dbh, 0x04000000, 0, 0))
+ TRACE1(imp_dbh, "SQLDescribeParam supported: %d\n", supported);
imp_dbh->odbc_sqldescribeparam_supported = supported ? 1 : 0;
} else {
imp_dbh->odbc_sqldescribeparam_supported = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/dbdimp.h new/DBD-ODBC-1.22/dbdimp.h
--- old/DBD-ODBC-1.21/dbdimp.h 2009-04-20 17:21:34.000000000 +0200
+++ new/DBD-ODBC-1.22/dbdimp.h 2009-06-02 17:56:57.000000000 +0200
@@ -1,12 +1,12 @@
/*
- * $Id: dbdimp.h 12710 2009-04-20 15:21:32Z mjevans $
+ * $Id: dbdimp.h 12806 2009-06-02 15:56:56Z mjevans $
* portions Copyright (c) 2007-2008 Martin J. Evans
* Copyright (c) 1997-2001 Jeff Urlwin
* portions Copyright (c) 1997 Thomas K. Wenrich
* portions Copyright (c) 1994,1995,1996 Tim Bunce
* portions Copyright (c) 1997-2001 Jeff Urlwin
* portions Copyright (c) 2001 Dean Arnold
- * portions Copyright (c) 2007-2008 Martin J. Evans
+ * portions Copyright (c) 2007-2009 Martin J. Evans
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the Perl README file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/t/02simple.t new/DBD-ODBC-1.22/t/02simple.t
--- old/DBD-ODBC-1.21/t/02simple.t 2009-04-27 18:21:07.000000000 +0200
+++ new/DBD-ODBC-1.22/t/02simple.t 2009-05-05 15:07:47.000000000 +0200
@@ -1,5 +1,5 @@
#!perl -w -I./t
-# $Id: 02simple.t 12667 2009-04-02 10:54:56Z mjevans $
+# $Id: 02simple.t 12744 2009-05-05 13:07:46Z mjevans $
use Test::More;
use strict;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/t/12blob.t new/DBD-ODBC-1.22/t/12blob.t
--- old/DBD-ODBC-1.21/t/12blob.t 2009-04-21 15:22:07.000000000 +0200
+++ new/DBD-ODBC-1.22/t/12blob.t 2009-05-05 15:07:47.000000000 +0200
@@ -1,5 +1,5 @@
#!/usr/bin/perl -w -I./t
-# $Id: 12blob.t 12710 2009-04-20 15:21:32Z mjevans $
+# $Id: 12blob.t 12744 2009-05-05 13:07:46Z mjevans $
#
# blob tests
# currently tests you can insert a clob with various odbc_putdata_start settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/t/rt_39897.t new/DBD-ODBC-1.22/t/rt_39897.t
--- old/DBD-ODBC-1.21/t/rt_39897.t 2009-03-12 12:28:14.000000000 +0100
+++ new/DBD-ODBC-1.22/t/rt_39897.t 2009-06-10 14:20:42.000000000 +0200
@@ -1,11 +1,11 @@
#!/usr/bin/perl -w -I./t
-# $Id: rt_39897.t 12603 2009-03-12 11:28:12Z mjevans $
+# $Id: rt_39897.t 12819 2009-06-10 12:20:40Z mjevans $
#
# test for rt 39897. DBD::ODBC 1.17 was accidentally changed to apply
# LongReadLen to SQL_VARCHAR columns. 1.16 and earlier only use LongTruncOk
# and LongReadLen on long columns e.g. SQL_LONGVARCHAR. As a result, if you
# had a table with a varchar(N) where N > 80 (80 being the default for
-# LongReadLen) and moved from 1.16 to 1.17 then yopu'd suddenly get data
+# LongReadLen) and moved from 1.16 to 1.17 then you'd suddenly get data
# truncated errors for rows where the SQL_VARCHAR was > 80 chrs.
#
use Test::More;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/t/rt_46597.t new/DBD-ODBC-1.22/t/rt_46597.t
--- old/DBD-ODBC-1.21/t/rt_46597.t 1970-01-01 01:00:00.000000000 +0100
+++ new/DBD-ODBC-1.22/t/rt_46597.t 2009-06-10 14:20:42.000000000 +0200
@@ -0,0 +1,83 @@
+#!/usr/bin/perl -w -I./t
+# $Id: rt_46597.t 12819 2009-06-10 12:20:40Z mjevans $
+use Test::More;
+use strict;
+
+$| = 1;
+
+my $has_test_nowarnings = 1;
+eval "require Test::NoWarnings";
+$has_test_nowarnings = undef if $@;
+my $tests = 7;
+$tests += 1 if $has_test_nowarnings;
+plan tests => $tests;
+
+use DBI qw(:sql_types);
+use_ok('ODBCTEST'); # 1
+use_ok('Data::Dumper'); # 2
+
+my $dbh;
+
+BEGIN {
+ plan skip_all => "DBI_DSN is undefined"
+ if (!defined $ENV{DBI_DSN});
+}
+END {
+ if ($dbh) {
+ eval {
+ local $dbh->{PrintWarn} = 0;
+ local $dbh->{PrintError} = 0;
+ $dbh->do(q/drop table PERL_DBD_rt_46597/);
+ };
+ $dbh->disconnect;
+ }
+ Test::NoWarnings::had_no_warnings()
+ if ($has_test_nowarnings); # 8
+}
+
+$dbh = DBI->connect();
+unless($dbh) {
+ BAIL_OUT("Unable to connect to the database $DBI::errstr\nTests skipped.\n");
+ exit 0;
+}
+my $sth;
+$dbh->{RaiseError} = 1;
+my $dbname = $dbh->get_info(17); # DBI::SQL_DBMS_NAME
+SKIP: {
+ skip "Microsoft Access tests not supported using $dbname", 5
+ unless ($dbname =~ /Access/i);
+
+ eval {
+ local $dbh->{PrintWarn} = 0;
+ local $dbh->{PrintError} = 0;
+ $dbh->do(q/drop table PERL_DBD_rt_46597/);
+ };
+ pass('dropped test table'); # 3
+
+ eval {$dbh->do(q{CREATE TABLE PERL_DBD_RT_46597 (Sequence memo)})};
+
+ my $data = "GAAGCGGGATGAGCTCAAACTTAAAATCTCTGTTGCTTGCAACAGCGAATTGTAGTCTCGAGAAGCGTTTTCAAGGCGGATGCACAGTGCTCAAGTTGCTTGGAACGGCACATCGTAGAGGGTGACAATCCCGTACGTGGCACTGTGTACTGTTCACGATTCGCTTTCTATGAGTCGGGTTGCTTGGGAATGCAGCCCAAAATGGGAGGTAAACTCCTTCTAAAGCTAAATATTGGCACGAGACCGATAGCGAACAAGTACCGTGAGGGAAAGATGAAAAGCACTTTGAAAAGAAAGTTAATAGTACGTGAAACCGTTAGTAGGGAAGCGCATGGAATTAGCAATACACTGTCGAGATTCAGGCGGGCGGCGATTGGTACGGCTGTTGTACGGATCTGAATGGACCGTCGGTGGTCGTCACTGGTTGCTGCCTGTTGCATTTCCCGGCAGTGTTCGTCAACAGGTGTTGGAACCGAGCGATAAGCCCCGCAGGAAGGTGGCTGGCTTCGGCTAGTGTTATAGCCTGTGGTGTGCGAGCTCGGGTCCGACAGAGGGGTTGCGGCACATGCTCTTTTGGGCTGGTCTCGTCTCTCTCGGCTGGTTGTCGACTATGGCGGACTGCGTGCAGTGCGCTTGAACTGCTGCCGGTCGTCGAGGGGCATCGGACACACATTGTGCCAAGGTTGTTGGCGGTCATATGGTTTCATACGACCCGTCTTGAAACACGGACCAAGGAGTCTAACATGTGTGCGAGTCTTTGGGTGATCGAAACCCGCAGGCACAATGAAAGTAAAGGCTGCTTGCAGCTGAAGTGAGATCTCCCGGTCTCGGCCGGGGGCGCATCATTGACCGACCTATTCTACTCCTAGAAAGGTTTGAGTAAGAGCACATCTGTTGGGACCCGAAAGATGGTGAACTATGCTTGAGTAGGGCGAAGCCAGAGGAAACTCTGGTGGAGGCTCGTAGCGATTCTGACGTGCAAATCGATCGTCAAACTTGAGTATAGGGGCGAAAGACTAATCGAACCATCTAGTAGCTGGTTCCCTCCGAAGTTTCCCTTAGGATAGCTGGAACTCGGAACAGTTTTATCAGGTAAAGCGAATGATTAGAGGTCTTAGGATTGAAACAATCTTAACCTATTCTCAAACTTTAAATTGGTAAGAAGCCCGGCTTGCTTAACTGAAGCAGGGCACAGAATGAGAGTTCTTAGTGGGCCATTTTTGGTAAGCAGAACTGGCGATGCGGGATGAACCGAACGCTGAGTTAAGGCGTCTAAATCGACGCTCATCAGACCCCACAAAAGGTGTTGGTTGATCTAGACAGCAGGACGGTGGCCATGGAAGTCGGAATCCGCTAAGGAGTGTGTAACAACCCACCTGCCGAATCAACTAGCCCTGAAAATGGATGACGCTCAAGCGTCGTGCCTATACTCAGCCGTCAACGTAAATAGCGAAGCGTTGACGAGTAGGAGGGCGTGGGGATCGTGACGCAGCCTTTGGCGTGAGCCTGGGTGAAACGGTCTCTAGTGAAGATCTTGGTGGTAGTAGCAAATATTCAAATGAGAACTTTGAAGACCGAAGTGGAGAAAGGTTCCATGTGAACAGCAGTTGGACATGGGTTAGTCGATCCTAAGAGATAGGGAAACTCCGTTTCAAAGTGTCCGATCTTGGACCGTTTATCGAAAGGGAATCGGGTTAATATTCCCGAACCAGAACGCGGATATTCTAGCCTCTCGGGGTTAGATGTGCGGTAACGCAACTGAACTCGGAGACGTCGGCAGGGGCCCTGGGAAGAGTTCTCTTTTCTTGTTAACGACCTGACACCATGGAATCTGATTGCCAGGAGATATGGTTTGATGGTCGGTAAAGCACCACACTTCTTGTGGTGTCCGGTGCGCTCCTGAAGGCCCTTGAAAATCCGAGGGAAAGATTGATTTTCGCGTCTGTTCGTACTCATAACCGCAGCAGGTCTCCAAGGTGAGCAGCCTCTGGTCGATAGAACAATGTAGGTAAGGGAAGTCGGCAAAATAGATCCGTAACTTCGGGAAAAGGATTGGCTCTAAGGATTGGGTCTGTCGGGCTGAGACTTGAAGCGGGCGGCACCGACTCGGACTGGCTGTGGCCTCTCGGGGCTATGGTTGGACTGGGAAGGAACTGCGCGTGGATTGGCCCAGCTATGCTCGCAAGAGCAGTTCGGCAGGCAATTAACAATCAACTTAGAACTGGTACGGACAAGGGGAATCCGACTGTTTAATTAAAACAAAGCATTGCGATGGCCGGAAACGGTGTTGACGCAATGTGATTTCTGCCCAGTGCTCTGAATGTCAAAGTGAAGAAATTCAACCAAGCGCGGGTAAACGGCGGGAGTAACTATGACTCTCTTAAGGTAGCCAAATGCCTCGTCATCTAATTAGTGACGCGCATGAATGGATTAACGAGATTCCCACTGTCCCTATCTACTATCTAGCGAAACCACAGCCAAGGGAACGGGCTTGGCAAAATCAGCGGGGAAAGAAGACCCTGTTGAGCTTGACTCTAGTCTGACTCTGTGAAAAGACATAGGAGGTGTAGAATAGGTGGGAGCAGCAATGCAACAGTGAAATACCACTACTCTTATAGTTTTTTTACTTATTCGATTGAGCGGAAGCGAGCTTCACGGCTCATTTTCTAGAATTAAGGCCCCATTGGCGGGTCGATCCGTGTCGAAGACACTGTCAGGTTGGGAGTTTGGCTGGGGCGGCACATCTGTCAAATGATAACGCAGGTGTCCTAAGGTGAGCTCAATGAGAACGGAAATCTCATGTAGAACAAAAGGGTAAAAGCTCACTTGATTTTGATTTTCAGTATGAATACAAACTGTGAAAGCATGGCCTATCGATCCTTTAGTCTTTAGGAGTTTTAAGCTAGAGGTGTCAGAAAAGTTACCACAGGGATAACTGGCTTGTGGCAGCCAAGCGTTCATAGCGACGTTGCTTTTTGATCCTTCGATGTCGGCTCTTCCTATCATTGTGAAGCAGAATTCACCAAGTGTTGGATTGTTCACCCACTAATAGGGAACGTGAGCTGGGTTTAGACCGTCGTGAGACAGGTTAGTTTTACCCTACTGATGAAGTGTTGTTGCAATAGTAATTCTGCTCAGTACGAGAGGAACCGCAGATTCAGACAATTGGCATTTGCACTTGCTTGAAAAGGCAATGGTG";
+
+ my $ev = $@;
+ ok(!$ev, 'created test table PERL_DBD_rt_46597'); # 4
+ SKIP: {
+ skip 'failed to create test table', 3 if $ev;
+
+
+ my $sth = $dbh->prepare(
+ q{INSERT INTO TestTable values (?)}) || die ($DBI::errstr);
+ ok($sth, 'insert prepared'); # 5
+
+ SKIP: {
+ skip 'failed to prepare', 2 if !$sth;
+
+ ok($sth->bind_param(1, $data, DBI::SQL_LONGVARCHAR),
+ 'parameter bound'); # 6
+ eval {$sth->execute($data)};
+ $ev = $@;
+ ok(!$ev, "inserted into test table with sticky parameter type"); # 7
+ };
+ };
+};
+
+exit 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/t/rt_null_nvarchar.t new/DBD-ODBC-1.22/t/rt_null_nvarchar.t
--- old/DBD-ODBC-1.21/t/rt_null_nvarchar.t 1970-01-01 01:00:00.000000000 +0100
+++ new/DBD-ODBC-1.22/t/rt_null_nvarchar.t 2009-06-10 14:20:42.000000000 +0200
@@ -0,0 +1,118 @@
+#!/usr/bin/perl -w -I./t
+# $Id: rt_null_nvarchar.t 12819 2009-06-10 12:20:40Z mjevans $
+#
+# test varbinary(MAX) and varchar(MAX) types in SQL Server
+# Mostly rt_38977 with additional:
+# test you can insert NULL into VARxxx(MAX) types.
+#
+use Test::More;
+use strict;
+$| = 1;
+
+my $has_test_nowarnings = 1;
+eval "require Test::NoWarnings";
+$has_test_nowarnings = undef if $@;
+my $tests = 8;
+$tests += 1 if $has_test_nowarnings;
+plan tests => $tests;
+
+# can't seem to get the imports right this way
+use DBI qw(:sql_types);
+
+my $dbh;
+
+BEGIN {
+ if (!defined $ENV{DBI_DSN}) {
+ plan skip_all => "DBI_DSN is undefined";
+ }
+}
+
+END {
+ if ($dbh) {
+ eval {
+ local $dbh->{PrintWarn} = 0;
+ local $dbh->{PrintError} = 0;
+ $dbh->do(q/drop table PERL_DBD_rt_NLVC/);
+ };
+ }
+ Test::NoWarnings::had_no_warnings()
+ if ($has_test_nowarnings);
+}
+
+$dbh = DBI->connect();
+unless($dbh) {
+ BAIL_OUT("Unable to connect to the database $DBI::errstr\nTests skipped.\n");
+ exit 0;
+}
+$dbh->{RaiseError} = 1;
+
+my $dbms_name = $dbh->get_info(17);
+ok($dbms_name, "got DBMS name: $dbms_name");
+my $dbms_version = $dbh->get_info(18);
+ok($dbms_version, "got DBMS version: $dbms_version");
+my $driver_name = $dbh->get_info(6);
+ok($driver_name, "got DRIVER name: $driver_name");
+my $driver_version = $dbh->get_info(7);
+ok($driver_version, "got DRIVER version $driver_version");
+
+my ($ev, $sth);
+
+SKIP: {
+ skip "not SQL Server", 6 if $dbms_name !~ /Microsoft SQL Server/;
+ skip "Easysoft OOB", 6 if $driver_name =~ /esoobclient/;
+ my $major_version = $dbms_version;
+ $major_version =~ s/^(\d+)\..*$/$1/;
+ #diag("Major Version: $major_version\n");
+ skip "SQL Server version too old", 6 if $major_version < 9;
+
+ eval {
+ local $dbh->{PrintWarn} = 0;
+ local $dbh->{PrintError} = 0;
+ $dbh->do('drop table PERL_DBD_rt_NLVC');
+ };
+
+ eval {
+ $dbh->do('create table PERL_DBD_rt_NLVC (a NVARCHAR(MAX) NULL)');
+ };
+ $ev = $@;
+ ok(!$ev, 'create test table with nvarchar(max)');
+
+ SKIP: {
+ skip "Failed to create test table", 2 if ($ev);
+ eval {
+ $sth = $dbh->prepare('INSERT into PERL_DBD_rt_NLVC VALUES (?)');
+ };
+ $ev = $@;
+ ok($sth && !$@, "prepare insert");
+ SKIP: {
+ skip "Failed to prepare", 2 if ($ev);
+ my $x = 'x' x 500000;
+ eval {
+ $sth->execute($x);
+ };
+ $ev = $@;
+ ok(!$ev, "execute insert");
+ if ($ev) {
+ diag("Execute for insert into varchar(max) failed with $ev");
+ diag(q/Some SQL Server drivers such as the native client 09.00.1399 / .
+ q/driver fail this test with a HY104, "Invalid precision error". / .
+ qq/You have driver $driver_name at version $driver_version. / .
+ q/There is a free upgrade from Microsoft of the native client driver /.
+ q/to 10.00.1600 which you will need if you intend to insert / .
+ q/into varchar(max) columns./);
+ }
+ eval {
+ $sth->execute(undef);
+ };
+ ok(!$ev, 'insert NULL into VARCHAR(MAX)') ||
+ diag($ev);
+ };
+ };
+ eval {
+ local $dbh->{PrintWarn} = 0;
+ local $dbh->{PrintError} = 0;
+ $dbh->do('drop table PERL_DBD_rt_NLVC');
+ };
+
+};
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/test_results.txt new/DBD-ODBC-1.22/test_results.txt
--- old/DBD-ODBC-1.21/test_results.txt 2009-04-27 18:21:38.000000000 +0200
+++ new/DBD-ODBC-1.22/test_results.txt 2009-04-28 17:37:59.000000000 +0200
@@ -49,3 +49,59 @@
All tests successful, 18 subtests skipped.
Files=19, Tests=427, 11 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
======================================================================
+t/01base................ok
+t/02simple..............ok 1/65#
+# Perl 5.7.8
+# osname=linux, osvers=2.6.9-22.0.2.elsmp, archname=i686-linux
+# Using DBI 1.607
+# Using DBD::ODBC 1.21
+# Using DBMS_NAME 'Microsoft SQL Server'
+# Using DBMS_VER '09.00.4035'
+# Using DRIVER_NAME 'esoobclient'
+# Using DRIVER_VER '02.00.0000'
+# odbc_has_unicode 0
+t/02simple..............ok
+t/03dbatt...............ok 1/29#
+# N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names
+for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT
+t/03dbatt...............ok
+t/05meth................ok
+t/07bind................ok
+t/08bind2...............ok
+t/09multi...............ok
+t/10handler.............ok
+t/12blob................ok
+t/20SqlServer...........ok 54/65# DBD::ODBC::st execute failed:
+[unixODBC][Microsoft][ODBC SQL Server Driver]Connection is busy with
+results for another hstmt (SQL-HY000) at t/20SqlServer.t line 202.
+# DSN=dbi:ODBC:DSN=XXX;MARS_Connection=yes;
+#
+# NOTE: You failed this test because your SQL Server driver
+# is too old to handle the MARS_Connection attribute. This test cannot
+# easily skip this test for old drivers as there is no definite SQL Server
+# driver version it can check.
+#
+t/20SqlServer...........ok
+ 1/65 skipped: WARNING: driver does NOT support MARS_Connection
+t/30Oracle..............ok
+ 3/5 skipped: Oracle tests not supported using Microsoft SQL Server
+t/40UnicodeRoundTrip....ok
+ 61/62 skipped: Unicode-specific tests disabled - not a unicode build
+t/41Unicode.............ok
+ 54/55 skipped: Unicode-specific tests disabled - not a unicode build
+t/pod-coverage..........ok 1/1# Test::Pod::Coverage 1.04 required for
+testing POD coverage
+t/pod-coverage..........ok
+t/pod...................ok
+ 3/3 skipped: Test::Pod 1.00 required for testing POD
+t/rt_38977..............ok
+ 6/11 skipped: Easysoft OOB
+t/rt_39841..............ok
+ 25/28 skipped: not SQL Server ODBC or native client driver
+t/rt_39897..............ok
+t/rt_43384..............ok
+ 7/9 skipped: Microsoft Access tests not supported using
+Microsoft SQL Server
+All tests successful, 160 subtests skipped.
+Files=19, Tests=430, 15 wallclock secs ( 1.17 cusr + 1.48 csys = 2.65 CPU)
+======================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.21/unicode_helper.c new/DBD-ODBC-1.22/unicode_helper.c
--- old/DBD-ODBC-1.21/unicode_helper.c 2008-09-03 17:31:26.000000000 +0200
+++ new/DBD-ODBC-1.22/unicode_helper.c 2009-06-10 14:20:42.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * $Id: unicode_helper.c 11733 2008-09-03 15:30:58Z mjevans $
+ * $Id: unicode_helper.c 12819 2009-06-10 12:20:40Z mjevans $
*/
#ifdef WITH_UNICODE
@@ -10,7 +10,7 @@
typedef enum { do_new=1, do_cat, do_set } new_cat_set_t;
/* static prototypes */
-static unsigned short utf16_len(UTF16 *wp);
+static long utf16_len(UTF16 *wp);
static void utf16_copy(UTF16 *d, UTF16 *s);
static SV * _dosvwv(SV * sv, UTF16 * wp, STRLEN len, new_cat_set_t mode);
@@ -180,7 +180,7 @@
if (widechars!=0) {
MultiByteToWideChar(CP_UTF8,0,s,-1,buf,widechars);
}
-#else
+#else /* !WIN32 */
unsigned int widechrs, bytes;
size_t slen;
ConversionResult ret;
@@ -188,10 +188,12 @@
UTF16 *target_start, *target_end;
slen = strlen(s);
- /*printf("utf8 string \\%s\\ is %ld bytes long\n", s, strlen(s));*/
+ /*printf("utf8 string \\%.20s\\ is %ld bytes long\n", s, strlen(s));*/
source_start = s;
- source_end = s + slen + 1; /* include NUL terminator */
+ /* source_end needs to include NUL and be 1 past as ConvertUTF8toUTF17
+ loops while < source_end */
+ source_end = s + slen + 1;
ret = ConvertUTF8toUTF16(
(const UTF8 **)&source_start, source_end,
@@ -207,18 +209,21 @@
croak("WValloc: unknown ConvertUTF16toUTF8 error");
}
}
- /*fprintf(stderr,"utf8 -> utf16 requires %d bytes\n", bytes);*/
+ /*printf("utf8 -> utf16 requires %d bytes\n", bytes);*/
widechrs = bytes / sizeof(UTF16);
- /*fprintf(stderr, "Allocating %d wide chrs\n", widechrs);*/
+ /*printf("Allocating %d wide chrs\n", widechrs);*/
- Newz(0,buf,widechrs+1,UTF16);
+ Newz(0,buf,widechrs + 1,UTF16);
if (widechrs != 0) {
source_start = s;
+ /* 1 after NUL because ConvertUTF8toUTF16 does while < end */
source_end = s + slen + 1;
target_start = buf;
- target_end = buf + widechrs + 1;
- /*fprintf(stderr, "%p %p %p %p\n", source_start, source_end, target_start, target_end);*/
+ /* in ConvertUTF8toUTF16 once target_end hit buf is exhausted */
+ target_end = buf + widechrs;
+ /*printf("ss=%p se=%p ts=%p te=%p\n",
+ source_start, source_end, target_start, target_end);*/
ret = ConvertUTF8toUTF16(
(const UTF8 **)&source_start, source_end,
@@ -226,10 +231,9 @@
if (ret != conversionOK) {
croak("WValloc: second call to ConvertUTF8toUTF16 failed (%d)", ret);
}
- /*fprintf(stderr, "Second returned %d bytes\n", bytes);*/
-
+ /*printf("Second returned %d bytes\n", bytes);*/
}
-#endif
+#endif /* WIN32 */
}
return buf;
}
@@ -288,7 +292,7 @@
unsigned int bytes;
UTF8 *target_start;
UTF8 *target_end;
- unsigned int len;
+ long len;
if (wp != NULL) {
len = utf16_len(wp);
@@ -351,8 +355,10 @@
/* warn("SV_toWCHAR called for undef"); */
return;
}
- p=SvPVutf8_force(sv,len);
/* _force makes sure SV is only a string */
+ p=SvPVutf8_force(sv,len);
+ /*printf("p=%p, strlen(p) = %d\n", p, strlen(p));*/
+
wp=WValloc(p); /* allocate wp containing utf16 copy of utf8 p */
len=utf16_len(wp);
p=SvGROW(sv,sizeof(UTF16)*(1+len));
@@ -362,9 +368,9 @@
SvPOK_only(sv); /* sv is nothing but a non-UTF8 string -- for Perl ;-) */
}
-static unsigned short utf16_len(UTF16 *wp)
+static long utf16_len(UTF16 *wp)
{
- unsigned short len = 0;
+ long len = 0;
if (!wp) return 0;
++++++ perl-DBD-ODBC-1.21-Makefile.diff -> perl-DBD-ODBC-1.22-Makefile.diff ++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Business-ISBN for openSUSE:Factory
checked in at Mon Aug 3 19:37:31 CEST 2009.
--------
New Changes file:
--- /dev/null 2009-04-14 11:55:47.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-Business-ISBN/perl-Business-ISBN.changes 2009-07-25 19:29:01.000000000 +0200
@@ -0,0 +1,67 @@
+-------------------------------------------------------------------
+Sat Jul 25 19:29:00 CEST 2009 - chris(a)computersalat.de
+
+- spec mods
+ * removed ^----------
+ * removed ^#---------
+
+-------------------------------------------------------------------
+Sun Jun 28 19:29:20 CEST 2009 - chris(a)computersalat.de
+
+- update to 2.05
+ - 2.05 - Sun Jan 25 00:00:17 2009
+ * Updated for latest data in Business::ISBN::Data
+ - 2.04_01 - Mon Oct 27 12:08:03 2008
+ * Revert the GD prereq. A lot of testers have borked GD
+ installs.
+ * Require 5.8. Some of the new stuff isn't playing well with
+ 5.6
+ - 2.04 - Sun Oct 26 18:29:20 2008
+ * Fix tests that used 99902 as a bad prefix. That now
+ belongs to Gabon.
+- added perl-macros
+ o autogen filelist with perl_gen_filelist
+- spec mods
+ o added header
+ o fixed deps
+
+-------------------------------------------------------------------
+Wed May 7 12:25:46 CEST 2008 - lrupp(a)suse.de
+
+- update to 2.03
+ * Fixed minor distro problems
+ * Explore RT #29292. I don't seem to have the problem with
+ hyphens for ISBN-13, but let's see what CPAN Testers has to
+ say
+ * [BUGFIX] ISBN13 was returing "Bookland" for all groups, but
+ it shouldn't do that. Now it returns the same thing you'd
+ get from ISBN10 (e.g. "English", "German", ... ).
+ * [BUGFIX] RT 29089 - I had the wrong _max_length for ISBN13.
+ That 13 is the hint that it should be 13. :)
+ * [FEATURE] added exportable function valid_isbn_checksum that
+ takes care of all of the object stuff for you and just gives
+ you the answer. In previous docs, this was called is_valid_checksum
+ even though that conflicted with an object method. It was
+ documented but never implemented. Now it's there. :)
+ * [BUGFIX] now should pass tests under 5.6.2, after a bit of
+ backporting. Upgrade already people! :)
+ * Don't import import() from Exporter. There are a lot of people
+ (apparently) using very old perls, not just CPAN Testers.
+ * fixes RT #28843: an ISBN-13 with a bad prefix shouldn't croak,
+ but return an object that explains the error.
+ * Official release of Business::ISBN to handle ISBN-13
+ * Does not handle 979- numbers yet (need publisher data for that)
+ * Does handle 978-numbere, which is the 10 digit ISBN with a
+ different "country code", so it uses the same publisher data
+ * There are significant API changes to handle the new stuff. It's
+ not so bad, but test it before you rip out the old Business::ISBN
+ stuff.
+ * Completely redone internals to handle ISBN-10 and ISBN-13
+ * Some interface changes to Business::ISBN 1.x
+ * Removed exportable functions.
+
+-------------------------------------------------------------------
+Mon Jul 23 14:33:01 CEST 2007 - lrupp(a)suse.de
+
+- initial package 1.84
+
calling whatdependson for head-i586
New:
----
Business-ISBN-2.05.tar.bz2
perl-Business-ISBN.changes
perl-Business-ISBN.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Business-ISBN.spec ++++++
#
# spec file for package perl-Business-ISBN (Version 2.05)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: perl-Business-ISBN
%define cpan_name %( echo %{name} | %{__sed} -e 's,perl-,,' )
Summary: Work with International Standard Book Numbers
Version: 2.05
Release: 1
License: Artistic License ..
Group: Development/Libraries/Perl
Url: http://search.cpan.org/perldoc?Business::ISBN
Source: %{cpan_name}-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Test::More)
BuildRequires: perl(Test::Pod) >= 1.00
BuildRequires: perl(Test::Pod::Coverage)
BuildRequires: perl(Business::ISBN::Data) >= 20081208
## URI required by Makefile.PL
## but not used
#BuildRequires: perl(URI)
BuildRequires: perl(IO::Socket)
BuildRequires: perl(GD::Barcode::EAN13)
Requires: perl = %{perl_version}
Requires: perl(Business::ISBN::Data) >= 20081208
Requires: perl(LWP::Simple)
Requires: perl(GD::Barcode::EAN13)
%description
With this module you can work with ISBN numbers. It handles
International Standard Book Numbers, including
ISBN-10 and ISBN-13.
Author: Brian d Foy <bdfoy(a)cpan.org>
%prep
%setup -q -n %{cpan_name}-%{version}
%build
CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL
%{__make}
%check
%{__make} test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%clean
%{__rm} -rf $RPM_BUILD_ROOT
%files -f %{name}.files
%defattr(0644,root,root,0755)
%doc Changes LICENSE README *.txt
%changelog
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-BerkeleyDB for openSUSE:Factory
checked in at Mon Aug 3 19:36:13 CEST 2009.
--------
--- perl-BerkeleyDB/perl-BerkeleyDB.changes 2009-02-23 16:59:42.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-BerkeleyDB/perl-BerkeleyDB.changes 2009-08-03 16:26:46.000000000 +0200
@@ -1,0 +2,16 @@
+Mon Aug 3 16:14:29 CEST 2009 - anicka(a)suse.cz
+
+- update to 0.39
+ * Added support for BDB 4.8
+ - associate_foreign
+ - set_bt_compress (no callbacks as yet).
+ * Also added interface to
+ - ENV->stat_print
+ - ENV->txn_stat_print
+ * Oldest Perl supported is now 5.005
+ * Fixed issue db_stat when it returned a null pointer.
+ (#46312 rt.cpan.org)
+ * Fixed issue with DNM Filters & UTF8 support.
+ Patch supplied by Torsten Foertsch.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
BerkeleyDB-0.38.tar.bz2
New:
----
BerkeleyDB-0.39.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-BerkeleyDB.spec ++++++
--- /var/tmp/diff_new_pack.8GoRkg/_old 2009-08-03 19:36:02.000000000 +0200
+++ /var/tmp/diff_new_pack.8GoRkg/_new 2009-08-03 19:36:02.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-BerkeleyDB (Version 0.38)
+# spec file for package perl-BerkeleyDB (Version 0.39)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -21,12 +21,12 @@
Name: perl-BerkeleyDB
BuildRequires: db-devel
Url: http://cpan.org/modules/by-module/BerkeleyDB/
-License: Artistic License
+License: Artistic License ..
Group: Development/Libraries/Perl
Requires: perl = %{perl_version}
AutoReqProv: on
Summary: Perl Module for Accessing Berkeley DB Functions
-Version: 0.38
+Version: 0.39
Release: 1
Source: BerkeleyDB-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ BerkeleyDB-0.38.tar.bz2 -> BerkeleyDB-0.39.tar.bz2 ++++++
++++ 3240 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libpqxx for openSUSE:Factory
checked in at Mon Aug 3 19:34:35 CEST 2009.
--------
--- libpqxx/libpqxx.changes 2009-03-13 20:57:43.000000000 +0100
+++ /mounts/work_src_done/STABLE/libpqxx/libpqxx.changes 2009-08-03 17:23:08.000000000 +0200
@@ -1,0 +2,35 @@
+Mon Aug 3 12:08:13 CEST 2009 - max(a)suse.de
+
+- New version: 3.0.1:
+- All items marked as deprecated in the 2.x API have been removed.
+- Fixed various problems in Visual C++ makefile for test suite.
+- Fixed some problems with RPM packaging.
+- Completely replaced cursor classes
+- More helpful error messages on failed connections
+- More detailed hierarchy of constraint-violation exception classes
+- trigger is now called notify_listener, trigger header is now
+ notify-listen
+- New mixin base class pqxx_exception distinguishes libpqxx exception
+ types
+- Quoting is back! transaction_base::quote() &
+ connection_base::quote()
+- Several build & documentation problems with Visual C++ fixed
+- Compile fixes for gcc 4.2, 4.3
+- Uses strlcpy() where available, instead of strncpy()
+- Keeps better track of applicable text encodings
+- Fixed bug with prepared statement parameters in separate C++
+ statements
+- robusttransaction now works for multiple users
+- Pipeline lets you cancel ongoing queries, e.g. because they run for
+ too long
+- Fixed broken escaping of binary values in tablewriter
+- Floating-point types now represented with full precision
+- Proper unit tests for new functionality
+- New traits-based system for adding data types
+- Floating-point infinities now supported
+- Flushing/completing a pipeline now frees up the transaction for
+ other use
+- Completely reworked test suite, builds and runs much faster
+- tablewriter supports writing of raw lines
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
fix-visibility.diff
libpqxx-2.6.9.tar.bz2
libpqxx.diff
New:
----
libpqxx-3.0.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libpqxx.spec ++++++
--- /var/tmp/diff_new_pack.Ec0qAN/_old 2009-08-03 19:33:48.000000000 +0200
+++ /var/tmp/diff_new_pack.Ec0qAN/_new 2009-08-03 19:33:48.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libpqxx (Version 2.6.9)
+# spec file for package libpqxx (Version 3.0.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,18 +19,16 @@
Name: libpqxx
-BuildRequires: gcc-c++ krb5-devel postgresql-devel
+BuildRequires: fdupes gcc-c++ krb5-devel postgresql-devel
Url: http://pqxx.org/development/libpqxx/
Summary: C++ Client Library for PostgreSQL
-Version: 2.6.9
-Release: 99
-License: BSD 3-Clause
+Version: 3.0.1
+Release: 1
+License: BSD 3-clause (or similar)
Group: Productivity/Databases/Clients
Source0: %name-%version.tar.bz2
Source1: libpqxx-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Patch: libpqxx.diff
-Patch1: fix-visibility.diff
%description
C++ client API for PostgreSQL. This is the standard front-end (in the
@@ -45,10 +43,10 @@
Jeroen T. Vermeulen <jtv(a)xs4all.nl>
%package devel
-License: BSD 3-Clause
+License: BSD 3-clause (or similar)
Summary: C++ Client Library for PostgreSQL
Group: Productivity/Databases/Clients
-Requires: libpqxx = %version libstdc++-devel
+Requires: libpqxx = %version
%description devel
C++ client API for PostgreSQL. This is the standard front-end (in the
@@ -64,32 +62,33 @@
%prep
%setup -q
-%patch -p0
-%patch1
chmod 0644 AUTHORS COPYING ChangeLog NEWS README README-UPGRADE TODO
%build
autoreconf -fiv
%configure --enable-shared --disable-static --with-pic
-make %{?jobs:-j%jobs}
+make %{?jobs:-j%jobs} all
%install
make DESTDIR=%buildroot install
-%{__rm} -f %{buildroot}%{_libdir}/*.la
+rm -f %buldroot%_libdir/*.la
+DOCDIR=%buildroot%_docdir/%name
+mkdir -p $DOCDIR
+cp -a AUTHORS ChangeLog COPYING NEWS README* TODO doc/html $DOCDIR
+%fdupes $DOCDIR
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
-%doc AUTHORS COPYING ChangeLog NEWS README README-UPGRADE TODO
%_libdir/%name-%version.so
%files devel
%defattr(-,root,root,-)
-%doc doc/html
-%_libdir/%name.*
+%doc %_docdir/%name
%_includedir/pqxx
+%_libdir/lib*
%_libdir/pkgconfig/libpqxx.pc
/usr/bin/pqxx-config
++++++ libpqxx-2.6.9.tar.bz2 -> libpqxx-3.0.1.tar.bz2 ++++++
++++ 207447 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libopensync-plugin-gpe for openSUSE:Factory
checked in at Mon Aug 3 19:33:31 CEST 2009.
--------
--- libopensync-plugin-gpe/libopensync-plugin-gpe.changes 2007-08-15 17:52:26.000000000 +0200
+++ /mounts/work_src_done/STABLE/libopensync-plugin-gpe/libopensync-plugin-gpe.changes 2009-08-03 12:18:32.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Aug 3 10:16:06 UTC 2009 - cstender(a)novell.com
+
+- updated url attribute
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libopensync-plugin-gpe.spec ++++++
--- /var/tmp/diff_new_pack.8NPQz2/_old 2009-08-03 19:33:07.000000000 +0200
+++ /var/tmp/diff_new_pack.8NPQz2/_new 2009-08-03 19:33:07.000000000 +0200
@@ -20,9 +20,9 @@
Name: libopensync-plugin-gpe
BuildRequires: libopensync-devel
-Url: http://www.openync.org
+Url: http://www.opensync.org
Version: 0.22
-Release: 148
+Release: 149
Summary: GPE Synchronization Plug-In for OpenSync
License: GPL v2 or later
Group: Productivity/Other
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kvpnc for openSUSE:Factory
checked in at Mon Aug 3 19:32:52 CEST 2009.
--------
--- KDE/kvpnc/kvpnc.changes 2009-07-29 16:29:37.000000000 +0200
+++ /mounts/work_src_done/STABLE/kvpnc/kvpnc.changes 2009-08-01 16:33:46.000000000 +0200
@@ -1,0 +2,43 @@
+Sat Aug 1 14:18:05 UTC 2009 - tittiatcoke(a)gmail.com
+
+- update to version 0.9.2
+ * features
+ - ask user password on each connect option added
+ - $HOME/bin now in search path of default paths
+ - default paths search order changed
+ - useless comment on tail info removed
+ - DNS_UPDATE option renamed to Update DNS configuration,
+ if not checked, /etc/resolv.conf will not changed
+ - ping_check.sh now useable with ash
+ - ping_check.sh device parameter added
+ - connection status check now uses tunnel device
+ - translation update
+ - empty patch checking on load/save added
+ - detecting pkcs11 ids for openvpn via openvpn added
+ - option for selecting open profilemanger after import added
+ - pkcs11 parameters changed for openvpn >= 2.1rc-9
+ - openvpn version detection improved
+ - pkcs11 token support for other than etoken added
+ - dns domain added for pptp
+ - kde3 type in version added
+ * bugfixes
+ - crash at smartcard options widget fixed [kde4]
+ - selector on authentication page fixed [kde4]
+ - gui freeze eleminations [kde4]
+ - username display on status fixed (openvpn) [kde4]
+ - use remote network changing on profilenetworkgeneraloptions fixed [kde4]
+ - replace custom bug report entry with homepage call entry [kde4]
+ - profiletype on profilemanger fixed [kde4]
+ - interface detection fixed [kde4]
+ - racoon specific page moved to connection specific in profilemanger [kde4]
+ - restoring last profile fixed [kde4]
+ - echo mode on import certificate dialog fixed [kde4]
+ - echo mode on psk options dialog fixed [kde4]
+ - echo mode on cisco manually dialog fixed [kde4]
+ - manageciscocert dialog fixed [kde4]
+ - read profile data fixed (pcf file) [kde4]
+ - crash on openening profilemanger fixed [kde4]
+ - fixes regarding dns update
+ - saving cisco nat mode fixed
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
kvpnc-svn1004178.tar.bz2
New:
----
kvpnc-0.9.2-kde4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kvpnc.spec ++++++
--- /var/tmp/diff_new_pack.lgFzpJ/_old 2009-08-03 19:32:13.000000000 +0200
+++ /var/tmp/diff_new_pack.lgFzpJ/_new 2009-08-03 19:32:13.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package kvpnc (Version 0.9.1+svn1004178)
+# spec file for package kvpnc (Version 0.9.2)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -17,7 +17,6 @@
# norootforbuild
-%define sversion svn1004178
Name: kvpnc
BuildRequires: kdebase4-workspace-devel libkde4-devel update-desktop-files
@@ -26,14 +25,14 @@
License: GPL v2 or later
Group: Productivity/Networking/System
Summary: GUI Front-End for openswan and vpnc
-Version: 0.9.1+%{sversion}
+Version: 0.9.2
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: %{name}-%{sversion}.tar.bz2
+Source: %{name}-%{version}-kde4.tar.bz2
Source1: kde-kvpnc.rpmlintrc
Requires: kdebase4-workspace kdebase4-runtime
-Provides: kde4-kvpnc
-Obsoletes: kde4-kvpnc
+Provides: kde4-kvpnc = %{version}
+Obsoletes: kde4-kvpnc < %{version}
%description
The application can create configurations for various kinds of VPN
@@ -46,7 +45,7 @@
Christoph Thielecke <crissi99(a)gmx.de>
%prep
-%setup -q -n %{name}
+%setup -q -n %{name}-%{version}-kde4
%build
%cmake_kde4 -d build
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kdesvn for openSUSE:Factory
checked in at Mon Aug 3 19:31:13 CEST 2009.
--------
--- KDE/kdesvn/kdesvn.changes 2009-07-11 15:20:13.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdesvn/kdesvn.changes 2009-08-01 16:13:18.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Aug 1 14:05:29 UTC 2009 - tittiatcoke(a)gmail.com
+
+- update to 1.4.0
+ * integrated subversion 1.6 api
+ * some speedups in subversion interface
+ * drag&drop re-worked, now it works as expected
+ * KIO interface can now import files via drag&drop.
+ With option set it is able edit/overwrite files, too.
+ * integrated first repository specific settings
+ * Revisiontree may ignore path prefixes (done with repository settings)
+ * logcache overview, user may delete entries for repositories,
+ see, how many entries and how large them are.
+ * various small bugfixes and enhancements
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
kdesvn-1.3.2.tar.bz2
New:
----
kdesvn-1.4.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdesvn.spec ++++++
--- /var/tmp/diff_new_pack.YpMNpI/_old 2009-08-03 19:30:48.000000000 +0200
+++ /var/tmp/diff_new_pack.YpMNpI/_new 2009-08-03 19:30:48.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package kdesvn (Version 1.3.2)
+# spec file for package kdesvn (Version 1.4.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -24,7 +24,7 @@
License: GPL v2 or later
Group: Development/Tools/Version Control
Summary: KDE Subversion Client
-Version: 1.3.2
+Version: 1.4.0
Release: 1
Source: %name-%version.tar.bz2
Patch: kdesvn.diff
@@ -44,12 +44,12 @@
--------
Rajko Albrecht <ral(a)alwins-world.de>
-%package -n libsvnqt5
+%package -n libsvnqt6
License: GPL v2 or later
Summary: KDE Subversion Client
Group: Development/Tools/Version Control
-%description -n libsvnqt5
+%description -n libsvnqt6
kdesvn is a GUI client for subversion repositories.
@@ -62,7 +62,7 @@
License: GPL v2 or later
Summary: KDE Subversion Client
Group: Development/Tools/Version Control
-Requires: libsvnqt5 >= %version
+Requires: libsvnqt6 >= %version
%description -n libsvnqt-devel
kdesvn is a GUI client for subversion repositories.
@@ -94,9 +94,9 @@
%clean
rm -rf $RPM_BUILD_ROOT
-%post -n libsvnqt5 -p /sbin/ldconfig
+%post -n libsvnqt6 -p /sbin/ldconfig
-%postun -n libsvnqt5 -p /sbin/ldconfig
+%postun -n libsvnqt6 -p /sbin/ldconfig
%files -f %name.lang
%defattr(-,root,root)
@@ -127,7 +127,7 @@
/usr/include/svnqt
%_libdir/libsvnqt.so
-%files -n libsvnqt5
+%files -n libsvnqt6
%defattr(-,root,root)
%_libdir/libsvnqt.so.*
++++++ kdesvn-1.3.2.tar.bz2 -> kdesvn-1.4.0.tar.bz2 ++++++
++++ 48406 lines of diff (skipped)
++++++ kdesvn.diff ++++++
--- /var/tmp/diff_new_pack.YpMNpI/_old 2009-08-03 19:30:50.000000000 +0200
+++ /var/tmp/diff_new_pack.YpMNpI/_new 2009-08-03 19:30:50.000000000 +0200
@@ -1,5 +1,5 @@
---- src/svnfrontend/models/svnsortfilter.cpp
-+++ /src/svnfrontend/models/svnsortfilter.cpp
+--- src/svnfrontend/models/svnsortfilter.cpp 2009-06-16 12:31:23.000000000 +0200
++++ src/svnfrontend/models/svnsortfilter.cpp 2009-08-01 16:08:56.000000000 +0200
@@ -23,6 +23,7 @@
#include "svnitemnode.h"
#include "src/settings/kdesvnsettings.h"
++++++ remove-nl.diff ++++++
--- /var/tmp/diff_new_pack.YpMNpI/_old 2009-08-03 19:30:50.000000000 +0200
+++ /var/tmp/diff_new_pack.YpMNpI/_new 2009-08-03 19:30:50.000000000 +0200
@@ -1,6 +1,6 @@
---- doc/CMakeLists.txt
-+++ doc/CMakeLists.txt
-@@ -19,7 +19,7 @@ ENDMACRO (GENBOOK)
+--- doc/CMakeLists.txt 2008-09-24 12:36:04.000000000 +0200
++++ doc/CMakeLists.txt 2009-08-01 16:09:41.000000000 +0200
+@@ -19,7 +19,7 @@
ADD_CUSTOM_TARGET(doc ALL)
ADD_SUBDIRECTORY(en)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0