/[gentoo-x86]/eclass/distutils.eclass
Gentoo

Contents of /eclass/distutils.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.77 - (hide annotations) (download)
Sun Oct 10 19:23:20 2010 UTC (3 years, 6 months ago) by arfrever
Branch: MAIN
Changes since 1.76: +12 -12 lines
Use _python_package_supporting_installation_for_multiple_python_abis() instead of checking SUPPORT_PYTHON_ABIS variable.
Fix a typo in distutils_src_install().

1 arfrever 1.70 # Copyright 1999-2010 Gentoo Foundation
2 vapier 1.4 # Distributed under the terms of the GNU General Public License v2
3 arfrever 1.77 # $Header: /var/cvsroot/gentoo-x86/eclass/distutils.eclass,v 1.76 2010/07/17 23:03:29 arfrever Exp $
4 dev-zero 1.46
5     # @ECLASS: distutils.eclass
6     # @MAINTAINER:
7 arfrever 1.70 # Gentoo Python Project <python@gentoo.org>
8 vapier 1.5 #
9 dev-zero 1.46 # Original author: Jon Nelson <jnelson@gentoo.org>
10 arfrever 1.70 # @BLURB: Eclass for packages with build systems using Distutils
11 dev-zero 1.46 # @DESCRIPTION:
12 arfrever 1.73 # The distutils eclass defines phase functions for packages with build systems using Distutils.
13 jnelson 1.1
14 pva 1.72 inherit multilib python
15 liquidx 1.16
16 pva 1.55 case "${EAPI:-0}" in
17     0|1)
18     EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_postrm
19     ;;
20     *)
21 arfrever 1.73 EXPORT_FUNCTIONS src_prepare src_compile src_install pkg_postinst pkg_postrm
22 pva 1.55 ;;
23     esac
24    
25 arfrever 1.74 if [[ -z "$(declare -p PYTHON_DEPEND 2> /dev/null)" ]]; then
26 arfrever 1.73 DEPEND="dev-lang/python"
27 arfrever 1.62 RDEPEND="${DEPEND}"
28     fi
29 arfrever 1.68
30 arfrever 1.74 # 'python' variable is deprecated. Use PYTHON() instead.
31 arfrever 1.73 if has "${EAPI:-0}" 0 1 2 && [[ -z "${SUPPORT_PYTHON_ABIS}" ]]; then
32 arfrever 1.68 python="python"
33     else
34     python="die"
35     fi
36 arfrever 1.60
37 arfrever 1.61 # @ECLASS-VARIABLE: DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES
38     # @DESCRIPTION:
39     # Set this to use separate source directories for each enabled version of Python.
40    
41 arfrever 1.76 # @ECLASS-VARIABLE: DISTUTILS_SETUP_FILES
42     # @DESCRIPTION:
43     # Paths to setup files.
44    
45 arfrever 1.60 # @ECLASS-VARIABLE: DISTUTILS_GLOBAL_OPTIONS
46 dev-zero 1.46 # @DESCRIPTION:
47 arfrever 1.76 # Global options passed to setup files.
48 jnelson 1.1
49 arfrever 1.70 # @ECLASS-VARIABLE: DISTUTILS_SRC_TEST
50     # @DESCRIPTION:
51     # Type of test command used by distutils_src_test().
52     # IUSE and DEPEND are automatically adjusted, unless DISTUTILS_DISABLE_TEST_DEPENDENCY is set.
53     # Valid values:
54     # setup.py
55     # nosetests
56     # py.test
57     # trial [arguments]
58    
59     # @ECLASS-VARIABLE: DISTUTILS_DISABLE_TEST_DEPENDENCY
60     # @DESCRIPTION:
61     # Disable modification of IUSE and DEPEND caused by setting of DISTUTILS_SRC_TEST.
62    
63     if [[ -n "${DISTUTILS_SRC_TEST}" && ! "${DISTUTILS_SRC_TEST}" =~ ^(setup\.py|nosetests|py\.test|trial(\ .*)?)$ ]]; then
64     die "'DISTUTILS_SRC_TEST' variable has unsupported value '${DISTUTILS_SRC_TEST}'"
65     fi
66    
67     if [[ -z "${DISTUTILS_DISABLE_TEST_DEPENDENCY}" ]]; then
68     if [[ "${DISTUTILS_SRC_TEST}" == "nosetests" ]]; then
69     IUSE="test"
70     DEPEND+="${DEPEND:+ }test? ( dev-python/nose )"
71     elif [[ "${DISTUTILS_SRC_TEST}" == "py.test" ]]; then
72     IUSE="test"
73     DEPEND+="${DEPEND:+ }test? ( dev-python/py )"
74     # trial requires an argument, which is usually equal to "${PN}".
75     elif [[ "${DISTUTILS_SRC_TEST}" =~ ^trial(\ .*)?$ ]]; then
76     IUSE="test"
77     DEPEND+="${DEPEND:+ }test? ( dev-python/twisted )"
78     fi
79     fi
80    
81     if [[ -n "${DISTUTILS_SRC_TEST}" ]]; then
82     EXPORT_FUNCTIONS src_test
83     fi
84    
85 arfrever 1.68 # @ECLASS-VARIABLE: DISTUTILS_DISABLE_VERSIONING_OF_PYTHON_SCRIPTS
86     # @DESCRIPTION:
87     # Set this to disable renaming of Python scripts containing versioned shebangs
88     # and generation of wrapper scripts.
89    
90 arfrever 1.73 # @ECLASS-VARIABLE: DISTUTILS_NONVERSIONED_PYTHON_SCRIPTS
91     # @DESCRIPTION:
92 arfrever 1.74 # List of paths to Python scripts, relative to ${ED}, which are excluded from
93 arfrever 1.73 # renaming and generation of wrapper scripts.
94    
95 dev-zero 1.46 # @ECLASS-VARIABLE: DOCS
96     # @DESCRIPTION:
97 arfrever 1.70 # Additional documentation files installed by distutils_src_install().
98    
99     _distutils_get_build_dir() {
100 arfrever 1.77 if _python_package_supporting_installation_for_multiple_python_abis && [[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]]; then
101 arfrever 1.70 echo "build-${PYTHON_ABI}"
102     else
103     echo "build"
104     fi
105     }
106    
107     _distutils_get_PYTHONPATH() {
108 arfrever 1.77 if _python_package_supporting_installation_for_multiple_python_abis && [[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]]; then
109 arfrever 1.70 ls -d build-${PYTHON_ABI}/lib* 2> /dev/null
110     else
111     ls -d build/lib* 2> /dev/null
112     fi
113     }
114 dev-zero 1.46
115 arfrever 1.67 _distutils_hook() {
116     if [[ "$#" -ne 1 ]]; then
117     die "${FUNCNAME}() requires 1 argument"
118     fi
119     if [[ "$(type -t "distutils_src_${EBUILD_PHASE}_$1_hook")" == "function" ]]; then
120     "distutils_src_${EBUILD_PHASE}_$1_hook"
121     fi
122     }
123    
124 dev-zero 1.46 # @FUNCTION: distutils_src_unpack
125     # @DESCRIPTION:
126 arfrever 1.70 # The distutils src_unpack function. This function is exported.
127 lucass 1.41 distutils_src_unpack() {
128 arfrever 1.73 if ! has "${EAPI:-0}" 0 1; then
129     die "${FUNCNAME}() cannot be used in this EAPI"
130     fi
131    
132 arfrever 1.59 if [[ "${EBUILD_PHASE}" != "unpack" ]]; then
133     die "${FUNCNAME}() can be used only in src_unpack() phase"
134     fi
135    
136 lucass 1.41 unpack ${A}
137     cd "${S}"
138    
139 arfrever 1.73 distutils_src_prepare
140 pva 1.55 }
141    
142     # @FUNCTION: distutils_src_prepare
143     # @DESCRIPTION:
144 arfrever 1.70 # The distutils src_prepare function. This function is exported.
145 pva 1.55 distutils_src_prepare() {
146 arfrever 1.59 if ! has "${EAPI:-0}" 0 1 && [[ "${EBUILD_PHASE}" != "prepare" ]]; then
147     die "${FUNCNAME}() can be used only in src_prepare() phase"
148     fi
149    
150 arfrever 1.70 # Delete ez_setup files to prevent packages from installing Setuptools on their own.
151 arfrever 1.66 local ez_setup_existence="0"
152 arfrever 1.63 [[ -d ez_setup || -f ez_setup.py ]] && ez_setup_existence="1"
153 arfrever 1.61 rm -fr ez_setup*
154 arfrever 1.63 if [[ "${ez_setup_existence}" == "1" ]]; then
155 arfrever 1.61 echo "def use_setuptools(*args, **kwargs): pass" > ez_setup.py
156     fi
157    
158 arfrever 1.70 # Delete distribute_setup files to prevent packages from installing Distribute on their own.
159 arfrever 1.66 local distribute_setup_existence="0"
160     [[ -d distribute_setup || -f distribute_setup.py ]] && distribute_setup_existence="1"
161     rm -fr distribute_setup*
162     if [[ "${distribute_setup_existence}" == "1" ]]; then
163     echo "def use_setuptools(*args, **kwargs): pass" > distribute_setup.py
164     fi
165    
166 arfrever 1.61 if [[ -n "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]]; then
167     python_copy_sources
168     fi
169 lucass 1.41 }
170    
171 dev-zero 1.46 # @FUNCTION: distutils_src_compile
172     # @DESCRIPTION:
173 arfrever 1.70 # The distutils src_compile function. This function is exported.
174     # In ebuilds of packages supporting installation for multiple versions of Python, this function
175     # calls distutils_src_compile_pre_hook() and distutils_src_compile_post_hook(), if they are defined.
176 jnelson 1.1 distutils_src_compile() {
177 arfrever 1.59 if [[ "${EBUILD_PHASE}" != "compile" ]]; then
178     die "${FUNCNAME}() can be used only in src_compile() phase"
179     fi
180    
181 arfrever 1.73 _python_set_color_variables
182    
183 arfrever 1.77 if _python_package_supporting_installation_for_multiple_python_abis; then
184 arfrever 1.70 distutils_building() {
185     _distutils_hook pre
186    
187 arfrever 1.76 local setup_file
188     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
189     echo ${_BOLD}"$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" build -b "$(_distutils_get_build_dir)" "$@"${_NORMAL}
190     "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" build -b "$(_distutils_get_build_dir)" "$@" || return "$?"
191     done
192 arfrever 1.70
193     _distutils_hook post
194     }
195     python_execute_function ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} distutils_building "$@"
196     else
197 arfrever 1.76 local setup_file
198     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
199     echo ${_BOLD}"$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" build "$@"${_NORMAL}
200     "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" build "$@" || die "Building failed"
201     done
202 arfrever 1.70 fi
203     }
204 arfrever 1.67
205 arfrever 1.74 _distutils_src_test_hook() {
206     if [[ "$#" -ne 1 ]]; then
207     die "${FUNCNAME}() requires 1 arguments"
208     fi
209    
210 arfrever 1.77 if ! _python_package_supporting_installation_for_multiple_python_abis; then
211 arfrever 1.74 return
212     fi
213    
214     if [[ "$(type -t "distutils_src_test_pre_hook")" == "function" ]]; then
215     eval "python_execute_$1_pre_hook() {
216     distutils_src_test_pre_hook
217     }"
218     fi
219    
220     if [[ "$(type -t "distutils_src_test_post_hook")" == "function" ]]; then
221     eval "python_execute_$1_post_hook() {
222     distutils_src_test_post_hook
223     }"
224     fi
225     }
226    
227 arfrever 1.70 # @FUNCTION: distutils_src_test
228     # @DESCRIPTION:
229     # The distutils src_test function. This function is exported, when DISTUTILS_SRC_TEST variable is set.
230 arfrever 1.74 # In ebuilds of packages supporting installation for multiple versions of Python, this function
231     # calls distutils_src_test_pre_hook() and distutils_src_test_post_hook(), if they are defined.
232 arfrever 1.70 distutils_src_test() {
233 arfrever 1.75 if [[ "${EBUILD_PHASE}" != "test" ]]; then
234     die "${FUNCNAME}() can be used only in src_test() phase"
235     fi
236    
237 arfrever 1.73 _python_set_color_variables
238    
239 arfrever 1.70 if [[ "${DISTUTILS_SRC_TEST}" == "setup.py" ]]; then
240 arfrever 1.77 if _python_package_supporting_installation_for_multiple_python_abis; then
241 arfrever 1.70 distutils_testing() {
242 arfrever 1.74 _distutils_hook pre
243    
244 arfrever 1.76 local setup_file
245     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
246     echo ${_BOLD}PYTHONPATH="$(_distutils_get_PYTHONPATH)" "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" $([[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]] && echo build -b "$(_distutils_get_build_dir)") test "$@"${_NORMAL}
247     PYTHONPATH="$(_distutils_get_PYTHONPATH)" "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" $([[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]] && echo build -b "$(_distutils_get_build_dir)") test "$@" || return "$?"
248     done
249 arfrever 1.74
250     _distutils_hook post
251 arfrever 1.61 }
252 arfrever 1.70 python_execute_function ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} distutils_testing "$@"
253     else
254 arfrever 1.76 local setup_file
255     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
256     echo ${_BOLD}PYTHONPATH="$(_distutils_get_PYTHONPATH)" "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" test "$@"${_NORMAL}
257     PYTHONPATH="$(_distutils_get_PYTHONPATH)" "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" test "$@" || die "Testing failed"
258     done
259 arfrever 1.70 fi
260     elif [[ "${DISTUTILS_SRC_TEST}" == "nosetests" ]]; then
261 arfrever 1.74 _distutils_src_test_hook nosetests
262    
263 arfrever 1.70 python_execute_nosetests -P '$(_distutils_get_PYTHONPATH)' ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} -- "$@"
264     elif [[ "${DISTUTILS_SRC_TEST}" == "py.test" ]]; then
265 arfrever 1.74 _distutils_src_test_hook py.test
266    
267 arfrever 1.70 python_execute_py.test -P '$(_distutils_get_PYTHONPATH)' ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} -- "$@"
268     # trial requires an argument, which is usually equal to "${PN}".
269     elif [[ "${DISTUTILS_SRC_TEST}" =~ ^trial(\ .*)?$ ]]; then
270     local trial_arguments
271     if [[ "${DISTUTILS_SRC_TEST}" == "trial "* ]]; then
272     trial_arguments="${DISTUTILS_SRC_TEST#trial }"
273 arfrever 1.61 else
274 arfrever 1.70 trial_arguments="${PN}"
275     fi
276 arfrever 1.67
277 arfrever 1.74 _distutils_src_test_hook trial
278    
279 arfrever 1.70 python_execute_trial -P '$(_distutils_get_PYTHONPATH)' ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} -- ${trial_arguments} "$@"
280 arfrever 1.56 else
281 arfrever 1.70 die "'DISTUTILS_SRC_TEST' variable has unsupported value '${DISTUTILS_SRC_TEST}'"
282 arfrever 1.56 fi
283 jnelson 1.1 }
284    
285 dev-zero 1.46 # @FUNCTION: distutils_src_install
286     # @DESCRIPTION:
287 arfrever 1.70 # The distutils src_install function. This function is exported.
288     # In ebuilds of packages supporting installation for multiple versions of Python, this function
289     # calls distutils_src_install_pre_hook() and distutils_src_install_post_hook(), if they are defined.
290     # It also installs some standard documentation files (AUTHORS, Change*, CHANGELOG, CONTRIBUTORS,
291     # KNOWN_BUGS, MAINTAINERS, MANIFEST*, NEWS, PKG-INFO, README*, TODO).
292 jnelson 1.1 distutils_src_install() {
293 arfrever 1.59 if [[ "${EBUILD_PHASE}" != "install" ]]; then
294     die "${FUNCNAME}() can be used only in src_install() phase"
295     fi
296    
297 arfrever 1.74 _python_initialize_prefix_variables
298 arfrever 1.73 _python_set_color_variables
299    
300 arfrever 1.77 if _python_package_supporting_installation_for_multiple_python_abis; then
301 arfrever 1.70 if [[ -z "${DISTUTILS_DISABLE_VERSIONING_OF_PYTHON_SCRIPTS}" && "${BASH_VERSINFO[0]}" -ge 4 ]]; then
302 arfrever 1.68 declare -A wrapper_scripts=()
303    
304     rename_scripts_with_versioned_shebangs() {
305 arfrever 1.74 if [[ -d "${ED}usr/bin" ]]; then
306     cd "${ED}usr/bin"
307 arfrever 1.68
308 arfrever 1.73 local nonversioned_file file
309 arfrever 1.68 for file in *; do
310 arfrever 1.77 if [[ -f "${file}" && ! "${file}" =~ [[:digit:]]+\.[[:digit:]]+(-jython)?$ && "$(head -n1 "${file}")" =~ ^'#!'.*(python|jython-)[[:digit:]]+\.[[:digit:]]+ ]]; then
311 arfrever 1.73 for nonversioned_file in "${DISTUTILS_NONVERSIONED_PYTHON_SCRIPTS[@]}"; do
312     [[ "${nonversioned_file}" == "/usr/bin/${file}" ]] && continue 2
313     done
314 arfrever 1.68 mv "${file}" "${file}-${PYTHON_ABI}" || die "Renaming of '${file}' failed"
315 arfrever 1.74 wrapper_scripts+=(["${ED}usr/bin/${file}"]=)
316 arfrever 1.68 fi
317     done
318     fi
319     }
320     fi
321    
322 arfrever 1.70 distutils_installation() {
323     _distutils_hook pre
324 arfrever 1.61
325 arfrever 1.76 local setup_file
326     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
327     echo ${_BOLD}"$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" $([[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]] && echo build -b "$(_distutils_get_build_dir)") install --root="${D}" --no-compile "$@"${_NORMAL}
328     "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" $([[ -z "${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES}" ]] && echo build -b "$(_distutils_get_build_dir)") install --root="${D}" --no-compile "$@" || return "$?"
329     done
330 arfrever 1.67
331 arfrever 1.70 if [[ -z "${DISTUTILS_DISABLE_VERSIONING_OF_PYTHON_SCRIPTS}" && "${BASH_VERSINFO[0]}" -ge 4 ]]; then
332     rename_scripts_with_versioned_shebangs
333     fi
334 arfrever 1.61
335 arfrever 1.70 _distutils_hook post
336     }
337     python_execute_function ${DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES:+-s} distutils_installation "$@"
338 arfrever 1.67
339 arfrever 1.70 if [[ -z "${DISTUTILS_DISABLE_VERSIONING_OF_PYTHON_SCRIPTS}" && "${#wrapper_scripts[@]}" -ne 0 && "${BASH_VERSINFO[0]}" -ge 4 ]]; then
340 arfrever 1.68 python_generate_wrapper_scripts "${!wrapper_scripts[@]}"
341     fi
342     unset wrapper_scripts
343 liquidx 1.18 else
344 arfrever 1.69 # Mark the package to be rebuilt after a Python upgrade.
345     python_need_rebuild
346    
347 arfrever 1.76 local setup_file
348     for setup_file in "${DISTUTILS_SETUP_FILES[@]-setup.py}"; do
349     echo ${_BOLD}"$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" install --root="${D}" --no-compile "$@"${_NORMAL}
350     "$(PYTHON)" "${setup_file}" "${DISTUTILS_GLOBAL_OPTIONS[@]}" install --root="${D}" --no-compile "$@" || die "Installation failed"
351     done
352 swegener 1.28 fi
353 lanius 1.20
354 arfrever 1.74 if [[ -e "${ED}usr/local" ]]; then
355 arfrever 1.64 die "Illegal installation into /usr/local"
356     fi
357    
358 arfrever 1.62 local default_docs
359     default_docs="AUTHORS Change* CHANGELOG CONTRIBUTORS KNOWN_BUGS MAINTAINERS MANIFEST* NEWS PKG-INFO README* TODO"
360 lanius 1.20
361 arfrever 1.56 local doc
362 arfrever 1.62 for doc in ${default_docs}; do
363     [[ -s "${doc}" ]] && dodoc "${doc}"
364 lanius 1.20 done
365    
366 arfrever 1.62 if [[ -n "${DOCS}" ]]; then
367     dodoc ${DOCS} || die "dodoc failed"
368     fi
369 jnelson 1.1 }
370 kutsuya 1.6
371 arfrever 1.63 # @FUNCTION: distutils_pkg_postinst
372 dev-zero 1.46 # @DESCRIPTION:
373 arfrever 1.70 # The distutils pkg_postinst function. This function is exported.
374     # When PYTHON_MODNAME variable is set, then this function calls python_mod_optimize() with modules
375     # specified in PYTHON_MODNAME variable. Otherwise it calls python_mod_optimize() with module, whose
376     # name is equal to name of current package, if this module exists.
377 arfrever 1.63 distutils_pkg_postinst() {
378     if [[ "${EBUILD_PHASE}" != "postinst" ]]; then
379     die "${FUNCNAME}() can be used only in pkg_postinst() phase"
380 arfrever 1.59 fi
381    
382 arfrever 1.74 _python_initialize_prefix_variables
383    
384 arfrever 1.56 local pylibdir pymod
385 arfrever 1.75 if [[ -z "$(declare -p PYTHON_MODNAME 2> /dev/null)" ]]; then
386 arfrever 1.77 for pylibdir in "${EROOT}"usr/$(get_libdir)/python* "${EROOT}"usr/share/jython-*/Lib; do
387 arfrever 1.56 if [[ -d "${pylibdir}/site-packages/${PN}" ]]; then
388     PYTHON_MODNAME="${PN}"
389 hawking 1.54 fi
390     done
391 hawking 1.49 fi
392 liquidx 1.19
393 arfrever 1.75 if [[ -n "${PYTHON_MODNAME}" ]]; then
394 arfrever 1.77 if ! has "${EAPI:-0}" 0 1 2 || _python_package_supporting_installation_for_multiple_python_abis; then
395 arfrever 1.75 python_mod_optimize ${PYTHON_MODNAME}
396     else
397     for pymod in ${PYTHON_MODNAME}; do
398     python_mod_optimize "$(python_get_sitedir)/${pymod}"
399     done
400     fi
401 swegener 1.28 fi
402 liquidx 1.19 }
403    
404 arfrever 1.63 # @FUNCTION: distutils_pkg_postrm
405 dev-zero 1.46 # @DESCRIPTION:
406 arfrever 1.70 # The distutils pkg_postrm function. This function is exported.
407     # When PYTHON_MODNAME variable is set, then this function calls python_mod_cleanup() with modules
408     # specified in PYTHON_MODNAME variable. Otherwise it calls python_mod_cleanup() with module, whose
409     # name is equal to name of current package, if this module exists.
410 arfrever 1.63 distutils_pkg_postrm() {
411     if [[ "${EBUILD_PHASE}" != "postrm" ]]; then
412     die "${FUNCNAME}() can be used only in pkg_postrm() phase"
413 arfrever 1.59 fi
414    
415 arfrever 1.74 _python_initialize_prefix_variables
416    
417 hawking 1.54 local pylibdir pymod
418 arfrever 1.75 if [[ -z "$(declare -p PYTHON_MODNAME 2> /dev/null)" ]]; then
419 arfrever 1.77 for pylibdir in "${EROOT}"usr/$(get_libdir)/python* "${EROOT}"usr/share/jython-*/Lib; do
420 arfrever 1.56 if [[ -d "${pylibdir}/site-packages/${PN}" ]]; then
421     PYTHON_MODNAME="${PN}"
422 hawking 1.54 fi
423     done
424 hawking 1.50 fi
425 swegener 1.28
426 arfrever 1.63 if [[ -n "${PYTHON_MODNAME}" ]]; then
427 arfrever 1.77 if ! has "${EAPI:-0}" 0 1 2 || _python_package_supporting_installation_for_multiple_python_abis; then
428 arfrever 1.65 python_mod_cleanup ${PYTHON_MODNAME}
429     else
430     for pymod in ${PYTHON_MODNAME}; do
431 arfrever 1.74 for pylibdir in "${EROOT}"usr/$(get_libdir)/python*; do
432 arfrever 1.63 if [[ -d "${pylibdir}/site-packages/${pymod}" ]]; then
433 arfrever 1.74 python_mod_cleanup "${pylibdir#${EROOT%/}}/site-packages/${pymod}"
434 arfrever 1.63 fi
435     done
436 arfrever 1.65 done
437     fi
438 swegener 1.28 fi
439 liquidx 1.19 }
440    
441 arfrever 1.76 # Scheduled for deletion on 2011-01-01.
442 liquidx 1.13 distutils_python_version() {
443 arfrever 1.76 eerror "Use PYTHON() instead of python variable. Use python_get_*() instead of PYVER* variables."
444     die "${FUNCNAME}() is banned"
445 liquidx 1.12 }
446    
447 arfrever 1.76 # Scheduled for deletion on 2011-01-01.
448 liquidx 1.12 distutils_python_tkinter() {
449 arfrever 1.76 eerror "Use PYTHON_USE_WITH=\"xml\" and python_pkg_setup() instead of ${FUNCNAME}()."
450     die "${FUNCNAME}() is banned"
451 vapier 1.8 }

  ViewVC Help
Powered by ViewVC 1.1.20