Contents of /trunk/extras/python3/python3-3.11.4-r4.smage2
Parent Directory | Revision Log
Revision 33420 -
(show annotations)
(download)
Mon Jul 17 07:16:22 2023 UTC (10 months ago) by niro
File size: 8376 byte(s)
Mon Jul 17 07:16:22 2023 UTC (10 months ago) by niro
File size: 8376 byte(s)
-added remove rpath patch
1 | # $Id$ |
2 | |
3 | PNAME="python3" |
4 | PVER="3.11.4" |
5 | PBUILD="r4" |
6 | |
7 | SPLIT_PACKAGES="python3 python3-tests" |
8 | PCAT="dev-lang" |
9 | |
10 | DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." |
11 | HOMEPAGE="http://www.python.org/" |
12 | |
13 | DEPEND_x86_64=">= sys-apps/multiarch-wrapper-1" |
14 | SPECIAL_VARS="DEPEND_x86_64" |
15 | |
16 | DEPEND="$(marchdepend) |
17 | >= virtual/glibc |
18 | >= sys-libs/ncurses-6.4 |
19 | >= sys-libs/zlib-1.2 |
20 | >= dev-libs/expat-2 |
21 | >= dev-libs/openssl-3.1 |
22 | >= sys-libs/libxcrypt-4.4 |
23 | >= sys-libs/readline-8.2 |
24 | >= dev-db/db-6.2 |
25 | >= dev-db/sqlite-3.42 |
26 | >= app-arch/bzip2-1.0.6 |
27 | >= dev-libs/libffi-3.4" |
28 | |
29 | # util-linux for linux32/64 |
30 | SDEPEND=">= virtual/sed |
31 | >= sys-apps/util-linux-2.39" |
32 | |
33 | SRCFILE="Python-${PVER/.0}.tar.xz" |
34 | SRCDIR="${BUILDDIR}/Python-${PVER/.0}" |
35 | |
36 | # force usage of our CFLAGS |
37 | export OPT="${CFLAGS}" |
38 | |
39 | sminclude multilib mtools mbuild cleanutils |
40 | msetfeature "!check" |
41 | |
42 | # uses PYVER and sometimes PVER; so keep both |
43 | SRC_URI=( |
44 | http://www.python.org/ftp/python/${PVER%.*}/${SRCFILE} |
45 | http://www.python.org/ftp/python/${PVER}/${SRCFILE} |
46 | mirror://python/${SRCFILE} |
47 | mirror://python/python-${PVER}-remove-rpath.patch |
48 | ) |
49 | |
50 | # sed line: on 2 digits add an zero: 2.6 -> 2.6.0 |
51 | #UP2DATE="updatecmd ${HOMEPAGE}/download/releases/ | grep 'Python .*(.*)' | sed 's/.*Python\ \([0-9].*\) (.*/\1/g;s/\([0-9]\.[0-9]\$\)/\1.0/;q'" |
52 | #UP2DATE="updatecmd -listonly https://www.python.org/downloads/ | grep '/releases/[0-9]' | sed 's:.*/releases/\(.*\)/:\1:' | upsort_pipe" |
53 | UP2DATE="updatecmd ${HOMEPAGE}/download/ | grep -- '-3\.' | highesttarball xz" |
54 | |
55 | split_info_python3() |
56 | { |
57 | DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." |
58 | } |
59 | |
60 | split_info_python3-tests() |
61 | { |
62 | DESCRIPTION="Python regression test packages." |
63 | DEPEND="== ${PCAT}/python3-${PVER}" |
64 | } |
65 | |
66 | src_prepare() |
67 | { |
68 | munpack ${SRCFILE} || die |
69 | |
70 | # remove rpath |
71 | mpatch python-${PVER}-remove-rpath.patch || die |
72 | |
73 | # ensure to use system-wide copies of expat, libmpdec and libffi |
74 | # rather than copies shipped in the tarball |
75 | all-abis 'rm -r Modules/expat || die' |
76 | all-abis 'rm -r Modules/_ctypes/{darwin,libffi}* || die' |
77 | #all-abis 'rm -r Modules/_decimal/libmpdec || die' |
78 | } |
79 | |
80 | src_compile() |
81 | { |
82 | mconfigure \ |
83 | --enable-shared \ |
84 | --enable-ipv6 \ |
85 | --infodir=/usr/share/info \ |
86 | --mandir=/usr/share/man \ |
87 | --with-threads \ |
88 | --with-computed-gotos \ |
89 | --with-system-expat \ |
90 | --with-system-ffi \ |
91 | --enable-optimizations \ |
92 | --with-platlibdir='$(mlibdir)' \ |
93 | || die |
94 | |
95 | # disabled some modules (gdbm dbm bsddb _tkinter) |
96 | all-abis 'echo "MODULE__GDBM_STATE=disabled" >> Makefile || die' |
97 | all-abis 'echo "MODULE__DBM_STATE=disabled" >> Makefile || die' |
98 | all-abis 'echo "MODULE__TKINTER_STATE=disabled" >> Makefile || die' |
99 | |
100 | mmake || die |
101 | } |
102 | |
103 | src_install_python3() |
104 | { |
105 | # install some missing directories |
106 | minstalldir /usr || die |
107 | |
108 | mmake -j1 DESTDIR=${BINDIR} altinstall || die |
109 | |
110 | all-abis minstalldir /usr/'$(mlibdir)'/python${PVER%.*}/config-${PVER%.*}-'$(linux${ABI/m/} arch | sed "s:i.86:i386:")'-linux-gnu || die |
111 | all-abis minstallfile Makefile.pre.in /usr/'$(mlibdir)'/python${PVER%.*}/config-${PVER%.*}-'$(linux${ABI/m/} arch | sed "s:i.86:i386:")'-linux-gnu || die |
112 | |
113 | # remove hardcoded CFLAGS from default Makefile |
114 | all-abis sed -i 's:^OPT=.*:OPT=-DNDEBUG:' ${BINDIR}/usr/'$(mlibdir)'/python${PVER%.*}/config-${PVER%.*}-'$(linux${ABI/m/} arch | sed "s:i.86:i386:")'-linux-gnu/Makefile || die |
115 | |
116 | if [[ ${ARCH} = x86_64 ]] |
117 | then |
118 | # move config header |
119 | all-abis minstallfile pyconfig.h /usr/include/python${PVER%.*}/pyconfig-$(mabi).h || die |
120 | |
121 | # install a stub header |
122 | cat > ${BINDIR}/usr/include/python${PVER%.*}/pyconfig.h << "EOF" |
123 | /* pyconfig.h - Stub Header */ |
124 | #ifndef __STUB__PYCONFIG_H__ |
125 | #define __STUB__PYCONFIG_H__ |
126 | |
127 | #if defined(__x86_64__) || \ |
128 | defined(__sparc64__) || \ |
129 | defined(__arch64__) || \ |
130 | defined(__powerpc64__) || \ |
131 | defined (__s390x__) |
132 | # include "pyconfig-m64.h" |
133 | #else |
134 | # include "pyconfig-m32.h" |
135 | #endif |
136 | |
137 | #endif /* __STUB__PYCONFIG_H__ */ |
138 | EOF |
139 | |
140 | # install the multiarch-wrapper for python binaries |
141 | if [[ -f ${BINDIR}/usr/bin/python${PVER%.*} ]] |
142 | then |
143 | rm -f ${BINDIR}/usr/bin/python${PVER%.*} || die |
144 | fi |
145 | all-abis minstallexec python /usr/bin/python${PVER%.*}-$(mabi) || die |
146 | mlink multiarch-wrapper /usr/bin/python${PVER%.*} || die |
147 | # not our default python |
148 | #all-abis mlink python${PVER%.*} /usr/bin/python-$(mabi) || die |
149 | all-abis mlink python${PVER%.*}-$(mabi) /usr/bin/python${PVER:0:1}-$(mabi) || die |
150 | |
151 | # install the multiarch-wrapper for python-config |
152 | if [[ -f ${BINDIR}/usr/bin/python${PVER%.*}-config ]] |
153 | then |
154 | rm -f ${BINDIR}/usr/bin/python${PVER%.*}-config || die |
155 | fi |
156 | all-abis minstallexec python-config /usr/bin/python${PVER%.*}-config-$(mabi) || die |
157 | mlink multiarch-wrapper /usr/bin/python${PVER%.*}-config || die |
158 | # not our default python |
159 | #all-abis mlink python${PVER%.*}-config /usr/bin/python-config-$(mabi) || die |
160 | all-abis mlink python${PVER%.*}-config-$(mabi) /usr/bin/python${PVER:0:1}-config-$(mabi) || die |
161 | fi |
162 | |
163 | # not our default python |
164 | # # link python3.x-config to python-config |
165 | # mlink python${PVER%.*}-config /usr/bin/python-config || die |
166 | |
167 | # link python3.x-config to python3-config |
168 | mlink python${PVER%.*}-config /usr/bin/python${PVER:0:1}-config || die |
169 | |
170 | # not our default python |
171 | # # link python3.x binary with python |
172 | # mlink python${PVER%.*} /usr/bin/python || die |
173 | |
174 | # link python3.x binary with python3 |
175 | mlink python${PVER%.*} /usr/bin/python${PVER:0:1} || die |
176 | |
177 | # link pydoc3.x, 2to3-3.x and idle3.x too |
178 | mlink pydoc${PVER%.*} /usr/bin/pydoc${PVER:0:1} || die |
179 | mlink 2to3-${PVER%.*} /usr/bin/2to3-${PVER:0:1} || die |
180 | mlink idle${PVER%.*} /usr/bin/idle${PVER:0:1} || die |
181 | |
182 | minstalldocs LICENSE README || die |
183 | |
184 | # remove all regression test packages to save alot of space (>200MB) |
185 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/ctypes/test || die |
186 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/distutils/tests || die |
187 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/idlelib/idle_test || die |
188 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/lib2to3/tests || die |
189 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/tkinter/test || die |
190 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/unittest/test || die |
191 | # just keep support directory |
192 | all-abis zapmost ${BINDIR}/usr/'$(mlibdir)'/python${PVER%.*}/test support || die |
193 | } |
194 | |
195 | src_install_python3-tests() |
196 | { |
197 | mmake -j1 DESTDIR=${BINDIR} libinstall || die |
198 | |
199 | # keep all tests |
200 | zapmost ${BINDIR} \ |
201 | usr/$(mlibdir)/python${PVER%.*}/test \ |
202 | usr/$(mlibdir)/python${PVER%.*}/ctypes/test \ |
203 | usr/$(mlibdir)/python${PVER%.*}/distutils/tests \ |
204 | usr/$(mlibdir)/python${PVER%.*}/idlelib/idle_test \ |
205 | usr/$(mlibdir)/python${PVER%.*}/lib2to3/tests \ |
206 | usr/$(mlibdir)/python${PVER%.*}/tkinter/test \ |
207 | usr/$(mlibdir)/python${PVER%.*}/unittest/test \ |
208 | \ |
209 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/test") \ |
210 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/ctypes/test") \ |
211 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/distutils/tests") \ |
212 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/idlelib/idle_test") \ |
213 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/lib2to3/tests") \ |
214 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/tkinter/test") \ |
215 | $([[ $(MABI=m32 mlibdir) != lib ]] && echo "usr/$(MABI=m32 mlibdir)/python${PVER%.*}/unittest/test") \ |
216 | \ |
217 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/test") \ |
218 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/ctypes/test") \ |
219 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/distutils/tests") \ |
220 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/idlelib/idle_test") \ |
221 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/lib2to3/tests") \ |
222 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/tkinter/test") \ |
223 | $([[ $(MABI=m64 mlibdir) != lib ]] && echo "usr/$(MABI=m64 mlibdir)/python${PVER%.*}/unittest/test") \ |
224 | || die |
225 | |
226 | # remove the test/support directory proved by python itself |
227 | all-abis mdelete -r /usr/'$(mlibdir)'/python${PVER%.*}/test/support || die |
228 | } |