nixpkgs/pkgs/development/python-modules/pysqlite/default.nix

58 lines
2 KiB
Nix

{ lib, stdenv
, buildPythonPackage
, fetchPypi
, isPy3k
, pkgs
}:
buildPythonPackage rec {
pname = "pysqlite";
version = "2.8.3";
src = fetchPypi {
inherit pname version;
sha256 = "17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490";
};
# Need to use the builtin sqlite3 on Python 3
disabled = isPy3k;
# Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
# it contains is not taken into account. Thus, we must explicitly make
# it a propagated input.
propagatedBuildInputs = [ pkgs.sqlite ];
patchPhase = ''
substituteInPlace "setup.cfg" \
--replace "/usr/local/include" "${pkgs.sqlite.dev}/include" \
--replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
${lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
'';
meta = with lib; {
homepage = "https://pysqlite.org/";
description = "Python bindings for the SQLite embedded relational database engine";
longDescription = ''
pysqlite is a DB-API 2.0-compliant database interface for SQLite.
SQLite is a relational database management system contained in
a relatively small C library. It is a public domain project
created by D. Richard Hipp. Unlike the usual client-server
paradigm, the SQLite engine is not a standalone process with
which the program communicates, but is linked in and thus
becomes an integral part of the program. The library
implements most of SQL-92 standard, including transactions,
triggers and most of complex queries.
pysqlite makes this powerful embedded SQL engine available to
Python programmers. It stays compatible with the Python
database API specification 2.0 as much as possible, but also
exposes most of SQLite's native API, so that it is for example
possible to create user-defined SQL functions and aggregates
in Python.
'';
license = licenses.bsd3;
};
}