Magellan Linux

Contents of /trunk/extras/python3/python3-3.11.4-r4.smage2

Parent Directory Parent Directory | Revision Log 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)
-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 }