/[packages]/cauldron/python3/current/SPECS/python3.spec
ViewVC logotype

Contents of /cauldron/python3/current/SPECS/python3.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1876780 - (show annotations) (download)
Wed Aug 10 16:39:20 2022 UTC (20 months, 2 weeks ago) by wally
File size: 36866 byte(s)
- skip test_peg_generator tests for now (SILENT)
1 # NOTES ON BOOTSTRAPING PYTHON 3.x:
2 #
3 # Due to a dependency cycle between Python, rpm, pip, setuptools, wheel,
4 # and other packages, in order to rebase Python 3 one has to build in the
5 # following order:
6 #
7 # 1. gdb %%bcond_with python
8 # 2. gtk-doc %%bcond_without bootstrap
9 # 3. rpm-mageia-setup %%bcond_without bootstrap
10 # 4. python-rpm-generators %%bcond_without bootstrap
11 # 5. python3 (if python3 is build to core/udpates_testing there's no need to use %bcond_with rpmwheels)
12 # 6. python-rpm-macros (update __default_python3_version)
13 # 7. python-setuptools %%bcond_without bootstrap
14 # 8. python-packaging %%bcond_without bootstrap
15 # 9. python-pyparsing %%bcond_without bootstrap
16 # 10. python-wheel %%bcond_without bootstrap
17 # 11. python-pip
18 # 12. python-rpm-generators %%bcond_with bootstrap
19 # 13. python-toml
20 # 13. pyproject-rpm-macros %%bcond_with tests
21 # 14. python-setuptools %%bcond_with bootstrap
22 # 15. python-wheel %%bcond_with bootstrap
23 # 16. rpm
24 # 17. python-cython
25 # 18. python-numpy
26 # 19. boost
27 # 20. meson
28 # 21. x11-proto-devel
29 # 22. gdb %%bcond_without python
30 # 23. python-coverage
31 # 24. python-nose
32 # 25. python-yaml
33 # 26. python-markdown
34 # 27. python-markupsafe
35 # 28. python-beaker
36 # 29. python-setuptools_scm
37 # 30. python-tomli
38 # 31. python-dateutil
39 # 32. python-six
40 # 33. python-pbr
41 # 34. python-argparse
42 # 35. python-linecache2
43 # 36. python-funcsigs
44 # 38. python-mock
45 # 39. python-mako
46 # 40. python-pygments
47 # 41. python-flit
48 # 42. python-requests
49 # 43. python-urllib3
50 # 44. python-chardet
51 # 45. python-charset-normalizer %%bcond_with test
52 # 46. python-docutils
53 # 47. python-idna
54 # 48. gobject-introspection
55 # 49. python-enchant
56 # 50. file
57 # 51. rpmlint
58 # 52. rpm-mageia-setup %%bcond_with bootstrap
59 # 53. bm
60 # 54. python-httplib2
61 # 55. mgarepo
62
63 # Then the most important packages have to be built, starting from their
64 # various leaf dependencies recursively. After these have been built, a
65 # targeted rebuild should be requested for the rest.
66 #
67 # Currently these packages are recommended to have been built before a targeted
68 # rebuild after a python abi change:
69 # python-sphinx, python-pytest.
70
71 # version
72 %global version 3.10.6
73 %global docver %{version}
74
75 %global pybasever %(echo %{version} | cut -d. -f1,2)
76 %global familyver %(echo %{version} | cut -d. -f1)
77
78 # pybasever without the dot:
79 %global pyshortver %(echo %{pybasever} | tr -d '.')
80
81 # comment out if not prerel
82 #global prerel rc1
83
84 # rel for bumping
85 %global rel 1
86
87 # filter out bogus requires on python(abi) = 3.6 for testsuite
88 %global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}^%{_libdir}/python%{pybasever}/test/test_importlib/data
89
90 # For bootstrapping python3.x to python3.y
91 %bcond_with bootstrap
92
93 # Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
94 # Uses upstream bundled prebuilt wheels otherwise
95 %bcond_without rpmwheels
96 # If the rpmwheels condition is disabled, we use the bundled wheel packages
97 # from Python with the versions below.
98 # This needs to be manually updated when we update Python.
99 %global pip_version 22.2.1
100 %global setuptools_version 63.2.0
101
102 # Expensive optimizations (mainly, profile-guided optimizations)
103 %bcond_without optimizations
104
105 # Run the test suite in %%check
106 %bcond_without tests
107
108 # Support for the GDB debugger
109 %bcond_with gdb_hooks
110
111 # The dbm.gnu module (key-value database)
112 %bcond_without gdbm
113
114 # Main interpreter loop optimization
115 %bcond_without computed_gotos
116
117 # Support for the Valgrind debugger/profiler
118 %ifarch %{valgrind_arches}
119 %bcond_without valgrind
120 %else
121 %bcond_with valgrind
122 %endif
123
124 # =====================
125 # General global macros
126 # =====================
127
128 %global pylibdir %{_libdir}/python%{pybasever}
129 %global dynload_dir %{pylibdir}/lib-dynload
130
131 # ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
132 # See PEP 3149 for some background: https://www.python.org/dev/peps/pep-3149/
133 %global ABIFLAGS_optimized %{nil}
134
135 %global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
136
137 # We use the upstream arch triplets, we convert them from %%{_arch}-linux%%{_gnu}
138 %global platform_triplet %{expand:%(echo %{_arch}-linux%{_gnu} | sed -E \\
139 -e 's/^arm(eb)?-linux-gnueabi$/arm\\1-linux-gnueabihf/')}
140
141 %global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{platform_triplet}
142
143 # All bytecode files are in a __pycache__ subdirectory, with a name
144 # reflecting the version of the bytecode.
145 # See PEP 3147: https://www.python.org/dev/peps/pep-3147/
146 # For example,
147 # foo/bar.py
148 # has bytecode at:
149 # foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
150 # foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
151 # foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
152 %global bytecode_suffixes .cpython-%{pyshortver}*.pyc
153
154 # Disable automatic bytecompilation. The python3 binary is not yet be
155 # available in /usr/bin when Python is built. Also, the bytecompilation fails
156 # on files that test invalid syntax.
157 %global __brp_python_bytecompile %nil
158
159 %define lib_major %{pybasever}
160 %define lib_name_orig libpython%{familyver}
161 %define lib_name %mklibname python %{lib_major}
162 %define develname %mklibname python3 -d
163
164 Summary: An interpreted, interactive object-oriented programming language
165 Name: python3
166 Version: %{version}
167 Release: %mkrel %{?prerel:0.%prerel.}%{rel}
168 License: Modified CNRI Open Source License
169 Group: Development/Python
170
171 BuildRequires: autoconf-archive
172 BuildRequires: automake
173 BuildRequires: gcc-c++
174 BuildRequires: blt
175 BuildRequires: pkgconfig(bluez)
176 BuildRequires: db-devel
177 BuildRequires: pkgconfig(expat)
178 BuildRequires: gdbm-devel
179 BuildRequires: gmp-devel
180 BuildRequires: pkgconfig(libffi)
181 BuildRequires: pkgconfig(libnsl)
182 BuildRequires: pkgconfig(ncursesw)
183 BuildRequires: mpdecimal-devel
184 BuildRequires: pkgconfig(openssl) >= 1.1
185 BuildRequires: libtirpc-devel
186 BuildRequires: readline-devel
187 BuildRequires: termcap-devel
188 BuildRequires: tcl
189 BuildRequires: pkgconfig(tcl)
190 BuildRequires: tk
191 BuildRequires: pkgconfig(tk)
192 BuildRequires: autoconf
193 BuildRequires: pkgconfig(bzip2)
194 BuildRequires: pkgconfig(sqlite3)
195 BuildRequires: pkgconfig(liblzma)
196 # uncomment once the emacs part no longer conflict with python 2.X
197 #BuildRequires: emacs
198 #BuildRequires: emacs-bin
199 %if %{with valgrind}
200 BuildRequires: pkgconfig(valgrind)
201 %endif
202
203 BuildRequires: systemtap-sdt-devel
204
205 %if %{with rpmwheels}
206 BuildRequires: python-setuptools-wheel >= %{setuptools_version}
207 BuildRequires: python-pip-wheel >= %{pip_version}
208 %endif
209
210 %if %{without bootstrap}
211 # for make regen-all and distutils.tests.test_bdist_rpm
212 BuildRequires: python%{familyver}
213 # for proper automatic provides
214 BuildRequires: python3-rpm-generators
215 %endif
216
217 Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}.tar.xz
218 Source1: https://docs.python.org/%{pybasever}/archives/python-%{docver}%{?prerel}-docs-html.tar.bz2
219
220 # A simple script to check timestamps of bytecode files
221 # Run in check section with Python that is currently being built
222 # Originally written by bkabrda
223 Source8: check-pyc-timestamps.py
224
225 #
226 # Upstream patches
227 #
228
229 # (Patches taken from github.com/fedora-python/cpython)
230
231 # 00001 # d06a8853cf4bae9e115f45e1d531d2dc152c5cc8
232 # Fixup distutils/unixccompiler.py to remove standard library path from rpath
233 # Was Patch0 in ivazquez' python3000 specfile
234 Patch1: 00001-rpath.patch
235
236 # 00251 # 531494a5ded29dad59f617304dab4eb8b7f80b0b
237 # Change user install location
238 #
239 # Change the values of sysconfig's "posix_prefix" install scheme to /usr/local
240 # when RPM build or venv/virtualenv is not detected,
241 # to make pip, sysconfig and distutils install into an isolated location.
242 #
243 # The original values are saved as an additional "rpm_prefix" install scheme.
244 #
245 # The site module adds the /usr/local paths to sys.path when site packages are
246 # enabled and RPM build is not detected.
247 #
248 # Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
249 #
250 # Rewrote in Fedora 36+ to patch sysconfig instead of distutils,
251 # see https://discuss.python.org/t/pep-632-deprecate-distutils-module/5134/104
252 #
253 # Downstream only for now, waiting for https://bugs.python.org/issue43976
254 Patch251: 00251-change-user-install-location.patch
255
256 # 00328 # 318e500c98f5e59eb1f23e0fcd32db69b9bd17e1
257 # Restore pyc to TIMESTAMP invalidation mode as default in rpmbuild
258 #
259 # Since Fedora 31, the $SOURCE_DATE_EPOCH is set in rpmbuild to the latest
260 # %%changelog date. This makes Python default to the CHECKED_HASH pyc
261 # invalidation mode, bringing more reproducible builds traded for an import
262 # performance decrease. To avoid that, we don't default to CHECKED_HASH
263 # when $RPM_BUILD_ROOT is set (i.e. when we are building RPM packages).
264 #
265 # See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426
266 # Downstream only: only used when building RPM packages
267 # Ideally, we should talk to upstream and explain why we don't want this
268 Patch328: 00328-pyc-timestamp-invalidation-mode.patch
269
270 # 00371 # c1754d9c2750f89cb702e1b63a99201f5f7cff00
271 # Revert "bpo-1596321: Fix threading._shutdown() for the main thread (GH-28549) (GH-28589)"
272 #
273 # This reverts commit 38c67738c64304928c68d5c2bd78bbb01d979b94. It
274 # introduced regression causing FreeIPA's tests to fail.
275 #
276 # For more info see:
277 # https://bodhi.fedoraproject.org/updates/FEDORA-2021-e152ce5f31
278 # https://github.com/GrahamDumpleton/mod_wsgi/issues/730
279 Patch371: 00371-revert-bpo-1596321-fix-threading-_shutdown-for-the-main-thread-gh-28549-gh-28589.patch
280
281 # 00382 # 9e275dcdf3934b827994ecc3247d583d5bab7985
282 # CVE-2015-20107
283 #
284 # Make mailcap refuse to match unsafe filenames/types/params (GH-91993)
285 #
286 # Upstream: https://github.com/python/cpython/issues/68966
287 #
288 # Tracker bug: https://bugzilla.redhat.com/show_bug.cgi?id=2075390
289 Patch382: 00382-cve-2015-20107.patch
290
291 # (New patches go here ^^^)
292 #
293 # Mageia patches
294 #
295 Patch501: python3-3.5.2-skip-distutils-tests-that-fail-in-rpmbuild.patch
296 Patch502: python3-3.7.1-uid-gid-overflows.patch
297 Patch503: python3-3.5.2-dont-raise-from-py_compile.patch
298 Patch506: python3-3.6.2-python3-config-LIBPLUSED-cmp0004-error.patch
299 Patch507: link-C-modules-with-libpython.patch
300 Patch508: 0001-Fix-_statistics-module-linking.patch
301
302 Provides: python%{pybasever} = %{version}-%{release}
303 Provides: python(abi) = %{pybasever}
304 Provides: /usr/bin/python%{LDVERSION_optimized}
305 Provides: /usr/bin/python%{pybasever}
306 Requires: python-rpm-macros >= 3-8
307 Requires: python3-rpm-macros >= 3-8
308
309 # ease upgrade mga7->mga8, see mga#27857
310 Conflicts: python < 2.7.18-5
311 Conflicts: %{_lib}python3-devel < 3.8.1
312 Requires: %{lib_name} = %{version}-%{release}
313
314 %description
315 Python is an interpreted, interactive, object-oriented programming
316 language often compared to Tcl, Perl, Scheme or Java. Python includes
317 modules, classes, exceptions, very high level dynamic data types and
318 dynamic typing. Python supports interfaces to many system calls and
319 libraries, as well as to various windowing systems (X11, Motif, Tk,
320 Mac and MFC).
321
322 Programmers can write new built-in modules for Python in C or C++.
323 Python can be used as an extension language for applications that
324 need a programmable interface. This package contains most of the
325 standard Python modules, as well as modules for interfacing to the
326 Tix widget set for Tk and RPM.
327
328 Note that documentation for Python is provided in the python-docs
329 package.
330
331 %package -n %{lib_name}
332 Summary: Shared libraries for Python %{version}
333 Group: System/Libraries
334 Requires: %{lib_name}-stdlib = %{version}-%{release}
335
336 %description -n %{lib_name}
337 This packages contains Python shared object library. Python is an
338 interpreted, interactive, object-oriented programming language often
339 compared to Tcl, Perl, Scheme or Java.
340
341 %package -n %{lib_name}-stdlib
342 Summary: Python %{version} standard library
343 Group: Development/Python
344 %if %{with rpmwheels}
345 Requires: python-setuptools-wheel
346 Requires: python-pip-wheel
347 %else
348 Provides: bundled(python3-pip) = %{pip_version}
349 Provides: bundled(python3-setuptools) = %{setuptools_version}
350 %endif
351
352 %description -n %{lib_name}-stdlib
353 This package contains Python 3's standard library.
354 It is normally not used on its own, but as a dependency of Python %{version}.
355
356 %package -n %{lib_name}-testsuite
357 Summary: Testsuite for the Python %{version} standard library
358 Group: Development/Python
359 Provides: python3-testsuite = %{version}-%{release}
360 Requires: %{lib_name}-stdlib = %{version}-%{release}
361 Requires: %{lib_name} = %{version}-%{release}
362 Recommends: tkinter3
363
364 %description -n %{lib_name}-testsuite
365 The complete testsuite for the Python standard library.
366 It is normally not used on its own, but as a dependency of Python %{version}.
367
368 %package -n %{develname}
369 Summary: The libraries and header files needed for Python development
370 Group: Development/Python
371 Requires: %{name} = %{version}-%{release}
372 Requires: %{lib_name} = %{version}-%{release}
373 Provides: %{name}-devel = %{version}-%{release}
374 Provides: %{lib_name_orig}-devel = %{version}-%{release}
375 Conflicts: %{_lib}python-devel < 2.7.17-2
376 Recommends: %{lib_name}-testsuite
377 Recommends: %{name}-docs
378
379 %description -n %{develname}
380 The Python programming language's interpreter can be extended with
381 dynamically loaded extensions and can be embedded in other programs.
382 This package contains the header files and libraries needed to do
383 these types of tasks.
384
385 Install %{develname} if you want to develop Python extensions. The
386 python package will also need to be installed. You'll probably also
387 want to install the python-docs package, which contains Python
388 documentation.
389
390 %package docs
391 Summary: Documentation for the Python programming language
392 Requires: %{name} >= %{version}
393 Requires: xdg-utils
394 Group: Development/Python
395 BuildArch: noarch
396
397 %description docs
398 The python-docs package contains documentation on the Python
399 programming language and interpreter. The documentation is provided
400 in ASCII text files and in LaTeX source files.
401
402 Install the python-docs package if you'd like to use the documentation
403 for the Python language.
404
405 %package -n tkinter3
406 Summary: A graphical user interface for the Python scripting language
407 Group: Development/Python
408 Requires: %{name} = %{version}-%{release}
409 Requires: tcl tk
410 Provides: python3-tkinter
411
412 %description -n tkinter3
413 The Tkinter (Tk interface) program is an graphical user interface for
414 the Python scripting language.
415
416 You should install the tkinter package if you'd like to use a graphical
417 user interface for Python programming.
418
419 %package -n tkinter3-apps
420 Summary: Various applications written using tkinter
421 Group: Development/Python
422 Requires: tkinter3
423
424 %description -n tkinter3-apps
425 Various applications written using tkinter
426
427 %prep
428 %autosetup -p1 -n Python-%{version}%{?prerel}
429
430 %if %{with rpmwheels}
431 rm Lib/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl
432 rm Lib/ensurepip/_bundled/setuptools-%{setuptools_version}-py3-none-any.whl
433 %endif
434
435 # Remove all exe files to ensure we are not shipping prebuilt binaries
436 # note that those are only used to create Microsoft Windows installers
437 # and that functionality is broken on Linux anyway
438 find -name '*.exe' -print -delete
439
440 # Remove all exe files to ensure we are not shipping prebuilt binaries
441 # note that those are only used to create Microsoft Windows installers
442 # and that functionality is broken on Linux anyway
443 find -name '*.exe' -print -delete
444
445 # Remove bundled libraries to ensure that we're using the system copy.
446 rm -r Modules/expat
447 rm -r Modules/_decimal/libmpdec
448
449 # Remove files that should be generated by the build
450 # (This is after patching, so that we can use patches directly from upstream)
451 rm configure pyconfig.h.in
452
453 # drop Autoconf version requirement
454 sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
455
456 # docs
457 mkdir html
458 bzcat %{SOURCE1} | tar x -C html
459
460 find . -type f -print0 | xargs -0 perl -p -i -e 's@/usr/local/bin/python@/usr/bin/python3@'
461
462 %build
463
464 # The build process embeds version info extracted from the Git repository
465 # into the Py_GetBuildInfo and sys.version strings.
466 # Our Git repository is artificial, so we don't want that.
467 # Tell configure to not use git.
468 export HAS_GIT=not-found
469
470 autoreconf -vfi
471
472 # Get proper option names from bconds
473 %if %{with computed_gotos}
474 %global computed_gotos_flag yes
475 %else
476 %global computed_gotos_flag no
477 %endif
478
479 %if %{with optimizations}
480 %global optimizations_flag "--enable-optimizations"
481 %else
482 %global optimizations_flag "--disable-optimizations"
483 %endif
484
485 export CFLAGS="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
486 export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
487 export CXXFLAGS="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
488 export OPT="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
489 export LINKCC="gcc"
490 export LDFLAGS="%(echo %{build_ldflags}|sed -e 's#-Wl,--no-undefined##')"
491 export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)"
492
493 %configure \
494 --with-platlibdir=%{_lib} \
495 --enable-ipv6 \
496 --enable-shared \
497 --with-computed-gotos=%{computed_gotos_flag} \
498 --with-dbmliborder=gdbm:ndbm:bdb \
499 --with-system-expat \
500 --with-system-ffi \
501 --with-system-libmpdec \
502 --enable-loadable-sqlite-extensions \
503 --with-dtrace \
504 --with-lto \
505 --with-ssl-default-suites=openssl \
506 --without-static-libpython \
507 %if %{with rpmwheels}
508 --with-wheel-pkg-dir=%{python_wheel_dir} \
509 %endif
510 %if %{with valgrind}
511 --with-valgrind \
512 %endif
513 --with-threads \
514 --without-ensurepip \
515 %{optimizations_flag}
516
517 # (misc) if the home is nfs mounted, rmdir fails due to delay
518 export TMP="/tmp" TMPDIR="/tmp"
519
520 %if %{without bootstrap}
521 # Regenerate generated files (needs python3)
522 %make_build regen-all PYTHON_FOR_REGEN="python%{pybasever}"
523 %endif
524
525 %make_build EXTRA_CFLAGS="$CFLAGS" LN="ln -sf"
526
527 %install
528
529 %if %{with gdb_hooks}
530 DirHoldingGdbPy=%{_usr}/lib/debug/%{_libdir}
531 mkdir -p %{buildroot}$DirHoldingGdbPy
532 %endif # with gdb_hooks
533
534 # fix Makefile to get rid of reference to distcc
535 perl -pi -e "/^CC=/ and s/distcc/gcc/" Makefile
536
537 # set the install path
538 echo '[install_scripts]' >setup.cfg
539 echo 'install_dir='"${RPM_BUILD_ROOT}/usr/bin" >>setup.cfg
540
541 %make_install LN="ln -sf"
542
543 %if %{with gdb_hooks}
544 # See comment on $DirHoldingGdbPy above
545 PathOfGdbPy=$DirHoldingGdbPy/libpython%{pybasever}%{ABIFLAGS_optimized}-%{version}-%{release}.%{_arch}.debug-gdb.py
546 cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
547 %endif # with gdb_hooks
548
549 # Install directories for additional packages
550 install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
551 %if "%{_lib}" == "lib64"
552 # The 64-bit version needs to create "site-packages" in /usr/lib/ (for
553 # pure-Python modules) as well as in /usr/lib64/ (for packages with extension
554 # modules).
555 # Note that rpmlint will complain about hardcoded library path;
556 # this is intentional.
557 install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
558 %endif
559
560 # overwrite the copied binary with a link
561 pushd %{buildroot}%{_bindir}
562 #ln -sf python%{LDVERSION_optimized} python%{pybasever}
563 ln -sf python%{pybasever} python%{familyver}
564 popd
565
566 pushd %{buildroot}%{_libdir}
567 ln -sf $(ls libpython%{lib_major}*.so.*) libpython%{lib_major}.so
568 popd
569
570 # make python3 as default one
571 ln -s ./python3 %{buildroot}%{_bindir}/python
572 ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc
573 ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py
574 ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py
575 ln -s ./python3-config %{buildroot}%{_bindir}/python-config
576 ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1
577 ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc
578
579 # install pynche as pynche3
580 cat << EOF > %{buildroot}%{_bindir}/pynche3
581 #!/usr/bin/bash
582 exec %{_libdir}/python%{pybasever}/site-packages/pynche/pynche
583 EOF
584 rm -f Tools/pynche/*.pyw
585 cp -r Tools/pynche %{buildroot}%{_libdir}/python%{pybasever}/site-packages/
586
587 chmod 755 %{buildroot}%{_bindir}/{idle3,pynche3}
588
589 ln -f Tools/pynche/README Tools/pynche/README.pynche
590
591 %if %{with valgrind}
592 install Misc/valgrind-python.supp -D %{buildroot}%{_libdir}/valgrind/valgrind-python3.supp
593 %endif
594
595 mkdir -p %{buildroot}%{_datadir}/applications
596 cat > %{buildroot}%{_datadir}/applications/%{_real_vendor}-tkinter3.desktop << EOF
597 [Desktop Entry]
598 Name=IDLE
599 Comment=IDE for Python3
600 Exec=%{_bindir}/idle3
601 Icon=development_environment_section
602 Terminal=false
603 Type=Application
604 Categories=Development;IDE;
605 EOF
606
607 cat > %{buildroot}%{_datadir}/applications/%{_real_vendor}-%{name}-docs.desktop << EOF
608 [Desktop Entry]
609 Name=Python documentation
610 Comment=Python complete reference
611 Exec=%{_bindir}/xdg-open %_defaultdocdir/%{name}-docs/index.html
612 Icon=documentation_section
613 Terminal=false
614 Type=Application
615 Categories=Documentation;
616 EOF
617
618 # fix non real scripts
619 #chmod 644 %{buildroot}%{_libdir}/python*/test/test_{binascii,grp,htmlparser}.py*
620 find %{buildroot} -type f \( -name "test_binascii.py*" -o -name "test_grp.py*" -o -name "test_htmlparser.py*" \) -exec chmod 644 {} \;
621
622 # fix python library not stripped
623 chmod u+w %{buildroot}%{_libdir}/libpython%{lib_major}*.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython3.so
624
625 # Make python3-devel multilib-ready
626 mv %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig.h \
627 %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
628 cat > %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig.h << EOF
629 #include <bits/wordsize.h>
630
631 #if __WORDSIZE == 32
632 #include "pyconfig-32.h"
633 #elif __WORDSIZE == 64
634 #include "pyconfig-64.h"
635 #else
636 #error "Unknown word size"
637 #endif
638 EOF
639
640 # Make sure distutils looks at the right pyconfig.h file
641 # See https://bugzilla.redhat.com/show_bug.cgi?id=201434
642 # Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
643 # pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
644 # when python starts up (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
645 #
646 # Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
647 # variants:
648 sed -i -e "s/'pyconfig.h'/'pyconfig-%{__isa_bits}.h'/" \
649 %{buildroot}%{pylibdir}/distutils/sysconfig.py \
650 %{buildroot}%{pylibdir}/sysconfig.py
651
652 # Install pathfix.py to bindir
653 # See https://github.com/fedora-python/python-rpm-porting/issues/24
654 cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
655
656 # Install i18n tools to bindir
657 # They are also in python2, so we version them
658 # https://bugzilla.redhat.com/show_bug.cgi?id=1571474
659 for tool in pygettext msgfmt; do
660 cp -p Tools/i18n/${tool}.py %{buildroot}%{_bindir}/${tool}%{pybasever}.py
661 ln -s ${tool}%{pybasever}.py %{buildroot}%{_bindir}/${tool}3.py
662 done
663
664 # Switch all shebangs to refer to the specific Python version.
665 # This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
666 # so handle files named using other naming scheme separately.
667 LD_LIBRARY_PATH=./ ./python \
668 Tools/scripts/pathfix.py \
669 -i "%{_bindir}/python%{pybasever}" -pn \
670 %{buildroot} \
671 %{buildroot}%{_bindir}/*%{pybasever}.py \
672 %{buildroot}%{_libdir}/python%{pybasever}/site-packages/pynche/pynche \
673 %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
674
675 # Remove shebang lines from .py files that aren't executable, and
676 # remove executability from .py files that don't have a shebang line:
677 find %{buildroot} -name \*.py \
678 \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
679 -print -exec sed -i '1d' {} \; \) -o \( \
680 -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
681 -exec chmod a-x {} \; \) \)
682
683 # Get rid of DOS batch files:
684 find %{buildroot} -name \*.bat -exec rm {} \;
685
686 # Get rid of backup files:
687 find %{buildroot}/ -name "*~" -exec rm -f {} \;
688 find . -name "*~" -exec rm -f {} \;
689
690 # Do bytecompilation with the newly installed interpreter.
691 # This is similar to the script in macros.pybytecompile
692 # compile *.pyc
693 # Python CMD line options:
694 # -s - don't add user site directory to sys.path
695 # -B - don't write .pyc files on import
696 # compileall CMD line options:
697 # -f - force rebuild even if timestamps are up to date
698 # -o - optimization levels to run compilation with
699 # -s - part of path to left-strip from path to source file (buildroot)
700 # -p - path to add as prefix to path to source file (/ to make it absolute)
701 # --hardlink-dupes - hardlink different optimization level pycs together if identical (saves space)
702 LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
703 %{buildroot}%{_bindir}/python%{pybasever} -s -B -m compileall \
704 -f %{_smp_mflags} -o 0 -o 1 -o 2 -s %{buildroot} -p / %{buildroot} --hardlink-dupes || :
705
706 # Turn this BRP off, it is done by compileall2 --hardlink-dupes above
707 %global __brp_python_hardlink %{nil}
708
709 # Since we have pathfix.py in bindir, this is created, but we don't want it
710 rm -rf %{buildroot}%{_bindir}/__pycache__
711
712 # Fixup permissions for shared libraries from non-standard 555 to standard 755:
713 find %{buildroot} -perm 555 -exec chmod 755 {} \;
714
715 # make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241
716 ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1
717
718 %if %{with tests}
719 %check
720 # (misc) if the home is nfs mounted, rmdir fails
721 export TMP="/tmp" TMPDIR="/tmp"
722
723 # Exclude some tests that hangs on the BS
724 EXCLUDE="test_ssl test_socket test_epoll"
725 %if %{with bootstrap}
726 EXCLUDE="$EXCLUDE test_distutils"
727 %endif
728 %ifarch x86_64
729 EXCLUDE="$EXCLUDE test_faulthandler"
730 %endif
731 %ifarch %arm
732 EXCLUDE="$EXCLUDE test_float test_asyncio test_cmath"
733 %endif
734 # Local aarch64 tests succeeds, but fails on BS
735 %ifarch aarch64
736 EXCLUDE="$EXCLUDE test_posix test_asyncio test_openpty test_os test_pty test_readline"
737 %endif
738 # json test pass on local build but fail on BS
739 EXCLUDE="$EXCLUDE test_json"
740 # to investigate why it fails on local build
741 EXCLUDE="$EXCLUDE test_site"
742 # why this fails?
743 EXCLUDE="$EXCLUDE test_distutils test_peg_generator"
744 # failing with 3.8RC1:
745 EXCLUDE="$EXCLUDE test___all__ test_embed test_mmap test_os"
746 # failed because of expat, https://bugs.python.org/issue46794
747 EXCLUDE="$EXCLUDE test_xml_etree test_minidom"
748 # all tests must pass
749 # but we disable network on BS
750 WITHIN_PYTHON_RPM_BUILD= \
751 make test TESTOPTS="-wW --slowest -j0 -u none -x $EXCLUDE"
752 # consider use network on local build
753 #EXCLUDE=""
754 #WITHIN_PYTHON_RPM_BUILD= make test TESTOPTS="-u network -x $EXCLUDE"
755
756 %endif
757
758 %files
759 %{_bindir}/pathfix.py
760 %{_bindir}/pydoc
761 %{_bindir}/pydoc%{familyver}
762 %{_bindir}/pydoc%{pybasever}
763 %{_bindir}/python
764 %{_bindir}/python%{familyver}
765 %{_bindir}/python%{pybasever}
766 %{_bindir}/python%{LDVERSION_optimized}
767 %{_bindir}/2to3
768 %{_bindir}/2to3-%{pybasever}
769 %{_mandir}/man*/*
770
771 %files -n %{lib_name}-stdlib
772 %license LICENSE
773 %doc README.rst
774 %{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
775 %{pylibdir}/config-%{LDVERSION_optimized}-%{platform_triplet}/Makefile
776
777 %dir %{pylibdir}
778 %dir %{dynload_dir}
779
780 %license %{pylibdir}/LICENSE.txt
781
782 %{pylibdir}/lib2to3
783 %exclude %{pylibdir}/lib2to3/tests
784
785 %dir %{pylibdir}/unittest/
786 %dir %{pylibdir}/unittest/__pycache__/
787 %{pylibdir}/unittest/*.py
788 %{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
789
790 %dir %{pylibdir}/asyncio/
791 %dir %{pylibdir}/asyncio/__pycache__/
792 %{pylibdir}/asyncio/*.py
793 %{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
794
795 %dir %{pylibdir}/venv/
796 %dir %{pylibdir}/venv/__pycache__/
797 %{pylibdir}/venv/*.py
798 %{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
799 %{pylibdir}/venv/scripts
800
801 %{pylibdir}/wsgiref
802 %{pylibdir}/xmlrpc
803
804 %dir %{pylibdir}/ensurepip/
805 %dir %{pylibdir}/ensurepip/__pycache__/
806 %{pylibdir}/ensurepip/*.py
807 %{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
808
809 %if %{with rpmwheels}
810 %exclude %{pylibdir}/ensurepip/_bundled
811 %else
812 %dir %{pylibdir}/ensurepip/_bundled
813 %{pylibdir}/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl
814 %{pylibdir}/ensurepip/_bundled/setuptools-%{setuptools_version}-py3-none-any.whl
815 %{pylibdir}/ensurepip/_bundled/__init__.py
816 %{pylibdir}/ensurepip/_bundled/__pycache__/*%{bytecode_suffixes}
817 %endif
818
819 %dir %{pylibdir}/concurrent/
820 %dir %{pylibdir}/concurrent/__pycache__/
821 %{pylibdir}/concurrent/*.py
822 %{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
823
824 %dir %{pylibdir}/concurrent/futures/
825 %dir %{pylibdir}/concurrent/futures/__pycache__/
826 %{pylibdir}/concurrent/futures/*.py
827 %{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
828
829 %{pylibdir}/pydoc_data
830
831 %{dynload_dir}/_blake2.%{SOABI_optimized}.so
832 %{dynload_dir}/_md5.%{SOABI_optimized}.so
833 %{dynload_dir}/_sha1.%{SOABI_optimized}.so
834 %{dynload_dir}/_sha256.%{SOABI_optimized}.so
835 %{dynload_dir}/_sha3.%{SOABI_optimized}.so
836 %{dynload_dir}/_sha512.%{SOABI_optimized}.so
837
838 %{dynload_dir}/_asyncio.%{SOABI_optimized}.so
839 %{dynload_dir}/_bisect.%{SOABI_optimized}.so
840 %{dynload_dir}/_bz2.%{SOABI_optimized}.so
841 %{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
842 %{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
843 %{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
844 %{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
845 %{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
846 %{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
847 %{dynload_dir}/_contextvars.%{SOABI_optimized}.so
848 %{dynload_dir}/_crypt.%{SOABI_optimized}.so
849 %{dynload_dir}/_csv.%{SOABI_optimized}.so
850 %{dynload_dir}/_ctypes.%{SOABI_optimized}.so
851 %{dynload_dir}/_curses.%{SOABI_optimized}.so
852 %{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
853 %{dynload_dir}/_dbm.%{SOABI_optimized}.so
854 %{dynload_dir}/_decimal.%{SOABI_optimized}.so
855 %{dynload_dir}/_elementtree.%{SOABI_optimized}.so
856 %if %{with gdbm}
857 %{dynload_dir}/_gdbm.%{SOABI_optimized}.so
858 %endif
859 %{dynload_dir}/_hashlib.%{SOABI_optimized}.so
860 %{dynload_dir}/_heapq.%{SOABI_optimized}.so
861 %{dynload_dir}/_json.%{SOABI_optimized}.so
862 %{dynload_dir}/_lsprof.%{SOABI_optimized}.so
863 %{dynload_dir}/_lzma.%{SOABI_optimized}.so
864 %{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
865 %{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
866 %{dynload_dir}/_opcode.%{SOABI_optimized}.so
867 %{dynload_dir}/_pickle.%{SOABI_optimized}.so
868 %{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
869 %{dynload_dir}/_queue.%{SOABI_optimized}.so
870 %{dynload_dir}/_random.%{SOABI_optimized}.so
871 %{dynload_dir}/_socket.%{SOABI_optimized}.so
872 %{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
873 %{dynload_dir}/_ssl.%{SOABI_optimized}.so
874 %{dynload_dir}/_statistics.%{SOABI_optimized}.so
875 %{dynload_dir}/_struct.%{SOABI_optimized}.so
876 %{dynload_dir}/array.%{SOABI_optimized}.so
877 %{dynload_dir}/audioop.%{SOABI_optimized}.so
878 %{dynload_dir}/binascii.%{SOABI_optimized}.so
879 %{dynload_dir}/cmath.%{SOABI_optimized}.so
880 %{dynload_dir}/_datetime.%{SOABI_optimized}.so
881 %{dynload_dir}/fcntl.%{SOABI_optimized}.so
882 %{dynload_dir}/grp.%{SOABI_optimized}.so
883 %{dynload_dir}/math.%{SOABI_optimized}.so
884 %{dynload_dir}/mmap.%{SOABI_optimized}.so
885 %{dynload_dir}/nis.%{SOABI_optimized}.so
886 %{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
887 %{dynload_dir}/_posixshmem.%{SOABI_optimized}.so
888 %{dynload_dir}/pyexpat.%{SOABI_optimized}.so
889 %{dynload_dir}/readline.%{SOABI_optimized}.so
890 %{dynload_dir}/resource.%{SOABI_optimized}.so
891 %{dynload_dir}/select.%{SOABI_optimized}.so
892 %{dynload_dir}/spwd.%{SOABI_optimized}.so
893 %{dynload_dir}/syslog.%{SOABI_optimized}.so
894 %{dynload_dir}/termios.%{SOABI_optimized}.so
895 %{dynload_dir}/unicodedata.%{SOABI_optimized}.so
896 %{dynload_dir}/_uuid.%{SOABI_optimized}.so
897 %{dynload_dir}/xxlimited.%{SOABI_optimized}.so
898 %{dynload_dir}/xxlimited_35.%{SOABI_optimized}.so
899 %{dynload_dir}/_xxsubinterpreters.%{SOABI_optimized}.so
900 %{dynload_dir}/zlib.%{SOABI_optimized}.so
901 %{dynload_dir}/_zoneinfo.%{SOABI_optimized}.so
902
903 %dir %{pylibdir}/site-packages/
904 %dir %{pylibdir}/site-packages/__pycache__/
905 %{pylibdir}/site-packages/README.txt
906 %{pylibdir}/*.py
907 %dir %{pylibdir}/__pycache__/
908 %{pylibdir}/__pycache__/*%{bytecode_suffixes}
909
910 %dir %{pylibdir}/collections/
911 %dir %{pylibdir}/collections/__pycache__/
912 %{pylibdir}/collections/*.py
913 %{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
914
915 %dir %{pylibdir}/ctypes/
916 %dir %{pylibdir}/ctypes/__pycache__/
917 %{pylibdir}/ctypes/*.py
918 %{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
919 %{pylibdir}/ctypes/macholib
920
921 %{pylibdir}/curses
922
923 %dir %{pylibdir}/dbm/
924 %dir %{pylibdir}/dbm/__pycache__/
925 %{pylibdir}/dbm/*.py
926 %{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
927
928 %dir %{pylibdir}/distutils/
929 %dir %{pylibdir}/distutils/__pycache__/
930 %{pylibdir}/distutils/*.py
931 %{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
932 %{pylibdir}/distutils/README
933 %{pylibdir}/distutils/command
934
935 %dir %{pylibdir}/email/
936 %dir %{pylibdir}/email/__pycache__/
937 %{pylibdir}/email/*.py
938 %{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
939 %{pylibdir}/email/mime
940 %doc %{pylibdir}/email/architecture.rst
941
942 %{pylibdir}/encodings
943
944 %{pylibdir}/html
945 %{pylibdir}/http
946
947 %dir %{pylibdir}/importlib/
948 %dir %{pylibdir}/importlib/__pycache__/
949 %{pylibdir}/importlib/*.py
950 %{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
951
952 %dir %{pylibdir}/importlib/metadata/
953 %dir %{pylibdir}/importlib/metadata/__pycache__/
954 %{pylibdir}/importlib/metadata/*.py
955 %{pylibdir}/importlib/metadata/__pycache__/*%{bytecode_suffixes}
956
957 %dir %{pylibdir}/json/
958 %dir %{pylibdir}/json/__pycache__/
959 %{pylibdir}/json/*.py
960 %{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
961
962 %{pylibdir}/logging
963 %{pylibdir}/multiprocessing
964
965 %dir %{pylibdir}/sqlite3/
966 %dir %{pylibdir}/sqlite3/__pycache__/
967 %{pylibdir}/sqlite3/*.py
968 %{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
969
970 %exclude %{pylibdir}/turtle.py
971 %exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
972
973 %{pylibdir}/urllib
974 %{pylibdir}/xml
975 %{pylibdir}/zoneinfo
976
977 %if "%{_lib}" == "lib64"
978 %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
979 %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
980 %attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
981 %endif
982
983 %files -n %{lib_name}-testsuite
984 %{pylibdir}/ctypes/test
985 %{pylibdir}/distutils/tests
986 %{pylibdir}/lib2to3/tests
987 %{pylibdir}/sqlite3/test
988 %{pylibdir}/test/
989 %{pylibdir}/unittest/test
990 # These two are shipped in the main subpackage:
991 %exclude %{pylibdir}/test/test_support.py*
992 %exclude %{pylibdir}/test/__init__.py*
993 %{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
994 %{dynload_dir}/_testcapi.%{SOABI_optimized}.so
995 %{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
996 %{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
997 %{dynload_dir}/_testinternalcapi.%{SOABI_optimized}.so
998 %{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
999 %{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so
1000
1001 %files -n %{lib_name}
1002 %{_libdir}/libpython%{LDVERSION_optimized}.so.1*
1003
1004 %files -n %{develname}
1005 %{_bindir}/pygettext.py
1006 %{_bindir}/pygettext%{familyver}*.py
1007
1008 %{_bindir}/msgfmt.py
1009 %{_bindir}/msgfmt%{familyver}*.py
1010
1011 %{_bindir}/python-config
1012 %{_bindir}/python%{pybasever}-config
1013 %{_bindir}/python%{LDVERSION_optimized}-config
1014 %{_bindir}/python%{familyver}-config
1015
1016 %{_libdir}/libpython%{LDVERSION_optimized}.so
1017 %{_libdir}/libpython%{pybasever}.so
1018 %{_libdir}/libpython%{familyver}.so
1019 %{_includedir}/python%{LDVERSION_optimized}
1020 %exclude %{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
1021 %{pylibdir}/config-%{LDVERSION_optimized}-%{platform_triplet}
1022 %{_libdir}/pkgconfig/python.pc
1023 %{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
1024 %{_libdir}/pkgconfig/python-%{pybasever}{,-embed}.pc
1025 %{_libdir}/pkgconfig/python%{familyver}{,-embed}.pc
1026
1027 %exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{platform_triplet}/Makefile
1028 %if %{with valgrind}
1029 %{_libdir}/valgrind/valgrind-python3.supp
1030 %endif
1031
1032 %files docs
1033 %doc html/*/*
1034 %{_datadir}/applications/%{_real_vendor}-%{name}-docs.desktop
1035
1036 %files -n tkinter3
1037 %{pylibdir}/idlelib
1038 %{pylibdir}/tkinter
1039 %{pylibdir}/site-packages/pynche
1040 %exclude %{pylibdir}/tkinter/test
1041 %{dynload_dir}/_tkinter.%{SOABI_optimized}.so
1042 %{pylibdir}/turtle.py
1043 %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
1044 %dir %{pylibdir}/turtledemo
1045 %{pylibdir}/turtledemo/*.py
1046 %{pylibdir}/turtledemo/*.cfg
1047 %dir %{pylibdir}/turtledemo/__pycache__/
1048 %{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
1049
1050 %files -n tkinter3-apps
1051 %{_bindir}/idle%{familyver}
1052 %{_bindir}/idle%{pybasever}
1053 %{_bindir}/pynche%{familyver}
1054 %{_datadir}/applications/%{_real_vendor}-tkinter3.desktop
1055
1056 # We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
1057 # See https://bugzilla.redhat.com/show_bug.cgi?id=562980
1058 #
1059 # The /usr/lib/rpm/redhat/macros defines %%__debug_package to use
1060 # debugfiles.list, and it appears that everything below /usr/lib/debug and
1061 # (/usr/src/debug) gets added to this file (via LISTFILES) in
1062 # /usr/lib/rpm/find-debuginfo.sh
1063 #
1064 # Hence by installing it below /usr/lib/debug we ensure it is added to the
1065 # -debuginfo subpackage
1066 # (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
1067 # payload file would be unpackaged)
1068
1069 # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1476593
1070 %undefine _debuginfo_subpackages

  ViewVC Help
Powered by ViewVC 1.1.30