Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
cubicweb
cubes
addressbook
Commits
74de257d754d
Commit
7ce37a5c
authored
Feb 18, 2011
by
Sylvain Thénault
Browse files
backport stable
parents
c1f3d551c8f9
41e1cdba1dd2
Changes
4
Hide whitespace changes
Inline
Side-by-side
.hgtags
View file @
74de257d
...
...
@@ -5,3 +5,5 @@ a1a9e8d1eded8ad709b124cc709edf1182f7d09c cubicweb-addressbook-version-1.5.0
872bdea044200b0a9980ef7327e344b92fa13fdb oldstable
f8e8c25ede97879057b57cd12dc872a00d0e0c2b cubicweb-addressbook-version-1.6.0
7b23909c781d815513bddb0ccadea6b5f206349a cubicweb-addressbook-debian-version-1.6.0-1
b27a29ef86a9f193513febd31adaac8918bf03a6 cubicweb-addressbook-version-1.6.1
c40f8650e6bab2258d71972a74b8a1896051df3b cubicweb-addressbook-debian-version-1.6.1-1
__pkginfo__.py
View file @
74de257d
...
...
@@ -4,7 +4,7 @@
modname
=
'addressbook'
distname
=
"cubicweb-%s"
%
modname
numversion
=
(
1
,
6
,
0
)
numversion
=
(
1
,
6
,
1
)
version
=
'.'
.
join
(
str
(
num
)
for
num
in
numversion
)
license
=
'LGPL'
...
...
debian/changelog
View file @
74de257d
cubicweb-addressbook (1.6.1-1) unstable; urgency=low
* new upstream release for cw 3.9
-- Sylvain Thénault <sylvain.thenault@logilab.fr> Fri, 18 Feb 2011 08:35:56 +0100
cubicweb-addressbook (1.6.0-1) unstable; urgency=low
* new upstream release for cw 3.6
...
...
setup.py
View file @
74de257d
#!/usr/bin/env python
# pylint: disable-msg=W0404,W0622,W0704,W0613,W0152
# pylint: disable=W0142,W0403,W0404,W0613,W0622,W0622,W0704,R0904,C0103,E0611
#
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
#
# This file is part of CubicWeb tag cube.
#
# CubicWeb is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 2.1 of the License, or (at your option)
# any later version.
#
# CubicWeb 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 Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
"""Generic Setup script, takes package info from __pkginfo__.py file
"""
__docformat__
=
"restructuredtext en"
import
os
...
...
@@ -12,49 +29,50 @@ from os.path import isdir, exists, join, walk
try
:
if
os
.
environ
.
get
(
'NO_SETUPTOOLS'
):
raise
ImportError
()
raise
ImportError
()
# do as there is no setuptools
from
setuptools
import
setup
from
setuptools.command
import
install_lib
USE_SETUPTOOLS
=
1
USE_SETUPTOOLS
=
True
except
ImportError
:
from
distutils.core
import
setup
from
distutils.command
import
install_lib
USE_SETUPTOOLS
=
0
USE_SETUPTOOLS
=
False
from
distutils.command
import
install_data
sys
.
modules
.
pop
(
'__pkginfo__'
,
None
)
# import required features
from
__pkginfo__
import
modname
,
version
,
license
,
description
,
\
web
,
author
,
author_email
# import optional features
import
__pkginfo__
distname
=
getattr
(
__pkginfo__
,
'distname'
,
modname
)
scripts
=
getattr
(
__pkginfo__
,
'scripts'
,
[])
data_files
=
getattr
(
__pkginfo__
,
'data_files'
,
None
)
include_dirs
=
getattr
(
__pkginfo__
,
'include_dirs'
,
[])
ext_modules
=
getattr
(
__pkginfo__
,
'ext_modules'
,
None
)
dependency_links
=
getattr
(
__pkginfo__
,
'dependency_links'
,
[])
STD_BLACKLIST
=
(
'CVS'
,
'.svn'
,
'.hg'
,
'debian'
,
'dist'
,
'build'
)
IGNORED_EXTENSIONS
=
(
'.pyc'
,
'.pyo'
,
'.elc'
,
'~'
)
from
__pkginfo__
import
modname
,
version
,
license
,
description
,
web
,
\
author
,
author_email
if
exists
(
'README'
):
long_description
=
file
(
'README'
).
read
()
else
:
long_description
=
''
# import optional features
import
__pkginfo__
if
USE_SETUPTOOLS
:
requires
=
{}
for
entry
in
(
"__depends__"
,
"__recommends__"
):
requires
.
update
(
getattr
(
__pkginfo__
,
entry
,
{}))
install_requires
=
[(
"%s %s"
%
(
d
,
v
and
v
or
""
)).
strip
()
requires
=
{}
for
entry
in
(
"__depends__"
,
):
#
"__recommends__"):
requires
.
update
(
getattr
(
__pkginfo__
,
entry
,
{}))
install_requires
=
[(
"%s %s"
%
(
d
,
v
and
v
or
""
)).
strip
()
for
d
,
v
in
requires
.
iteritems
()]
else
:
install_requires
=
[]
install_requires
=
[]
distname
=
getattr
(
__pkginfo__
,
'distname'
,
modname
)
scripts
=
getattr
(
__pkginfo__
,
'scripts'
,
())
include_dirs
=
getattr
(
__pkginfo__
,
'include_dirs'
,
())
data_files
=
getattr
(
__pkginfo__
,
'data_files'
,
None
)
ext_modules
=
getattr
(
__pkginfo__
,
'ext_modules'
,
None
)
dependency_links
=
getattr
(
__pkginfo__
,
'dependency_links'
,
())
BASE_BLACKLIST
=
(
'CVS'
,
'.svn'
,
'.hg'
,
'debian'
,
'dist'
,
'build'
)
IGNORED_EXTENSIONS
=
(
'.pyc'
,
'.pyo'
,
'.elc'
,
'~'
)
def
ensure_scripts
(
linux_scripts
):
"""Creates the proper script names required for each platform
"""
Creates the proper script names required for each platform
(taken from 4Suite)
"""
from
distutils
import
util
...
...
@@ -64,23 +82,8 @@ def ensure_scripts(linux_scripts):
scripts_
=
linux_scripts
return
scripts_
def
get_packages
(
directory
,
prefix
):
"""return a list of subpackages for the given directory"""
result
=
[]
for
package
in
os
.
listdir
(
directory
):
absfile
=
join
(
directory
,
package
)
if
isdir
(
absfile
):
if
exists
(
join
(
absfile
,
'__init__.py'
))
or
\
package
in
(
'test'
,
'tests'
):
if
prefix
:
result
.
append
(
'%s.%s'
%
(
prefix
,
package
))
else
:
result
.
append
(
package
)
result
+=
get_packages
(
absfile
,
result
[
-
1
])
return
result
def
export
(
from_dir
,
to_dir
,
blacklist
=
STD
_BLACKLIST
,
blacklist
=
BASE
_BLACKLIST
,
ignore_ext
=
IGNORED_EXTENSIONS
,
verbose
=
True
):
"""make a mirror of from_dir in to_dir, omitting directories and files
...
...
@@ -134,6 +137,35 @@ class MyInstallLib(install_lib.install_lib):
dest
=
join
(
self
.
install_dir
,
base
,
directory
)
export
(
directory
,
dest
,
verbose
=
False
)
# re-enable copying data files in sys.prefix
old_install_data
=
install_data
.
install_data
if
USE_SETUPTOOLS
:
# overwrite InstallData to use sys.prefix instead of the egg directory
class
MyInstallData
(
old_install_data
):
"""A class that manages data files installation"""
def
run
(
self
):
_old_install_dir
=
self
.
install_dir
if
self
.
install_dir
.
endswith
(
'egg'
):
self
.
install_dir
=
sys
.
prefix
old_install_data
.
run
(
self
)
self
.
install_dir
=
_old_install_dir
try
:
import
setuptools.command.easy_install
# only if easy_install avaible
# monkey patch: Crack SandboxViolation verification
from
setuptools.sandbox
import
DirectorySandbox
as
DS
old_ok
=
DS
.
_ok
def
_ok
(
self
,
path
):
"""Return True if ``path`` can be written during installation."""
out
=
old_ok
(
self
,
path
)
# here for side effect from setuptools
realpath
=
os
.
path
.
normcase
(
os
.
path
.
realpath
(
path
))
allowed_path
=
os
.
path
.
normcase
(
sys
.
prefix
)
if
realpath
.
startswith
(
allowed_path
):
out
=
True
return
out
DS
.
_ok
=
_ok
except
ImportError
:
pass
def
install
(
**
kwargs
):
"""setup entry point"""
if
USE_SETUPTOOLS
:
...
...
@@ -142,12 +174,13 @@ def install(**kwargs):
# install-layout option was introduced in 2.5.3-1~exp1
elif
sys
.
version_info
<
(
2
,
5
,
4
)
and
'--install-layout=deb'
in
sys
.
argv
:
sys
.
argv
.
remove
(
'--install-layout=deb'
)
kwargs
[
'package_dir'
]
=
{
modname
:
'.'
}
packages
=
[
modname
]
+
get_packages
(
os
.
getcwd
(),
modname
)
if
USE_SETUPTOOLS
and
install_requires
:
cmdclass
=
{
'install_lib'
:
MyInstallLib
}
if
USE_SETUPTOOLS
:
kwargs
[
'install_requires'
]
=
install_requires
kwargs
[
'dependency_links'
]
=
dependency_links
kwargs
[
'packages'
]
=
packages
kwargs
[
'zip_safe'
]
=
False
cmdclass
[
'install_data'
]
=
MyInstallData
return
setup
(
name
=
distname
,
version
=
version
,
license
=
license
,
...
...
@@ -159,7 +192,7 @@ def install(**kwargs):
scripts
=
ensure_scripts
(
scripts
),
data_files
=
data_files
,
ext_modules
=
ext_modules
,
cmdclass
=
{
'install_lib'
:
MyInstallLib
}
,
cmdclass
=
cmdclass
,
**
kwargs
)
...
...
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