* DBD::SQLite needs a patch to prevent segfaults in case of timeouts.
svn path=/nixpkgs/trunk/; revision=13386
This commit is contained in:
parent
e02462f034
commit
1357c14500
3 changed files with 61 additions and 8 deletions
19
pkgs/development/perl-modules/DBD-SQLite/default.nix
Normal file
19
pkgs/development/perl-modules/DBD-SQLite/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{fetchurl, perl, perlDBI, sqlite}:
|
||||
|
||||
import ../generic perl {
|
||||
name = "DBD-SQLite-1.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://cpan/authors/id/M/MS/MSERGEANT/DBD-SQLite-1.14.tar.gz;
|
||||
sha256 = "01qd5xfx702chg3bv2k727kfdp84zy5xh31y6njvivkp78vrs624";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [perlDBI];
|
||||
|
||||
makeMakerFlags = "SQLITE_LOCATION=${sqlite}";
|
||||
|
||||
patches = [
|
||||
# Prevent segfaults in case of timeouts.
|
||||
./reset.patch
|
||||
];
|
||||
}
|
40
pkgs/development/perl-modules/DBD-SQLite/reset.patch
Normal file
40
pkgs/development/perl-modules/DBD-SQLite/reset.patch
Normal file
|
@ -0,0 +1,40 @@
|
|||
diff -rc DBD-SQLite-1.14-orig/dbdimp.c DBD-SQLite-1.14/dbdimp.c
|
||||
*** DBD-SQLite-1.14-orig/dbdimp.c 2007-08-24 04:51:25.000000000 +0200
|
||||
--- DBD-SQLite-1.14/dbdimp.c 2008-11-10 18:31:53.000000000 +0100
|
||||
***************
|
||||
*** 398,405 ****
|
||||
if (imp_sth->retval == SQLITE_ROW) {
|
||||
continue;
|
||||
}
|
||||
! /* There are bug reports that say this should be sqlite3_reset() */
|
||||
! sqlite3_finalize(imp_sth->stmt);
|
||||
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
|
||||
return -5;
|
||||
}
|
||||
--- 398,404 ----
|
||||
if (imp_sth->retval == SQLITE_ROW) {
|
||||
continue;
|
||||
}
|
||||
! sqlite3_reset(imp_sth->stmt);
|
||||
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
|
||||
return -5;
|
||||
}
|
||||
***************
|
||||
*** 418,425 ****
|
||||
case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
|
||||
sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
|
||||
return 0;
|
||||
! /* There are bug reports that say this should be sqlite3_reset() */
|
||||
! default: sqlite3_finalize(imp_sth->stmt);
|
||||
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
|
||||
return -6;
|
||||
}
|
||||
--- 417,423 ----
|
||||
case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
|
||||
sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
|
||||
return 0;
|
||||
! default: sqlite3_reset(imp_sth->stmt);
|
||||
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
|
||||
return -6;
|
||||
}
|
||||
Only in DBD-SQLite-1.14/: dbdimp.c~
|
|
@ -4474,14 +4474,8 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
perlDBDSQLite = import ../development/perl-modules/generic perl {
|
||||
name = "DBD-SQLite-1.14";
|
||||
src = fetchurl {
|
||||
url = mirror://cpan/authors/id/M/MS/MSERGEANT/DBD-SQLite-1.14.tar.gz;
|
||||
sha256 = "01qd5xfx702chg3bv2k727kfdp84zy5xh31y6njvivkp78vrs624";
|
||||
};
|
||||
propagatedBuildInputs = [perlDBI];
|
||||
makeMakerFlags = "SQLITE_LOCATION=${sqlite}";
|
||||
perlDBDSQLite = import ../development/perl-modules/DBD-SQLite {
|
||||
inherit fetchurl perl perlDBI sqlite;
|
||||
};
|
||||
|
||||
perlDBFile = import ../development/perl-modules/DB_File {
|
||||
|
|
Loading…
Reference in a new issue