Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ce0f403a
Kaydet (Commit)
ce0f403a
authored
Tem 03, 2009
tarafından
Benjamin Peterson
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
rip out bsddb support code
üst
87b87198
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
186 deletions
+2
-186
setup.py
setup.py
+2
-186
No files found.
setup.py
Dosyayı görüntüle @
ce0f403a
...
...
@@ -363,6 +363,7 @@ class PyBuildExt(build_ext):
inc_dirs
+=
os
.
getenv
(
'C_INCLUDE_PATH'
,
''
)
.
split
(
os
.
pathsep
)
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
# XXX db is not needed anymore, should this be removed?
if
platform
in
[
'osf1'
,
'unixware7'
,
'openunix8'
]:
lib_dirs
+=
[
'/usr/ccs/lib'
]
...
...
@@ -625,179 +626,6 @@ class PyBuildExt(build_ext):
exts
.
append
(
Extension
(
'_md5'
,
[
'md5module.c'
])
)
exts
.
append
(
Extension
(
'_sha1'
,
[
'sha1module.c'
])
)
# Modules that provide persistent dictionary-like semantics. You will
# probably want to arrange for at least one of them to be available on
# your machine, though none are defined by default because of library
# dependencies. The Python module dbm/__init__.py provides an
# implementation independent wrapper for these; dbm/dumb.py provides
# similar functionality (but slower of course) implemented in Python.
# Sleepycat^WOracle Berkeley DB interface.
# http://www.oracle.com/database/berkeley-db/db/index.html
#
# This requires the Sleepycat^WOracle DB code. The supported versions
# are set below. Visit the URL above to download
# a release. Most open source OSes come with one or more
# versions of BerkeleyDB already installed.
max_db_ver
=
(
4
,
7
)
min_db_ver
=
(
3
,
3
)
db_setup_debug
=
False
# verbose debug prints from this script?
def
allow_db_ver
(
db_ver
):
"""Returns a boolean if the given BerkeleyDB version is acceptable.
Args:
db_ver: A tuple of the version to verify.
"""
if
not
(
min_db_ver
<=
db_ver
<=
max_db_ver
):
return
False
return
True
def
gen_db_minor_ver_nums
(
major
):
if
major
==
4
:
for
x
in
range
(
max_db_ver
[
1
]
+
1
):
if
allow_db_ver
((
4
,
x
)):
yield
x
elif
major
==
3
:
for
x
in
(
3
,):
if
allow_db_ver
((
3
,
x
)):
yield
x
else
:
raise
ValueError
(
"unknown major BerkeleyDB version"
,
major
)
# construct a list of paths to look for the header file in on
# top of the normal inc_dirs.
db_inc_paths
=
[
'/usr/include/db4'
,
'/usr/local/include/db4'
,
'/opt/sfw/include/db4'
,
'/usr/include/db3'
,
'/usr/local/include/db3'
,
'/opt/sfw/include/db3'
,
# Fink defaults (http://fink.sourceforge.net/)
'/sw/include/db4'
,
'/sw/include/db3'
,
]
# 4.x minor number specific paths
for
x
in
gen_db_minor_ver_nums
(
4
):
db_inc_paths
.
append
(
'/usr/include/db4
%
d'
%
x
)
db_inc_paths
.
append
(
'/usr/include/db4.
%
d'
%
x
)
db_inc_paths
.
append
(
'/usr/local/BerkeleyDB.4.
%
d/include'
%
x
)
db_inc_paths
.
append
(
'/usr/local/include/db4
%
d'
%
x
)
db_inc_paths
.
append
(
'/pkg/db-4.
%
d/include'
%
x
)
db_inc_paths
.
append
(
'/opt/db-4.
%
d/include'
%
x
)
# MacPorts default (http://www.macports.org/)
db_inc_paths
.
append
(
'/opt/local/include/db4
%
d'
%
x
)
# 3.x minor number specific paths
for
x
in
gen_db_minor_ver_nums
(
3
):
db_inc_paths
.
append
(
'/usr/include/db3
%
d'
%
x
)
db_inc_paths
.
append
(
'/usr/local/BerkeleyDB.3.
%
d/include'
%
x
)
db_inc_paths
.
append
(
'/usr/local/include/db3
%
d'
%
x
)
db_inc_paths
.
append
(
'/pkg/db-3.
%
d/include'
%
x
)
db_inc_paths
.
append
(
'/opt/db-3.
%
d/include'
%
x
)
# Add some common subdirectories for Sleepycat DB to the list,
# based on the standard include directories. This way DB3/4 gets
# picked up when it is installed in a non-standard prefix and
# the user has added that prefix into inc_dirs.
std_variants
=
[]
for
dn
in
inc_dirs
:
std_variants
.
append
(
os
.
path
.
join
(
dn
,
'db3'
))
std_variants
.
append
(
os
.
path
.
join
(
dn
,
'db4'
))
for
x
in
gen_db_minor_ver_nums
(
4
):
std_variants
.
append
(
os
.
path
.
join
(
dn
,
"db4
%
d"
%
x
))
std_variants
.
append
(
os
.
path
.
join
(
dn
,
"db4.
%
d"
%
x
))
for
x
in
gen_db_minor_ver_nums
(
3
):
std_variants
.
append
(
os
.
path
.
join
(
dn
,
"db3
%
d"
%
x
))
std_variants
.
append
(
os
.
path
.
join
(
dn
,
"db3.
%
d"
%
x
))
db_inc_paths
=
std_variants
+
db_inc_paths
db_inc_paths
=
[
p
for
p
in
db_inc_paths
if
os
.
path
.
exists
(
p
)]
db_ver_inc_map
=
{}
class
db_found
(
Exception
):
pass
try
:
# See whether there is a Sleepycat header in the standard
# search path.
for
d
in
inc_dirs
+
db_inc_paths
:
f
=
os
.
path
.
join
(
d
,
"db.h"
)
if
db_setup_debug
:
print
(
"db: looking for db.h in"
,
f
)
if
os
.
path
.
exists
(
f
):
f
=
open
(
f
)
.
read
()
m
=
re
.
search
(
r"#define\WDB_VERSION_MAJOR\W(\d+)"
,
f
)
if
m
:
db_major
=
int
(
m
.
group
(
1
))
m
=
re
.
search
(
r"#define\WDB_VERSION_MINOR\W(\d+)"
,
f
)
db_minor
=
int
(
m
.
group
(
1
))
db_ver
=
(
db_major
,
db_minor
)
# Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug
if
db_ver
==
(
4
,
6
):
m
=
re
.
search
(
r"#define\WDB_VERSION_PATCH\W(\d+)"
,
f
)
db_patch
=
int
(
m
.
group
(
1
))
if
db_patch
<
21
:
print
(
"db.h:"
,
db_ver
,
"patch"
,
db_patch
,
"being ignored (4.6.x must be >= 4.6.21)"
)
continue
if
(
(
db_ver
not
in
db_ver_inc_map
)
and
allow_db_ver
(
db_ver
)
):
# save the include directory with the db.h version
# (first occurrence only)
db_ver_inc_map
[
db_ver
]
=
d
if
db_setup_debug
:
print
(
"db.h: found"
,
db_ver
,
"in"
,
d
)
else
:
# we already found a header for this library version
if
db_setup_debug
:
print
(
"db.h: ignoring"
,
d
)
else
:
# ignore this header, it didn't contain a version number
if
db_setup_debug
:
print
(
"db.h: no version number version in"
,
d
)
db_found_vers
=
list
(
db_ver_inc_map
.
keys
())
db_found_vers
.
sort
()
while
db_found_vers
:
db_ver
=
db_found_vers
.
pop
()
db_incdir
=
db_ver_inc_map
[
db_ver
]
# check lib directories parallel to the location of the header
db_dirs_to_check
=
[
db_incdir
.
replace
(
"include"
,
'lib64'
),
db_incdir
.
replace
(
"include"
,
'lib'
),
]
db_dirs_to_check
=
list
(
filter
(
os
.
path
.
isdir
,
db_dirs_to_check
))
# Look for a version specific db-X.Y before an ambiguoius dbX
# XXX should we -ever- look for a dbX name? Do any
# systems really not name their library by version and
# symlink to more general names?
for
dblib
in
((
'db-
%
d.
%
d'
%
db_ver
),
(
'db
%
d
%
d'
%
db_ver
),
(
'db
%
d'
%
db_ver
[
0
])):
dblib_file
=
self
.
compiler
.
find_library_file
(
db_dirs_to_check
+
lib_dirs
,
dblib
)
if
dblib_file
:
dblib_dir
=
[
os
.
path
.
abspath
(
os
.
path
.
dirname
(
dblib_file
))
]
raise
db_found
else
:
if
db_setup_debug
:
print
(
"db lib: "
,
dblib
,
"not found"
)
except
db_found
:
if
db_setup_debug
:
print
(
"bsddb using BerkeleyDB lib:"
,
db_ver
,
dblib
)
print
(
"bsddb lib dir:"
,
dblib_dir
,
" inc dir:"
,
db_incdir
)
db_incs
=
[
db_incdir
]
dblibs
=
[
dblib
]
else
:
if
db_setup_debug
:
print
(
"db: no appropriate library found"
)
db_incs
=
None
dblibs
=
[]
dblib_dir
=
None
# The sqlite interface
sqlite_setup_debug
=
False
# verbose debug prints from this script?
...
...
@@ -902,7 +730,7 @@ class PyBuildExt(build_ext):
if
dbm_args
:
dbm_order
=
dbm_args
[
-
1
]
.
split
(
":"
)
else
:
dbm_order
=
"ndbm:gdbm
:bdb
"
.
split
(
":"
)
dbm_order
=
"ndbm:gdbm"
.
split
(
":"
)
dbmext
=
None
for
cand
in
dbm_order
:
if
cand
==
"ndbm"
:
...
...
@@ -943,18 +771,6 @@ class PyBuildExt(build_ext):
],
libraries
=
gdbm_libs
)
break
elif
cand
==
"bdb"
:
if
db_incs
is
not
None
:
print
(
"building dbm using bdb"
)
dbmext
=
Extension
(
'_dbm'
,
[
'_dbmmodule.c'
],
library_dirs
=
dblib_dir
,
runtime_library_dirs
=
dblib_dir
,
include_dirs
=
db_incs
,
define_macros
=
[
(
'HAVE_BERKDB_H'
,
None
),
(
'DB_DBM_HSEARCH'
,
None
),
],
libraries
=
dblibs
)
break
if
dbmext
is
not
None
:
exts
.
append
(
dbmext
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment