Architecture specific change in rpms/openmpi.git
by githook-noreply@fedoraproject.org
The package rpms/openmpi.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/openmpi.git/commit/?id=7231dd36d0....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 8f0e977791d4c753e1d6c8d9e44f85ad2ec20dfe
Merge: 8a4d4bc fe46b6f
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Sat Aug 31 16:04:19 2019 -0400
Merge branch 'master' into f31
commit fe46b6f9006fa23c8e67509b1dfc5d9e50c5e60b
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Sat Aug 31 16:02:55 2019 -0400
update comments
Signed-off-by: Philip Kovacs <pkdevel(a)yahoo.com>
diff --git a/openmpi.spec b/openmpi.spec
index 9a01566..5dd6687 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -7,7 +7,7 @@
#global opt_cflags
%global opt_cxx g++
%ifarch aarch64
-# TEMP: hack for F32 aarch64 until they fix gcc PIC flags
+# TEMP: hack for aarch64
%global opt_cxxflags -fPIC
%else
#global opt_cxxflags
@@ -355,7 +355,7 @@ make check
%changelog
* Fri Aug 30 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 4.0.2-0.2.rc1
-- Apply upstream PR 6946 to avoid linking private glibc symbol __mmap
+- Apply upstream PR 6946 to avoid linking to __mmap
- Add build deps to run upstream autogen.pl
- Remove embedded tabs in the spec
commit 04d88995828e555f45a75dc58668927ffe05bd4b
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Fri Aug 30 16:40:36 2019 -0400
Apply upstream PR 6946 to avoid linking private glibc symbol __mmap
Add build deps to run upstream autogen.pl
Remove embedded tabs in the spec
diff --git a/6946.patch b/6946.patch
new file mode 100644
index 0000000..f40430d
--- /dev/null
+++ b/6946.patch
@@ -0,0 +1,46 @@
+From fbbacc1303f02b4c955975911b82e8755ea0721c Mon Sep 17 00:00:00 2001
+From: Harumi Kuno <harumi.kuno(a)hpe.com>
+Date: Tue, 30 Jul 2019 06:32:27 -0700
+Subject: [PATCH] Fix mmap infinite recurse in memory patcher
+
+This commit fixes issue #6853 by removing
+MacOS/Darwin-specific logic from intercept_mmap.
+
+Signed-off-by: Harumi Kuno <harumi.kuno(a)hpe.com>
+---
+ opal/mca/memory/patcher/configure.m4 | 4 ----
+ opal/mca/memory/patcher/memory_patcher_component.c | 5 -----
+ 2 files changed, 9 deletions(-)
+
+diff --git a/opal/mca/memory/patcher/configure.m4 b/opal/mca/memory/patcher/configure.m4
+index 6881ec69366..0c5d8553259 100644
+--- a/opal/mca/memory/patcher/configure.m4
++++ b/opal/mca/memory/patcher/configure.m4
+@@ -40,10 +40,6 @@ AC_DEFUN([MCA_opal_memory_patcher_CONFIG],[
+
+ AC_CHECK_HEADERS([linux/mman.h sys/syscall.h])
+
+- AC_CHECK_DECLS([__mmap], [], [], [#include <sys/mman.h>])
+-
+- AC_CHECK_FUNCS([__mmap])
+-
+ AC_CHECK_DECLS([__syscall], [], [], [#include <sys/syscall.h>])
+
+ AC_CHECK_FUNCS([__syscall])
+diff --git a/opal/mca/memory/patcher/memory_patcher_component.c b/opal/mca/memory/patcher/memory_patcher_component.c
+index 5db3a6016f8..687d430fa36 100644
+--- a/opal/mca/memory/patcher/memory_patcher_component.c
++++ b/opal/mca/memory/patcher/memory_patcher_component.c
+@@ -125,12 +125,7 @@ static void *_intercept_mmap(void *start, size_t length, int prot, int flags, in
+ }
+
+ if (!original_mmap) {
+-#ifdef HAVE___MMAP
+- /* the darwin syscall returns an int not a long so call the underlying __mmap function */
+- result = __mmap (start, length, prot, flags, fd, offset);
+-#else
+ result = (void*)(intptr_t) memory_patcher_syscall(SYS_mmap, start, length, prot, flags, fd, offset);
+-#endif
+ } else {
+ result = original_mmap (start, length, prot, flags, fd, offset);
+ }
diff --git a/openmpi.spec b/openmpi.spec
index da5c4ca..9a01566 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -30,71 +30,77 @@
%bcond_with ucx
%endif
-Name: openmpi%{?_cc_name_suffix}
-Version: 4.0.2
-Release: 0.1.rc1%{?dist}
-Summary: Open Message Passing Interface
-License: BSD and MIT and Romio
-URL: http://www.open-mpi.org/
+Name: openmpi%{?_cc_name_suffix}
+Version: 4.0.2
+Release: 0.2.rc1%{?dist}
+Summary: Open Message Passing Interface
+License: BSD and MIT and Romio
+URL: http://www.open-mpi.org/
# We can't use %%{name} here because of _cc_name_suffix
-Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}r...
-Source1: openmpi.module.in
-Source2: openmpi.pth.py2
-Source3: openmpi.pth.py3
-Source4: macros.openmpi
-
-BuildRequires: gcc-c++
-BuildRequires: gcc-gfortran
-BuildRequires: valgrind-devel
+Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}r...
+Source1: openmpi.module.in
+Source2: openmpi.pth.py2
+Source3: openmpi.pth.py3
+Source4: macros.openmpi
+# Upstream PR 6946 to avoid linking private glibc symbol __mmap
+Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6946.patch
+
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gcc-c++
+BuildRequires: gcc-gfortran
+BuildRequires: libtool
+BuildRequires: valgrind-devel
%ifnarch %{arm}
-BuildRequires: opensm-devel > 3.3.0
+BuildRequires: opensm-devel > 3.3.0
%endif
-BuildRequires: rdma-core-devel
+BuildRequires: rdma-core-devel
# Doesn't compile:
# vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead'
# loop->getLoopHead()->getStartAddress(), loop_stmts );
-#BuildRequires: dyninst-devel
-BuildRequires: hwloc-devel
+#BuildRequires: dyninst-devel
+BuildRequires: hwloc-devel
# So configure can find lstopo
-BuildRequires: hwloc-gui
-BuildRequires: java-devel
+BuildRequires: hwloc-gui
+BuildRequires: java-devel
# Old libevent causes issues
%if !0%{?el7}
-BuildRequires: libevent-devel
+BuildRequires: libevent-devel
%endif
-BuildRequires: libfabric-devel
+BuildRequires: libfabric-devel
%ifnarch s390 s390x
-BuildRequires: papi-devel
+BuildRequires: papi-devel
%endif
-BuildRequires: orangefs-devel
-BuildRequires: perl-generators
-BuildRequires: perl(Getopt::Long)
-BuildRequires: pmix-devel
-BuildRequires: python2
-BuildRequires: python2-devel
-BuildRequires: python%{python3_pkgversion}-devel
+BuildRequires: orangefs-devel
+BuildRequires: perl-generators
+BuildRequires: perl-interpreter
+BuildRequires: perl(Getopt::Long)
+BuildRequires: pmix-devel
+BuildRequires: python2
+BuildRequires: python2-devel
+BuildRequires: python%{python3_pkgversion}-devel
%ifarch x86_64
-BuildRequires: infinipath-psm-devel
-BuildRequires: libpsm2-devel
+BuildRequires: infinipath-psm-devel
+BuildRequires: libpsm2-devel
%endif
%if %{with ucx}
-BuildRequires: ucx-devel
+BuildRequires: ucx-devel
%endif
-BuildRequires: zlib-devel
+BuildRequires: zlib-devel
%if !0%{?el7}
-BuildRequires: rpm-mpi-hooks
+BuildRequires: rpm-mpi-hooks
%endif
-Provides: mpi
+Provides: mpi
%if 0%{?rhel}
# Need this for /etc/profile.d/modules.sh
-Requires: environment-modules
+Requires: environment-modules
%endif
-Requires: environment(modules)
+Requires: environment(modules)
# openmpi currently requires ssh to run
# https://svn.open-mpi.org/trac/ompi/ticket/4228
-Requires: openssh-clients
+Requires: openssh-clients
# Private openmpi libraries
%global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
@@ -125,21 +131,21 @@ Requires: (python(abi) = %{python3_version} if python3)
Contains development headers and libraries for openmpi.
%package java
-Summary: Java library
-Requires: %{name} = %{version}-%{release}
+Summary: Java library
+Requires: %{name} = %{version}-%{release}
%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
-Requires: java-headless
+Requires: java-headless
%else
-Requires: java
+Requires: java
%endif
%description java
Java library.
%package java-devel
-Summary: Java development files for openmpi
-Requires: %{name}-java = %{version}-%{release}
-Requires: java-devel
+Summary: Java development files for openmpi
+Requires: %{name}-java = %{version}-%{release}
+Requires: java-devel
%description java-devel
Contains development wrapper for compiling Java with openmpi.
@@ -149,17 +155,17 @@ Contains development wrapper for compiling Java with openmpi.
%global namearch openmpi-%{_arch}%{?_cc_name_suffix}
%package -n python2-openmpi
-Summary: OpenMPI support for Python 2
-Requires: %{name} = %{version}-%{release}
-Requires: python(abi) = %{python2_version}
+Summary: OpenMPI support for Python 2
+Requires: %{name} = %{version}-%{release}
+Requires: python(abi) = %{python2_version}
%description -n python2-openmpi
OpenMPI support for Python 2.
%package -n python%{python3_pkgversion}-openmpi
-Summary: OpenMPI support for Python 3
-Requires: %{name} = %{version}-%{release}
-Requires: python(abi) = %{python3_version}
+Summary: OpenMPI support for Python 3
+Requires: %{name} = %{version}-%{release}
+Requires: python(abi) = %{python3_version}
%description -n python%{python3_pkgversion}-openmpi
OpenMPI support for Python 3.
@@ -169,6 +175,7 @@ OpenMPI support for Python 3.
%autosetup -p1 -n openmpi-%{version}rc1
%build
+./autogen.pl --force
./configure --prefix=%{_libdir}/%{name} \
--mandir=%{_mandir}/%{namearch} \
--includedir=%{_includedir}/%{namearch} \
@@ -347,6 +354,11 @@ make check
%changelog
+* Fri Aug 30 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 4.0.2-0.2.rc1
+- Apply upstream PR 6946 to avoid linking private glibc symbol __mmap
+- Add build deps to run upstream autogen.pl
+- Remove embedded tabs in the spec
+
* Thu Aug 29 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 4.0.2-0.1.rc1
- Update to 4.0.2rc1
- Closes bug #1746564
commit 7231dd36d020c9290e5758d0abe9b7c984db48ad
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Thu Aug 29 23:12:32 2019 -0400
Temp hack for F32 aarch64 until they fix gcc PIC flags
diff --git a/openmpi.spec b/openmpi.spec
index 6502202..da5c4ca 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -6,7 +6,12 @@
# so uncomment and define to use
#global opt_cflags
%global opt_cxx g++
+%ifarch aarch64
+# TEMP: hack for F32 aarch64 until they fix gcc PIC flags
+%global opt_cxxflags -fPIC
+%else
#global opt_cxxflags
+%endif
%global opt_f77 gfortran
#global opt_fflags
%global opt_fc gfortran
commit 9d271f4752df5e1ef887c27577c7c382c4b98442
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Thu Aug 29 17:10:13 2019 -0400
Update to 4.0.2rc1
Closes bug #1746564
diff --git a/.gitignore b/.gitignore
index 3aa8772..efefb4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,4 @@ openmpi-1.4.1-RH.tar.bz2
/openmpi-3.1.4.tar.bz2
/openmpi-4.0.0.tar.bz2
/openmpi-4.0.1.tar.bz2
+/openmpi-4.0.2rc1.tar.bz2
diff --git a/6594.patch b/6594.patch
deleted file mode 100644
index 3c9e5ba..0000000
--- a/6594.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 68c88e86f2c8ff515a4c54927077143de13516b9 Mon Sep 17 00:00:00 2001
-From: Valentin Petrov <valentinp(a)mellanox.com>
-Date: Tue, 16 Apr 2019 14:04:11 +0300
-Subject: [PATCH] OSC/UCX: use correct rkey for atomic_fadd in rget/rput
-
-Signed-off-by: Valentin Petrov <valentinp(a)mellanox.com>
----
- ompi/mca/osc/ucx/osc_ucx_comm.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ompi/mca/osc/ucx/osc_ucx_comm.c b/ompi/mca/osc/ucx/osc_ucx_comm.c
-index ec760d4fda3..bc3b7f5e7ed 100644
---- a/ompi/mca/osc/ucx/osc_ucx_comm.c
-+++ b/ompi/mca/osc/ucx/osc_ucx_comm.c
-@@ -881,7 +881,7 @@ int ompi_osc_ucx_rput(const void *origin_addr, int origin_count,
-
- CHECK_VALID_RKEY(module, target, target_count);
-
-- rkey = (module->win_info_array[target]).rkey;
-+ rkey = (module->state_info_array[target]).rkey;
-
- OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req);
- assert(NULL != ucx_req);
-@@ -942,7 +942,7 @@ int ompi_osc_ucx_rget(void *origin_addr, int origin_count,
-
- CHECK_VALID_RKEY(module, target, target_count);
-
-- rkey = (module->win_info_array[target]).rkey;
-+ rkey = (module->state_info_array[target]).rkey;
-
- OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req);
- assert(NULL != ucx_req);
diff --git a/6668.patch b/6668.patch
deleted file mode 100644
index 0d6fcbc..0000000
--- a/6668.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c6ba949f3a0618e26ce2ef53b052b3d38cbbd0d8 Mon Sep 17 00:00:00 2001
-From: Nathan Hjelm <hjelmn(a)me.com>
-Date: Wed, 15 May 2019 12:24:22 -0600
-Subject: [PATCH] btl/uct: check for support before disabling UCX memory hooks
-
-Signed-off-by: Nathan Hjelm <hjelmn(a)me.com>
----
- opal/mca/btl/uct/btl_uct_component.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/opal/mca/btl/uct/btl_uct_component.c b/opal/mca/btl/uct/btl_uct_component.c
-index 971b31a1d85..830c262325d 100644
---- a/opal/mca/btl/uct/btl_uct_component.c
-+++ b/opal/mca/btl/uct/btl_uct_component.c
-@@ -17,6 +17,7 @@
- * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved.
- * Copyright (c) 2018 Triad National Security, LLC. All rights
- * reserved.
-+ * Copyright (c) 2019 Google, LLC. All rights reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
-@@ -129,7 +130,10 @@ static int mca_btl_uct_component_open(void)
- mca_btl_uct_component.num_contexts_per_module = MCA_BTL_UCT_MAX_WORKERS;
- }
-
-- if (mca_btl_uct_component.disable_ucx_memory_hooks) {
-+ if (mca_btl_uct_component.disable_ucx_memory_hooks &&
-+ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) ==
-+ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) &
-+ opal_mem_hooks_support_level()))) {
- ucm_set_external_event(UCM_EVENT_VM_UNMAPPED);
- opal_mem_hooks_register_release(mca_btl_uct_mem_release_cb, NULL);
- }
diff --git a/openmpi.spec b/openmpi.spec
index b1b212c..6502202 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -26,22 +26,18 @@
%endif
Name: openmpi%{?_cc_name_suffix}
-Version: 4.0.1
-Release: 11%{?dist}
+Version: 4.0.2
+Release: 0.1.rc1%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
# We can't use %%{name} here because of _cc_name_suffix
-Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}....
+Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}r...
Source1: openmpi.module.in
Source2: openmpi.pth.py2
Source3: openmpi.pth.py3
Source4: macros.openmpi
-# Fix for UCX usage with BTL/UCT
-Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6668.patch
-# OSC/UCX: use correct rkey for atomic_fadd in rget/rput
-Patch1: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6594.patch
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
@@ -165,7 +161,7 @@ OpenMPI support for Python 3.
%prep
-%autosetup -p1 -n openmpi-%{version}
+%autosetup -p1 -n openmpi-%{version}rc1
%build
./configure --prefix=%{_libdir}/%{name} \
@@ -346,6 +342,10 @@ make check
%changelog
+* Thu Aug 29 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 4.0.2-0.1.rc1
+- Update to 4.0.2rc1
+- Closes bug #1746564
+
* Thu Aug 29 2019 Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl> - 4.0.1-11
- Fix MANPATH so normal modules can still be loaded (#1564899)
diff --git a/sources b/sources
index 047b1ea..696ee63 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (openmpi-4.0.1.tar.bz2) = 09f35dc2e44b4f84aab9c5af9d81f90bbdb030e4d90800a5d3ffae88cb32b7faecc9bea0abb113da53c21f73e9d19db68f961f997bc47bdd28d83a87beee0731
+SHA512 (openmpi-4.0.2rc1.tar.bz2) = 7009b9b9a2ef398195e95735d907171091a13f6287d3290862465720249eac1815d9152f1804adc8ec8129ad858536f759521d392fac8c1e495928e6634372b6
commit 1d457c8c91640225b6c792bf2a080a2d8f286e65
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Thu Aug 29 10:11:35 2019 +0200
Fix MANPATH so normal modules can still be loaded
diff --git a/openmpi.module.in b/openmpi.module.in
index 7e96154..41583c4 100644
--- a/openmpi.module.in
+++ b/openmpi.module.in
@@ -6,7 +6,7 @@ conflict mpi
prepend-path PATH @LIBDIR@/bin
prepend-path LD_LIBRARY_PATH @LIBDIR@/lib
prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig
-prepend-path MANPATH @MANDIR@
+prepend-path MANPATH :@MANDIR@
setenv MPI_BIN @LIBDIR@/bin
setenv MPI_SYSCONFIG @ETCDIR@
setenv MPI_FORTRAN_MOD_DIR @FMODDIR@
diff --git a/openmpi.spec b/openmpi.spec
index b316385..b1b212c 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -27,7 +27,7 @@
Name: openmpi%{?_cc_name_suffix}
Version: 4.0.1
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
@@ -346,6 +346,9 @@ make check
%changelog
+* Thu Aug 29 2019 Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl> - 4.0.1-11
+- Fix MANPATH so normal modules can still be loaded (#1564899)
+
* Sun Aug 25 2019 Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl> - 4.0.1-10
- Rebuilt for hwloc-2.0
commit 2ba690820ba7629ffeda5639725c91ceae63bfa6
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Sun Aug 25 12:51:14 2019 +0200
Rebuilt for hwloc-2.0
diff --git a/openmpi.spec b/openmpi.spec
index 82c4dd7..b316385 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -27,7 +27,7 @@
Name: openmpi%{?_cc_name_suffix}
Version: 4.0.1
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
@@ -346,6 +346,9 @@ make check
%changelog
+* Sun Aug 25 2019 Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl> - 4.0.1-10
+- Rebuilt for hwloc-2.0
+
* Sun Aug 18 2019 Miro Hronok <mhroncok(a)redhat.com> - 4.0.1-9
- Rebuilt for Python 3.8
commit 184e65743f4e66e85252d1e4dabea58d4118b785
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Tue May 7 10:23:38 2019 +0200
Fix warning about macro expanded in comment
diff --git a/openmpi.spec b/openmpi.spec
index dc98079..82c4dd7 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -32,7 +32,7 @@ Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
-# We can't use %{name} here because of _cc_name_suffix
+# We can't use %%{name} here because of _cc_name_suffix
Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}....
Source1: openmpi.module.in
Source2: openmpi.pth.py2
commit 7d5556a503774957e8698b9db68f3796cf7b394d
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 19 00:13:00 2019 +0200
Rebuilt for Python 3.8
diff --git a/openmpi.spec b/openmpi.spec
index 37924bd..dc98079 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -27,7 +27,7 @@
Name: openmpi%{?_cc_name_suffix}
Version: 4.0.1
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
@@ -346,6 +346,9 @@ make check
%changelog
+* Sun Aug 18 2019 Miro Hronok <mhroncok(a)redhat.com> - 4.0.1-9
+- Rebuilt for Python 3.8
+
* Fri Aug 9 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 4.0.1-8
- Remove torque support (torque retired: bug #1676147)
3 years, 9 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2555)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bwa
ExclusiveArch: x86_64
- caddy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}}
- calamares
ExclusiveArch: %{ix86} x86_64
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- containers
ExclusiveArch: %{ldc_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64 ppc64 s390x
- glibd
ExclusiveArch: %{ldc_arches}
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} %{arm} x86_64 noarch
- ignition
ExclusiveArch: x86_64 ppc64le aarch64 s390x
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- librtas
ExclusiveArch: %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obfs4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-register-machine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm_cursor
ExclusiveArch: %{rust_arches}
- rust-crossterm_input
ExclusiveArch: %{rust_arches}
- rust-crossterm_screen
ExclusiveArch: %{rust_arches}
- rust-crossterm_style
ExclusiveArch: %{rust_arches}
- rust-crossterm_terminal
ExclusiveArch: %{rust_arches}
- rust-crossterm_utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-async-runtime-preview
ExclusiveArch: %{rust_arches}
- rust-futures-channel-preview
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-core-preview
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor-preview
ExclusiveArch: %{rust_arches}
- rust-futures-io-preview
ExclusiveArch: %{rust_arches}
- rust-futures-preview
ExclusiveArch: %{rust_arches}
- rust-futures-sink-preview
ExclusiveArch: %{rust_arches}
- rust-futures-stable-preview
ExclusiveArch: %{rust_arches}
- rust-futures-util-preview
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-objekt
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.5
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slotmap0.2
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-async-await
ExclusiveArch: %{rust_arches}
- rust-tokio-buf
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-mockstream
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-trace-core
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-which1
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: %{ix86} x86_64 noarch
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virtio-forwarder
ExclusiveArch: x86_64 aarch64 ppc64le %ix86
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
3 years, 9 months
Architecture specific change in rpms/pdns.git
by githook-noreply@fedoraproject.org
The package rpms/pdns.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/pdns.git/commit/?id=105e6d155e1a2....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 105e6d155e1a2e10ebd1452d1ff6ee9d8282793d
Author: Morten Stevens <mstevens(a)fedoraproject.org>
Date: Fri Aug 30 17:56:24 2019 +0200
Update to 4.2.0
diff --git a/.gitignore b/.gitignore
index cf7019e..98dbb79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,4 @@ pdns-2.9.22.tar.gz
/pdns-4.1.10.tar.bz2
/pdns-4.1.11.tar.bz2
/pdns-4.1.13.tar.bz2
+/pdns-4.2.0.tar.bz2
diff --git a/pdns.spec b/pdns.spec
index 362e2bd..4797e7f 100644
--- a/pdns.spec
+++ b/pdns.spec
@@ -2,7 +2,7 @@
%global backends %{nil}
Name: pdns
-Version: 4.1.13
+Version: 4.2.0
Release: 1%{?dist}
Summary: A modern, advanced and high performance authoritative-only nameserver
License: GPLv2
@@ -19,11 +19,20 @@ BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: gcc-c++
BuildRequires: krb5-devel
+BuildRequires: libcurl-devel
BuildRequires: libsodium-devel
+%ifarch aarch64
BuildRequires: lua-devel
+%define lua_implementation lua
+%else
+BuildRequires: luajit-devel
+%define lua_implementation luajit
+%endif
BuildRequires: openssl-devel
+BuildRequires: p11-kit-devel
BuildRequires: protobuf-compiler
BuildRequires: protobuf-devel
+BuildRequires: libcurl-devel
BuildRequires: systemd-devel
BuildRequires: systemd-units
Provides: powerdns = %{version}-%{release}
@@ -94,6 +103,14 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description backend-lua
This package contains the lua backend for %{name}
+%package backend-lua2
+Summary: LUA2 backend for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} lua2
+
+%description backend-lua2
+This package contains the lua2 backend for %{name}
+
%package backend-sqlite
Summary: SQLite backend for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
@@ -120,6 +137,13 @@ BuildRequires: tinycdb-devel
%description backend-tinydns
This package contains the TinyDNS backend for %{name}
+%package ixfrdist
+Summary: A program to redistribute zones over AXFR and IXFR
+BuildRequires: yaml-cpp-devel
+
+%description ixfrdist
+This package contains the ixfrdist program.
+
%prep
%setup -q
%patch0 -p1 -b .disable-secpoll
@@ -128,18 +152,22 @@ This package contains the TinyDNS backend for %{name}
export CPPFLAGS="-DLDAP_DEPRECATED"
%configure \
+ --enable-option-checking=fatal \
--sysconfdir=%{_sysconfdir}/%{name} \
--disable-static \
--disable-dependency-tracking \
--disable-silent-rules \
--with-modules='' \
- --with-lua \
+ --with-lua=%{lua_implementation} \
--with-dynmodules='%{backends}' \
--enable-tools \
- --enable-libsodium \
+ --with-libsodium \
--enable-unit-tests \
+ --enable-lua-records \
--enable-reproducible \
- --enable-systemd
+ --enable-experimental-pkcs11 \
+ --enable-systemd \
+ --enable-ixfrdist
%make_build
@@ -210,6 +238,7 @@ exit 0
%{_bindir}/calidns
%{_bindir}/dnsbulktest
%{_bindir}/dnsgram
+%{_bindir}/dnspcap2calidns
%{_bindir}/dnspcap2protobuf
%{_bindir}/dnsreplay
%{_bindir}/dnsscan
@@ -226,6 +255,7 @@ exit 0
%{_mandir}/man1/calidns.1.gz
%{_mandir}/man1/dnsbulktest.1.gz
%{_mandir}/man1/dnsgram.1.gz
+%{_mandir}/man1/dnspcap2calidns.1.gz
%{_mandir}/man1/dnspcap2protobuf.1.gz
%{_mandir}/man1/dnsreplay.1.gz
%{_mandir}/man1/dnsscan.1.gz
@@ -245,6 +275,7 @@ exit 0
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.mysql.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.mysql.sql
%{_pkgdocdir}/3.4.0_to_4.1.0_schema.mysql.sql
+%{_pkgdocdir}/4.1.0_to_4.2.0_schema.mysql.sql
%{_libdir}/%{name}/libgmysqlbackend.so
%files backend-postgresql
@@ -252,7 +283,7 @@ exit 0
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.pgsql.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.pgsql.sql
%{_pkgdocdir}/3.4.0_to_4.1.0_schema.pgsql.sql
-%{_pkgdocdir}/4.1.10_to_4.1.11.schema.pgsql.sql
+%{_pkgdocdir}/4.1.0_to_4.2.0_schema.pgsql.sql
%{_libdir}/%{name}/libgpgsqlbackend.so
%files backend-pipe
@@ -269,10 +300,15 @@ exit 0
%files backend-lua
%{_libdir}/%{name}/libluabackend.so
+%files backend-lua2
+%{_libdir}/%{name}/liblua2backend.so
+
%files backend-sqlite
%{_pkgdocdir}/schema.sqlite3.sql
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.sqlite3.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql
+%{_pkgdocdir}/3.4.0_to_4.0.0_schema.sqlite3.sql
+%{_pkgdocdir}/4.0.0_to_4.2.0_schema.sqlite3.sql
%{_libdir}/%{name}/libgsqlite3backend.so
%files backend-mydns
@@ -282,7 +318,23 @@ exit 0
%files backend-tinydns
%{_libdir}/%{name}/libtinydnsbackend.so
+%files ixfrdist
+%{_bindir}/ixfrdist
+%{_mandir}/man1/ixfrdist.1.gz
+%{_mandir}/man5/ixfrdist.yml.5.gz
+%{_sysconfdir}/%{name}/ixfrdist.example.yml
+%{_unitdir}/ixfrdist.service
+%{_unitdir}/ixfrdist@.service
+
%changelog
+* Fri Aug 30 2019 Morten Stevens <mstevens(a)fedoraproject.org> - 4.2.0-1
+- Update to 4.2.0
+- Enable LUA records
+- Enable lua2 backend
+- Enable luajit
+- Enable experimental pkcs11 support
+- Added ixfrdist subpackage
+
* Thu Aug 08 2019 Morten Stevens <mstevens(a)fedoraproject.org> - 4.1.13-1
- Update to 4.1.13
diff --git a/sources b/sources
index 80025df..02e25b1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pdns-4.1.13.tar.bz2) = 94d80b1c6b78e93dd856631d391225c521485c3fb6b4123b28f9f58e178a7f6eb03f24189eaa261873e7e29962761b513c1fcf092101d68ad81dac73249a54d4
+SHA512 (pdns-4.2.0.tar.bz2) = ee67c132458e539d522aaa5835237dc64d92ad546f51e0ef86366964f7105631f2bd1e6c5d19d85466d95e1982f6410aeb14932c265fddfd301e403e76542624
3 years, 9 months
Architecture specific change in rpms/pdns.git
by githook-noreply@fedoraproject.org
The package rpms/pdns.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/pdns.git/commit/?id=105e6d155e1a2....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 105e6d155e1a2e10ebd1452d1ff6ee9d8282793d
Author: Morten Stevens <mstevens(a)fedoraproject.org>
Date: Fri Aug 30 17:56:24 2019 +0200
Update to 4.2.0
diff --git a/.gitignore b/.gitignore
index cf7019e..98dbb79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,4 @@ pdns-2.9.22.tar.gz
/pdns-4.1.10.tar.bz2
/pdns-4.1.11.tar.bz2
/pdns-4.1.13.tar.bz2
+/pdns-4.2.0.tar.bz2
diff --git a/pdns.spec b/pdns.spec
index 362e2bd..4797e7f 100644
--- a/pdns.spec
+++ b/pdns.spec
@@ -2,7 +2,7 @@
%global backends %{nil}
Name: pdns
-Version: 4.1.13
+Version: 4.2.0
Release: 1%{?dist}
Summary: A modern, advanced and high performance authoritative-only nameserver
License: GPLv2
@@ -19,11 +19,20 @@ BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: gcc-c++
BuildRequires: krb5-devel
+BuildRequires: libcurl-devel
BuildRequires: libsodium-devel
+%ifarch aarch64
BuildRequires: lua-devel
+%define lua_implementation lua
+%else
+BuildRequires: luajit-devel
+%define lua_implementation luajit
+%endif
BuildRequires: openssl-devel
+BuildRequires: p11-kit-devel
BuildRequires: protobuf-compiler
BuildRequires: protobuf-devel
+BuildRequires: libcurl-devel
BuildRequires: systemd-devel
BuildRequires: systemd-units
Provides: powerdns = %{version}-%{release}
@@ -94,6 +103,14 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description backend-lua
This package contains the lua backend for %{name}
+%package backend-lua2
+Summary: LUA2 backend for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} lua2
+
+%description backend-lua2
+This package contains the lua2 backend for %{name}
+
%package backend-sqlite
Summary: SQLite backend for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
@@ -120,6 +137,13 @@ BuildRequires: tinycdb-devel
%description backend-tinydns
This package contains the TinyDNS backend for %{name}
+%package ixfrdist
+Summary: A program to redistribute zones over AXFR and IXFR
+BuildRequires: yaml-cpp-devel
+
+%description ixfrdist
+This package contains the ixfrdist program.
+
%prep
%setup -q
%patch0 -p1 -b .disable-secpoll
@@ -128,18 +152,22 @@ This package contains the TinyDNS backend for %{name}
export CPPFLAGS="-DLDAP_DEPRECATED"
%configure \
+ --enable-option-checking=fatal \
--sysconfdir=%{_sysconfdir}/%{name} \
--disable-static \
--disable-dependency-tracking \
--disable-silent-rules \
--with-modules='' \
- --with-lua \
+ --with-lua=%{lua_implementation} \
--with-dynmodules='%{backends}' \
--enable-tools \
- --enable-libsodium \
+ --with-libsodium \
--enable-unit-tests \
+ --enable-lua-records \
--enable-reproducible \
- --enable-systemd
+ --enable-experimental-pkcs11 \
+ --enable-systemd \
+ --enable-ixfrdist
%make_build
@@ -210,6 +238,7 @@ exit 0
%{_bindir}/calidns
%{_bindir}/dnsbulktest
%{_bindir}/dnsgram
+%{_bindir}/dnspcap2calidns
%{_bindir}/dnspcap2protobuf
%{_bindir}/dnsreplay
%{_bindir}/dnsscan
@@ -226,6 +255,7 @@ exit 0
%{_mandir}/man1/calidns.1.gz
%{_mandir}/man1/dnsbulktest.1.gz
%{_mandir}/man1/dnsgram.1.gz
+%{_mandir}/man1/dnspcap2calidns.1.gz
%{_mandir}/man1/dnspcap2protobuf.1.gz
%{_mandir}/man1/dnsreplay.1.gz
%{_mandir}/man1/dnsscan.1.gz
@@ -245,6 +275,7 @@ exit 0
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.mysql.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.mysql.sql
%{_pkgdocdir}/3.4.0_to_4.1.0_schema.mysql.sql
+%{_pkgdocdir}/4.1.0_to_4.2.0_schema.mysql.sql
%{_libdir}/%{name}/libgmysqlbackend.so
%files backend-postgresql
@@ -252,7 +283,7 @@ exit 0
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.pgsql.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.pgsql.sql
%{_pkgdocdir}/3.4.0_to_4.1.0_schema.pgsql.sql
-%{_pkgdocdir}/4.1.10_to_4.1.11.schema.pgsql.sql
+%{_pkgdocdir}/4.1.0_to_4.2.0_schema.pgsql.sql
%{_libdir}/%{name}/libgpgsqlbackend.so
%files backend-pipe
@@ -269,10 +300,15 @@ exit 0
%files backend-lua
%{_libdir}/%{name}/libluabackend.so
+%files backend-lua2
+%{_libdir}/%{name}/liblua2backend.so
+
%files backend-sqlite
%{_pkgdocdir}/schema.sqlite3.sql
%{_pkgdocdir}/dnssec-3.x_to_3.4.0_schema.sqlite3.sql
%{_pkgdocdir}/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql
+%{_pkgdocdir}/3.4.0_to_4.0.0_schema.sqlite3.sql
+%{_pkgdocdir}/4.0.0_to_4.2.0_schema.sqlite3.sql
%{_libdir}/%{name}/libgsqlite3backend.so
%files backend-mydns
@@ -282,7 +318,23 @@ exit 0
%files backend-tinydns
%{_libdir}/%{name}/libtinydnsbackend.so
+%files ixfrdist
+%{_bindir}/ixfrdist
+%{_mandir}/man1/ixfrdist.1.gz
+%{_mandir}/man5/ixfrdist.yml.5.gz
+%{_sysconfdir}/%{name}/ixfrdist.example.yml
+%{_unitdir}/ixfrdist.service
+%{_unitdir}/ixfrdist@.service
+
%changelog
+* Fri Aug 30 2019 Morten Stevens <mstevens(a)fedoraproject.org> - 4.2.0-1
+- Update to 4.2.0
+- Enable LUA records
+- Enable lua2 backend
+- Enable luajit
+- Enable experimental pkcs11 support
+- Added ixfrdist subpackage
+
* Thu Aug 08 2019 Morten Stevens <mstevens(a)fedoraproject.org> - 4.1.13-1
- Update to 4.1.13
diff --git a/sources b/sources
index 80025df..02e25b1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pdns-4.1.13.tar.bz2) = 94d80b1c6b78e93dd856631d391225c521485c3fb6b4123b28f9f58e178a7f6eb03f24189eaa261873e7e29962761b513c1fcf092101d68ad81dac73249a54d4
+SHA512 (pdns-4.2.0.tar.bz2) = ee67c132458e539d522aaa5835237dc64d92ad546f51e0ef86366964f7105631f2bd1e6c5d19d85466d95e1982f6410aeb14932c265fddfd301e403e76542624
3 years, 9 months
Architecture specific change in rpms/python2.git
by githook-noreply@fedoraproject.org
The package rpms/python2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python2.git/commit/?id=26e49df9a0....
Change:
-%ifarch %{mips64}
Thanks.
Full change:
============
commit 26e49df9a02e6147f827c76bd45324fcb1024329
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Aug 30 13:38:10 2019 +0200
Obsoleted by python27, see https://fedoraproject.org/wiki/Changes/RetirePython2
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index dafa321..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/*.tar.*
diff --git a/00001-pydocnogui.patch b/00001-pydocnogui.patch
deleted file mode 100644
index 0311f38..0000000
--- a/00001-pydocnogui.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up Python-2.7.3/Lib/pydoc.py.no_gui Python-2.7.3/Lib/pydoc.py
---- Python-2.7.3/Lib/pydoc.py.no_gui 2012-04-09 19:07:31.000000000 -0400
-+++ Python-2.7.3/Lib/pydoc.py 2013-02-19 13:48:44.480054515 -0500
-@@ -19,9 +19,6 @@ of all available modules.
- local machine to generate documentation web pages. Port number 0 can be
- used to get an arbitrary unused port.
-
--For platforms without a command line, "pydoc -g" starts the HTTP server
--and also pops up a little window for controlling it.
--
- Run "pydoc -w <name>" to write out the HTML documentation for a module
- to a file named "<name>.html".
-
-@@ -2346,13 +2340,10 @@ def cli():
- Start an HTTP server on the given port on the local machine. Port
- number 0 can be used to get an arbitrary unused port.
-
--%s -g
-- Pop up a graphical interface for finding and serving documentation.
--
- %s -w <name> ...
- Write out the HTML documentation for a module to a file in the current
- directory. If <name> contains a '%s', it is treated as a filename; if
- it names a directory, documentation is written for all the contents.
--""" % (cmd, os.sep, cmd, cmd, cmd, cmd, os.sep)
-+""" % (cmd, os.sep, cmd, cmd, cmd, os.sep)
-
- if __name__ == '__main__': cli()
diff --git a/00010-2.7.13-binutils-no-dep.patch b/00010-2.7.13-binutils-no-dep.patch
deleted file mode 100644
index d432623..0000000
--- a/00010-2.7.13-binutils-no-dep.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index ab10ec5..923d1b7 100644
---- a/Lib/ctypes/util.py
-+++ b/Lib/ctypes/util.py
-@@ -140,11 +140,15 @@ elif os.name == "posix":
- # assuming GNU binutils / ELF
- if not f:
- return None
-- cmd = 'if ! type objdump >/dev/null 2>&1; then exit; fi;' \
-+ cmd = 'if ! type objdump >/dev/null 2>&1; then exit 10; fi;' \
- 'objdump -p -j .dynamic 2>/dev/null "$1"'
- proc = subprocess.Popen((cmd, '_get_soname', f), shell=True,
- stdout=subprocess.PIPE)
- [dump, _] = proc.communicate()
-+ if proc.returncode == 10:
-+ return os.path.basename(f) # This is good for GLibc, I think,
-+ # and a dep on binutils is big (for
-+ # live CDs).
- res = re.search(br'\sSONAME\s+([^\s]+)', dump)
- if not res:
- return None
diff --git a/00055-systemtap.patch b/00055-systemtap.patch
deleted file mode 100644
index 6ccc747..0000000
--- a/00055-systemtap.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-diff -up Python-2.7rc1/configure.ac.systemtap Python-2.7rc1/configure.ac
---- Python-2.7rc1/configure.ac.systemtap 2010-06-06 10:53:15.514975012 -0400
-+++ Python-2.7rc1/configure.ac 2010-06-06 10:53:15.520974361 -0400
-@@ -2616,6 +2616,38 @@ if test "$with_valgrind" != no; then
- )
- fi
-
-+# Check for dtrace support
-+AC_MSG_CHECKING(for --with-dtrace)
-+AC_ARG_WITH(dtrace,
-+ AC_HELP_STRING(--with(out)-dtrace, disable/enable dtrace support))
-+
-+if test ! -z "$with_dtrace"
-+then
-+ if dtrace -G -o /dev/null -s $srcdir/Include/pydtrace.d 2>/dev/null
-+ then
-+ AC_DEFINE(WITH_DTRACE, 1,
-+ [Define if you want to compile in Dtrace support])
-+ with_dtrace="Sun"
-+ DTRACEOBJS="Python/dtrace.o"
-+ DTRADEHDRS=""
-+ elif dtrace -h -o /dev/null -s $srcdir/Include/pydtrace.d
-+ then
-+ AC_DEFINE(WITH_DTRACE, 1,
-+ [Define if you want to compile in Dtrace support])
-+ with_dtrace="Apple"
-+ DTRACEOBJS=""
-+ DTRADEHDRS="pydtrace.h"
-+ else
-+ with_dtrace="no"
-+ fi
-+else
-+ with_dtrace="no"
-+fi
-+
-+AC_MSG_RESULT($with_dtrace)
-+AC_SUBST(DTRACEOBJS)
-+AC_SUBST(DTRACEHDRS)
-+
- # Check for --with-wctype-functions
- AC_MSG_CHECKING(for --with-wctype-functions)
- AC_ARG_WITH(wctype-functions,
-diff -up Python-2.7rc1/Include/pydtrace.d.systemtap Python-2.7rc1/Include/pydtrace.d
---- Python-2.7rc1/Include/pydtrace.d.systemtap 2010-06-06 10:53:15.520974361 -0400
-+++ Python-2.7rc1/Include/pydtrace.d 2010-06-06 10:53:15.520974361 -0400
-@@ -0,0 +1,10 @@
-+provider python {
-+ probe function__entry(const char *, const char *, int);
-+ probe function__return(const char *, const char *, int);
-+};
-+
-+#pragma D attributes Evolving/Evolving/Common provider python provider
-+#pragma D attributes Private/Private/Common provider python module
-+#pragma D attributes Private/Private/Common provider python function
-+#pragma D attributes Evolving/Evolving/Common provider python name
-+#pragma D attributes Evolving/Evolving/Common provider python args
-diff -up Python-2.7rc1/Makefile.pre.in.systemtap Python-2.7rc1/Makefile.pre.in
---- Python-2.7rc1/Makefile.pre.in.systemtap 2010-06-06 10:53:15.488978775 -0400
-+++ Python-2.7rc1/Makefile.pre.in 2010-06-06 11:05:30.411100568 -0400
-@@ -298,6 +298,7 @@ PYTHON_OBJS= \
- Python/formatter_unicode.o \
- Python/formatter_string.o \
- Python/$(DYNLOADFILE) \
-+ @DTRACEOBJS@ \
- $(LIBOBJS) \
- $(MACHDEP_OBJS) \
- $(THREADOBJ)
-@@ -599,6 +600,18 @@ Python/formatter_unicode.o: $(srcdir)/Py
- Python/formatter_string.o: $(srcdir)/Python/formatter_string.c \
- $(STRINGLIB_HEADERS)
-
-+# Only needed with --with-dtrace
-+buildinclude:
-+ mkdir -p Include
-+
-+Include/pydtrace.h: buildinclude $(srcdir)/Include/pydtrace.d
-+ dtrace -o $@ $(DFLAGS) -C -h -s $(srcdir)/Include/pydtrace.d
-+
-+Python/ceval.o: Include/pydtrace.h
-+
-+Python/dtrace.o: buildinclude $(srcdir)/Include/pydtrace.d Python/ceval.o
-+ dtrace -o $@ $(DFLAGS) -C -G -s $(srcdir)/Include/pydtrace.d Python/ceval.o
-+
- ############################################################################
- # Header files
-
-@@ -1251,7 +1264,7 @@ Python/thread.o: @THREADHEADERS@
- .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
- .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
- .PHONY: frameworkaltinstallunixtools recheck clean clobber distclean
--.PHONY: smelly funny patchcheck altmaninstall commoninstall
-+.PHONY: smelly funny patchcheck altmaninstall commoninstall buildinclude
- .PHONY: gdbhooks
-
- # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-diff -up Python-2.7rc1/pyconfig.h.in.systemtap Python-2.7rc1/pyconfig.h.in
---- Python-2.7rc1/pyconfig.h.in.systemtap 2010-05-08 07:04:18.000000000 -0400
-+++ Python-2.7rc1/pyconfig.h.in 2010-06-06 10:53:15.521974070 -0400
-@@ -1074,6 +1074,9 @@
- /* Define if you want documentation strings in extension modules */
- #undef WITH_DOC_STRINGS
-
-+/* Define if you want to compile in Dtrace support */
-+#undef WITH_DTRACE
-+
- /* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
- linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
- Dyld is necessary to support frameworks. */
-diff -up Python-2.7rc1/Python/ceval.c.systemtap Python-2.7rc1/Python/ceval.c
---- Python-2.7rc1/Python/ceval.c.systemtap 2010-05-09 10:46:46.000000000 -0400
-+++ Python-2.7rc1/Python/ceval.c 2010-06-06 11:08:40.683100500 -0400
-@@ -19,6 +19,10 @@
-
- #include <ctype.h>
-
-+#ifdef WITH_DTRACE
-+#include "pydtrace.h"
-+#endif
-+
- #ifndef WITH_TSC
-
- #define READ_TIMESTAMP(var)
-@@ -671,6 +675,55 @@ PyEval_EvalCode(PyCodeObject *co, PyObje
- NULL);
- }
-
-+#ifdef WITH_DTRACE
-+static void
-+dtrace_entry(PyFrameObject *f)
-+{
-+ const char *filename;
-+ const char *fname;
-+ int lineno;
-+
-+ filename = PyString_AsString(f->f_code->co_filename);
-+ fname = PyString_AsString(f->f_code->co_name);
-+ lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
-+
-+ PYTHON_FUNCTION_ENTRY((char *)filename, (char *)fname, lineno);
-+
-+ /*
-+ * Currently a USDT tail-call will not receive the correct arguments.
-+ * Disable the tail call here.
-+ */
-+#if defined(__sparc)
-+ asm("nop");
-+#endif
-+}
-+
-+static void
-+dtrace_return(PyFrameObject *f)
-+{
-+ const char *filename;
-+ const char *fname;
-+ int lineno;
-+
-+ filename = PyString_AsString(f->f_code->co_filename);
-+ fname = PyString_AsString(f->f_code->co_name);
-+ lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
-+ PYTHON_FUNCTION_RETURN((char *)filename, (char *)fname, lineno);
-+
-+ /*
-+ * Currently a USDT tail-call will not receive the correct arguments.
-+ * Disable the tail call here.
-+ */
-+#if defined(__sparc)
-+ asm("nop");
-+#endif
-+}
-+#else
-+#define PYTHON_FUNCTION_ENTRY_ENABLED() 0
-+#define PYTHON_FUNCTION_RETURN_ENABLED() 0
-+#define dtrace_entry(f)
-+#define dtrace_return(f)
-+#endif
-
- /* Interpreter main loop */
-
-@@ -909,6 +962,9 @@ PyEval_EvalFrameEx(PyFrameObject *f, int
- }
- }
-
-+ if (PYTHON_FUNCTION_ENTRY_ENABLED())
-+ dtrace_entry(f);
-+
- co = f->f_code;
- names = co->co_names;
- consts = co->co_consts;
-@@ -3000,6 +3056,9 @@ fast_yield:
-
- /* pop frame */
- exit_eval_frame:
-+ if (PYTHON_FUNCTION_RETURN_ENABLED())
-+ dtrace_return(f);
-+
- Py_LeaveRecursiveCall();
- tstate->frame = f->f_back;
-
diff --git a/00102-2.7.13-lib64.patch b/00102-2.7.13-lib64.patch
deleted file mode 100644
index 02d3f6c..0000000
--- a/00102-2.7.13-lib64.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
-index b9f1c6c..7b23714 100644
---- a/Lib/distutils/command/install.py
-+++ b/Lib/distutils/command/install.py
-@@ -42,14 +42,14 @@ else:
- INSTALL_SCHEMES = {
- 'unix_prefix': {
- 'purelib': '$base/lib/python$py_version_short/site-packages',
-- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
- 'headers': '$base/include/python$py_version_short/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
- },
- 'unix_home': {
- 'purelib': '$base/lib/python',
-- 'platlib': '$base/lib/python',
-+ 'platlib': '$base/lib64/python',
- 'headers': '$base/include/python/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 031f809..ec5d584 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -120,8 +120,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
- prefix = plat_specific and EXEC_PREFIX or PREFIX
-
- if os.name == "posix":
-+ if plat_specific or standard_lib:
-+ lib = "lib64"
-+ else:
-+ lib = "lib"
- libpython = os.path.join(prefix,
-- "lib", "python" + get_python_version())
-+ lib, "python" + get_python_version())
- if standard_lib:
- return libpython
- else:
-diff --git a/Lib/site.py b/Lib/site.py
-index c360802..868b7cb 100644
---- a/Lib/site.py
-+++ b/Lib/site.py
-@@ -288,12 +288,16 @@ def getsitepackages():
- if sys.platform in ('os2emx', 'riscos'):
- sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
- elif os.sep == '/':
-+ sitepackages.append(os.path.join(prefix, "lib64",
-+ "python" + sys.version[:3],
-+ "site-packages"))
- sitepackages.append(os.path.join(prefix, "lib",
- "python" + sys.version[:3],
- "site-packages"))
- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
- else:
- sitepackages.append(prefix)
-+ sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
- return sitepackages
-
-diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
-index b4384ee..349f688 100644
---- a/Lib/test/test_site.py
-+++ b/Lib/test/test_site.py
-@@ -254,17 +254,20 @@ class HelperFunctionsTests(unittest.TestCase):
- self.assertEqual(dirs[0], wanted)
- elif os.sep == '/':
- # OS X, Linux, FreeBSD, etc
-- self.assertEqual(len(dirs), 2)
-- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
-+ self.assertEqual(len(dirs), 3)
-+ wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
- 'site-packages')
- self.assertEqual(dirs[0], wanted)
-- wanted = os.path.join('xoxo', 'lib', 'site-python')
-+ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
-+ 'site-packages')
- self.assertEqual(dirs[1], wanted)
-+ wanted = os.path.join('xoxo', 'lib', 'site-python')
-+ self.assertEqual(dirs[2], wanted)
- else:
- # other platforms
- self.assertEqual(len(dirs), 2)
- self.assertEqual(dirs[0], 'xoxo')
-- wanted = os.path.join('xoxo', 'lib', 'site-packages')
-+ wanted = os.path.join('xoxo', 'lib64', 'site-packages')
- self.assertEqual(dirs[1], wanted)
-
- def test_no_home_directory(self):
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 4f59dd3..877698c 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -110,7 +110,7 @@ LIBDIR= @libdir@
- MANDIR= @mandir@
- INCLUDEDIR= @includedir@
- CONFINCLUDEDIR= $(exec_prefix)/include
--SCRIPTDIR= $(prefix)/lib
-+SCRIPTDIR= $(prefix)/lib64
-
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
-diff --git a/Modules/Setup.dist b/Modules/Setup.dist
-index 2cf35a9..c4c88cb 100644
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -231,7 +231,7 @@ crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
- # Some more UNIX dependent modules -- off by default, since these
- # are not supported by all UNIX systems:
-
--nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib/nsl
-+nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib64/nsl
- termios termios.c # Steen Lumholt's termios module
- resource resource.c # Jeremy Hylton's rlimit interface
-
-@@ -416,7 +416,7 @@ gdbm gdbmmodule.c -lgdbm
- # Edit the variables DB and DBLIBVERto point to the db top directory
- # and the subdirectory of PORT where you built it.
- DBINC=/usr/include/libdb
--DBLIB=/usr/lib
-+DBLIB=/usr/lib64
- _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb
-
- # Historical Berkeley DB 1.85
-@@ -462,7 +462,7 @@ cPickle cPickle.c
- # Andrew Kuchling's zlib module.
- # This require zlib 1.1.3 (or later).
- # See http://www.gzip.org/zlib/
--zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz
-
- # Interface to the Expat XML parser
- # More information on Expat can be found at www.libexpat.org.
-diff --git a/Modules/getpath.c b/Modules/getpath.c
-index fd33a01..c5c86fd 100644
---- a/Modules/getpath.c
-+++ b/Modules/getpath.c
-@@ -108,7 +108,7 @@ static char prefix[MAXPATHLEN+1];
- static char exec_prefix[MAXPATHLEN+1];
- static char progpath[MAXPATHLEN+1];
- static char *module_search_path = NULL;
--static char lib_python[] = "lib/python" VERSION;
-+static char lib_python[] = "lib64/python" VERSION;
-
- static void
- reduce(char *dir)
-@@ -548,7 +548,7 @@ calculate_path(void)
- fprintf(stderr,
- "Could not find platform dependent libraries <exec_prefix>\n");
- strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN);
-- joinpath(exec_prefix, "lib/lib-dynload");
-+ joinpath(exec_prefix, "lib64/lib-dynload");
- }
- /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
-
-diff --git a/setup.py b/setup.py
-index 0288a6b..7905f6f 100644
---- a/setup.py
-+++ b/setup.py
-@@ -456,7 +456,7 @@ class PyBuildExt(build_ext):
- def detect_modules(self):
- # Ensure that /usr/local is always used
- if not cross_compiling:
-- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
- if cross_compiling:
- self.add_gcc_paths()
-@@ -782,11 +782,11 @@ class PyBuildExt(build_ext):
- elif curses_library:
- readline_libs.append(curses_library)
- elif self.compiler.find_library_file(lib_dirs +
-- ['/usr/lib/termcap'],
-+ ['/usr/lib64/termcap'],
- 'termcap'):
- readline_libs.append('termcap')
- exts.append( Extension('readline', ['readline.c'],
-- library_dirs=['/usr/lib/termcap'],
-+ library_dirs=['/usr/lib64/termcap'],
- extra_link_args=readline_extra_link_args,
- libraries=readline_libs) )
- else:
-@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
- if krb5_h:
- ssl_incs += krb5_h
- ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
-- ['/usr/local/ssl/lib',
-- '/usr/contrib/ssl/lib/'
-+ ['/usr/local/ssl/lib64',
-+ '/usr/contrib/ssl/lib64/'
- ] )
-
- if (ssl_incs is not None and
diff --git a/00104-lib64-fix-for-test_install.patch b/00104-lib64-fix-for-test_install.patch
deleted file mode 100644
index 7852bf6..0000000
--- a/00104-lib64-fix-for-test_install.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- Python-2.7.2/Lib/distutils/tests/test_install.py.lib64 2011-09-08 17:51:57.851405376 -0400
-+++ Python-2.7.2/Lib/distutils/tests/test_install.py 2011-09-08 18:40:46.754205096 -0400
-@@ -41,8 +41,9 @@ class InstallTestCase(support.TempdirMan
- self.assertEqual(got, expected)
-
- libdir = os.path.join(destination, "lib", "python")
-+ platlibdir = os.path.join(destination, "lib64", "python")
- check_path(cmd.install_lib, libdir)
-- check_path(cmd.install_platlib, libdir)
-+ check_path(cmd.install_platlib, platlibdir)
- check_path(cmd.install_purelib, libdir)
- check_path(cmd.install_headers,
- os.path.join(destination, "include", "python", "foopkg"))
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
deleted file mode 100644
index 70dfb77..0000000
--- a/00111-no-static-lib.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -up Python-2.7.6/Makefile.pre.in.no-static-lib Python-2.7.6/Makefile.pre.in
---- Python-2.7.6/Makefile.pre.in.no-static-lib 2014-01-29 13:58:32.933226720 +0100
-+++ Python-2.7.6/Makefile.pre.in 2014-01-29 14:10:25.002247272 +0100
-@@ -437,7 +437,7 @@ coverage:
-
-
- # Build the interpreter
--$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
-+$(BUILDPYTHON): Modules/python.o $(LDLIBRARY)
- $(LINKCC) $(CFLAGS) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
- Modules/python.o \
- $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-@@ -464,18 +464,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.tx
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-
--# Build static library
--# avoid long command lines, same as LIBRARY_OBJS
--$(LIBRARY): $(LIBRARY_OBJS)
-- -rm -f $@
-- $(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
-- $(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
-- $(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
-- $(AR) $(ARFLAGS) $@ $(PYTHON_OBJS)
-- $(AR) $(ARFLAGS) $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
-- $(AR) $(ARFLAGS) $@ $(MODOBJS)
-- $(RANLIB) $@
--
- libpython$(VERSION).so: $(LIBRARY_OBJS)
- if test $(INSTSONAME) != $(LDLIBRARY); then \
- $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-@@ -1097,18 +1085,6 @@ libainstall: all python-config
- else true; \
- fi; \
- done
-- @if test -d $(LIBRARY); then :; else \
-- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
-- if test "$(SO)" = .dll; then \
-- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
-- else \
-- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
-- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
-- fi; \
-- else \
-- echo Skip install of $(LIBRARY) - use make frameworkinstall; \
-- fi; \
-- fi
- $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
- $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
- $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
diff --git a/00112-2.7.13-debug-build.patch b/00112-2.7.13-debug-build.patch
deleted file mode 100644
index 463f4d8..0000000
--- a/00112-2.7.13-debug-build.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From 898f93aa206e577dfe854c59bc62d0cea09cd5ed Mon Sep 17 00:00:00 2001
-From: Tomas Orsava <torsava(a)redhat.com>
-Date: Tue, 10 Jan 2017 16:19:50 +0100
-Subject: [PATCH] Patch to support building both optimized vs debug stacks DSO
- ABIs,
-
-sharing the same .py and .pyc files, using "_d.so" to signify a debug build of
-an extension module.
----
- Lib/distutils/command/build_ext.py | 7 ++++-
- Lib/distutils/sysconfig.py | 5 ++--
- Lib/distutils/tests/test_install.py | 3 +-
- Makefile.pre.in | 56 ++++++++++++++++++++-----------------
- Misc/python-config.in | 2 +-
- Modules/makesetup | 2 +-
- Python/dynload_shlib.c | 11 ++++++--
- Python/sysmodule.c | 6 ++++
- configure.ac | 14 ++++++++--
- 9 files changed, 69 insertions(+), 37 deletions(-)
-
-diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
-index 2c68be3..029d144 100644
---- a/Lib/distutils/command/build_ext.py
-+++ b/Lib/distutils/command/build_ext.py
-@@ -677,7 +677,10 @@ class build_ext (Command):
- so_ext = get_config_var('SO')
- if os.name == 'nt' and self.debug:
- return os.path.join(*ext_path) + '_d' + so_ext
-- return os.path.join(*ext_path) + so_ext
-+
-+ # Similarly, extensions in debug mode are named 'module_d.so', to
-+ # avoid adding the _d to the SO config variable:
-+ return os.path.join(*ext_path) + (sys.pydebug and "_d" or "") + so_ext
-
- def get_export_symbols (self, ext):
- """Return the list of symbols that a shared extension has to
-@@ -762,6 +765,8 @@ class build_ext (Command):
- template = "python%d.%d"
- pythonlib = (template %
- (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
-+ if sys.pydebug:
-+ pythonlib += '_d'
- return ext.libraries + [pythonlib]
- else:
- return ext.libraries
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 3e7f077..ec5d584 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -90,7 +90,8 @@ def get_python_inc(plat_specific=0, prefix=None):
- # Include is located in the srcdir
- inc_dir = os.path.join(srcdir, "Include")
- return inc_dir
-- return os.path.join(prefix, "include", "python" + get_python_version())
-+ return os.path.join(prefix, "include",
-+ "python" + get_python_version() + (sys.pydebug and '-debug' or ''))
- elif os.name == "nt":
- return os.path.join(prefix, "include")
- elif os.name == "os2":
-@@ -248,7 +249,7 @@ def get_makefile_filename():
- if python_build:
- return os.path.join(project_base, "Makefile")
- lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
-- return os.path.join(lib_dir, "config", "Makefile")
-+ return os.path.join(lib_dir, "config" + (sys.pydebug and "-debug" or ""), "Makefile")
-
-
- def parse_config_h(fp, g=None):
-diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py
-index 78fac46..d1d0931 100644
---- a/Lib/distutils/tests/test_install.py
-+++ b/Lib/distutils/tests/test_install.py
-@@ -20,8 +20,9 @@ from distutils.tests import support
-
-
- def _make_ext_name(modname):
-- if os.name == 'nt' and sys.executable.endswith('_d.exe'):
-+ if sys.pydebug:
- modname += '_d'
-+
- return modname + sysconfig.get_config_var('SO')
-
-
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 997a2fc..467e782 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -116,8 +116,8 @@ SCRIPTDIR= $(prefix)/lib64
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
- LIBDEST= $(SCRIPTDIR)/python$(VERSION)
--INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
--CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)
-+INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
-+CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
- LIBP= $(LIBDIR)/python$(VERSION)
-
- # Symbols used for using shared libraries
-@@ -131,6 +131,12 @@ DESTSHARED= $(BINLIBDEST)/lib-dynload
- EXE= @EXEEXT@
- BUILDEXE= @BUILDEXEEXT@
-
-+# DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for a debug build
-+# DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a debug build
-+# Both will be empty in an optimized build
-+DEBUG_EXT= @DEBUG_EXT@
-+DEBUG_SUFFIX= @DEBUG_SUFFIX@
-+
- # Short name and location for Mac OS X Python framework
- UNIVERSALSDK=@UNIVERSALSDK@
- PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
-@@ -197,8 +203,8 @@ LIBOBJDIR= Python/
- LIBOBJS= @LIBOBJS@
- UNICODE_OBJS= @UNICODE_OBJS@
-
--PYTHON= python$(EXE)
--BUILDPYTHON= python$(BUILDEXE)
-+PYTHON= python$(DEBUG_SUFFIX)$(EXE)
-+BUILDPYTHON= python$(DEBUG_SUFFIX)$(BUILDEXE)
-
- PYTHON_FOR_REGEN=@PYTHON_FOR_REGEN@
- PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
-@@ -547,7 +553,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-
--libpython$(VERSION).so: $(LIBRARY_OBJS)
-+libpython$(VERSION)$(DEBUG_EXT).so: $(LIBRARY_OBJS)
- if test $(INSTSONAME) != $(LDLIBRARY); then \
- $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
- $(LN) -f $(INSTSONAME) $@; \
-@@ -954,18 +960,18 @@ bininstall: altbininstall
- then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
- else true; \
- fi
-- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON))
-- -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
-- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE))
-- -rm -f $(DESTDIR)$(BINDIR)/python2-config
-- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config)
-- -rm -f $(DESTDIR)$(BINDIR)/python-config
-- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config)
-+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)$(EXE) $(PYTHON))
-+ -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)$(EXE)
-+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)$(EXE) python2$(DEBUG_SUFFIX)$(EXE))
-+ -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)-config
-+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)-config python2$(DEBUG_SUFFIX)-config)
-+ -rm -f $(DESTDIR)$(BINDIR)/python$(DEBUG_SUFFIX)-config
-+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)-config python$(DEBUG_SUFFIX)-config)
- -test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC)
-- -rm -f $(DESTDIR)$(LIBPC)/python2.pc
-- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc)
-- -rm -f $(DESTDIR)$(LIBPC)/python.pc
-- (cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc)
-+ -rm -f $(DESTDIR)$(LIBPC)/python2$(DEBUG_SUFFIX).pc
-+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)$(DEBUG_SUFFIX).pc python2$(DEBUG_SUFFIX).pc)
-+ -rm -f $(DESTDIR)$(LIBPC)/python$(DEBUG_SUFFIX).pc
-+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python2$(DEBUG_SUFFIX).pc python$(DEBUG_SUFFIX).pc)
-
- # Install the interpreter with $(VERSION) affixed
- # This goes into $(exec_prefix)
-@@ -978,7 +984,7 @@ altbininstall: $(BUILDPYTHON)
- else true; \
- fi; \
- done
-- $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
-+ $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)
- if test -f $(LDLIBRARY); then \
- if test -n "$(DLLLIBRARY)" ; then \
- $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
-@@ -1148,10 +1154,11 @@ $(srcdir)/Lib/$(PLATDIR):
- fi; \
- cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
-
--python-config: $(srcdir)/Misc/python-config.in
-+python$(DEBUG_SUFFIX)-config: $(srcdir)/Misc/python-config.in
- # Substitution happens here, as the completely-expanded BINDIR
- # is not available in configure
-- sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
-+ sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)," < $(srcdir)/Misc/python-config.in >python$(DEBUG_SUFFIX)-config
-+
-
- # Install the include files
- INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
-@@ -1172,13 +1179,13 @@ inclinstall:
- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
-
- # Install the library and miscellaneous stuff needed for extending/embedding
--# This goes into $(exec_prefix)
--LIBPL= $(LIBP)/config
-+# This goes into $(exec_prefix)$(DEBUG_SUFFIX)
-+LIBPL= $(LIBP)/config$(DEBUG_SUFFIX)
-
- # pkgconfig directory
- LIBPC= $(LIBDIR)/pkgconfig
-
--libainstall: @DEF_MAKE_RULE@ python-config
-+libainstall: @DEF_MAKE_RULE@ python$(DEBUG_SUFFIX)-config
- @for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
-@@ -1194,11 +1201,10 @@ libainstall: all python-config
- $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
- $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
- $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
-- $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
-+ $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)$(DEBUG_SUFFIX).pc
- $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
- $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
-- $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
-- rm python-config
-+ $(INSTALL_SCRIPT) python$(DEBUG_SUFFIX)-config $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)-config
- @if [ -s Modules/python.exp -a \
- "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
- echo; echo "Installing support files for building shared extension modules on AIX:"; \
-diff --git a/Misc/python-config.in b/Misc/python-config.in
-index a09e07c..c1691ef 100644
---- a/Misc/python-config.in
-+++ b/Misc/python-config.in
-@@ -44,7 +44,7 @@ for opt in opt_flags:
- print ' '.join(flags)
-
- elif opt in ('--libs', '--ldflags'):
-- libs = ['-lpython' + pyver]
-+ libs = ['-lpython' + pyver + (sys.pydebug and "_d" or "")]
- libs += getvar('LIBS').split()
- libs += getvar('SYSLIBS').split()
- # add the prefix/lib/pythonX.Y/config dir, but only if there is no
-diff --git a/Modules/makesetup b/Modules/makesetup
-index 1bffcbf..f0bc743 100755
---- a/Modules/makesetup
-+++ b/Modules/makesetup
-@@ -233,7 +233,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
- *$mod.o*) base=$mod;;
- *) base=${mod}module;;
- esac
-- file="$srcdir/$base\$(SO)"
-+ file="$srcdir/$base\$(DEBUG_EXT)\$(SO)"
- case $doconfig in
- no) SHAREDMODS="$SHAREDMODS $file";;
- esac
-diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c
-index 17ebab1..02a94aa 100644
---- a/Python/dynload_shlib.c
-+++ b/Python/dynload_shlib.c
-@@ -46,11 +46,16 @@ const struct filedescr _PyImport_DynLoadFiletab[] = {
- {"module.exe", "rb", C_EXTENSION},
- {"MODULE.EXE", "rb", C_EXTENSION},
- #else
-+#ifdef Py_DEBUG
-+ {"_d.so", "rb", C_EXTENSION},
-+ {"module_d.so", "rb", C_EXTENSION},
-+#else
- {".so", "rb", C_EXTENSION},
- {"module.so", "rb", C_EXTENSION},
--#endif
--#endif
--#endif
-+#endif /* Py_DEBUG */
-+#endif /* __VMS */
-+#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
-+#endif /* __CYGWIN__ */
- {0, 0}
- };
-
-diff --git a/Python/sysmodule.c b/Python/sysmodule.c
-index aeff38a..183e3cc 100644
---- a/Python/sysmodule.c
-+++ b/Python/sysmodule.c
-@@ -1524,6 +1524,12 @@ _PySys_Init(void)
- PyString_FromString("legacy"));
- #endif
-
-+#ifdef Py_DEBUG
-+ PyDict_SetItemString(sysdict, "pydebug", Py_True);
-+#else
-+ PyDict_SetItemString(sysdict, "pydebug", Py_False);
-+#endif
-+
- #undef SET_SYS_FROM_STRING
- if (PyErr_Occurred())
- return NULL;
-diff --git a/configure.ac b/configure.ac
-index 0a902c7..5caedb7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -764,7 +764,7 @@ AC_SUBST(LIBRARY)
- AC_MSG_CHECKING(LIBRARY)
- if test -z "$LIBRARY"
- then
-- LIBRARY='libpython$(VERSION).a'
-+ LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a'
- fi
- AC_MSG_RESULT($LIBRARY)
-
-@@ -910,8 +910,8 @@ if test $enable_shared = "yes"; then
- INSTSONAME="$LDLIBRARY".$SOVERSION
- ;;
- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
-- LDLIBRARY='libpython$(VERSION).so'
-- BLDLIBRARY='-L. -lpython$(VERSION)'
-+ LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
-+ BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
- RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- case $ac_sys_system in
- FreeBSD*)
-@@ -1040,6 +1040,14 @@ else AC_MSG_RESULT(no); Py_DEBUG='false'
- fi],
- [AC_MSG_RESULT(no)])
-
-+if test "$Py_DEBUG" = 'true'
-+then
-+ DEBUG_EXT=_d
-+ DEBUG_SUFFIX=-debug
-+fi
-+AC_SUBST(DEBUG_EXT)
-+AC_SUBST(DEBUG_SUFFIX)
-+
- # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
- # merged with this chunk of code?
-
---
-2.11.0
-
diff --git a/00113-more-configuration-flags.patch b/00113-more-configuration-flags.patch
deleted file mode 100644
index 2d447b2..0000000
--- a/00113-more-configuration-flags.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -up Python-2.6.5/configure.ac.more-configuration-flags Python-2.6.5/configure.ac
---- Python-2.6.5/configure.ac.more-configuration-flags 2010-05-24 18:51:25.410111792 -0400
-+++ Python-2.6.5/configure.ac 2010-05-24 18:59:23.954986388 -0400
-@@ -2515,6 +2515,30 @@ else AC_MSG_RESULT(no)
- fi],
- [AC_MSG_RESULT(no)])
-
-+AC_MSG_CHECKING(for --with-count-allocs)
-+AC_ARG_WITH(count-allocs,
-+[ --with(out)count-allocs enable/disable per-type instance accounting], [
-+if test "$withval" != no
-+then
-+ AC_DEFINE(COUNT_ALLOCS, 1,
-+ [Define to keep records of the number of instances of each type])
-+ AC_MSG_RESULT(yes)
-+else AC_MSG_RESULT(no)
-+fi],
-+[AC_MSG_RESULT(no)])
-+
-+AC_MSG_CHECKING(for --with-call-profile)
-+AC_ARG_WITH(call-profile,
-+[ --with(out)-call-profile enable/disable statistics on function call invocation], [
-+if test "$withval" != no
-+then
-+ AC_DEFINE(CALL_PROFILE, 1,
-+ [Define to keep records on function call invocation])
-+ AC_MSG_RESULT(yes)
-+else AC_MSG_RESULT(no)
-+fi],
-+[AC_MSG_RESULT(no)])
-+
- # Check for Python-specific malloc support
- AC_MSG_CHECKING(for --with-pymalloc)
- AC_ARG_WITH(pymalloc,
-diff -up Python-2.6.5/pyconfig.h.in.more-configuration-flags Python-2.6.5/pyconfig.h.in
---- Python-2.6.5/pyconfig.h.in.more-configuration-flags 2010-05-24 18:51:45.677988086 -0400
-+++ Python-2.6.5/pyconfig.h.in 2010-05-24 19:00:44.163987730 -0400
-@@ -1019,6 +1019,12 @@
- /* Define to profile with the Pentium timestamp counter */
- #undef WITH_TSC
-
-+/* Define to keep records of the number of instances of each type */
-+#undef COUNT_ALLOCS
-+
-+/* Define to keep records on function call invocation */
-+#undef CALL_PROFILE
-+
- /* Define if you want pymalloc to be disabled when running under valgrind */
- #undef WITH_VALGRIND
-
diff --git a/00114-statvfs-f_flag-constants.patch b/00114-statvfs-f_flag-constants.patch
deleted file mode 100644
index 83e7b59..0000000
--- a/00114-statvfs-f_flag-constants.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up Python-2.7rc1/Modules/posixmodule.c.statvfs-f-flag-constants Python-2.7rc1/Modules/posixmodule.c
---- Python-2.7rc1/Modules/posixmodule.c.statvfs-f-flag-constants 2010-05-15 17:45:30.000000000 -0400
-+++ Python-2.7rc1/Modules/posixmodule.c 2010-06-07 22:54:16.162068624 -0400
-@@ -9174,6 +9174,43 @@ all_ins(PyObject *d)
- #endif
- #endif
-
-+ /* These came from statvfs.h */
-+#ifdef ST_RDONLY
-+ if (ins(d, "ST_RDONLY", (long)ST_RDONLY)) return -1;
-+#endif /* ST_RDONLY */
-+#ifdef ST_NOSUID
-+ if (ins(d, "ST_NOSUID", (long)ST_NOSUID)) return -1;
-+#endif /* ST_NOSUID */
-+
-+ /* GNU extensions */
-+#ifdef ST_NODEV
-+ if (ins(d, "ST_NODEV", (long)ST_NODEV)) return -1;
-+#endif /* ST_NODEV */
-+#ifdef ST_NOEXEC
-+ if (ins(d, "ST_NOEXEC", (long)ST_NOEXEC)) return -1;
-+#endif /* ST_NOEXEC */
-+#ifdef ST_SYNCHRONOUS
-+ if (ins(d, "ST_SYNCHRONOUS", (long)ST_SYNCHRONOUS)) return -1;
-+#endif /* ST_SYNCHRONOUS */
-+#ifdef ST_MANDLOCK
-+ if (ins(d, "ST_MANDLOCK", (long)ST_MANDLOCK)) return -1;
-+#endif /* ST_MANDLOCK */
-+#ifdef ST_WRITE
-+ if (ins(d, "ST_WRITE", (long)ST_WRITE)) return -1;
-+#endif /* ST_WRITE */
-+#ifdef ST_APPEND
-+ if (ins(d, "ST_APPEND", (long)ST_APPEND)) return -1;
-+#endif /* ST_APPEND */
-+#ifdef ST_NOATIME
-+ if (ins(d, "ST_NOATIME", (long)ST_NOATIME)) return -1;
-+#endif /* ST_NOATIME */
-+#ifdef ST_NODIRATIME
-+ if (ins(d, "ST_NODIRATIME", (long)ST_NODIRATIME)) return -1;
-+#endif /* ST_NODIRATIME */
-+#ifdef ST_RELATIME
-+ if (ins(d, "ST_RELATIME", (long)ST_RELATIME)) return -1;
-+#endif /* ST_RELATIME */
-+
- #if defined(PYOS_OS2)
- if (insertvalues(d)) return -1;
- #endif
diff --git a/00121-add-Modules-to-build-path.patch b/00121-add-Modules-to-build-path.patch
deleted file mode 100644
index 6e3294d..0000000
--- a/00121-add-Modules-to-build-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- Python-2.7.5/Lib/site.py.orig 2013-05-16 12:47:55.000000000 +0200
-+++ Python-2.7.5/Lib/site.py 2013-05-16 12:56:20.089058109 +0200
-@@ -529,6 +529,10 @@ def main():
-
- abs__file__()
- known_paths = removeduppaths()
-+ from sysconfig import is_python_build
-+ if is_python_build():
-+ from _sysconfigdata import build_time_vars
-+ sys.path.append(os.path.join(build_time_vars['abs_builddir'], 'Modules'))
- if ENABLE_USER_SITE is None:
- ENABLE_USER_SITE = check_enableusersite()
- known_paths = addusersitepackages(known_paths)
diff --git a/00131-disable-tests-in-test_io.patch b/00131-disable-tests-in-test_io.patch
deleted file mode 100644
index d81a2d0..0000000
--- a/00131-disable-tests-in-test_io.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io Python-2.7.2/Lib/test/test_io.py
---- Python-2.7.2/Lib/test/test_io.py.disable-tests-in-test_io 2011-09-01 14:18:45.963304089 -0400
-+++ Python-2.7.2/Lib/test/test_io.py 2011-09-01 15:08:53.796098413 -0400
-@@ -2669,6 +2669,7 @@ class SignalsTest(unittest.TestCase):
- self.check_interrupted_read_retry(lambda x: x,
- mode="r")
-
-+ @unittest.skip('rhbz#732998')
- @unittest.skipUnless(threading, 'Threading required for this test.')
- def check_interrupted_write_retry(self, item, **fdopen_kwargs):
- """Check that a buffered write, when it gets interrupted (either
diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch
deleted file mode 100644
index e63395f..0000000
--- a/00132-add-rpmbuild-hooks-to-unittest.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -up Python-2.7.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-2.7.2/Lib/unittest/case.py
---- Python-2.7.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-08 14:45:47.677169191 -0400
-+++ Python-2.7.2/Lib/unittest/case.py 2011-09-08 16:01:36.287858159 -0400
-@@ -1,6 +1,7 @@
- """Test case implementation"""
-
- import collections
-+import os
- import sys
- import functools
- import difflib
-@@ -94,6 +95,43 @@ def expectedFailure(func):
- return wrapper
-
-
-+# Non-standard/downstream-only hooks for handling issues with specific test
-+# cases:
-+
-+def _skipInRpmBuild(reason):
-+ """
-+ Non-standard/downstream-only decorator for marking a specific unit test
-+ to be skipped when run within the %check of an rpmbuild.
-+
-+ Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
-+ the environment, and has no effect otherwise.
-+ """
-+ if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
-+ return skip(reason)
-+ else:
-+ return _id
-+
-+def _expectedFailureInRpmBuild(func):
-+ """
-+ Non-standard/downstream-only decorator for marking a specific unit test
-+ as expected to fail within the %check of an rpmbuild.
-+
-+ Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
-+ the environment, and has no effect otherwise.
-+ """
-+ @functools.wraps(func)
-+ def wrapper(*args, **kwargs):
-+ if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
-+ try:
-+ func(*args, **kwargs)
-+ except Exception:
-+ raise _ExpectedFailure(sys.exc_info())
-+ raise _UnexpectedSuccess
-+ else:
-+ # Call directly:
-+ func(*args, **kwargs)
-+ return wrapper
-+
- class _AssertRaisesContext(object):
- """A context manager used to implement TestCase.assertRaises* methods."""
-
-diff -up Python-2.7.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-2.7.2/Lib/unittest/__init__.py
---- Python-2.7.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-08 14:59:39.534112310 -0400
-+++ Python-2.7.2/Lib/unittest/__init__.py 2011-09-08 15:07:09.191081562 -0400
-@@ -57,7 +57,8 @@ __unittest = True
-
- from .result import TestResult
- from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
-- skipUnless, expectedFailure)
-+ skipUnless, expectedFailure,
-+ _skipInRpmBuild, _expectedFailureInRpmBuild)
- from .suite import BaseTestSuite, TestSuite
- from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
- findTestCases)
diff --git a/00133-skip-test_dl.patch b/00133-skip-test_dl.patch
deleted file mode 100644
index 04ad05b..0000000
--- a/00133-skip-test_dl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_dl.py.skip-test_dl Python-2.7.2/Lib/test/test_dl.py
---- Python-2.7.2/Lib/test/test_dl.py.skip-test_dl 2011-09-08 15:18:40.529034289 -0400
-+++ Python-2.7.2/Lib/test/test_dl.py 2011-09-08 16:29:45.184742670 -0400
-@@ -13,6 +13,9 @@ sharedlibs = [
- ('/usr/lib/libc.dylib', 'getpid'),
- ]
-
-+# (also, "dl" is deprecated in favor of ctypes)
-+(a)unittest._skipInRpmBuild('fails on 64-bit builds: '
-+ 'module dl requires sizeof(int) == sizeof(long) == sizeof(char*)')
- def test_main():
- for s, func in sharedlibs:
- try:
diff --git a/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch b/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
deleted file mode 100644
index 4d7626f..0000000
--- a/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.6/Lib/test/test_file2k.py.stdin-test Python-2.7.6/Lib/test/test_file2k.py
---- Python-2.7.6/Lib/test/test_file2k.py.stdin-test 2013-11-10 08:36:40.000000000 +0100
-+++ Python-2.7.6/Lib/test/test_file2k.py 2014-01-29 14:28:01.029488055 +0100
-@@ -223,6 +223,7 @@ class OtherFileTests(unittest.TestCase):
- else:
- f.close()
-
-+ @unittest._skipInRpmBuild('seems not to raise the exception when run in Koji')
- def testStdinSeek(self):
- if sys.platform == 'osf1V5':
- # This causes the interpreter to exit on OSF1 v5.1.
diff --git a/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch b/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
deleted file mode 100644
index 7122a29..0000000
--- a/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py.mark-tests-that-fail-in-rpmbuild Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py
---- Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py.mark-tests-that-fail-in-rpmbuild 2012-04-09 19:07:29.000000000 -0400
-+++ Python-2.7.3/Lib/distutils/tests/test_bdist_rpm.py 2012-04-13 00:20:08.223819263 -0400
-@@ -24,6 +24,7 @@ setup(name='foo', version='0.1', py_modu
-
- """
-
-+(a)unittest._skipInRpmBuild("don't try to nest one rpm build inside another rpm build")
- class BuildRpmTestCase(support.TempdirManager,
- support.EnvironGuard,
- support.LoggingSilencer,
-diff -up Python-2.7.3/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild Python-2.7.3/Lib/distutils/tests/test_build_ext.py
diff --git a/00138-fix-distutils-tests-in-debug-build.patch b/00138-fix-distutils-tests-in-debug-build.patch
deleted file mode 100644
index 1fd1091..0000000
--- a/00138-fix-distutils-tests-in-debug-build.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -up Python-2.7.2/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild Python-2.7.2/Lib/distutils/tests/test_build_ext.py
---- Python-2.7.2/Lib/distutils/tests/test_build_ext.py.mark-tests-that-fail-in-rpmbuild 2011-09-08 16:07:25.033834312 -0400
-+++ Python-2.7.2/Lib/distutils/tests/test_build_ext.py 2011-09-08 17:43:15.656441082 -0400
-@@ -330,6 +332,7 @@ class BuildExtTestCase(support.TempdirMa
- self.assertEqual(lastdir, 'bar')
-
- def test_ext_fullpath(self):
-+ debug_ext = sysconfig.get_config_var("DEBUG_EXT")
- ext = sysconfig.get_config_vars()['SO']
- dist = Distribution()
- cmd = build_ext(dist)
-@@ -337,14 +340,14 @@ class BuildExtTestCase(support.TempdirMa
- cmd.distribution.package_dir = {'': 'src'}
- cmd.distribution.packages = ['lxml', 'lxml.html']
- curdir = os.getcwd()
-- wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-+ wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + debug_ext + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
- # building lxml.etree not inplace
- cmd.inplace = 0
- cmd.build_lib = os.path.join(curdir, 'tmpdir')
-- wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
-+ wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + debug_ext + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
-@@ -354,13 +357,13 @@ class BuildExtTestCase(support.TempdirMa
- cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
- path = cmd.get_ext_fullpath('twisted.runner.portmap')
- wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
-- 'portmap' + ext)
-+ 'portmap' + debug_ext + ext)
- self.assertEqual(wanted, path)
-
- # building twisted.runner.portmap inplace
- cmd.inplace = 1
- path = cmd.get_ext_fullpath('twisted.runner.portmap')
-- wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
-+ wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + debug_ext + ext)
- self.assertEqual(wanted, path)
-
- def test_build_ext_inplace(self):
-@@ -373,8 +376,9 @@ class BuildExtTestCase(support.TempdirMa
- cmd.distribution.package_dir = {'': 'src'}
- cmd.distribution.packages = ['lxml', 'lxml.html']
- curdir = os.getcwd()
-+ debug_ext = sysconfig.get_config_var("DEBUG_EXT")
- ext = sysconfig.get_config_var("SO")
-- wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-+ wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + debug_ext + ext)
- path = cmd.get_ext_fullpath('lxml.etree')
- self.assertEqual(wanted, path)
-
-@@ -412,10 +416,11 @@ class BuildExtTestCase(support.TempdirMa
- dist = Distribution({'name': 'UpdateManager'})
- cmd = build_ext(dist)
- cmd.ensure_finalized()
-+ debug_ext = sysconfig.get_config_var("DEBUG_EXT")
- ext = sysconfig.get_config_var("SO")
- ext_name = os.path.join('UpdateManager', 'fdsend')
- ext_path = cmd.get_ext_fullpath(ext_name)
-- wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-+ wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + debug_ext + ext)
- self.assertEqual(ext_path, wanted)
-
- @unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
diff --git a/00139-skip-test_float-known-failure-on-arm.patch b/00139-skip-test_float-known-failure-on-arm.patch
deleted file mode 100644
index 9d0bfad..0000000
--- a/00139-skip-test_float-known-failure-on-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm Python-2.7.2/Lib/test/test_float.py
---- Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm 2011-09-08 19:34:09.000986128 -0400
-+++ Python-2.7.2/Lib/test/test_float.py 2011-09-08 19:34:57.969982779 -0400
-@@ -1072,6 +1072,7 @@ class HexFloatTestCase(unittest.TestCase
- self.identical(got, expected)
-
-
-+ @unittest.skip('Known failure on ARM: http://bugs.python.org/issue8265')
- def test_from_hex(self):
- MIN = self.MIN;
- MAX = self.MAX;
diff --git a/00140-skip-test_ctypes-known-failure-on-sparc.patch b/00140-skip-test_ctypes-known-failure-on-sparc.patch
deleted file mode 100644
index 95aa41e..0000000
--- a/00140-skip-test_ctypes-known-failure-on-sparc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-2.7.2/Lib/ctypes/test/test_callbacks.py.skip-test_ctypes-known-failure-on-sparc Python-2.7.2/Lib/ctypes/test/test_callbacks.py
---- Python-2.7.2/Lib/ctypes/test/test_callbacks.py.skip-test_ctypes-known-failure-on-sparc 2011-09-08 19:42:35.541951490 -0400
-+++ Python-2.7.2/Lib/ctypes/test/test_callbacks.py 2011-09-08 19:43:40.676947036 -0400
-@@ -67,6 +67,7 @@ class Callbacks(unittest.TestCase):
- self.check_type(c_longlong, 42)
- self.check_type(c_longlong, -42)
-
-+ @unittest.skip('Known failure on Sparc: http://bugs.python.org/issue8314')
- def test_ulonglong(self):
- # test some 64-bit values, with and without msb set.
- self.check_type(c_ulonglong, 10955412242170339782)
diff --git a/00142-skip-failing-pty-tests-in-rpmbuild.patch b/00142-skip-failing-pty-tests-in-rpmbuild.patch
deleted file mode 100644
index 2f51165..0000000
--- a/00142-skip-failing-pty-tests-in-rpmbuild.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up Python-2.7.6/Lib/test/test_openpty.py.tty-fail Python-2.7.6/Lib/test/test_openpty.py
---- Python-2.7.6/Lib/test/test_openpty.py.tty-fail 2014-01-29 14:31:43.761343267 +0100
-+++ Python-2.7.6/Lib/test/test_openpty.py 2014-01-29 14:32:19.284090165 +0100
-@@ -8,6 +8,7 @@ if not hasattr(os, "openpty"):
-
-
- class OpenptyTest(unittest.TestCase):
-+ @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
- def test(self):
- master, slave = os.openpty()
- self.addCleanup(os.close, master)
-diff -up Python-2.7.6/Lib/test/test_pty.py.tty-fail Python-2.7.6/Lib/test/test_pty.py
---- Python-2.7.6/Lib/test/test_pty.py.tty-fail 2013-11-10 08:36:40.000000000 +0100
-+++ Python-2.7.6/Lib/test/test_pty.py 2014-01-29 14:31:43.761343267 +0100
-@@ -111,6 +111,7 @@ class PtyTest(unittest.TestCase):
- os.close(master_fd)
-
-
-+ @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
- def test_fork(self):
- debug("calling pty.fork()")
- pid, master_fd = pty.fork()
diff --git a/00143-tsc-on-ppc.patch b/00143-tsc-on-ppc.patch
deleted file mode 100644
index 447c6e3..0000000
--- a/00143-tsc-on-ppc.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -up Python-2.7.2/Python/ceval.c.tsc-on-ppc Python-2.7.2/Python/ceval.c
---- Python-2.7.2/Python/ceval.c.tsc-on-ppc 2011-08-23 14:59:48.051300849 -0400
-+++ Python-2.7.2/Python/ceval.c 2011-08-23 15:33:25.412162902 -0400
-@@ -37,24 +37,42 @@ typedef unsigned long long uint64;
- */
- #if defined(__ppc__) || defined (__powerpc__)
-
--#define READ_TIMESTAMP(var) ppc_getcounter(&var)
-+#if defined( __powerpc64__) || defined(__LP64__)
-+/* 64-bit PowerPC */
-+#define READ_TIMESTAMP(var) ppc64_getcounter(&var)
-+static void
-+ppc64_getcounter(uint64 *v)
-+{
-+ /* On 64-bit PowerPC we can read the 64-bit timebase directly into a
-+ 64-bit register */
-+ uint64 timebase;
-+#ifdef _ARCH_PWR4
-+ asm volatile ("mfspr %0,268" : "=r" (timebase));
-+#else
-+ asm volatile ("mftb %0" : "=r" (timebase));
-+#endif
-+ *v = timebase;
-+}
-+
-+#else
-+/* 32-bit PowerPC */
-+#define READ_TIMESTAMP(var) ppc32_getcounter(&var)
-
- static void
--ppc_getcounter(uint64 *v)
-+ppc32_getcounter(uint64 *v)
- {
-- register unsigned long tbu, tb, tbu2;
-+ union { long long ll; long ii[2]; } u;
-+ long tmp;
-
- loop:
-- asm volatile ("mftbu %0" : "=r" (tbu) );
-- asm volatile ("mftb %0" : "=r" (tb) );
-- asm volatile ("mftbu %0" : "=r" (tbu2));
-- if (__builtin_expect(tbu != tbu2, 0)) goto loop;
--
-- /* The slightly peculiar way of writing the next lines is
-- compiled better by GCC than any other way I tried. */
-- ((long*)(v))[0] = tbu;
-- ((long*)(v))[1] = tb;
-+ asm volatile ("mftbu %0" : "=r" (u.ii[0]) );
-+ asm volatile ("mftb %0" : "=r" (u.ii[1]) );
-+ asm volatile ("mftbu %0" : "=r" (tmp));
-+ if (__builtin_expect(u.ii[0] != tmp, 0)) goto loop;
-+
-+ *v = u.ll;
- }
-+#endif /* powerpc 32/64 bit */
-
- #elif defined(__i386__)
-
diff --git a/00144-no-gdbm.patch b/00144-no-gdbm.patch
deleted file mode 100644
index 0378d44..0000000
--- a/00144-no-gdbm.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.2/Modules/Setup.dist.no-gdbm Python-2.7.2/Modules/Setup.dist
---- Python-2.7.2/Modules/Setup.dist.no-gdbm 2011-09-13 14:25:43.496095926 -0400
-+++ Python-2.7.2/Modules/Setup.dist 2011-09-13 14:25:46.491095724 -0400
-@@ -396,7 +396,7 @@ dl dlmodule.c
- #
- # First, look at Setup.config; configure may have set this for you.
-
--gdbm gdbmmodule.c -lgdbm
-+# gdbm gdbmmodule.c -lgdbm
-
-
- # Sleepycat Berkeley DB interface.
diff --git a/00146-hashlib-fips.patch b/00146-hashlib-fips.patch
deleted file mode 100644
index badb629..0000000
--- a/00146-hashlib-fips.patch
+++ /dev/null
@@ -1,732 +0,0 @@
-diff -up Python-2.7.2/Lib/hashlib.py.hashlib-fips Python-2.7.2/Lib/hashlib.py
---- Python-2.7.2/Lib/hashlib.py.hashlib-fips 2011-06-11 11:46:24.000000000 -0400
-+++ Python-2.7.2/Lib/hashlib.py 2011-09-14 00:21:26.194252001 -0400
-@@ -6,9 +6,12 @@
-
- __doc__ = """hashlib module - A common interface to many hash functions.
-
--new(name, string='') - returns a new hash object implementing the
-- given hash function; initializing the hash
-- using the given string data.
-+new(name, string='', usedforsecurity=True)
-+ - returns a new hash object implementing the given hash function;
-+ initializing the hash using the given string data.
-+
-+ "usedforsecurity" is a non-standard extension for better supporting
-+ FIPS-compliant environments (see below)
-
- Named constructor functions are also available, these are much faster
- than using new():
-@@ -24,6 +27,20 @@ the zlib module.
- Choose your hash function wisely. Some have known collision weaknesses.
- sha384 and sha512 will be slow on 32 bit platforms.
-
-+Our implementation of hashlib uses OpenSSL.
-+
-+OpenSSL has a "FIPS mode", which, if enabled, may restrict the available hashes
-+to only those that are compliant with FIPS regulations. For example, it may
-+deny the use of MD5, on the grounds that this is not secure for uses such as
-+authentication, system integrity checking, or digital signatures.
-+
-+If you need to use such a hash for non-security purposes (such as indexing into
-+a data structure for speed), you can override the keyword argument
-+"usedforsecurity" from True to False to signify that your code is not relying
-+on the hash for security purposes, and this will allow the hash to be usable
-+even in FIPS mode. This is not a standard feature of Python 2.7's hashlib, and
-+is included here to better support FIPS mode.
-+
- Hash objects have these methods:
- - update(arg): Update the hash object with the string arg. Repeated calls
- are equivalent to a single call with the concatenation of all
-@@ -63,76 +80,41 @@ algorithms = __always_supported
- 'pbkdf2_hmac')
-
-
--def __get_builtin_constructor(name):
-- try:
-- if name in ('SHA1', 'sha1'):
-- import _sha
-- return _sha.new
-- elif name in ('MD5', 'md5'):
-- import _md5
-- return _md5.new
-- elif name in ('SHA256', 'sha256', 'SHA224', 'sha224'):
-- import _sha256
-- bs = name[3:]
-- if bs == '256':
-- return _sha256.sha256
-- elif bs == '224':
-- return _sha256.sha224
-- elif name in ('SHA512', 'sha512', 'SHA384', 'sha384'):
-- import _sha512
-- bs = name[3:]
-- if bs == '512':
-- return _sha512.sha512
-- elif bs == '384':
-- return _sha512.sha384
-- except ImportError:
-- pass # no extension module, this hash is unsupported.
--
-- raise ValueError('unsupported hash type ' + name)
--
--
- def __get_openssl_constructor(name):
- try:
- f = getattr(_hashlib, 'openssl_' + name)
- # Allow the C module to raise ValueError. The function will be
- # defined but the hash not actually available thanks to OpenSSL.
-- f()
-+ #
-+ # We pass "usedforsecurity=False" to disable FIPS-based restrictions:
-+ # at this stage we're merely seeing if the function is callable,
-+ # rather than using it for actual work.
-+ f(usedforsecurity=False)
- # Use the C function directly (very fast)
- return f
- except (AttributeError, ValueError):
-- return __get_builtin_constructor(name)
-+ raise
-
--
--def __py_new(name, string=''):
-- """new(name, string='') - Return a new hashing object using the named algorithm;
-- optionally initialized with a string.
-- """
-- return __get_builtin_constructor(name)(string)
--
--
--def __hash_new(name, string=''):
-+def __hash_new(name, string='', usedforsecurity=True):
- """new(name, string='') - Return a new hashing object using the named algorithm;
- optionally initialized with a string.
-+ Override 'usedforsecurity' to False when using for non-security purposes in
-+ a FIPS environment
- """
- try:
-- return _hashlib.new(name, string)
-+ return _hashlib.new(name, string, usedforsecurity)
- except ValueError:
-- # If the _hashlib module (OpenSSL) doesn't support the named
-- # hash, try using our builtin implementations.
-- # This allows for SHA224/256 and SHA384/512 support even though
-- # the OpenSSL library prior to 0.9.8 doesn't provide them.
-- return __get_builtin_constructor(name)(string)
--
-+ raise
-
- try:
- import _hashlib
- new = __hash_new
- __get_hash = __get_openssl_constructor
- algorithms_available = algorithms_available.union(
- _hashlib.openssl_md_meth_names)
- except ImportError:
-- new = __py_new
-- __get_hash = __get_builtin_constructor
-+ # We don't build the legacy modules
-+ raise
-
- for __func_name in __always_supported:
- # try them all, some may not work due to the OpenSSL
-@@ -143,4 +125,4 @@ for __func_name in __always_supported:
-
- # Cleanup locals()
- del __always_supported, __func_name, __get_hash
--del __py_new, __hash_new, __get_openssl_constructor
-+del __hash_new, __get_openssl_constructor
-diff -up Python-2.7.2/Lib/test/test_hashlib.py.hashlib-fips Python-2.7.2/Lib/test/test_hashlib.py
---- Python-2.7.2/Lib/test/test_hashlib.py.hashlib-fips 2011-06-11 11:46:25.000000000 -0400
-+++ Python-2.7.2/Lib/test/test_hashlib.py 2011-09-14 01:08:55.525254195 -0400
-@@ -32,6 +32,19 @@ def hexstr(s):
- r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
- return r
-
-+def openssl_enforces_fips():
-+ # Use the "openssl" command (if present) to try to determine if the local
-+ # OpenSSL is configured to enforce FIPS
-+ from subprocess import Popen, PIPE
-+ try:
-+ p = Popen(['openssl', 'md5'],
-+ stdin=PIPE, stdout=PIPE, stderr=PIPE)
-+ except OSError:
-+ # "openssl" command not found
-+ return False
-+ stdout, stderr = p.communicate(input=b'abc')
-+ return b'unknown cipher' in stderr
-+OPENSSL_ENFORCES_FIPS = openssl_enforces_fips()
-
- class HashLibTestCase(unittest.TestCase):
- supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1',
-@@ -61,10 +74,10 @@ class HashLibTestCase(unittest.TestCase)
- # of hashlib.new given the algorithm name.
- for algorithm, constructors in self.constructors_to_test.items():
- constructors.add(getattr(hashlib, algorithm))
-- def _test_algorithm_via_hashlib_new(data=None, _alg=algorithm):
-+ def _test_algorithm_via_hashlib_new(data=None, _alg=algorithm, usedforsecurity=True):
- if data is None:
-- return hashlib.new(_alg)
-- return hashlib.new(_alg, data)
-+ return hashlib.new(_alg, usedforsecurity=usedforsecurity)
-+ return hashlib.new(_alg, data, usedforsecurity=usedforsecurity)
- constructors.add(_test_algorithm_via_hashlib_new)
-
- _hashlib = self._conditional_import_module('_hashlib')
-@@ -78,28 +91,13 @@ class HashLibTestCase(unittest.TestCase)
- if constructor:
- constructors.add(constructor)
-
-- _md5 = self._conditional_import_module('_md5')
-- if _md5:
-- self.constructors_to_test['md5'].add(_md5.new)
-- _sha = self._conditional_import_module('_sha')
-- if _sha:
-- self.constructors_to_test['sha1'].add(_sha.new)
-- _sha256 = self._conditional_import_module('_sha256')
-- if _sha256:
-- self.constructors_to_test['sha224'].add(_sha256.sha224)
-- self.constructors_to_test['sha256'].add(_sha256.sha256)
-- _sha512 = self._conditional_import_module('_sha512')
-- if _sha512:
-- self.constructors_to_test['sha384'].add(_sha512.sha384)
-- self.constructors_to_test['sha512'].add(_sha512.sha512)
--
- super(HashLibTestCase, self).__init__(*args, **kwargs)
-
- def test_hash_array(self):
- a = array.array("b", range(10))
- constructors = self.constructors_to_test.itervalues()
- for cons in itertools.chain.from_iterable(constructors):
-- c = cons(a)
-+ c = cons(a, usedforsecurity=False)
- c.hexdigest()
-
- def test_algorithms_attribute(self):
-@@ -115,28 +113,9 @@ class HashLibTestCase(unittest.TestCase)
- self.assertRaises(ValueError, hashlib.new, 'spam spam spam spam spam')
- self.assertRaises(TypeError, hashlib.new, 1)
-
-- def test_get_builtin_constructor(self):
-- get_builtin_constructor = hashlib.__dict__[
-- '__get_builtin_constructor']
-- self.assertRaises(ValueError, get_builtin_constructor, 'test')
-- try:
-- import _md5
-- except ImportError:
-- pass
-- # This forces an ImportError for "import _md5" statements
-- sys.modules['_md5'] = None
-- try:
-- self.assertRaises(ValueError, get_builtin_constructor, 'md5')
-- finally:
-- if '_md5' in locals():
-- sys.modules['_md5'] = _md5
-- else:
-- del sys.modules['_md5']
-- self.assertRaises(TypeError, get_builtin_constructor, 3)
--
- def test_hexdigest(self):
- for name in self.supported_hash_names:
-- h = hashlib.new(name)
-+ h = hashlib.new(name, usedforsecurity=False)
- self.assertTrue(hexstr(h.digest()) == h.hexdigest())
-
- def test_large_update(self):
-@@ -145,16 +125,16 @@ class HashLibTestCase(unittest.TestCase)
- abcs = aas + bees + cees
-
- for name in self.supported_hash_names:
-- m1 = hashlib.new(name)
-+ m1 = hashlib.new(name, usedforsecurity=False)
- m1.update(aas)
- m1.update(bees)
- m1.update(cees)
-
-- m2 = hashlib.new(name)
-+ m2 = hashlib.new(name, usedforsecurity=False)
- m2.update(abcs)
- self.assertEqual(m1.digest(), m2.digest(), name+' update problem.')
-
-- m3 = hashlib.new(name, abcs)
-+ m3 = hashlib.new(name, abcs, usedforsecurity=False)
- self.assertEqual(m1.digest(), m3.digest(), name+' new problem.')
-
- def check(self, name, data, digest):
-@@ -162,7 +142,7 @@ class HashLibTestCase(unittest.TestCase)
- # 2 is for hashlib.name(...) and hashlib.new(name, ...)
- self.assertGreaterEqual(len(constructors), 2)
- for hash_object_constructor in constructors:
-- computed = hash_object_constructor(data).hexdigest()
-+ computed = hash_object_constructor(data, usedforsecurity=False).hexdigest()
- self.assertEqual(
- computed, digest,
- "Hash algorithm %s constructed using %s returned hexdigest"
-@@ -172,7 +152,8 @@ class HashLibTestCase(unittest.TestCase)
-
- def check_unicode(self, algorithm_name):
- # Unicode objects are not allowed as input.
-- expected = hashlib.new(algorithm_name, str(u'spam')).hexdigest()
-+ expected = hashlib.new(algorithm_name, str(u'spam'),
-+ usedforsecurity=False).hexdigest()
- self.check(algorithm_name, u'spam', expected)
-
- def test_unicode(self):
-@@ -354,6 +335,70 @@ class HashLibTestCase(unittest.TestCase)
- self.assertEqual(expected_hash, hasher.hexdigest())
-
-
-+ def test_issue9146(self):
-+ # Ensure that various ways to use "MD5" from "hashlib" don't segfault:
-+ m = hashlib.md5(usedforsecurity=False)
-+ m.update(b'abc\n')
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = hashlib.new('md5', usedforsecurity=False)
-+ m.update(b'abc\n')
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = hashlib.md5(b'abc\n', usedforsecurity=False)
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = hashlib.new('md5', b'abc\n', usedforsecurity=False)
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ def assertRaisesUnknownCipher(self, callable_obj=None, *args, **kwargs):
-+ try:
-+ callable_obj(*args, **kwargs)
-+ except ValueError, e:
-+ if not e.args[0].endswith('unknown cipher'):
-+ self.fail('Incorrect exception raised')
-+ else:
-+ self.fail('Exception was not raised')
-+
-+ @unittest.skipUnless(OPENSSL_ENFORCES_FIPS,
-+ 'FIPS enforcement required for this test.')
-+ def test_hashlib_fips_mode(self):
-+ # Ensure that we raise a ValueError on vanilla attempts to use MD5
-+ # in hashlib in a FIPS-enforced setting:
-+ self.assertRaisesUnknownCipher(hashlib.md5)
-+ self.assertRaisesUnknownCipher(hashlib.new, 'md5')
-+
-+ @unittest.skipUnless(OPENSSL_ENFORCES_FIPS,
-+ 'FIPS enforcement required for this test.')
-+ def test_hashopenssl_fips_mode(self):
-+ # Verify the _hashlib module's handling of md5:
-+ import _hashlib
-+
-+ assert hasattr(_hashlib, 'openssl_md5')
-+
-+ # Ensure that _hashlib raises a ValueError on vanilla attempts to
-+ # use MD5 in a FIPS-enforced setting:
-+ self.assertRaisesUnknownCipher(_hashlib.openssl_md5)
-+ self.assertRaisesUnknownCipher(_hashlib.new, 'md5')
-+
-+ # Ensure that in such a setting we can whitelist a callsite with
-+ # usedforsecurity=False and have it succeed:
-+ m = _hashlib.openssl_md5(usedforsecurity=False)
-+ m.update('abc\n')
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = _hashlib.new('md5', usedforsecurity=False)
-+ m.update('abc\n')
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = _hashlib.openssl_md5('abc\n', usedforsecurity=False)
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+ m = _hashlib.new('md5', 'abc\n', usedforsecurity=False)
-+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
-+
-+
- class KDFTests(unittest.TestCase):
- pbkdf2_test_vectors = [
- (b'password', b'salt', 1, None),
-diff -up Python-2.7.2/Modules/Setup.dist.hashlib-fips Python-2.7.2/Modules/Setup.dist
---- Python-2.7.2/Modules/Setup.dist.hashlib-fips 2011-09-14 00:21:26.163252001 -0400
-+++ Python-2.7.2/Modules/Setup.dist 2011-09-14 00:21:26.201252001 -0400
-@@ -248,14 +248,14 @@ imageop imageop.c # Operations on images
- # Message-Digest Algorithm, described in RFC 1321. The necessary files
- # md5.c and md5.h are included here.
-
--_md5 md5module.c md5.c
-+#_md5 md5module.c md5.c
-
-
- # The _sha module implements the SHA checksum algorithms.
- # (NIST's Secure Hash Algorithms.)
--_sha shamodule.c
--_sha256 sha256module.c
--_sha512 sha512module.c
-+#_sha shamodule.c
-+#_sha256 sha256module.c
-+#_sha512 sha512module.c
-
-
- # SGI IRIX specific modules -- off by default.
-diff -up Python-2.7.2/setup.py.hashlib-fips Python-2.7.2/setup.py
---- Python-2.7.2/setup.py.hashlib-fips 2011-09-14 00:21:25.722252001 -0400
-+++ Python-2.7.2/setup.py 2011-09-14 00:21:26.203252001 -0400
-@@ -768,21 +768,6 @@ class PyBuildExt(build_ext):
- print ("warning: openssl 0x%08x is too old for _hashlib" %
- openssl_ver)
- missing.append('_hashlib')
-- if COMPILED_WITH_PYDEBUG or not have_usable_openssl:
-- # The _sha module implements the SHA1 hash algorithm.
-- exts.append( Extension('_sha', ['shamodule.c']) )
-- # The _md5 module implements the RSA Data Security, Inc. MD5
-- # Message-Digest Algorithm, described in RFC 1321. The
-- # necessary files md5.c and md5.h are included here.
-- exts.append( Extension('_md5',
-- sources = ['md5module.c', 'md5.c'],
-- depends = ['md5.h']) )
--
-- min_sha2_openssl_ver = 0x00908000
-- if COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver:
-- # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash
-- exts.append( Extension('_sha256', ['sha256module.c']) )
-- exts.append( Extension('_sha512', ['sha512module.c']) )
-
- # Modules that provide persistent dictionary-like semantics. You will
- # probably want to arrange for at least one of them to be available on
---- Python-2.7.8/Modules/_hashopenssl.c.orig 2014-06-30 04:05:41.000000000 +0200
-+++ Python-2.7.8/Modules/_hashopenssl.c 2014-07-14 14:21:59.546386572 +0200
-@@ -36,6 +36,8 @@
- #endif
-
- /* EVP is the preferred interface to hashing in OpenSSL */
-+#include <openssl/ssl.h>
-+#include <openssl/err.h>
- #include <openssl/evp.h>
- #include <openssl/hmac.h>
- #include <openssl/err.h>
-@@ -67,11 +69,19 @@
-
- static PyTypeObject EVPtype;
-
-+/* Struct to hold all the cached information we need on a specific algorithm.
-+ We have one of these per algorithm */
-+typedef struct {
-+ PyObject *name_obj;
-+ EVP_MD_CTX ctxs[2];
-+ /* ctx_ptrs will point to ctxs unless an error occurred, when it will
-+ be NULL: */
-+ EVP_MD_CTX *ctx_ptrs[2];
-+ PyObject *error_msgs[2];
-+} EVPCachedInfo;
-
--#define DEFINE_CONSTS_FOR_NEW(Name) \
-- static PyObject *CONST_ ## Name ## _name_obj = NULL; \
-- static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
-- static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL;
-+#define DEFINE_CONSTS_FOR_NEW(Name) \
-+ static EVPCachedInfo cached_info_ ##Name;
-
- DEFINE_CONSTS_FOR_NEW(md5)
- DEFINE_CONSTS_FOR_NEW(sha1)
-@@ -117,6 +127,48 @@
- }
- }
-
-+static void
-+mc_ctx_init(EVP_MD_CTX *ctx, int usedforsecurity)
-+{
-+ EVP_MD_CTX_init(ctx);
-+
-+ /*
-+ If the user has declared that this digest is being used in a
-+ non-security role (e.g. indexing into a data structure), set
-+ the exception flag for openssl to allow it
-+ */
-+ if (!usedforsecurity) {
-+#ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
-+ EVP_MD_CTX_set_flags(ctx,
-+ EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
-+#endif
-+ }
-+}
-+
-+/* Get an error msg for the last error as a PyObject */
-+static PyObject *
-+error_msg_for_last_error(void)
-+{
-+ char *errstr;
-+
-+ errstr = ERR_error_string(ERR_peek_last_error(), NULL);
-+ ERR_clear_error();
-+
-+ return PyString_FromString(errstr); /* Can be NULL */
-+}
-+
-+static void
-+set_evp_exception(void)
-+{
-+ char *errstr;
-+
-+ errstr = ERR_error_string(ERR_peek_last_error(), NULL);
-+ ERR_clear_error();
-+
-+ PyErr_SetString(PyExc_ValueError, errstr);
-+}
-+
-+
- /* Internal methods for a hash object */
-
- static void
-@@ -315,14 +367,15 @@
- static int
- EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
- {
-- static char *kwlist[] = {"name", "string", NULL};
-+ static char *kwlist[] = {"name", "string", "usedforsecurity", NULL};
- PyObject *name_obj = NULL;
-+ int usedforsecurity = 1;
- Py_buffer view = { 0 };
- char *nameStr;
- const EVP_MD *digest;
-
-- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|s*:HASH", kwlist,
-- &name_obj, &view)) {
-+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|s*i:HASH", kwlist,
-+ &name_obj, &view, &usedforsecurity)) {
- return -1;
- }
-
-@@ -338,7 +391,12 @@
- PyBuffer_Release(&view);
- return -1;
- }
-- EVP_DigestInit(&self->ctx, digest);
-+ mc_ctx_init(&self->ctx, usedforsecurity);
-+ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
-+ set_evp_exception();
-+ PyBuffer_Release(&view);
-+ return -1;
-+ }
-
- self->name = name_obj;
- Py_INCREF(self->name);
-@@ -422,7 +480,8 @@
- static PyObject *
- EVPnew(PyObject *name_obj,
- const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
-- const unsigned char *cp, Py_ssize_t len)
-+ const unsigned char *cp, Py_ssize_t len,
-+ int usedforsecurity)
- {
- EVPobject *self;
-
-@@ -437,7 +496,12 @@
- if (initial_ctx) {
- EVP_MD_CTX_copy(&self->ctx, initial_ctx);
- } else {
-- EVP_DigestInit(&self->ctx, digest);
-+ mc_ctx_init(&self->ctx, usedforsecurity);
-+ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
-+ set_evp_exception();
-+ Py_DECREF(self);
-+ return NULL;
-+ }
- }
-
- if (cp && len) {
-@@ -461,20 +525,28 @@
- An optional string argument may be provided and will be\n\
- automatically hashed.\n\
- \n\
--The MD5 and SHA1 algorithms are always supported.\n");
-+The MD5 and SHA1 algorithms are always supported.\n\
-+\n\
-+An optional \"usedforsecurity=True\" keyword argument is provided for use in\n\
-+environments that enforce FIPS-based restrictions. Some implementations of\n\
-+OpenSSL can be configured to prevent the usage of non-secure algorithms (such\n\
-+as MD5). If you have a non-security use for these algorithms (e.g. a hash\n\
-+table), you can override this argument by marking the callsite as\n\
-+\"usedforsecurity=False\".");
-
- static PyObject *
- EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
- {
-- static char *kwlist[] = {"name", "string", NULL};
-+ static char *kwlist[] = {"name", "string", "usedforsecurity", NULL};
- PyObject *name_obj = NULL;
- Py_buffer view = { 0 };
- PyObject *ret_obj;
- char *name;
- const EVP_MD *digest;
-+ int usedforsecurity = 1;
-
-- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "O|s*:new", kwlist,
-- &name_obj, &view)) {
-+ if (!PyArg_ParseTupleAndKeywords(args, kwdict, "O|s*i:new", kwlist,
-+ &name_obj, &view, &usedforsecurity)) {
- return NULL;
- }
-
-@@ -487,7 +559,7 @@
- digest = EVP_get_digestbyname(name);
-
- ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf,
-- view.len);
-+ view.len, usedforsecurity);
- PyBuffer_Release(&view);
-
- return ret_obj;
-@@ -713,51 +785,111 @@
-
-
- /*
-- * This macro generates constructor function definitions for specific
-- * hash algorithms. These constructors are much faster than calling
-- * the generic one passing it a python string and are noticably
-- * faster than calling a python new() wrapper. Thats important for
-+ * This macro and function generates a family of constructor function
-+ * definitions for specific hash algorithms. These constructors are much
-+ * faster than calling the generic one passing it a python string and are
-+ * noticably faster than calling a python new() wrapper. That's important for
- * code that wants to make hashes of a bunch of small strings.
- */
- #define GEN_CONSTRUCTOR(NAME) \
- static PyObject * \
-- EVP_new_ ## NAME (PyObject *self, PyObject *args) \
-+ EVP_new_ ## NAME (PyObject *self, PyObject *args, PyObject *kwdict) \
- { \
-- Py_buffer view = { 0 }; \
-- PyObject *ret_obj; \
-- \
-- if (!PyArg_ParseTuple(args, "|s*:" #NAME , &view)) { \
-- return NULL; \
-- } \
-- \
-- ret_obj = EVPnew( \
-- CONST_ ## NAME ## _name_obj, \
-- NULL, \
-- CONST_new_ ## NAME ## _ctx_p, \
-- (unsigned char*)view.buf, view.len); \
-- PyBuffer_Release(&view); \
-- return ret_obj; \
-+ return implement_specific_EVP_new(self, args, kwdict, \
-+ "|s*i:" #NAME, \
-+ &cached_info_ ## NAME ); \
- }
-
-+static PyObject *
-+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
-+ const char *format,
-+ EVPCachedInfo *cached_info)
-+{
-+ static char *kwlist[] = {"string", "usedforsecurity", NULL};
-+ Py_buffer view = { 0 };
-+ int usedforsecurity = 1;
-+ int idx;
-+ PyObject *ret_obj = NULL;
-+
-+ assert(cached_info);
-+
-+ if (!PyArg_ParseTupleAndKeywords(args, kwdict, format, kwlist,
-+ &view, &usedforsecurity)) {
-+ return NULL;
-+ }
-+
-+ idx = usedforsecurity ? 1 : 0;
-+
-+ /*
-+ * If an error occurred during creation of the global content, the ctx_ptr
-+ * will be NULL, and the error_msg will hopefully be non-NULL:
-+ */
-+ if (cached_info->ctx_ptrs[idx]) {
-+ /* We successfully initialized this context; copy it: */
-+ ret_obj = EVPnew(cached_info->name_obj,
-+ NULL,
-+ cached_info->ctx_ptrs[idx],
-+ (unsigned char*)view.buf, view.len,
-+ usedforsecurity);
-+ } else {
-+ /* Some kind of error happened initializing the global context for
-+ this (digest, usedforsecurity) pair.
-+ Raise an exception with the saved error message: */
-+ if (cached_info->error_msgs[idx]) {
-+ PyErr_SetObject(PyExc_ValueError, cached_info->error_msgs[idx]);
-+ } else {
-+ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
-+ }
-+ }
-+
-+ PyBuffer_Release(&view);
-+
-+ return ret_obj;
-+}
-+
- /* a PyMethodDef structure for the constructor */
- #define CONSTRUCTOR_METH_DEF(NAME) \
-- {"openssl_" #NAME, (PyCFunction)EVP_new_ ## NAME, METH_VARARGS, \
-+ {"openssl_" #NAME, (PyCFunction)EVP_new_ ## NAME, \
-+ METH_VARARGS |METH_KEYWORDS, \
- PyDoc_STR("Returns a " #NAME \
- " hash object; optionally initialized with a string") \
- }
-
--/* used in the init function to setup a constructor: initialize OpenSSL
-- constructor constants if they haven't been initialized already. */
--#define INIT_CONSTRUCTOR_CONSTANTS(NAME) do { \
-- if (CONST_ ## NAME ## _name_obj == NULL) { \
-- CONST_ ## NAME ## _name_obj = PyString_FromString(#NAME); \
-- if (EVP_get_digestbyname(#NAME)) { \
-- CONST_new_ ## NAME ## _ctx_p = &CONST_new_ ## NAME ## _ctx; \
-- EVP_DigestInit(CONST_new_ ## NAME ## _ctx_p, EVP_get_digestbyname(#NAME)); \
-- } \
-- } \
-+/*
-+ Macro/function pair to set up the constructors.
-+
-+ Try to initialize a context for each hash twice, once with
-+ EVP_MD_CTX_FLAG_NON_FIPS_ALLOW and once without.
-+
-+ Any that have errors during initialization will end up wit a NULL ctx_ptrs
-+ entry, and err_msgs will be set (unless we're very low on memory)
-+*/
-+#define INIT_CONSTRUCTOR_CONSTANTS(NAME) do { \
-+ init_constructor_constant(&cached_info_ ## NAME, #NAME); \
- } while (0);
-
-+static void
-+init_constructor_constant(EVPCachedInfo *cached_info, const char *name)
-+{
-+ assert(cached_info);
-+ cached_info->name_obj = PyString_FromString(name);
-+ if (EVP_get_digestbyname(name)) {
-+ int i;
-+ for (i=0; i<2; i++) {
-+ mc_ctx_init(&cached_info->ctxs[i], i);
-+ if (EVP_DigestInit_ex(&cached_info->ctxs[i],
-+ EVP_get_digestbyname(name), NULL)) {
-+ /* Success: */
-+ cached_info->ctx_ptrs[i] = &cached_info->ctxs[i];
-+ } else {
-+ /* Failure: */
-+ cached_info->ctx_ptrs[i] = NULL;
-+ cached_info->error_msgs[i] = error_msg_for_last_error();
-+ }
-+ }
-+ }
-+}
-+
- GEN_CONSTRUCTOR(md5)
- GEN_CONSTRUCTOR(sha1)
- #ifdef _OPENSSL_SUPPORTS_SHA2
-@@ -794,14 +926,11 @@
- {
- PyObject *m, *openssl_md_meth_names;
-
-+ SSL_load_error_strings();
-+ SSL_library_init();
- OpenSSL_add_all_digests();
- ERR_load_crypto_strings();
-
-- /* TODO build EVP_functions openssl_* entries dynamically based
-- * on what hashes are supported rather than listing many
-- * but having some be unsupported. Only init appropriate
-- * constants. */
--
- Py_TYPE(&EVPtype) = &PyType_Type;
- if (PyType_Ready(&EVPtype) < 0)
- return;
diff --git a/00147-add-debug-malloc-stats.patch b/00147-add-debug-malloc-stats.patch
deleted file mode 100644
index 0d783f5..0000000
--- a/00147-add-debug-malloc-stats.patch
+++ /dev/null
@@ -1,711 +0,0 @@
-diff -up Python-2.7.2/Include/dictobject.h.add-debug-malloc-stats Python-2.7.2/Include/dictobject.h
---- Python-2.7.2/Include/dictobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/dictobject.h 2011-09-16 19:03:25.105821625 -0400
-@@ -150,6 +150,8 @@ PyAPI_FUNC(PyObject *) PyDict_GetItemStr
- PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
- PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
-
-+PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/floatobject.h.add-debug-malloc-stats Python-2.7.2/Include/floatobject.h
---- Python-2.7.2/Include/floatobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/floatobject.h 2011-09-16 19:03:25.106821625 -0400
-@@ -132,6 +132,7 @@ PyAPI_FUNC(PyObject *) _PyFloat_FormatAd
- failure. Used in builtin_round in bltinmodule.c. */
- PyAPI_FUNC(PyObject *) _Py_double_round(double x, int ndigits);
-
-+PyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out);
-
-
- #ifdef __cplusplus
-diff -up Python-2.7.2/Include/frameobject.h.add-debug-malloc-stats Python-2.7.2/Include/frameobject.h
---- Python-2.7.2/Include/frameobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/frameobject.h 2011-09-16 19:03:25.107821625 -0400
-@@ -80,6 +80,8 @@ PyAPI_FUNC(void) PyFrame_FastToLocals(Py
-
- PyAPI_FUNC(int) PyFrame_ClearFreeList(void);
-
-+PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
-+
- /* Return the line of code the frame is currently executing. */
- PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
-
-diff -up Python-2.7.2/Include/intobject.h.add-debug-malloc-stats Python-2.7.2/Include/intobject.h
---- Python-2.7.2/Include/intobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/intobject.h 2011-09-16 19:03:25.107821625 -0400
-@@ -74,6 +74,8 @@ PyAPI_FUNC(PyObject *) _PyInt_FormatAdva
- char *format_spec,
- Py_ssize_t format_spec_len);
-
-+PyAPI_FUNC(void) _PyInt_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/listobject.h.add-debug-malloc-stats Python-2.7.2/Include/listobject.h
---- Python-2.7.2/Include/listobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/listobject.h 2011-09-16 19:03:25.107821625 -0400
-@@ -62,6 +62,8 @@ PyAPI_FUNC(PyObject *) _PyList_Extend(Py
- #define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v))
- #define PyList_GET_SIZE(op) Py_SIZE(op)
-
-+PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/methodobject.h.add-debug-malloc-stats Python-2.7.2/Include/methodobject.h
---- Python-2.7.2/Include/methodobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/methodobject.h 2011-09-16 19:03:25.108821625 -0400
-@@ -87,6 +87,10 @@ typedef struct {
-
- PyAPI_FUNC(int) PyCFunction_ClearFreeList(void);
-
-+PyAPI_FUNC(void) _PyCFunction_DebugMallocStats(FILE *out);
-+PyAPI_FUNC(void) _PyMethod_DebugMallocStats(FILE *out);
-+
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/object.h.add-debug-malloc-stats Python-2.7.2/Include/object.h
---- Python-2.7.2/Include/object.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/object.h 2011-09-16 19:03:25.108821625 -0400
-@@ -980,6 +980,13 @@ PyAPI_DATA(PyObject *) _PyTrash_delete_l
- _PyTrash_thread_deposit_object((PyObject*)op); \
- } while (0);
-
-+PyAPI_FUNC(void)
-+_PyDebugAllocatorStats(FILE *out, const char *block_name, int num_blocks,
-+ size_t sizeof_block);
-+
-+PyAPI_FUNC(void)
-+_PyObject_DebugTypeStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/objimpl.h.add-debug-malloc-stats Python-2.7.2/Include/objimpl.h
---- Python-2.7.2/Include/objimpl.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/objimpl.h 2011-09-16 19:03:25.108821625 -0400
-@@ -101,13 +101,13 @@ PyAPI_FUNC(void) PyObject_Free(void *);
-
- /* Macros */
- #ifdef WITH_PYMALLOC
-+PyAPI_FUNC(void) _PyObject_DebugMallocStats(FILE *out);
- #ifdef PYMALLOC_DEBUG /* WITH_PYMALLOC && PYMALLOC_DEBUG */
- PyAPI_FUNC(void *) _PyObject_DebugMalloc(size_t nbytes);
- PyAPI_FUNC(void *) _PyObject_DebugRealloc(void *p, size_t nbytes);
- PyAPI_FUNC(void) _PyObject_DebugFree(void *p);
- PyAPI_FUNC(void) _PyObject_DebugDumpAddress(const void *p);
- PyAPI_FUNC(void) _PyObject_DebugCheckAddress(const void *p);
--PyAPI_FUNC(void) _PyObject_DebugMallocStats(void);
- PyAPI_FUNC(void *) _PyObject_DebugMallocApi(char api, size_t nbytes);
- PyAPI_FUNC(void *) _PyObject_DebugReallocApi(char api, void *p, size_t nbytes);
- PyAPI_FUNC(void) _PyObject_DebugFreeApi(char api, void *p);
-diff -up Python-2.7.2/Include/stringobject.h.add-debug-malloc-stats Python-2.7.2/Include/stringobject.h
---- Python-2.7.2/Include/stringobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/stringobject.h 2011-09-16 19:03:25.109821625 -0400
-@@ -204,6 +204,8 @@ PyAPI_FUNC(PyObject *) _PyBytes_FormatAd
- char *format_spec,
- Py_ssize_t format_spec_len);
-
-+PyAPI_FUNC(void) _PyString_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Include/unicodeobject.h.add-debug-malloc-stats Python-2.7.2/Include/unicodeobject.h
---- Python-2.7.2/Include/unicodeobject.h.add-debug-malloc-stats 2011-06-11 11:46:23.000000000 -0400
-+++ Python-2.7.2/Include/unicodeobject.h 2011-09-16 19:03:25.109821625 -0400
-@@ -1406,6 +1406,8 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha(
- Py_UNICODE ch /* Unicode character */
- );
-
-+PyAPI_FUNC(void) _PyUnicode_DebugMallocStats(FILE *out);
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Lib/test/test_sys.py.add-debug-malloc-stats Python-2.7.2/Lib/test/test_sys.py
---- Python-2.7.2/Lib/test/test_sys.py.add-debug-malloc-stats 2011-09-16 19:03:25.048821626 -0400
-+++ Python-2.7.2/Lib/test/test_sys.py 2011-09-16 19:03:25.110821625 -0400
-@@ -473,6 +473,32 @@ class SysModuleTest(unittest.TestCase):
- p.wait()
- self.assertIn(executable, ["''", repr(sys.executable)])
-
-+ def test_debugmallocstats(self):
-+ # Test sys._debugmallocstats()
-+
-+ import subprocess
-+
-+ # Verify the default of writing to stderr:
-+ p = subprocess.Popen([sys.executable,
-+ '-c', 'import sys; sys._debugmallocstats()'],
-+ stderr=subprocess.PIPE)
-+ out, err = p.communicate()
-+ p.wait()
-+ self.assertIn("arenas allocated current", err)
-+
-+ # Verify that we can redirect the output to a file (not a file-like
-+ # object, though):
-+ with open('mallocstats.txt', 'w') as out:
-+ sys._debugmallocstats(out)
-+ result = open('mallocstats.txt').read()
-+ self.assertIn("arenas allocated current", result)
-+ os.unlink('mallocstats.txt')
-+
-+ # Verify that the destination must be a file:
-+ with self.assertRaises(TypeError):
-+ sys._debugmallocstats(42)
-+
-+
- @test.test_support.cpython_only
- class SizeofTest(unittest.TestCase):
-
-diff -up Python-2.7.2/Objects/classobject.c.add-debug-malloc-stats Python-2.7.2/Objects/classobject.c
---- Python-2.7.2/Objects/classobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/classobject.c 2011-09-16 19:03:25.110821625 -0400
-@@ -2670,3 +2670,12 @@ PyMethod_Fini(void)
- {
- (void)PyMethod_ClearFreeList();
- }
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyMethod_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PyMethodObject",
-+ numfree, sizeof(PyMethodObject));
-+}
-diff -up Python-2.7.2/Objects/dictobject.c.add-debug-malloc-stats Python-2.7.2/Objects/dictobject.c
---- Python-2.7.2/Objects/dictobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/dictobject.c 2011-09-16 19:03:25.111821625 -0400
-@@ -225,6 +225,15 @@ show_track(void)
- static PyDictObject *free_list[PyDict_MAXFREELIST];
- static int numfree = 0;
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyDict_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PyDictObject", numfree, sizeof(PyDictObject));
-+}
-+
-+
- void
- PyDict_Fini(void)
- {
-diff -up Python-2.7.2/Objects/floatobject.c.add-debug-malloc-stats Python-2.7.2/Objects/floatobject.c
---- Python-2.7.2/Objects/floatobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/floatobject.c 2011-09-16 19:03:25.111821625 -0400
-@@ -35,6 +35,22 @@ typedef struct _floatblock PyFloatBlock;
- static PyFloatBlock *block_list = NULL;
- static PyFloatObject *free_list = NULL;
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyFloat_DebugMallocStats(FILE *out)
-+{
-+ int num_blocks = 0;
-+ PyFloatBlock *block;
-+
-+ /* Walk the block list, counting */
-+ for (block = block_list; block ; block = block->next) {
-+ num_blocks++;
-+ }
-+
-+ _PyDebugAllocatorStats(out,
-+ "PyFloatBlock", num_blocks, sizeof(PyFloatBlock));
-+}
-+
- static PyFloatObject *
- fill_free_list(void)
- {
-diff -up Python-2.7.2/Objects/frameobject.c.add-debug-malloc-stats Python-2.7.2/Objects/frameobject.c
---- Python-2.7.2/Objects/frameobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/frameobject.c 2011-09-16 19:03:25.112821625 -0400
-@@ -980,3 +980,13 @@ PyFrame_Fini(void)
- Py_XDECREF(builtin_object);
- builtin_object = NULL;
- }
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyFrame_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PyFrameObject",
-+ numfree, sizeof(PyFrameObject));
-+}
-+
-diff -up Python-2.7.2/Objects/intobject.c.add-debug-malloc-stats Python-2.7.2/Objects/intobject.c
---- Python-2.7.2/Objects/intobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/intobject.c 2011-09-16 19:03:25.112821625 -0400
-@@ -44,6 +44,23 @@ typedef struct _intblock PyIntBlock;
- static PyIntBlock *block_list = NULL;
- static PyIntObject *free_list = NULL;
-
-+
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyInt_DebugMallocStats(FILE *out)
-+{
-+ int num_blocks = 0;
-+ PyIntBlock *block;
-+
-+ /* Walk the block list, counting */
-+ for (block = block_list; block ; block = block->next) {
-+ num_blocks++;
-+ }
-+
-+ _PyDebugAllocatorStats(out,
-+ "PyIntBlock", num_blocks, sizeof(PyIntBlock));
-+}
-+
- static PyIntObject *
- fill_free_list(void)
- {
-diff -up Python-2.7.2/Objects/listobject.c.add-debug-malloc-stats Python-2.7.2/Objects/listobject.c
---- Python-2.7.2/Objects/listobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/listobject.c 2011-09-16 19:03:25.113821625 -0400
-@@ -109,6 +109,15 @@ PyList_Fini(void)
- }
- }
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyList_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PyListObject",
-+ numfree, sizeof(PyListObject));
-+}
-+
- PyObject *
- PyList_New(Py_ssize_t size)
- {
-diff -up Python-2.7.2/Objects/methodobject.c.add-debug-malloc-stats Python-2.7.2/Objects/methodobject.c
---- Python-2.7.2/Objects/methodobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/methodobject.c 2011-09-16 19:03:25.113821625 -0400
-@@ -412,6 +412,15 @@ PyCFunction_Fini(void)
- (void)PyCFunction_ClearFreeList();
- }
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyCFunction_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PyCFunction",
-+ numfree, sizeof(PyCFunction));
-+}
-+
- /* PyCFunction_New() is now just a macro that calls PyCFunction_NewEx(),
- but it's part of the API so we need to keep a function around that
- existing C extensions can call.
-diff -up Python-2.7.2/Objects/object.c.add-debug-malloc-stats Python-2.7.2/Objects/object.c
---- Python-2.7.2/Objects/object.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/object.c 2011-09-16 19:04:46.463820849 -0400
-@@ -2334,6 +2334,23 @@ PyMem_Free(void *p)
- PyMem_FREE(p);
- }
-
-+void
-+_PyObject_DebugTypeStats(FILE *out)
-+{
-+ _PyString_DebugMallocStats(out);
-+ _PyCFunction_DebugMallocStats(out);
-+ _PyDict_DebugMallocStats(out);
-+ _PyFloat_DebugMallocStats(out);
-+ _PyFrame_DebugMallocStats(out);
-+ _PyInt_DebugMallocStats(out);
-+ _PyList_DebugMallocStats(out);
-+ _PyMethod_DebugMallocStats(out);
-+ _PySet_DebugMallocStats(out);
-+ _PyTuple_DebugMallocStats(out);
-+#if Py_USING_UNICODE
-+ _PyUnicode_DebugMallocStats(out);
-+#endif
-+}
-
- /* These methods are used to control infinite recursion in repr, str, print,
- etc. Container objects that may recursively contain themselves,
-diff -up Python-2.7.2/Objects/obmalloc.c.add-debug-malloc-stats Python-2.7.2/Objects/obmalloc.c
---- Python-2.7.2/Objects/obmalloc.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/obmalloc.c 2011-09-16 19:03:25.114821625 -0400
-@@ -508,12 +508,10 @@ static struct arena_object* usable_arena
- /* Number of arenas allocated that haven't been free()'d. */
- static size_t narenas_currently_allocated = 0;
-
--#ifdef PYMALLOC_DEBUG
- /* Total number of times malloc() called to allocate an arena. */
- static size_t ntimes_arena_allocated = 0;
- /* High water mark (max value ever seen) for narenas_currently_allocated. */
- static size_t narenas_highwater = 0;
--#endif
-
- /* Allocate a new arena. If we run out of memory, return NULL. Else
- * allocate a new arena, and return the address of an arena_object
-@@ -528,7 +526,7 @@ new_arena(void)
-
- #ifdef PYMALLOC_DEBUG
- if (Py_GETENV("PYTHONMALLOCSTATS"))
-- _PyObject_DebugMallocStats();
-+ _PyObject_DebugMallocStats(stderr);
- #endif
- if (unused_arena_objects == NULL) {
- uint i;
-@@ -588,11 +586,9 @@ new_arena(void)
- arenaobj->address = (uptr)address;
-
- ++narenas_currently_allocated;
--#ifdef PYMALLOC_DEBUG
- ++ntimes_arena_allocated;
- if (narenas_currently_allocated > narenas_highwater)
- narenas_highwater = narenas_currently_allocated;
--#endif
- arenaobj->freepools = NULL;
- /* pool_address <- first pool-aligned address in the arena
- nfreepools <- number of whole pools that fit after alignment */
-@@ -1694,17 +1690,19 @@ _PyObject_DebugDumpAddress(const void *p
- }
- }
-
-+#endif /* PYMALLOC_DEBUG */
-+
- static size_t
--printone(const char* msg, size_t value)
-+printone(FILE *out, const char* msg, size_t value)
- {
- int i, k;
- char buf[100];
- size_t origvalue = value;
-
-- fputs(msg, stderr);
-+ fputs(msg, out);
- for (i = (int)strlen(msg); i < 35; ++i)
-- fputc(' ', stderr);
-- fputc('=', stderr);
-+ fputc(' ', out);
-+ fputc('=', out);
-
- /* Write the value with commas. */
- i = 22;
-@@ -1725,17 +1723,32 @@ printone(const char* msg, size_t value)
-
- while (i >= 0)
- buf[i--] = ' ';
-- fputs(buf, stderr);
-+ fputs(buf, out);
-
- return origvalue;
- }
-
--/* Print summary info to stderr about the state of pymalloc's structures.
-+void
-+_PyDebugAllocatorStats(FILE *out,
-+ const char *block_name, int num_blocks, size_t sizeof_block)
-+{
-+ char buf1[128];
-+ char buf2[128];
-+ PyOS_snprintf(buf1, sizeof(buf1),
-+ "%d %ss * %zd bytes each",
-+ num_blocks, block_name, sizeof_block);
-+ PyOS_snprintf(buf2, sizeof(buf2),
-+ "%48s ", buf1);
-+ (void)printone(out, buf2, num_blocks * sizeof_block);
-+}
-+
-+
-+/* Print summary info to "out" about the state of pymalloc's structures.
- * In Py_DEBUG mode, also perform some expensive internal consistency
- * checks.
- */
- void
--_PyObject_DebugMallocStats(void)
-+_PyObject_DebugMallocStats(FILE *out)
- {
- uint i;
- const uint numclasses = SMALL_REQUEST_THRESHOLD >> ALIGNMENT_SHIFT;
-@@ -1764,7 +1777,7 @@ _PyObject_DebugMallocStats(void)
- size_t total;
- char buf[128];
-
-- fprintf(stderr, "Small block threshold = %d, in %u size classes.\n",
-+ fprintf(out, "Small block threshold = %d, in %u size classes.\n",
- SMALL_REQUEST_THRESHOLD, numclasses);
-
- for (i = 0; i < numclasses; ++i)
-@@ -1818,10 +1831,10 @@ _PyObject_DebugMallocStats(void)
- }
- assert(narenas == narenas_currently_allocated);
-
-- fputc('\n', stderr);
-+ fputc('\n', out);
- fputs("class size num pools blocks in use avail blocks\n"
- "----- ---- --------- ------------- ------------\n",
-- stderr);
-+ out);
-
- for (i = 0; i < numclasses; ++i) {
- size_t p = numpools[i];
-@@ -1832,7 +1845,7 @@ _PyObject_DebugMallocStats(void)
- assert(b == 0 && f == 0);
- continue;
- }
-- fprintf(stderr, "%5u %6u "
-+ fprintf(out, "%5u %6u "
- "%11" PY_FORMAT_SIZE_T "u "
- "%15" PY_FORMAT_SIZE_T "u "
- "%13" PY_FORMAT_SIZE_T "u\n",
-@@ -1842,36 +1855,35 @@ _PyObject_DebugMallocStats(void)
- pool_header_bytes += p * POOL_OVERHEAD;
- quantization += p * ((POOL_SIZE - POOL_OVERHEAD) % size);
- }
-- fputc('\n', stderr);
-- (void)printone("# times object malloc called", serialno);
--
-- (void)printone("# arenas allocated total", ntimes_arena_allocated);
-- (void)printone("# arenas reclaimed", ntimes_arena_allocated - narenas);
-- (void)printone("# arenas highwater mark", narenas_highwater);
-- (void)printone("# arenas allocated current", narenas);
-+ fputc('\n', out);
-+#ifdef PYMALLOC_DEBUG
-+ (void)printone(out, "# times object malloc called", serialno);
-+#endif
-+ (void)printone(out, "# arenas allocated total", ntimes_arena_allocated);
-+ (void)printone(out, "# arenas reclaimed", ntimes_arena_allocated - narenas);
-+ (void)printone(out, "# arenas highwater mark", narenas_highwater);
-+ (void)printone(out, "# arenas allocated current", narenas);
-
- PyOS_snprintf(buf, sizeof(buf),
- "%" PY_FORMAT_SIZE_T "u arenas * %d bytes/arena",
- narenas, ARENA_SIZE);
-- (void)printone(buf, narenas * ARENA_SIZE);
-+ (void)printone(out, buf, narenas * ARENA_SIZE);
-
-- fputc('\n', stderr);
-+ fputc('\n', out);
-
-- total = printone("# bytes in allocated blocks", allocated_bytes);
-- total += printone("# bytes in available blocks", available_bytes);
-+ total = printone(out, "# bytes in allocated blocks", allocated_bytes);
-+ total += printone(out, "# bytes in available blocks", available_bytes);
-
- PyOS_snprintf(buf, sizeof(buf),
- "%u unused pools * %d bytes", numfreepools, POOL_SIZE);
-- total += printone(buf, (size_t)numfreepools * POOL_SIZE);
-+ total += printone(out, buf, (size_t)numfreepools * POOL_SIZE);
-
-- total += printone("# bytes lost to pool headers", pool_header_bytes);
-- total += printone("# bytes lost to quantization", quantization);
-- total += printone("# bytes lost to arena alignment", arena_alignment);
-- (void)printone("Total", total);
-+ total += printone(out, "# bytes lost to pool headers", pool_header_bytes);
-+ total += printone(out, "# bytes lost to quantization", quantization);
-+ total += printone(out, "# bytes lost to arena alignment", arena_alignment);
-+ (void)printone(out, "Total", total);
- }
-
--#endif /* PYMALLOC_DEBUG */
--
- #ifdef Py_USING_MEMORY_DEBUGGER
- /* Make this function last so gcc won't inline it since the definition is
- * after the reference.
-diff -up Python-2.7.2/Objects/setobject.c.add-debug-malloc-stats Python-2.7.2/Objects/setobject.c
---- Python-2.7.2/Objects/setobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/setobject.c 2011-09-16 19:03:25.115821625 -0400
-@@ -1088,6 +1088,16 @@ PySet_Fini(void)
- Py_CLEAR(emptyfrozenset);
- }
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PySet_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out,
-+ "free PySetObject",
-+ numfree, sizeof(PySetObject));
-+}
-+
-+
- static PyObject *
- set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
- {
-diff -up Python-2.7.2/Objects/stringobject.c.add-debug-malloc-stats Python-2.7.2/Objects/stringobject.c
---- Python-2.7.2/Objects/stringobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/stringobject.c 2011-09-16 19:03:25.116821625 -0400
-@@ -4822,3 +4822,43 @@ void _Py_ReleaseInternedStrings(void)
- PyDict_Clear(interned);
- Py_CLEAR(interned);
- }
-+
-+void _PyString_DebugMallocStats(FILE *out)
-+{
-+ ssize_t i;
-+ int num_immortal = 0, num_mortal = 0;
-+ ssize_t immortal_size = 0, mortal_size = 0;
-+
-+ if (interned == NULL || !PyDict_Check(interned))
-+ return;
-+
-+ for (i = 0; i <= ((PyDictObject*)interned)->ma_mask; i++) {
-+ PyDictEntry *ep = ((PyDictObject*)interned)->ma_table + i;
-+ PyObject *pvalue = ep->me_value;
-+ if (pvalue != NULL) {
-+ PyStringObject *s = (PyStringObject *)ep->me_key;
-+
-+ switch (s->ob_sstate) {
-+ case SSTATE_NOT_INTERNED:
-+ /* XXX Shouldn't happen */
-+ break;
-+ case SSTATE_INTERNED_IMMORTAL:
-+ num_immortal ++;
-+ immortal_size += s->ob_size;
-+ break;
-+ case SSTATE_INTERNED_MORTAL:
-+ num_mortal ++;
-+ mortal_size += s->ob_size;
-+ break;
-+ default:
-+ Py_FatalError("Inconsistent interned string state.");
-+ }
-+ }
-+ }
-+
-+ fprintf(out, "%d mortal interned strings\n", num_mortal);
-+ fprintf(out, "%d immortal interned strings\n", num_immortal);
-+ fprintf(out, "total size of all interned strings: "
-+ "%zi/%zi "
-+ "mortal/immortal\n", mortal_size, immortal_size);
-+}
-diff -up Python-2.7.2/Objects/tupleobject.c.add-debug-malloc-stats Python-2.7.2/Objects/tupleobject.c
---- Python-2.7.2/Objects/tupleobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/tupleobject.c 2011-09-16 19:03:25.116821625 -0400
-@@ -44,6 +44,22 @@ show_track(void)
- }
- #endif
-
-+/* Print summary info about the state of the optimized allocator */
-+void
-+_PyTuple_DebugMallocStats(FILE *out)
-+{
-+#if PyTuple_MAXSAVESIZE > 0
-+ int i;
-+ char buf[128];
-+ for (i = 1; i < PyTuple_MAXSAVESIZE; i++) {
-+ PyOS_snprintf(buf, sizeof(buf),
-+ "free %d-sized PyTupleObject", i);
-+ _PyDebugAllocatorStats(out,
-+ buf,
-+ numfree[i], _PyObject_VAR_SIZE(&PyTuple_Type, i));
-+ }
-+#endif
-+}
-
- PyObject *
- PyTuple_New(register Py_ssize_t size)
-diff -up Python-2.7.2/Objects/unicodeobject.c.add-debug-malloc-stats Python-2.7.2/Objects/unicodeobject.c
---- Python-2.7.2/Objects/unicodeobject.c.add-debug-malloc-stats 2011-06-11 11:46:27.000000000 -0400
-+++ Python-2.7.2/Objects/unicodeobject.c 2011-09-16 19:03:25.118821625 -0400
-@@ -8883,6 +8883,12 @@ _PyUnicode_Fini(void)
- (void)PyUnicode_ClearFreeList();
- }
-
-+void _PyUnicode_DebugMallocStats(FILE *out)
-+{
-+ _PyDebugAllocatorStats(out, "free PyUnicodeObject", numfree,
-+ sizeof(PyUnicodeObject));
-+}
-+
- #ifdef __cplusplus
- }
- #endif
-diff -up Python-2.7.2/Python/pythonrun.c.add-debug-malloc-stats Python-2.7.2/Python/pythonrun.c
---- Python-2.7.2/Python/pythonrun.c.add-debug-malloc-stats 2011-09-16 19:03:25.025821626 -0400
-+++ Python-2.7.2/Python/pythonrun.c 2011-09-16 19:03:25.118821625 -0400
-@@ -549,7 +549,7 @@ Py_Finalize(void)
- #endif /* Py_TRACE_REFS */
- #ifdef PYMALLOC_DEBUG
- if (Py_GETENV("PYTHONMALLOCSTATS"))
-- _PyObject_DebugMallocStats();
-+ _PyObject_DebugMallocStats(stderr);
- #endif
-
- call_ll_exitfuncs();
-diff -up Python-2.7.2/Python/sysmodule.c.add-debug-malloc-stats Python-2.7.2/Python/sysmodule.c
---- Python-2.7.2/Python/sysmodule.c.add-debug-malloc-stats 2011-09-16 19:03:25.007821626 -0400
-+++ Python-2.7.2/Python/sysmodule.c 2011-09-16 19:03:25.119821625 -0400
-@@ -872,6 +872,57 @@ a 11-tuple where the entries in the tupl
- extern "C" {
- #endif
-
-+static PyObject *
-+sys_debugmallocstats(PyObject *self, PyObject *args)
-+{
-+ PyObject *file = NULL;
-+ FILE *fp;
-+
-+ if (!PyArg_ParseTuple(args, "|O!",
-+ &PyFile_Type, &file)) {
-+ return NULL;
-+ }
-+ if (!file) {
-+ /* Default to sys.stderr: */
-+ file = PySys_GetObject("stderr");
-+ if (!file) {
-+ PyErr_SetString(PyExc_ValueError, "sys.stderr not set");
-+ return NULL;
-+ }
-+ if (!PyFile_Check(file)) {
-+ PyErr_SetString(PyExc_TypeError, "sys.stderr is not a file");
-+ return NULL;
-+ }
-+ }
-+
-+ Py_INCREF(file);
-+ /* OK, we now own a ref on non-NULL "file" */
-+
-+ fp = PyFile_AsFile(file);
-+ if (!fp) {
-+ PyErr_SetString(PyExc_ValueError, "file is closed");
-+ Py_DECREF(file);
-+ return NULL;
-+ }
-+
-+ _PyObject_DebugMallocStats(fp);
-+ fputc('\n', fp);
-+ _PyObject_DebugTypeStats(fp);
-+
-+ Py_DECREF(file);
-+
-+ Py_RETURN_NONE;
-+}
-+PyDoc_STRVAR(debugmallocstats_doc,
-+"_debugmallocstats([file])\n\
-+\n\
-+Print summary info to the given file (or sys.stderr) about the state of\n\
-+pymalloc's structures.\n\
-+\n\
-+In Py_DEBUG mode, also perform some expensive internal consistency\n\
-+checks.\n\
-+");
-+
- #ifdef Py_TRACE_REFS
- /* Defined in objects.c because it uses static globals if that file */
- extern PyObject *_Py_GetObjects(PyObject *, PyObject *);
-@@ -970,6 +1021,8 @@ static PyMethodDef sys_methods[] = {
- {"settrace", sys_settrace, METH_O, settrace_doc},
- {"gettrace", sys_gettrace, METH_NOARGS, gettrace_doc},
- {"call_tracing", sys_call_tracing, METH_VARARGS, call_tracing_doc},
-+ {"_debugmallocstats", sys_debugmallocstats, METH_VARARGS,
-+ debugmallocstats_doc},
- {NULL, NULL} /* sentinel */
- };
-
diff --git a/00155-avoid-ctypes-thunks.patch b/00155-avoid-ctypes-thunks.patch
deleted file mode 100644
index 92dd668..0000000
--- a/00155-avoid-ctypes-thunks.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up Python-2.7.3/Lib/ctypes/__init__.py.rhbz814391 Python-2.7.3/Lib/ctypes/__init__.py
---- Python-2.7.3/Lib/ctypes/__init__.py.rhbz814391 2012-04-20 14:51:19.390990244 -0400
-+++ Python-2.7.3/Lib/ctypes/__init__.py 2012-04-20 14:51:45.141668316 -0400
-@@ -272,11 +272,6 @@ def _reset_cache():
- # _SimpleCData.c_char_p_from_param
- POINTER(c_char).from_param = c_char_p.from_param
- _pointer_type_cache[None] = c_void_p
-- # XXX for whatever reasons, creating the first instance of a callback
-- # function is needed for the unittests on Win64 to succeed. This MAY
-- # be a compiler bug, since the problem occurs only when _ctypes is
-- # compiled with the MS SDK compiler. Or an uninitialized variable?
-- CFUNCTYPE(c_int)(lambda: None)
-
- try:
- from _ctypes import set_conversion_mode
diff --git a/00156-gdb-autoload-safepath.patch b/00156-gdb-autoload-safepath.patch
deleted file mode 100644
index a16fe8d..0000000
--- a/00156-gdb-autoload-safepath.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -up Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath Python-2.7.3/Lib/test/test_gdb.py
---- Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath 2012-04-30 15:53:57.254045220 -0400
-+++ Python-2.7.3/Lib/test/test_gdb.py 2012-04-30 16:19:19.569941124 -0400
-@@ -54,6 +54,19 @@ def gdb_has_frame_select():
-
- HAS_PYUP_PYDOWN = gdb_has_frame_select()
-
-+def gdb_has_autoload_safepath():
-+ # Recent GDBs will only auto-load scripts from certain safe
-+ # locations, so we will need to turn off this protection.
-+ # However, if the GDB doesn't have it, then the following
-+ # command will generate noise on stderr (rhbz#817072):
-+ cmd = "--eval-command=set auto-load safe-path /"
-+ p = subprocess.Popen(["gdb", "--batch", cmd],
-+ stderr=subprocess.PIPE)
-+ _, stderr = p.communicate()
-+ return '"on" or "off" expected.' not in stderr
-+
-+HAS_AUTOLOAD_SAFEPATH = gdb_has_autoload_safepath()
-+
- class DebuggerTests(unittest.TestCase):
-
- """Test that the debugger can debug Python."""
-diff -up Python-2.7.10/Lib/test/test_gdb.py.ms Python-2.7.10/Lib/test/test_gdb.py
---- Python-2.7.10/Lib/test/test_gdb.py.ms 2015-05-25 17:00:25.028462615 +0200
-+++ Python-2.7.10/Lib/test/test_gdb.py 2015-05-25 17:01:53.166359822 +0200
-@@ -153,6 +153,17 @@ class DebuggerTests(unittest.TestCase):
-
- 'run']
-
-+ if HAS_AUTOLOAD_SAFEPATH:
-+ # Recent GDBs will only auto-load scripts from certain safe
-+ # locations.
-+ # Where necessary, turn off this protection to ensure that
-+ # our -gdb.py script can be loaded - but not on earlier gdb builds
-+ # as this would generate noise on stderr (rhbz#817072):
-+ init_commands = ['set auto-load safe-path /']
-+ else:
-+ init_commands = []
-+
-+
- # GDB as of 7.4 onwards can distinguish between the
- # value of a variable at entry vs current value:
- # http://sourceware.org/gdb/onlinedocs/gdb/Variables.html
-@@ -167,10 +178,11 @@ class DebuggerTests(unittest.TestCase):
- else:
- commands += ['backtrace']
-
-- # print commands
-+ # print init_commands
-
- # Use "commands" to generate the arguments with which to invoke "gdb":
- args = ["gdb", "--batch", "-nx"]
-+ args += ['--init-eval-command=%s' % cmd for cmd in init_commands]
- args += ['--eval-command=%s' % cmd for cmd in commands]
- args += ["--args",
- sys.executable]
diff --git a/00157-uid-gid-overflows.patch b/00157-uid-gid-overflows.patch
deleted file mode 100644
index a31c98a..0000000
--- a/00157-uid-gid-overflows.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows Python-2.7.3/Lib/test/test_os.py
---- Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows 2012-04-09 19:07:32.000000000 -0400
-+++ Python-2.7.3/Lib/test/test_os.py 2012-06-26 14:51:36.000817929 -0400
-@@ -677,30 +677,36 @@ if sys.platform != 'win32':
- def test_setuid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.setuid, 0)
-+ self.assertRaises(TypeError, os.setuid, 'not an int')
- self.assertRaises(OverflowError, os.setuid, 1<<32)
-
- @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
- def test_setgid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.setgid, 0)
-+ self.assertRaises(TypeError, os.setgid, 'not an int')
- self.assertRaises(OverflowError, os.setgid, 1<<32)
-
- @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
- def test_seteuid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.seteuid, 0)
-+ self.assertRaises(TypeError, os.seteuid, 'not an int')
- self.assertRaises(OverflowError, os.seteuid, 1<<32)
-
- @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
- def test_setegid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.setegid, 0)
-+ self.assertRaises(TypeError, os.setegid, 'not an int')
- self.assertRaises(OverflowError, os.setegid, 1<<32)
-
- @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
- def test_setreuid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.setreuid, 0, 0)
-+ self.assertRaises(TypeError, os.setreuid, 'not an int', 0)
-+ self.assertRaises(TypeError, os.setreuid, 0, 'not an int')
- self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
- self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
-
-@@ -715,6 +721,8 @@ if sys.platform != 'win32':
- def test_setregid(self):
- if os.getuid() != 0:
- self.assertRaises(os.error, os.setregid, 0, 0)
-+ self.assertRaises(TypeError, os.setregid, 'not an int', 0)
-+ self.assertRaises(TypeError, os.setregid, 0, 'not an int')
- self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
- self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
-
diff --git a/00165-crypt-module-salt-backport.patch b/00165-crypt-module-salt-backport.patch
deleted file mode 100644
index 0040aae..0000000
--- a/00165-crypt-module-salt-backport.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-diff --git a/Doc/library/crypt.rst b/Doc/library/crypt.rst
-index 91464ef..6ee64d6 100644
---- a/Doc/library/crypt.rst
-+++ b/Doc/library/crypt.rst
-@@ -16,9 +16,9 @@
-
- This module implements an interface to the :manpage:`crypt(3)` routine, which is
- a one-way hash function based upon a modified DES algorithm; see the Unix man
--page for further details. Possible uses include allowing Python scripts to
--accept typed passwords from the user, or attempting to crack Unix passwords with
--a dictionary.
-+page for further details. Possible uses include storing hashed passwords
-+so you can check passwords without storing the actual password, or attempting
-+to crack Unix passwords with a dictionary.
-
- .. index:: single: crypt(3)
-
-@@ -27,15 +27,81 @@ the :manpage:`crypt(3)` routine in the running system. Therefore, any
- extensions available on the current implementation will also be available on
- this module.
-
-+Hashing Methods
-+---------------
-
--.. function:: crypt(word, salt)
-+The :mod:`crypt` module defines the list of hashing methods (not all methods
-+are available on all platforms):
-+
-+.. data:: METHOD_SHA512
-+
-+ A Modular Crypt Format method with 16 character salt and 86 character
-+ hash. This is the strongest method.
-+
-+.. versionadded:: 3.3
-+
-+.. data:: METHOD_SHA256
-+
-+ Another Modular Crypt Format method with 16 character salt and 43
-+ character hash.
-+
-+.. versionadded:: 3.3
-+
-+.. data:: METHOD_MD5
-+
-+ Another Modular Crypt Format method with 8 character salt and 22
-+ character hash.
-+
-+.. versionadded:: 3.3
-+
-+.. data:: METHOD_CRYPT
-+
-+ The traditional method with a 2 character salt and 13 characters of
-+ hash. This is the weakest method.
-+
-+.. versionadded:: 3.3
-+
-+
-+Module Attributes
-+-----------------
-+
-+
-+.. attribute:: methods
-+
-+ A list of available password hashing algorithms, as
-+ ``crypt.METHOD_*`` objects. This list is sorted from strongest to
-+ weakest, and is guaranteed to have at least ``crypt.METHOD_CRYPT``.
-+
-+.. versionadded:: 3.3
-+
-+
-+Module Functions
-+----------------
-+
-+The :mod:`crypt` module defines the following functions:
-+
-+.. function:: crypt(word, salt=None)
-
- *word* will usually be a user's password as typed at a prompt or in a graphical
-- interface. *salt* is usually a random two-character string which will be used
-- to perturb the DES algorithm in one of 4096 ways. The characters in *salt* must
-- be in the set ``[./a-zA-Z0-9]``. Returns the hashed password as a string, which
-- will be composed of characters from the same alphabet as the salt (the first two
-- characters represent the salt itself).
-+ interface. The optional *salt* is either a string as returned from
-+ :func:`mksalt`, one of the ``crypt.METHOD_*`` values (though not all
-+ may be available on all platforms), or a full encrypted password
-+ including salt, as returned by this function. If *salt* is not
-+ provided, the strongest method will be used (as returned by
-+ :func:`methods`.
-+
-+ Checking a password is usually done by passing the plain-text password
-+ as *word* and the full results of a previous :func:`crypt` call,
-+ which should be the same as the results of this call.
-+
-+ *salt* (either a random 2 or 16 character string, possibly prefixed with
-+ ``$digit$`` to indicate the method) which will be used to perturb the
-+ encryption algorithm. The characters in *salt* must be in the set
-+ ``[./a-zA-Z0-9]``, with the exception of Modular Crypt Format which
-+ prefixes a ``$digit$``.
-+
-+ Returns the hashed password as a string, which will be composed of
-+ characters from the same alphabet as the salt.
-
- .. index:: single: crypt(3)
-
-@@ -43,6 +109,27 @@ this module.
- different sizes in the *salt*, it is recommended to use the full crypted
- password as salt when checking for a password.
-
-+.. versionchanged:: 3.3
-+ Before version 3.3, *salt* must be specified as a string and cannot
-+ accept ``crypt.METHOD_*`` values (which don't exist anyway).
-+
-+
-+.. function:: mksalt(method=None)
-+
-+ Return a randomly generated salt of the specified method. If no
-+ *method* is given, the strongest method available as returned by
-+ :func:`methods` is used.
-+
-+ The return value is a string either of 2 characters in length for
-+ ``crypt.METHOD_CRYPT``, or 19 characters starting with ``$digit$`` and
-+ 16 random characters from the set ``[./a-zA-Z0-9]``, suitable for
-+ passing as the *salt* argument to :func:`crypt`.
-+
-+.. versionadded:: 3.3
-+
-+Examples
-+--------
-+
- A simple example illustrating typical use::
-
- import crypt, getpass, pwd
-@@ -59,3 +146,11 @@ A simple example illustrating typical use::
- else:
- return 1
-
-+To generate a hash of a password using the strongest available method and
-+check it against the original::
-+
-+ import crypt
-+
-+ hashed = crypt.crypt(plaintext)
-+ if hashed != crypt.crypt(plaintext, hashed):
-+ raise "Hashed version doesn't validate against original"
-diff --git a/Lib/crypt.py b/Lib/crypt.py
-new file mode 100644
-index 0000000..bf0a416
---- /dev/null
-+++ b/Lib/crypt.py
-@@ -0,0 +1,71 @@
-+"""Wrapper to the POSIX crypt library call and associated functionality.
-+
-+Note that the ``methods`` and ``METHOD_*`` attributes are non-standard
-+extensions to Python 2.7, backported from 3.3"""
-+
-+import _crypt
-+import string as _string
-+from random import SystemRandom as _SystemRandom
-+from collections import namedtuple as _namedtuple
-+
-+
-+_saltchars = _string.ascii_letters + _string.digits + './'
-+_sr = _SystemRandom()
-+
-+
-+class _Method(_namedtuple('_Method', 'name ident salt_chars total_size')):
-+
-+ """Class representing a salt method per the Modular Crypt Format or the
-+ legacy 2-character crypt method."""
-+
-+ def __repr__(self):
-+ return '<crypt.METHOD_%s>' % self.name
-+
-+
-+def mksalt(method=None):
-+ """Generate a salt for the specified method.
-+
-+ If not specified, the strongest available method will be used.
-+
-+ This is a non-standard extension to Python 2.7, backported from 3.3
-+ """
-+ if method is None:
-+ method = methods[0]
-+ s = '$%s$' % method.ident if method.ident else ''
-+ s += ''.join(_sr.sample(_saltchars, method.salt_chars))
-+ return s
-+
-+
-+def crypt(word, salt=None):
-+ """Return a string representing the one-way hash of a password, with a salt
-+ prepended.
-+
-+ If ``salt`` is not specified or is ``None``, the strongest
-+ available method will be selected and a salt generated. Otherwise,
-+ ``salt`` may be one of the ``crypt.METHOD_*`` values, or a string as
-+ returned by ``crypt.mksalt()``.
-+
-+ Note that these are non-standard extensions to Python 2.7's crypt.crypt()
-+ entrypoint, backported from 3.3: the standard Python 2.7 crypt.crypt()
-+ entrypoint requires two strings as the parameters, and does not support
-+ keyword arguments.
-+ """
-+ if salt is None or isinstance(salt, _Method):
-+ salt = mksalt(salt)
-+ return _crypt.crypt(word, salt)
-+
-+
-+# available salting/crypto methods
-+METHOD_CRYPT = _Method('CRYPT', None, 2, 13)
-+METHOD_MD5 = _Method('MD5', '1', 8, 34)
-+METHOD_SHA256 = _Method('SHA256', '5', 16, 63)
-+METHOD_SHA512 = _Method('SHA512', '6', 16, 106)
-+
-+methods = []
-+for _method in (METHOD_SHA512, METHOD_SHA256, METHOD_MD5):
-+ _result = crypt('', _method)
-+ if _result and len(_result) == _method.total_size:
-+ methods.append(_method)
-+methods.append(METHOD_CRYPT)
-+del _result, _method
-+
-diff --git a/Lib/test/test_crypt.py b/Lib/test/test_crypt.py
-index 7cd9c71..b061a55 100644
---- a/Lib/test/test_crypt.py
-+++ b/Lib/test/test_crypt.py
-@@ -16,6 +16,25 @@ class CryptTestCase(unittest.TestCase):
- self.assertEqual(cr2, cr)
-
-
-+ def test_salt(self):
-+ self.assertEqual(len(crypt._saltchars), 64)
-+ for method in crypt.methods:
-+ salt = crypt.mksalt(method)
-+ self.assertEqual(len(salt),
-+ method.salt_chars + (3 if method.ident else 0))
-+
-+ def test_saltedcrypt(self):
-+ for method in crypt.methods:
-+ pw = crypt.crypt('assword', method)
-+ self.assertEqual(len(pw), method.total_size)
-+ pw = crypt.crypt('assword', crypt.mksalt(method))
-+ self.assertEqual(len(pw), method.total_size)
-+
-+ def test_methods(self):
-+ # Gurantee that METHOD_CRYPT is the last method in crypt.methods.
-+ self.assertTrue(len(crypt.methods) >= 1)
-+ self.assertEqual(crypt.METHOD_CRYPT, crypt.methods[-1])
-+
- def test_main():
- test_support.run_unittest(CryptTestCase)
-
-diff --git a/Modules/Setup.dist b/Modules/Setup.dist
-index 2712f06..3ea4f0c 100644
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -225,7 +225,7 @@ _ssl _ssl.c \
- #
- # First, look at Setup.config; configure may have set this for you.
-
--crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
-+_crypt _cryptmodule.c -lcrypt # crypt(3); needs -lcrypt on some systems
-
-
- # Some more UNIX dependent modules -- off by default, since these
-diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
-index 76de54f..7c69ca6 100644
---- a/Modules/cryptmodule.c
-+++ b/Modules/cryptmodule.c
-@@ -43,7 +43,7 @@ static PyMethodDef crypt_methods[] = {
- };
-
- PyMODINIT_FUNC
--initcrypt(void)
-+init_crypt(void)
- {
-- Py_InitModule("crypt", crypt_methods);
-+ Py_InitModule("_crypt", crypt_methods);
- }
-diff --git a/setup.py b/setup.py
-index b787487..c60ac35 100644
---- a/setup.py
-+++ b/setup.py
-@@ -798,7 +798,7 @@ class PyBuildExt(build_ext):
- libs = ['crypt']
- else:
- libs = []
-- exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) )
-+ exts.append( Extension('_crypt', ['_cryptmodule.c'], libraries=libs) )
-
- # CSV files
- exts.append( Extension('_csv', ['_csv.c']) )
diff --git a/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch b/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
deleted file mode 100644
index 9807883..0000000
--- a/00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
-index 3354b34..10ba0e5 100644
---- a/Lib/test/test_gdb.py
-+++ b/Lib/test/test_gdb.py
-@@ -725,11 +725,10 @@ class PyListTests(DebuggerTests):
- ' 2 \n'
- ' 3 def foo(a, b, c):\n',
- bt)
--
-+(a)unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-+(a)unittest.skipIf(python_is_optimized(),
-+ "Python was compiled with optimizations")
- class StackNavigationTests(DebuggerTests):
-- @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-- @unittest.skipIf(python_is_optimized(),
-- "Python was compiled with optimizations")
- def test_pyup_command(self):
- 'Verify that the "py-up" command works'
- bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -740,7 +739,6 @@ class StackNavigationTests(DebuggerTests):
- baz\(a, b, c\)
- $''')
-
-- @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
- def test_down_at_bottom(self):
- 'Verify handling of "py-down" at the bottom of the stack'
- bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -748,9 +746,6 @@ $''')
- self.assertEndsWith(bt,
- 'Unable to find a newer python frame\n')
-
-- @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-- @unittest.skipIf(python_is_optimized(),
-- "Python was compiled with optimizations")
- def test_up_at_top(self):
- 'Verify handling of "py-up" at the top of the stack'
- bt = self.get_stack_trace(script=self.get_sample_script(),
-@@ -758,9 +753,6 @@ $''')
- self.assertEndsWith(bt,
- 'Unable to find an older python frame\n')
-
-- @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands")
-- @unittest.skipIf(python_is_optimized(),
-- "Python was compiled with optimizations")
- def test_up_then_down(self):
- 'Verify "py-up" followed by "py-down"'
- bt = self.get_stack_trace(script=self.get_sample_script(),
diff --git a/00168-distutils-cflags.patch b/00168-distutils-cflags.patch
deleted file mode 100644
index 0c4a8df..0000000
--- a/00168-distutils-cflags.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.6.6/Lib/distutils/sysconfig.py.distutils-cflags Python-2.6.6/Lib/distutils/sysconfig.py
---- Python-2.6.6/Lib/distutils/sysconfig.py.distutils-cflags 2011-08-12 17:18:17.833091153 -0400
-+++ Python-2.6.6/Lib/distutils/sysconfig.py 2011-08-12 17:18:27.449106938 -0400
-@@ -187,7 +187,7 @@ def customize_compiler(compiler):
- if 'LDFLAGS' in os.environ:
- ldshared = ldshared + ' ' + os.environ['LDFLAGS']
- if 'CFLAGS' in os.environ:
-- cflags = opt + ' ' + os.environ['CFLAGS']
-+ cflags = cflags + ' ' + os.environ['CFLAGS']
- ldshared = ldshared + ' ' + os.environ['CFLAGS']
- if 'CPPFLAGS' in os.environ:
- cpp = cpp + ' ' + os.environ['CPPFLAGS']
diff --git a/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch b/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
deleted file mode 100644
index debf92f..0000000
--- a/00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
---- a/Lib/multiprocessing/connection.py
-+++ b/Lib/multiprocessing/connection.py
-@@ -41,6 +41,10 @@
- # A very generous timeout when it comes to local connections...
- CONNECTION_TIMEOUT = 20.
-
-+# The hmac module implicitly defaults to using MD5.
-+# Support using a stronger algorithm for the challenge/response code:
-+HMAC_DIGEST_NAME='sha256'
-+
- _mmap_counter = itertools.count()
-
- default_family = 'AF_INET'
-@@ -700,12 +704,16 @@
- WELCOME = b'#WELCOME#'
- FAILURE = b'#FAILURE#'
-
-+def get_digestmod_for_hmac():
-+ import hashlib
-+ return getattr(hashlib, HMAC_DIGEST_NAME)
-+
- def deliver_challenge(connection, authkey):
- import hmac
- assert isinstance(authkey, bytes)
- message = os.urandom(MESSAGE_LENGTH)
- connection.send_bytes(CHALLENGE + message)
-- digest = hmac.new(authkey, message).digest()
-+ digest = hmac.new(authkey, message, get_digestmod_for_hmac()).digest()
- response = connection.recv_bytes(256) # reject large message
- if response == digest:
- connection.send_bytes(WELCOME)
-@@ -719,7 +727,7 @@
- message = connection.recv_bytes(256) # reject large message
- assert message[:len(CHALLENGE)] == CHALLENGE, 'message = %r' % message
- message = message[len(CHALLENGE):]
-- digest = hmac.new(authkey, message).digest()
-+ digest = hmac.new(authkey, message, get_digestmod_for_hmac()).digest()
- connection.send_bytes(digest)
- response = connection.recv_bytes(256) # reject large message
- if response != WELCOME:
diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch
deleted file mode 100644
index 9ade298..0000000
--- a/00170-gc-assertions.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
-index 7e47b2d..12a210d 100644
---- a/Lib/test/test_gc.py
-+++ b/Lib/test/test_gc.py
-@@ -1,7 +1,8 @@
- import unittest
- from test.support import (verbose, run_unittest, start_threads,
-- requires_type_collecting)
-+ requires_type_collecting, import_module)
- import sys
-+import sysconfig
- import time
- import gc
- import weakref
-@@ -39,6 +40,8 @@ class GC_Detector(object):
- self.wr = weakref.ref(C1055820(666), it_happened)
-
-
-+BUILT_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
-+
- ### Tests
- ###############################################################################
-
-@@ -537,6 +540,49 @@ class GCTests(unittest.TestCase):
- # would be damaged, with an empty __dict__.
- self.assertEqual(x, None)
-
-+ @unittest.skipIf(BUILT_WITH_NDEBUG,
-+ 'built with -NDEBUG')
-+ def test_refcount_errors(self):
-+ # Verify the "handling" of objects with broken refcounts
-+
-+ import_module("ctypes") #skip if not supported
-+
-+ import subprocess
-+ code = '''if 1:
-+ a = []
-+ b = [a]
-+
-+ # Simulate the refcount of "a" being too low (compared to the
-+ # references held on it by live data), but keeping it above zero
-+ # (to avoid deallocating it):
-+ import ctypes
-+ ctypes.pythonapi.Py_DecRef(ctypes.py_object(a))
-+
-+ # The garbage collector should now have a fatal error when it reaches
-+ # the broken object:
-+ import gc
-+ gc.collect()
-+ '''
-+ p = subprocess.Popen([sys.executable, "-c", code],
-+ stdout=subprocess.PIPE,
-+ stderr=subprocess.PIPE)
-+ stdout, stderr = p.communicate()
-+ p.stdout.close()
-+ p.stderr.close()
-+ # Verify that stderr has a useful error message:
-+ self.assertRegexpMatches(stderr,
-+ b'Modules/gcmodule.c:[0-9]+: visit_decref: Assertion "gc->gc.gc_refs != 0" failed.')
-+ self.assertRegexpMatches(stderr,
-+ b'refcount was too small')
-+ self.assertRegexpMatches(stderr,
-+ b'object : \[\]')
-+ self.assertRegexpMatches(stderr,
-+ b'type : list')
-+ self.assertRegexpMatches(stderr,
-+ b'refcount: 1')
-+ self.assertRegexpMatches(stderr,
-+ b'address : 0x[0-9a-f]+')
-+
- class GCTogglingTests(unittest.TestCase):
- def setUp(self):
- gc.enable()
-diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
-index 916e481..0233ce2 100644
---- a/Modules/gcmodule.c
-+++ b/Modules/gcmodule.c
-@@ -21,6 +21,73 @@
- #include "Python.h"
- #include "frameobject.h" /* for PyFrame_ClearFreeList */
-
-+/*
-+ Define a pair of assertion macros.
-+
-+ These work like the regular C assert(), in that they will abort the
-+ process with a message on stderr if the given condition fails to hold,
-+ but compile away to nothing if NDEBUG is defined.
-+
-+ However, before aborting, Python will also try to call _PyObject_Dump() on
-+ the given object. This may be of use when investigating bugs in which a
-+ particular object is corrupt (e.g. buggy a tp_visit method in an extension
-+ module breaking the garbage collector), to help locate the broken objects.
-+
-+ The WITH_MSG variant allows you to supply an additional message that Python
-+ will attempt to print to stderr, after the object dump.
-+*/
-+#ifdef NDEBUG
-+/* No debugging: compile away the assertions: */
-+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) ((void)0)
-+#else
-+/* With debugging: generate checks: */
-+#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) \
-+ ((expr) \
-+ ? (void)(0) \
-+ : _PyObject_AssertFailed((obj), \
-+ (msg), \
-+ (__STRING(expr)), \
-+ (__FILE__), \
-+ (__LINE__), \
-+ (__PRETTY_FUNCTION__)))
-+#endif
-+
-+#define PyObject_ASSERT(obj, expr) \
-+ PyObject_ASSERT_WITH_MSG(obj, expr, NULL)
-+
-+static void _PyObject_AssertFailed(PyObject *, const char *,
-+ const char *, const char *, int,
-+ const char *);
-+
-+static void
-+_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr,
-+ const char *file, int line, const char *function)
-+{
-+ fprintf(stderr,
-+ "%s:%d: %s: Assertion \"%s\" failed.\n",
-+ file, line, function, expr);
-+ if (msg) {
-+ fprintf(stderr, "%s\n", msg);
-+ }
-+
-+ fflush(stderr);
-+
-+ if (obj) {
-+ /* This might succeed or fail, but we're about to abort, so at least
-+ try to provide any extra info we can: */
-+ _PyObject_Dump(obj);
-+ }
-+ else {
-+ fprintf(stderr, "NULL object\n");
-+ }
-+
-+ fflush(stdout);
-+ fflush(stderr);
-+
-+ /* Terminate the process: */
-+ abort();
-+}
-+
- /* Get an object's GC head */
- #define AS_GC(o) ((PyGC_Head *)(o)-1)
-
-@@ -328,7 +395,8 @@ update_refs(PyGC_Head *containers)
- {
- PyGC_Head *gc = containers->gc.gc_next;
- for (; gc != containers; gc = gc->gc.gc_next) {
-- assert(gc->gc.gc_refs == GC_REACHABLE);
-+ PyObject_ASSERT(FROM_GC(gc),
-+ gc->gc.gc_refs == GC_REACHABLE);
- gc->gc.gc_refs = Py_REFCNT(FROM_GC(gc));
- /* Python's cyclic gc should never see an incoming refcount
- * of 0: if something decref'ed to 0, it should have been
-@@ -348,7 +416,8 @@ update_refs(PyGC_Head *containers)
- * so serious that maybe this should be a release-build
- * check instead of an assert?
- */
-- assert(gc->gc.gc_refs != 0);
-+ PyObject_ASSERT(FROM_GC(gc),
-+ gc->gc.gc_refs != 0);
- }
- }
-
-@@ -363,7 +432,9 @@ visit_decref(PyObject *op, void *data)
- * generation being collected, which can be recognized
- * because only they have positive gc_refs.
- */
-- assert(gc->gc.gc_refs != 0); /* else refcount was too small */
-+ PyObject_ASSERT_WITH_MSG(FROM_GC(gc),
-+ gc->gc.gc_refs != 0,
-+ "refcount was too small");
- if (gc->gc.gc_refs > 0)
- gc->gc.gc_refs--;
- }
-@@ -423,9 +494,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable)
- * If gc_refs == GC_UNTRACKED, it must be ignored.
- */
- else {
-- assert(gc_refs > 0
-- || gc_refs == GC_REACHABLE
-- || gc_refs == GC_UNTRACKED);
-+ PyObject_ASSERT(FROM_GC(gc),
-+ gc_refs > 0
-+ || gc_refs == GC_REACHABLE
-+ || gc_refs == GC_UNTRACKED);
- }
- }
- return 0;
-@@ -467,7 +539,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
- */
- PyObject *op = FROM_GC(gc);
- traverseproc traverse = Py_TYPE(op)->tp_traverse;
-- assert(gc->gc.gc_refs > 0);
-+ PyObject_ASSERT(op, gc->gc.gc_refs > 0);
- gc->gc.gc_refs = GC_REACHABLE;
- (void) traverse(op,
- (visitproc)visit_reachable,
-@@ -545,7 +617,8 @@ move_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
- for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) {
- PyObject *op = FROM_GC(gc);
-
-- assert(IS_TENTATIVELY_UNREACHABLE(op));
-+ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
-+
- next = gc->gc.gc_next;
-
- if (has_finalizer(op)) {
-@@ -621,7 +694,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
- PyWeakReference **wrlist;
-
- op = FROM_GC(gc);
-- assert(IS_TENTATIVELY_UNREACHABLE(op));
-+ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
- next = gc->gc.gc_next;
-
- if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
-@@ -642,9 +715,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
- * the callback pointer intact. Obscure: it also
- * changes *wrlist.
- */
-- assert(wr->wr_object == op);
-+ PyObject_ASSERT(wr->wr_object, wr->wr_object == op);
- _PyWeakref_ClearRef(wr);
-- assert(wr->wr_object == Py_None);
-+ PyObject_ASSERT(wr->wr_object, wr->wr_object == Py_None);
- if (wr->wr_callback == NULL)
- continue; /* no callback */
-
-@@ -678,7 +751,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
- */
- if (IS_TENTATIVELY_UNREACHABLE(wr))
- continue;
-- assert(IS_REACHABLE(wr));
-+ PyObject_ASSERT(op, IS_REACHABLE(wr));
-
- /* Create a new reference so that wr can't go away
- * before we can process it again.
-@@ -687,7 +760,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-
- /* Move wr to wrcb_to_call, for the next pass. */
- wrasgc = AS_GC(wr);
-- assert(wrasgc != next); /* wrasgc is reachable, but
-+ PyObject_ASSERT(op, wrasgc != next);
-+ /* wrasgc is reachable, but
- next isn't, so they can't
- be the same */
- gc_list_move(wrasgc, &wrcb_to_call);
-@@ -703,11 +777,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
-
- gc = wrcb_to_call.gc.gc_next;
- op = FROM_GC(gc);
-- assert(IS_REACHABLE(op));
-- assert(PyWeakref_Check(op));
-+ PyObject_ASSERT(op, IS_REACHABLE(op));
-+ PyObject_ASSERT(op, PyWeakref_Check(op));
- wr = (PyWeakReference *)op;
- callback = wr->wr_callback;
-- assert(callback != NULL);
-+ PyObject_ASSERT(op, callback != NULL);
-
- /* copy-paste of weakrefobject.c's handle_callback() */
- temp = PyObject_CallFunctionObjArgs(callback, wr, NULL);
-@@ -810,7 +884,7 @@ delete_garbage(PyGC_Head *collectable, PyGC_Head *old)
- PyGC_Head *gc = collectable->gc.gc_next;
- PyObject *op = FROM_GC(gc);
-
-- assert(IS_TENTATIVELY_UNREACHABLE(op));
-+ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
- if (debug & DEBUG_SAVEALL) {
- PyList_Append(garbage, op);
- }
diff --git a/00174-fix-for-usr-move.patch b/00174-fix-for-usr-move.patch
deleted file mode 100644
index b48dc5c..0000000
--- a/00174-fix-for-usr-move.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up Python-2.7.3/Modules/getpath.c.fix-for-usr-move Python-2.7.3/Modules/getpath.c
---- Python-2.7.3/Modules/getpath.c.fix-for-usr-move 2013-03-06 14:25:32.801828698 -0500
-+++ Python-2.7.3/Modules/getpath.c 2013-03-06 15:59:30.872443168 -0500
-@@ -510,6 +510,24 @@ calculate_path(void)
- MAXPATHLEN bytes long.
- */
-
-+ /*
-+ Workaround for rhbz#817554, where an empty argv0_path erroneously
-+ locates "prefix" as "/lib[64]/python2.7" due to it finding
-+ "/lib[64]/python2.7/os.py" via the /lib -> /usr/lib symlink for
-+ https://fedoraproject.org/wiki/Features/UsrMove
-+ */
-+ if (argv0_path[0] == '\0' && 0 == strcmp(prog, "cmpi_swig")) {
-+ /*
-+ We have an empty argv0_path, presumably because prog aka
-+ Py_GetProgramName() was not found on $PATH.
-+
-+ Set argv0_path to "/usr/" so that search_for_prefix() and
-+ search_for_exec_prefix() don't erroneously pick up
-+ on /lib/ via the UsrMove symlink:
-+ */
-+ strcpy(argv0_path, "/usr/");
-+ }
-+
- if (!(pfound = search_for_prefix(argv0_path, home))) {
- if (!Py_FrozenFlag)
- fprintf(stderr,
diff --git a/00180-python-add-support-for-ppc64p7.patch b/00180-python-add-support-for-ppc64p7.patch
deleted file mode 100644
index ef94c86..0000000
--- a/00180-python-add-support-for-ppc64p7.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/config.sub b/config.sub
-index 3478c1f..e422173 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1040,7 +1040,7 @@ case $basic_machine in
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
-- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little)
- basic_machine=powerpc64le-unknown
diff --git a/00181-allow-arbitrary-timeout-in-condition-wait.patch b/00181-allow-arbitrary-timeout-in-condition-wait.patch
deleted file mode 100644
index 757c7dd..0000000
--- a/00181-allow-arbitrary-timeout-in-condition-wait.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/Lib/threading.py b/Lib/threading.py
-index cb49c4a..c9795a5 100644
---- a/Lib/threading.py
-+++ b/Lib/threading.py
-@@ -305,7 +305,7 @@ class _Condition(_Verbose):
- else:
- return True
-
-- def wait(self, timeout=None):
-+ def wait(self, timeout=None, balancing=True):
- """Wait until notified or until a timeout occurs.
-
- If the calling thread has not acquired the lock when this method is
-@@ -354,7 +354,10 @@ class _Condition(_Verbose):
- remaining = endtime - _time()
- if remaining <= 0:
- break
-- delay = min(delay * 2, remaining, .05)
-+ if balancing:
-+ delay = min(delay * 2, remaining, 0.05)
-+ else:
-+ delay = remaining
- _sleep(delay)
- if not gotit:
- if __debug__:
-@@ -599,7 +602,7 @@ class _Event(_Verbose):
- with self.__cond:
- self.__flag = False
-
-- def wait(self, timeout=None):
-+ def wait(self, timeout=None, balancing=True):
- """Block until the internal flag is true.
-
- If the internal flag is true on entry, return immediately. Otherwise,
-@@ -617,7 +620,7 @@ class _Event(_Verbose):
- """
- with self.__cond:
- if not self.__flag:
-- self.__cond.wait(timeout)
-+ self.__cond.wait(timeout, balancing)
- return self.__flag
-
- # Helper to generate new thread names
-@@ -908,7 +911,7 @@ class Thread(_Verbose):
- if 'dummy_threading' not in _sys.modules:
- raise
-
-- def join(self, timeout=None):
-+ def join(self, timeout=None, balancing=True):
- """Wait until the thread terminates.
-
- This blocks the calling thread until the thread whose join() method is
-@@ -957,7 +960,7 @@ class Thread(_Verbose):
- if __debug__:
- self._note("%s.join(): timed out", self)
- break
-- self.__block.wait(delay)
-+ self.__block.wait(delay, balancing)
- else:
- if __debug__:
- self._note("%s.join(): thread stopped", self)
-@@ -1143,7 +1146,7 @@ class _DummyThread(Thread):
- def _set_daemon(self):
- return True
-
-- def join(self, timeout=None):
-+ def join(self, timeout=None, balancing=True):
- assert False, "cannot join a dummy thread"
-
-
diff --git a/00185-urllib2-honors-noproxy-for-ftp.patch b/00185-urllib2-honors-noproxy-for-ftp.patch
deleted file mode 100644
index b26c4d4..0000000
--- a/00185-urllib2-honors-noproxy-for-ftp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.7.5/Lib/urllib2.py.orig Python-2.7.5/Lib/urllib2.py
---- Python-2.7.5/Lib/urllib2.py.orig 2013-07-17 12:22:58.595525622 +0200
-+++ Python-2.7.5/Lib/urllib2.py 2013-07-17 12:19:59.875898030 +0200
-@@ -728,6 +728,8 @@ class ProxyHandler(BaseHandler):
- if proxy_type is None:
- proxy_type = orig_type
-
-+ req.get_host()
-+
- if req.host and proxy_bypass(req.host):
- return None
-
diff --git a/00187-add-RPATH-to-pyexpat.patch b/00187-add-RPATH-to-pyexpat.patch
deleted file mode 100644
index 0ac5227..0000000
--- a/00187-add-RPATH-to-pyexpat.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -r e8b8279ca118 setup.py
---- a/setup.py Sun Jul 21 21:57:52 2013 -0400
-+++ b/setup.py Tue Aug 20 09:45:31 2013 +0200
-@@ -1480,12 +1480,21 @@
- 'expat/xmltok_impl.h'
- ]
-
-+ # Add an explicit RPATH to pyexpat.so pointing at the directory
-+ # containing the system expat (which has the extra XML_SetHashSalt
-+ # symbol), to avoid an ImportError with a link error if there's an
-+ # LD_LIBRARY_PATH containing a "vanilla" build of expat (without the
-+ # symbol) (rhbz#833271):
-+ EXPAT_RPATH = '/usr/lib64' if sys.maxint == 0x7fffffffffffffff else '/usr/lib'
-+
-+
- exts.append(Extension('pyexpat',
- define_macros = define_macros,
- include_dirs = expat_inc,
- libraries = expat_lib,
- sources = ['pyexpat.c'] + expat_sources,
- depends = expat_depends,
-+ extra_link_args = ['-Wl,-rpath,%s' % EXPAT_RPATH]
- ))
-
- # Fredrik Lundh's cElementTree module. Note that this also
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
deleted file mode 100644
index 76a1324..0000000
--- a/00189-use-rpm-wheels.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
-index 5021ebf..1903cc0 100644
---- a/Lib/ensurepip/__init__.py
-+++ b/Lib/ensurepip/__init__.py
-@@ -1,9 +1,10 @@
- #!/usr/bin/env python2
- from __future__ import print_function
-
-+import distutils.version
-+import glob
- import os
- import os.path
--import pkgutil
- import shutil
- import sys
- import tempfile
-@@ -12,9 +13,19 @@ import tempfile
- __all__ = ["version", "bootstrap"]
-
-
--_SETUPTOOLS_VERSION = "40.6.2"
-+_WHEEL_DIR = "/usr/share/python-wheels/"
-
--_PIP_VERSION = "18.1"
-+def _get_most_recent_wheel_version(pkg):
-+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
-+ suffix = "-py2.py3-none-any.whl"
-+ pattern = "{}*{}".format(prefix, suffix)
-+ versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern))
-+ return str(max(versions, key=distutils.version.LooseVersion))
-+
-+
-+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
-+
-+_PIP_VERSION = _get_most_recent_wheel_version("pip")
-
- _PROJECTS = [
- ("setuptools", _SETUPTOOLS_VERSION),
-@@ -28,8 +39,13 @@ def _run_pip(args, additional_paths=None):
- sys.path = additional_paths + sys.path
-
- # Install the bundled software
-- import pip._internal
-- return pip._internal.main(args)
-+ try:
-+ # pip 10
-+ from pip._internal import main
-+ except ImportError:
-+ # pip 9
-+ from pip import main
-+ return main(args)
-
-
- def version():
-@@ -100,12 +116,9 @@ def _bootstrap(root=None, upgrade=False, user=False,
- additional_paths = []
- for project, version in _PROJECTS:
- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
-- whl = pkgutil.get_data(
-- "ensurepip",
-- "_bundled/{}".format(wheel_name),
-- )
-- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
-- fp.write(whl)
-+ with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp:
-+ with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
-+ fp.write(sfp.read())
-
- additional_paths.append(os.path.join(tmpdir, wheel_name))
-
diff --git a/00191-disable-NOOP.patch b/00191-disable-NOOP.patch
deleted file mode 100644
index 2d4189a..0000000
--- a/00191-disable-NOOP.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
-index 1bb6690..28ed25d 100644
---- a/Lib/test/test_smtplib.py
-+++ b/Lib/test/test_smtplib.py
-@@ -182,6 +182,7 @@ class DebuggingServerTests(unittest.TestCase):
- smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
- smtp.quit()
-
-+ @unittest._skipInRpmBuild("Does not work in network-free environment")
- def testNOOP(self):
- smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
- expected = (250, 'Ok')
diff --git a/00193-enable-loading-sqlite-extensions.patch b/00193-enable-loading-sqlite-extensions.patch
deleted file mode 100644
index 36d053a..0000000
--- a/00193-enable-loading-sqlite-extensions.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- Python-2.7.5/setup.py.orig 2013-05-11 20:32:54.000000000 -0700
-+++ Python-2.7.5/setup.py 2014-02-18 14:16:07.999004901 -0800
-@@ -1168,7 +1168,7 @@ class PyBuildExt(build_ext):
- sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"'))
-
- # Comment this out if you want the sqlite3 module to be able to load extensions.
-- sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1"))
-+ #sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1"))
-
- if host_platform == 'darwin':
- # In every directory on the search path search for a dynamic
diff --git a/00289-disable-nis-detection.patch b/00289-disable-nis-detection.patch
deleted file mode 100644
index 4e185bb..0000000
--- a/00289-disable-nis-detection.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 585e380..9993f11 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1346,11 +1346,7 @@ class PyBuildExt(build_ext):
- else:
- missing.append('resource')
-
-- nis = self._detect_nis(inc_dirs, lib_dirs)
-- if nis is not None:
-- exts.append(nis)
-- else:
-- missing.append('nis')
-+ # nis (Sun yellow pages) is handled in Setup.dist
-
- # Curses support, requiring the System V version of curses, often
- # provided by the ncurses library.
-@@ -2162,51 +2158,6 @@ class PyBuildExt(build_ext):
- # for dlopen, see bpo-32647
- ext.libraries.append('dl')
-
-- def _detect_nis(self, inc_dirs, lib_dirs):
-- if host_platform in {'win32', 'cygwin', 'qnx6'}:
-- return None
--
-- libs = []
-- library_dirs = []
-- includes_dirs = []
--
-- # bpo-32521: glibc has deprecated Sun RPC for some time. Fedora 28
-- # moved headers and libraries to libtirpc and libnsl. The headers
-- # are in tircp and nsl sub directories.
-- rpcsvc_inc = find_file(
-- 'rpcsvc/yp_prot.h', inc_dirs,
-- [os.path.join(inc_dir, 'nsl') for inc_dir in inc_dirs]
-- )
-- rpc_inc = find_file(
-- 'rpc/rpc.h', inc_dirs,
-- [os.path.join(inc_dir, 'tirpc') for inc_dir in inc_dirs]
-- )
-- if rpcsvc_inc is None or rpc_inc is None:
-- # not found
-- return None
-- includes_dirs.extend(rpcsvc_inc)
-- includes_dirs.extend(rpc_inc)
--
-- if self.compiler.find_library_file(lib_dirs, 'nsl'):
-- libs.append('nsl')
-- else:
-- # libnsl-devel: check for libnsl in nsl/ subdirectory
-- nsl_dirs = [os.path.join(lib_dir, 'nsl') for lib_dir in lib_dirs]
-- libnsl = self.compiler.find_library_file(nsl_dirs, 'nsl')
-- if libnsl is not None:
-- library_dirs.append(os.path.dirname(libnsl))
-- libs.append('nsl')
--
-- if self.compiler.find_library_file(lib_dirs, 'tirpc'):
-- libs.append('tirpc')
--
-- return Extension(
-- 'nis', ['nismodule.c'],
-- libraries=libs,
-- library_dirs=library_dirs,
-- include_dirs=includes_dirs
-- )
--
-
- class PyBuildInstall(install):
- # Suppress the warning about installation into the lib_dynload
diff --git a/04000-modularity-disable-tk.patch b/04000-modularity-disable-tk.patch
deleted file mode 100644
index a90f5a1..0000000
--- a/04000-modularity-disable-tk.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -urN Python-2.7.13/Modules/Setup.dist Python-2.7.13_modul/Modules/Setup.dist
---- Python-2.7.13/Modules/Setup.dist 2017-04-21 14:57:13.767444374 +0200
-+++ Python-2.7.13_modul/Modules/Setup.dist 2017-04-21 14:56:49.658953833 +0200
-@@ -326,7 +326,7 @@
- # every system.
-
- # *** Always uncomment this (leave the leading underscore in!):
--_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
-+#_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
- # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
- # -L/usr/local/lib \
- # *** Uncomment and edit to reflect where your Tcl/Tk headers are:
-@@ -345,7 +345,7 @@
- # *** Uncomment and edit for TOGL extension only:
- # -DWITH_TOGL togl.c \
- # *** Uncomment and edit to reflect your Tcl/Tk versions:
-- -ltk -ltcl \
-+# -ltk -ltcl \
- # *** Uncomment and edit to reflect where your X11 libraries are:
- # -L/usr/X11R6/lib \
- # *** Or uncomment this for Solaris:
diff --git a/05000-autotool-intermediates.patch b/05000-autotool-intermediates.patch
deleted file mode 100644
index dfe0257..0000000
--- a/05000-autotool-intermediates.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff -up ./configure.autotool-intermediates ./configure
---- ./configure.autotool-intermediates 2013-04-09 11:24:01.024185796 +0200
-+++ ./configure 2013-04-09 11:24:01.780183954 +0200
-@@ -639,6 +639,8 @@ TRUE
- MACHDEP_OBJS
- DYNLOADFILE
- DLINCLDIR
-+DTRACEHDRS
-+DTRACEOBJS
- THREADOBJ
- LDLAST
- USE_THREAD_MODULE
-@@ -659,6 +661,8 @@ OTHER_LIBTOOL_OPT
- UNIVERSAL_ARCH_FLAGS
- BASECFLAGS
- OPT
-+DEBUG_SUFFIX
-+DEBUG_EXT
- LN
- MKDIR_P
- INSTALL_DATA
-@@ -795,8 +799,11 @@ with_pth
- enable_ipv6
- with_doc_strings
- with_tsc
-+with_count_allocs
-+with_call_profile
- with_pymalloc
- with_valgrind
-+with_dtrace
- with_wctype_functions
- with_fpectl
- with_libm
-@@ -1472,8 +1479,11 @@ Optional Packages:
- --with-pth use GNU pth threading libraries
- --with(out)-doc-strings disable/enable documentation strings
- --with(out)-tsc enable/disable timestamp counter profile
-+ --with(out)count-allocs enable/disable per-type instance accounting
-+ --with(out)-call-profile enable/disable statistics on function call invocation
- --with(out)-pymalloc disable/enable specialized mallocs
- --with-valgrind Enable Valgrind support
-+ --with(out)-dtrace disable/enable dtrace support
- --with-wctype-functions use wctype.h functions
- --with-fpectl enable SIGFPE catching
- --with-libm=STRING math library
-@@ -5343,8 +5353,8 @@ $as_echo "#define Py_ENABLE_SHARED 1" >>
- INSTSONAME="$LDLIBRARY".$SOVERSION
- ;;
- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
-- LDLIBRARY='libpython$(VERSION).so'
-- BLDLIBRARY='-L. -lpython$(VERSION)'
-+ LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
-+ BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
- RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- case $ac_sys_system in
- FreeBSD*)
-@@ -5367,7 +5377,7 @@ $as_echo "#define Py_ENABLE_SHARED 1" >>
- ;;
- OSF*)
- LDLIBRARY='libpython$(VERSION).so'
-- BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
-+ BLDLIBRARY='-L. -lpython$(VERSION)'
- RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- ;;
- atheos*)
-@@ -5894,6 +5904,14 @@ $as_echo "no" >&6; }
- fi
-
-
-+if test "$Py_DEBUG" = 'true'
-+then
-+ DEBUG_EXT=_d
-+ DEBUG_SUFFIX=-debug
-+fi
-+
-+
-+
- # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
- # merged with this chunk of code?
-
-@@ -9958,6 +9976,50 @@ $as_echo "no" >&6; }
- fi
-
-
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-count-allocs" >&5
-+$as_echo_n "checking for --with-count-allocs... " >&6; }
-+
-+# Check whether --with-count-allocs was given.
-+if test "${with_count_allocs+set}" = set; then :
-+ withval=$with_count_allocs;
-+if test "$withval" != no
-+then
-+
-+$as_echo "#define COUNT_ALLOCS 1" >>confdefs.h
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-call-profile" >&5
-+$as_echo_n "checking for --with-call-profile... " >&6; }
-+
-+# Check whether --with-call-profile was given.
-+if test "${with_call_profile+set}" = set; then :
-+ withval=$with_call_profile;
-+if test "$withval" != no
-+then
-+
-+$as_echo "#define CALL_PROFILE 1" >>confdefs.h
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
- # Check for Python-specific malloc support
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5
- $as_echo_n "checking for --with-pymalloc... " >&6; }
-@@ -10007,6 +10069,46 @@ fi
-
- fi
-
-+# Check for dtrace support
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5
-+$as_echo_n "checking for --with-dtrace... " >&6; }
-+
-+# Check whether --with-dtrace was given.
-+if test "${with_dtrace+set}" = set; then :
-+ withval=$with_dtrace;
-+fi
-+
-+
-+if test ! -z "$with_dtrace"
-+then
-+ if dtrace -G -o /dev/null -s $srcdir/Include/pydtrace.d 2>/dev/null
-+ then
-+
-+$as_echo "#define WITH_DTRACE 1" >>confdefs.h
-+
-+ with_dtrace="Sun"
-+ DTRACEOBJS="Python/dtrace.o"
-+ DTRADEHDRS=""
-+ elif dtrace -h -o /dev/null -s $srcdir/Include/pydtrace.d
-+ then
-+
-+$as_echo "#define WITH_DTRACE 1" >>confdefs.h
-+
-+ with_dtrace="Apple"
-+ DTRACEOBJS=""
-+ DTRADEHDRS="pydtrace.h"
-+ else
-+ with_dtrace="no"
-+ fi
-+else
-+ with_dtrace="no"
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5
-+$as_echo "$with_dtrace" >&6; }
-+
-+
-+
- # Check for --with-wctype-functions
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wctype-functions" >&5
- $as_echo_n "checking for --with-wctype-functions... " >&6; }
-diff -up ./pyconfig.h.in.autotool-intermediates ./pyconfig.h.in
---- ./pyconfig.h.in.autotool-intermediates 2013-04-09 11:24:01.020185806 +0200
-+++ ./pyconfig.h.in 2013-04-09 11:24:02.088183204 +0200
-@@ -18,6 +18,12 @@
- /* Define this if you have BeOS threads. */
- #undef BEOS_THREADS
-
-+/* Define to keep records on function call invocation */
-+#undef CALL_PROFILE
-+
-+/* Define to keep records of the number of instances of each type */
-+#undef COUNT_ALLOCS
-+
- /* Define if you have the Mach cthreads package */
- #undef C_THREADS
-
-@@ -1119,12 +1125,6 @@
- /* Define to profile with the Pentium timestamp counter */
- #undef WITH_TSC
-
--/* Define to keep records of the number of instances of each type */
--#undef COUNT_ALLOCS
--
--/* Define to keep records on function call invocation */
--#undef CALL_PROFILE
--
- /* Define if you want pymalloc to be disabled when running under valgrind */
- #undef WITH_VALGRIND
-
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..1cd06bc
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Obsoleted by python27, see https://fedoraproject.org/wiki/Changes/RetirePython2
diff --git a/libpython.stp b/libpython.stp
deleted file mode 100644
index 56cf2fb..0000000
--- a/libpython.stp
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Systemtap tapset to make it easier to trace Python */
-
-/*
- Define python.function.entry/return:
-*/
-probe python.function.entry = process("python").library("LIBRARY_PATH").mark("function__entry")
-{
- filename = user_string($arg1);
- funcname = user_string($arg2);
- lineno = $arg3;
-}
-probe python.function.return = process("python").library("LIBRARY_PATH").mark("function__return")
-{
- filename = user_string($arg1);
- funcname = user_string($arg2);
- lineno = $arg3;
-}
diff --git a/pyfuntop.stp b/pyfuntop.stp
deleted file mode 100644
index f235a23..0000000
--- a/pyfuntop.stp
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/stap
-
-global fn_calls;
-
-probe python.function.entry
-{
- fn_calls[pid(), filename, funcname, lineno] += 1;
-}
-
-probe timer.ms(1000) {
- printf("\033[2J\033[1;1H") /* clear screen */
- printf("%6s %80s %6s %30s %6s\n",
- "PID", "FILENAME", "LINE", "FUNCTION", "CALLS")
- foreach ([pid, filename, funcname, lineno] in fn_calls- limit 20) {
- printf("%6d %80s %6d %30s %6d\n",
- pid, filename, lineno, funcname,
- fn_calls[pid, filename, funcname, lineno]);
- }
-
- delete fn_calls;
-}
diff --git a/pynche b/pynche
deleted file mode 100644
index 4032e41..0000000
--- a/pynche
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-exec `python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific = True))"`/pynche/pynche
diff --git a/python-2.5-cflags.patch b/python-2.5-cflags.patch
deleted file mode 100644
index 32243bf..0000000
--- a/python-2.5-cflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- Python-2.5c1/Makefile.pre.in.cflags 2006-08-18 11:05:40.000000000 -0400
-+++ Python-2.5c1/Makefile.pre.in 2006-08-18 11:09:26.000000000 -0400
-@@ -334,7 +334,7 @@
-
- # Build the interpreter
- $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
-- $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
-+ $(LINKCC) $(CFLAGS) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
- Modules/python.o \
- $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
diff --git a/python-2.5.1-plural-fix.patch b/python-2.5.1-plural-fix.patch
deleted file mode 100644
index 5002cb2..0000000
--- a/python-2.5.1-plural-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py
---- Python-2.5.1/Lib/gettext.py.plural 2007-09-10 11:38:57.000000000 -0400
-+++ Python-2.5.1/Lib/gettext.py 2007-09-10 11:39:00.000000000 -0400
-@@ -299,6 +299,8 @@ class GNUTranslations(NullTranslations):
- item = item.strip()
- if not item:
- continue
-+ if item.startswith("#"):
-+ continue
- k = v = None
- if ':' in item:
- k, v = item.split(':', 1)
diff --git a/python-2.5.1-sqlite-encoding.patch b/python-2.5.1-sqlite-encoding.patch
deleted file mode 100644
index ff2a3f8..0000000
--- a/python-2.5.1-sqlite-encoding.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up Python-2.5.1/Lib/sqlite3/dbapi2.py.encoding Python-2.5.1/Lib/sqlite3/dbapi2.py
---- Python-2.5.1/Lib/sqlite3/dbapi2.py.encoding 2007-09-14 10:41:50.000000000 -0400
-+++ Python-2.5.1/Lib/sqlite3/dbapi2.py 2007-09-14 10:42:00.000000000 -0400
-@@ -1,7 +1,6 @@
--# -*- coding: iso-8859-1 -*-
- # pysqlite2/dbapi2.py: the DB-API 2.0 interface
- #
--# Copyright (C) 2004-2005 Gerhard Hring <gh(a)ghaering.de>
-+# Copyright (C) 2004-2005 Gerhard Haering <gh(a)ghaering.de>
- #
- # This file is part of pysqlite.
- #
-diff -up Python-2.5.1/Lib/sqlite3/__init__.py.encoding Python-2.5.1/Lib/sqlite3/__init__.py
---- Python-2.5.1/Lib/sqlite3/__init__.py.encoding 2007-09-14 10:41:47.000000000 -0400
-+++ Python-2.5.1/Lib/sqlite3/__init__.py 2007-09-14 10:42:06.000000000 -0400
-@@ -1,7 +1,6 @@
--#-*- coding: ISO-8859-1 -*-
- # pysqlite2/__init__.py: the pysqlite2 package.
- #
--# Copyright (C) 2005 Gerhard Hring <gh(a)ghaering.de>
-+# Copyright (C) 2005 Gerhard Haering <gh(a)ghaering.de>
- #
- # This file is part of pysqlite.
- #
diff --git a/python-2.6-rpath.patch b/python-2.6-rpath.patch
deleted file mode 100644
index 33d7cf6..0000000
--- a/python-2.6-rpath.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.6/configure.ac.rpath Python-2.6/configure.ac
---- Python-2.6/configure.ac.rpath 2008-11-24 02:51:06.000000000 -0500
-+++ Python-2.6/configure.ac 2008-11-24 02:51:21.000000000 -0500
-@@ -729,7 +729,7 @@ if test $enable_shared = "yes"; then
- ;;
- OSF*)
- LDLIBRARY='libpython$(VERSION).so'
-- BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
-+ BLDLIBRARY='-L. -lpython$(VERSION)'
- RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- ;;
- atheos*)
diff --git a/python-2.6.4-distutils-rpath.patch b/python-2.6.4-distutils-rpath.patch
deleted file mode 100644
index f156507..0000000
--- a/python-2.6.4-distutils-rpath.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up Python-2.6.4/Lib/distutils/unixccompiler.py.distutils-rpath Python-2.6.4/Lib/distutils/unixccompiler.py
---- Python-2.6.4/Lib/distutils/unixccompiler.py.distutils-rpath 2009-09-09 04:34:06.000000000 -0400
-+++ Python-2.6.4/Lib/distutils/unixccompiler.py 2010-03-15 21:33:25.000000000 -0400
-@@ -142,6 +142,16 @@ class UnixCCompiler(CCompiler):
- if sys.platform == "cygwin":
- exe_extension = ".exe"
-
-+ def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
-+ """Remove standard library path from rpath"""
-+ libraries, library_dirs, runtime_library_dirs = \
-+ CCompiler._fix_lib_args(self, libraries, library_dirs,
-+ runtime_library_dirs)
-+ libdir = sysconfig.get_config_var('LIBDIR')
-+ if runtime_library_dirs and (libdir in runtime_library_dirs):
-+ runtime_library_dirs.remove(libdir)
-+ return libraries, library_dirs, runtime_library_dirs
-+
- def preprocess(self, source,
- output_file=None, macros=None, include_dirs=None,
- extra_preargs=None, extra_postargs=None):
diff --git a/python-2.7-lib64-sysconfig.patch b/python-2.7-lib64-sysconfig.patch
deleted file mode 100644
index 0cef361..0000000
--- a/python-2.7-lib64-sysconfig.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up Python-2.7/Lib/sysconfig.py.lib64-sysconfig Python-2.7/Lib/sysconfig.py
---- Python-2.7/Lib/sysconfig.py.lib64-sysconfig 2010-07-08 14:18:41.386898476 -0400
-+++ Python-2.7/Lib/sysconfig.py 2010-07-08 14:22:02.837896461 -0400
-@@ -7,20 +7,20 @@ from os.path import pardir, realpath
-
- _INSTALL_SCHEMES = {
- 'posix_prefix': {
-- 'stdlib': '{base}/lib/python{py_version_short}',
-- 'platstdlib': '{platbase}/lib/python{py_version_short}',
-+ 'stdlib': '{base}/lib64/python{py_version_short}',
-+ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
-- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
-+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
- 'include': '{base}/include/python{py_version_short}',
- 'platinclude': '{platbase}/include/python{py_version_short}',
- 'scripts': '{base}/bin',
- 'data': '{base}',
- },
- 'posix_home': {
-- 'stdlib': '{base}/lib/python',
-- 'platstdlib': '{base}/lib/python',
-+ 'stdlib': '{base}/lib64/python',
-+ 'platstdlib': '{base}/lib64/python',
- 'purelib': '{base}/lib/python',
-- 'platlib': '{base}/lib/python',
-+ 'platlib': '{base}/lib64/python',
- 'include': '{base}/include/python',
- 'platinclude': '{base}/include/python',
- 'scripts': '{base}/bin',
-@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
- 'data' : '{userbase}',
- },
- 'posix_user': {
-- 'stdlib': '{userbase}/lib/python{py_version_short}',
-- 'platstdlib': '{userbase}/lib/python{py_version_short}',
-+ 'stdlib': '{userbase}/lib64/python{py_version_short}',
-+ 'platstdlib': '{userbase}/lib64/python{py_version_short}',
- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
-- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
-+ 'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
- 'include': '{userbase}/include/python{py_version_short}',
- 'scripts': '{userbase}/bin',
- 'data' : '{userbase}',
diff --git a/python-2.7.1-config.patch b/python-2.7.1-config.patch
deleted file mode 100644
index 4b076db..0000000
--- a/python-2.7.1-config.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-diff --git a/Modules/Setup.dist b/Modules/Setup.dist
-index bbc9222..2cf35a9 100644
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -153,7 +153,7 @@ GLHACK=-Dclear=__GLclear
- # modules are to be built as shared libraries (see above for more
- # detail; also note that *static* reverses this effect):
-
--#*shared*
-+*shared*
-
- # GNU readline. Unlike previous Python incarnations, GNU readline is
- # now incorporated in an optional module, configured in the Setup file
-@@ -163,33 +163,33 @@ GLHACK=-Dclear=__GLclear
- # it, depending on your system -- see the GNU readline instructions.
- # It's okay for this to be a shared library, too.
-
--#readline readline.c -lreadline -ltermcap
-+readline readline.c -lreadline -ltermcap
-
-
- # Modules that should always be present (non UNIX dependent):
-
--#array arraymodule.c # array objects
--#cmath cmathmodule.c _math.c # -lm # complex math library functions
--#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
--#_struct _struct.c # binary structure packing/unpacking
--#time timemodule.c # -lm # time operations and variables
--#operator operator.c # operator.add() and similar goodies
--#_testcapi _testcapimodule.c # Python C API test module
--#_random _randommodule.c # Random number generator
--#_collections _collectionsmodule.c # Container types
-+array arraymodule.c # array objects
-+cmath cmathmodule.c _math.c # -lm # complex math library functions
-+math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
-+_struct _struct.c # binary structure packing/unpacking
-+time timemodule.c # -lm # time operations and variables
-+operator operator.c # operator.add() and similar goodies
-+_testcapi _testcapimodule.c # Python C API test module
-+_random _randommodule.c # Random number generator
-+_collections _collectionsmodule.c # Container types
- #_heapq _heapqmodule.c # Heapq type
--#itertools itertoolsmodule.c # Functions creating iterators for efficient looping
--#strop stropmodule.c # String manipulations
--#_functools _functoolsmodule.c # Tools for working with functions and callable objects
-+itertools itertoolsmodule.c # Functions creating iterators for efficient looping
-+strop stropmodule.c # String manipulations
-+_functools _functoolsmodule.c # Tools for working with functions and callable objects
- #_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
- #_pickle _pickle.c # pickle accelerator
- #datetime datetimemodule.c # date/time type
--#_bisect _bisectmodule.c # Bisection algorithms
-+_bisect _bisectmodule.c # Bisection algorithms
-
--#unicodedata unicodedata.c # static Unicode character database
-+unicodedata unicodedata.c # static Unicode character database
-
- # access to ISO C locale support
--#_locale _localemodule.c # -lintl
-+_locale _localemodule.c # -lintl
-
- # Standard I/O baseline
- #_io -I$(srcdir)/Modules/_io _io/bufferedio.c _io/bytesio.c _io/fileio.c _io/iobase.c _io/_iomodule.c _io/stringio.c _io/textio.c
-@@ -199,41 +199,41 @@ GLHACK=-Dclear=__GLclear
- # (If you have a really backward UNIX, select and socket may not be
- # supported...)
-
--#fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
--#spwd spwdmodule.c # spwd(3)
--#grp grpmodule.c # grp(3)
--#select selectmodule.c # select(2); not on ancient System V
-+fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
-+spwd spwdmodule.c # spwd(3)
-+grp grpmodule.c # grp(3)
-+select selectmodule.c # select(2); not on ancient System V
-
- # Memory-mapped files (also works on Win32).
--#mmap mmapmodule.c
-+mmap mmapmodule.c
-
- # CSV file helper
--#_csv _csv.c
-+_csv _csv.c
-
- # Socket module helper for socket(2)
--#_socket socketmodule.c timemodule.c
-+_socket socketmodule.c timemodule.c
-
- # Socket module helper for SSL support; you must comment out the other
- # socket line above, and possibly edit the SSL variable:
- #SSL=/usr/local/ssl
--#_ssl _ssl.c \
--# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
--# -L$(SSL)/lib -lssl -lcrypto
-+_ssl _ssl.c \
-+ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-+ -L$(SSL)/lib -lssl -lcrypto
-
- # The crypt module is now disabled by default because it breaks builds
- # on many systems (where -lcrypt is needed), e.g. Linux (I believe).
- #
- # First, look at Setup.config; configure may have set this for you.
-
--#crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
-+crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
-
-
- # Some more UNIX dependent modules -- off by default, since these
- # are not supported by all UNIX systems:
-
--#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
--#termios termios.c # Steen Lumholt's termios module
--#resource resource.c # Jeremy Hylton's rlimit interface
-+nis nismodule.c -lnsl -ltirpc -I/usr/include/tirpc -I/usr/include/nsl -L/usr/lib/nsl
-+termios termios.c # Steen Lumholt's termios module
-+resource resource.c # Jeremy Hylton's rlimit interface
-
-
- # Multimedia modules -- off by default.
-@@ -241,8 +241,8 @@ GLHACK=-Dclear=__GLclear
- # #993173 says audioop works on 64-bit platforms, though.
- # These represent audio samples or images as strings:
-
--#audioop audioop.c # Operations on audio samples
--#imageop imageop.c # Operations on images
-+audioop audioop.c # Operations on audio samples
-+imageop imageop.c # Operations on images
-
-
- # Note that the _md5 and _sha modules are normally only built if the
-@@ -252,14 +252,14 @@ GLHACK=-Dclear=__GLclear
- # Message-Digest Algorithm, described in RFC 1321. The necessary files
- # md5.c and md5.h are included here.
-
--#_md5 md5module.c md5.c
-+_md5 md5module.c md5.c
-
-
- # The _sha module implements the SHA checksum algorithms.
- # (NIST's Secure Hash Algorithms.)
--#_sha shamodule.c
--#_sha256 sha256module.c
--#_sha512 sha512module.c
-+_sha shamodule.c
-+_sha256 sha256module.c
-+_sha512 sha512module.c
-
-
- # SGI IRIX specific modules -- off by default.
-@@ -306,12 +306,12 @@ GLHACK=-Dclear=__GLclear
- # A Linux specific module -- off by default; this may also work on
- # some *BSDs.
-
--#linuxaudiodev linuxaudiodev.c
-+linuxaudiodev linuxaudiodev.c
-
-
- # George Neville-Neil's timing module:
-
--#timing timingmodule.c
-+timing timingmodule.c
-
-
- # The _tkinter module.
-@@ -326,7 +326,7 @@ GLHACK=-Dclear=__GLclear
- # every system.
-
- # *** Always uncomment this (leave the leading underscore in!):
--# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
-+_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
- # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
- # -L/usr/local/lib \
- # *** Uncomment and edit to reflect where your Tcl/Tk headers are:
-@@ -336,7 +336,7 @@ GLHACK=-Dclear=__GLclear
- # *** Or uncomment this for Solaris:
- # -I/usr/openwin/include \
- # *** Uncomment and edit for Tix extension only:
--# -DWITH_TIX -ltix8.1.8.2 \
-+ -DWITH_TIX -ltix \
- # *** Uncomment and edit for BLT extension only:
- # -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
- # *** Uncomment and edit for PIL (TkImaging) extension only:
-@@ -345,7 +345,7 @@ GLHACK=-Dclear=__GLclear
- # *** Uncomment and edit for TOGL extension only:
- # -DWITH_TOGL togl.c \
- # *** Uncomment and edit to reflect your Tcl/Tk versions:
--# -ltk8.2 -ltcl8.2 \
-+ -ltk -ltcl \
- # *** Uncomment and edit to reflect where your X11 libraries are:
- # -L/usr/X11R6/lib \
- # *** Or uncomment this for Solaris:
-@@ -355,7 +355,7 @@ GLHACK=-Dclear=__GLclear
- # *** Uncomment for AIX:
- # -lld \
- # *** Always uncomment this; X11 libraries to link with:
--# -lX11
-+ -lX11
-
- # Lance Ellinghaus's syslog module
- #syslog syslogmodule.c # syslog daemon interface
-@@ -377,7 +377,7 @@ GLHACK=-Dclear=__GLclear
- # it is a highly experimental and dangerous device for calling
- # *arbitrary* C functions in *arbitrary* shared libraries:
-
--#dl dlmodule.c
-+dl dlmodule.c
-
-
- # Modules that provide persistent dictionary-like semantics. You will
-@@ -400,7 +400,7 @@ GLHACK=-Dclear=__GLclear
- #
- # First, look at Setup.config; configure may have set this for you.
-
--#gdbm gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
-+gdbm gdbmmodule.c -lgdbm
-
-
- # Sleepycat Berkeley DB interface.
-@@ -415,11 +415,9 @@ GLHACK=-Dclear=__GLclear
- #
- # Edit the variables DB and DBLIBVERto point to the db top directory
- # and the subdirectory of PORT where you built it.
--#DB=/usr/local/BerkeleyDB.4.0
--#DBLIBVER=4.0
--#DBINC=$(DB)/include
--#DBLIB=$(DB)/lib
--#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
-+DBINC=/usr/include/libdb
-+DBLIB=/usr/lib
-+_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb
-
- # Historical Berkeley DB 1.85
- #
-@@ -434,14 +432,14 @@ GLHACK=-Dclear=__GLclear
-
-
- # Helper module for various ascii-encoders
--#binascii binascii.c
-+binascii binascii.c
-
- # Fred Drake's interface to the Python parser
--#parser parsermodule.c
-+parser parsermodule.c
-
- # cStringIO and cPickle
--#cStringIO cStringIO.c
--#cPickle cPickle.c
-+cStringIO cStringIO.c
-+cPickle cPickle.c
-
-
- # Lee Busby's SIGFPE modules.
-@@ -464,7 +462,7 @@ GLHACK=-Dclear=__GLclear
- # Andrew Kuchling's zlib module.
- # This require zlib 1.1.3 (or later).
- # See http://www.gzip.org/zlib/
--#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-
- # Interface to the Expat XML parser
- # More information on Expat can be found at www.libexpat.org.
-@@ -475,14 +473,14 @@ GLHACK=-Dclear=__GLclear
- # Hye-Shik Chang's CJKCodecs
-
- # multibytecodec is required for all the other CJK codec modules
--#_multibytecodec cjkcodecs/multibytecodec.c
--
--#_codecs_cn cjkcodecs/_codecs_cn.c
--#_codecs_hk cjkcodecs/_codecs_hk.c
--#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
--#_codecs_jp cjkcodecs/_codecs_jp.c
--#_codecs_kr cjkcodecs/_codecs_kr.c
--#_codecs_tw cjkcodecs/_codecs_tw.c
-+_multibytecodec cjkcodecs/multibytecodec.c
-+
-+_codecs_cn cjkcodecs/_codecs_cn.c
-+_codecs_hk cjkcodecs/_codecs_hk.c
-+_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
-+_codecs_jp cjkcodecs/_codecs_jp.c
-+_codecs_kr cjkcodecs/_codecs_kr.c
-+_codecs_tw cjkcodecs/_codecs_tw.c
-
- # Example -- included for reference only:
- # xx xxmodule.c
diff --git a/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch b/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
deleted file mode 100644
index bb38281..0000000
--- a/python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up Python-2.7.1/Lib/test/test_abc.py.cache_leak Python-2.7.1/Lib/test/test_abc.py
---- Python-2.7.1/Lib/test/test_abc.py.cache_leak 2010-12-28 18:06:35.551938356 -0500
-+++ Python-2.7.1/Lib/test/test_abc.py 2010-12-28 18:09:09.021059202 -0500
-@@ -3,6 +3,8 @@
-
- """Unit tests for abc.py."""
-
-+import sys
-+
- import unittest, weakref
- from test import test_support
-
-@@ -229,8 +231,12 @@ class TestABC(unittest.TestCase):
- # Trigger cache.
- C().f()
- del C
-- test_support.gc_collect()
-- self.assertEqual(r(), None)
-+ # This doesn't work in our debug build, presumably due to its use
-+ # of COUNT_ALLOCS, which makes heap-allocated types immortal (once
-+ # they've ever had an instance):
-+ if not hasattr(sys, 'getcounts'):
-+ test_support.gc_collect()
-+ self.assertEqual(r(), None)
-
- def test_main():
- test_support.run_unittest(TestABC)
diff --git a/python-2.7.2-add-extension-suffix-to-python-config.patch b/python-2.7.2-add-extension-suffix-to-python-config.patch
deleted file mode 100644
index d1ff052..0000000
--- a/python-2.7.2-add-extension-suffix-to-python-config.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up Python-2.7.2/Misc/python-config.in.add-extension-suffix-to-python-config Python-2.7.2/Misc/python-config.in
---- Python-2.7.2/Misc/python-config.in.add-extension-suffix-to-python-config 2011-08-23 18:15:41.832497124 -0400
-+++ Python-2.7.2/Misc/python-config.in 2011-08-23 18:17:25.854490011 -0400
-@@ -6,7 +6,7 @@ import getopt
- from distutils import sysconfig
-
- valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
-- 'ldflags', 'help']
-+ 'ldflags', 'extension-suffix', 'help']
-
- def exit_with_usage(code=1):
- print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
-@@ -54,3 +54,5 @@ for opt in opt_flags:
- libs.extend(getvar('LINKFORSHARED').split())
- print ' '.join(libs)
-
-+ elif opt == '--extension-suffix':
-+ print (sys.pydebug and "_d" or "") + sysconfig.get_config_var('SO')
diff --git a/python-2.7rc1-socketmodule-constants.patch b/python-2.7rc1-socketmodule-constants.patch
deleted file mode 100644
index c32e103..0000000
--- a/python-2.7rc1-socketmodule-constants.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- Python-2.7rc1/Modules/socketmodule.c.socketmodule 2010-05-09 10:46:46.000000000 -0400
-+++ Python-2.7rc1/Modules/socketmodule.c 2010-06-07 23:04:19.374234780 -0400
-@@ -4783,6 +4783,61 @@ init_socket(void)
- PyModule_AddIntConstant(m, "SO_SETFIB", SO_SETFIB);
- #endif
-
-+#ifdef SO_SNDBUFFORCE
-+ PyModule_AddIntConstant(m, "SO_SNDBUFFORCE", SO_SNDBUFFORCE);
-+#endif
-+#ifdef SO_RCVBUFFORCE
-+ PyModule_AddIntConstant(m, "SO_RCVBUFFORCE", SO_RCVBUFFORCE);
-+#endif
-+#ifdef SO_NO_CHECK
-+ PyModule_AddIntConstant(m, "SO_NO_CHECK", SO_NO_CHECK);
-+#endif
-+#ifdef SO_PRIORITY
-+ PyModule_AddIntConstant(m, "SO_PRIORITY", SO_PRIORITY);
-+#endif
-+#ifdef SO_BSDCOMPAT
-+ PyModule_AddIntConstant(m, "SO_BSDCOMPAT", SO_BSDCOMPAT);
-+#endif
-+#ifdef SO_PASSCRED
-+ PyModule_AddIntConstant(m, "SO_PASSCRED", SO_PASSCRED);
-+#endif
-+#ifdef SO_PEERCRED
-+ PyModule_AddIntConstant(m, "SO_PEERCRED", SO_PEERCRED);
-+#endif
-+#ifdef SO_SECURITY_AUTHENTICATION
-+ PyModule_AddIntConstant(m, "SO_SECURITY_AUTHENTICATION", SO_SECURITY_AUTHENTICATION);
-+#endif
-+#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
-+ PyModule_AddIntConstant(m, "SO_SECURITY_ENCRYPTION_TRANSPORT", SO_SECURITY_ENCRYPTION_TRANSPORT);
-+#endif
-+#ifdef SO_SECURITY_ENCRYPTION_NETWORK
-+ PyModule_AddIntConstant(m, "SO_SECURITY_ENCRYPTION_NETWORK", SO_SECURITY_ENCRYPTION_NETWORK);
-+#endif
-+#ifdef SO_BINDTODEVICE
-+ PyModule_AddIntConstant(m, "SO_BINDTODEVICE", SO_BINDTODEVICE);
-+#endif
-+#ifdef SO_ATTACH_FILTER
-+ PyModule_AddIntConstant(m, "SO_ATTACH_FILTER", SO_ATTACH_FILTER);
-+#endif
-+#ifdef SO_DETACH_FILTER
-+ PyModule_AddIntConstant(m, "SO_DETACH_FILTER", SO_DETACH_FILTER);
-+#endif
-+#ifdef SO_PEERNAME
-+ PyModule_AddIntConstant(m, "SO_PEERNAME", SO_PEERNAME);
-+#endif
-+#ifdef SO_TIMESTAMP
-+ PyModule_AddIntConstant(m, "SO_TIMESTAMP", SO_TIMESTAMP);
-+#endif
-+#ifdef SO_PEERSEC
-+ PyModule_AddIntConstant(m, "SO_PEERSEC", SO_PEERSEC);
-+#endif
-+#ifdef SO_PASSSEC
-+ PyModule_AddIntConstant(m, "SO_PASSSEC", SO_PASSSEC);
-+#endif
-+#ifdef SO_TIMESTAMPNS
-+ PyModule_AddIntConstant(m, "SO_TIMESTAMPNS", SO_TIMESTAMPNS);
-+#endif
-+
- /* Maximum number of connections for "listen" */
- #ifdef SOMAXCONN
- PyModule_AddIntConstant(m, "SOMAXCONN", SOMAXCONN);
diff --git a/python-2.7rc1-socketmodule-constants2.patch b/python-2.7rc1-socketmodule-constants2.patch
deleted file mode 100644
index 896ac88..0000000
--- a/python-2.7rc1-socketmodule-constants2.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up Python-2.7rc1/Modules/socketmodule.c.socketmodule2 Python-2.7rc1/Modules/socketmodule.c
---- Python-2.7rc1/Modules/socketmodule.c.socketmodule2 2010-06-07 23:06:59.133498087 -0400
-+++ Python-2.7rc1/Modules/socketmodule.c 2010-06-07 23:11:51.249520087 -0400
-@@ -5253,6 +5253,15 @@ init_socket(void)
- #ifdef TCP_QUICKACK
- PyModule_AddIntConstant(m, "TCP_QUICKACK", TCP_QUICKACK);
- #endif
-+#ifdef TCP_CONGESTION
-+ PyModule_AddIntConstant(m, "TCP_CONGESTION", TCP_CONGESTION);
-+#endif
-+#ifdef TCP_MD5SIG
-+ PyModule_AddIntConstant(m, "TCP_MD5SIG", TCP_MD5SIG);
-+#endif
-+#ifdef TCP_MD5SIG_MAXKEYLEN
-+ PyModule_AddIntConstant(m, "TCP_MD5SIG_MAXKEYLEN", TCP_MD5SIG_MAXKEYLEN);
-+#endif
-
-
- /* IPX options */
diff --git a/python-gdb.py b/python-gdb.py
deleted file mode 100644
index 640b7f6..0000000
--- a/python-gdb.py
+++ /dev/null
@@ -1,1392 +0,0 @@
-#!/usr/bin/python
-'''
-From gdb 7 onwards, gdb's build can be configured --with-python, allowing gdb
-to be extended with Python code e.g. for library-specific data visualizations,
-such as for the C++ STL types. Documentation on this API can be seen at:
-http://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html
-
-
-This python module deals with the case when the process being debugged (the
-"inferior process" in gdb parlance) is itself python, or more specifically,
-linked against libpython. In this situation, almost every item of data is a
-(PyObject*), and having the debugger merely print their addresses is not very
-enlightening.
-
-This module embeds knowledge about the implementation details of libpython so
-that we can emit useful visualizations e.g. a string, a list, a dict, a frame
-giving file/line information and the state of local variables
-
-In particular, given a gdb.Value corresponding to a PyObject* in the inferior
-process, we can generate a "proxy value" within the gdb process. For example,
-given a PyObject* in the inferior process that is in fact a PyListObject*
-holding three PyObject* that turn out to be PyStringObject* instances, we can
-generate a proxy value within the gdb process that is a list of strings:
- ["foo", "bar", "baz"]
-
-Doing so can be expensive for complicated graphs of objects, and could take
-some time, so we also have a "write_repr" method that writes a representation
-of the data to a file-like object. This allows us to stop the traversal by
-having the file-like object raise an exception if it gets too much data.
-
-With both "proxyval" and "write_repr" we keep track of the set of all addresses
-visited so far in the traversal, to avoid infinite recursion due to cycles in
-the graph of object references.
-
-We try to defer gdb.lookup_type() invocations for python types until as late as
-possible: for a dynamically linked python binary, when the process starts in
-the debugger, the libpython.so hasn't been dynamically loaded yet, so none of
-the type names are known to the debugger
-
-The module also extends gdb with some python-specific commands.
-'''
-
-import gdb
-
-# Look up the gdb.Type for some standard types:
-_type_char_ptr = gdb.lookup_type('char').pointer() # char*
-_type_unsigned_char_ptr = gdb.lookup_type('unsigned char').pointer() # unsigned char*
-_type_void_ptr = gdb.lookup_type('void').pointer() # void*
-_type_size_t = gdb.lookup_type('size_t')
-
-SIZEOF_VOID_P = _type_void_ptr.sizeof
-
-
-Py_TPFLAGS_HEAPTYPE = (1L << 9)
-
-Py_TPFLAGS_INT_SUBCLASS = (1L << 23)
-Py_TPFLAGS_LONG_SUBCLASS = (1L << 24)
-Py_TPFLAGS_LIST_SUBCLASS = (1L << 25)
-Py_TPFLAGS_TUPLE_SUBCLASS = (1L << 26)
-Py_TPFLAGS_STRING_SUBCLASS = (1L << 27)
-Py_TPFLAGS_UNICODE_SUBCLASS = (1L << 28)
-Py_TPFLAGS_DICT_SUBCLASS = (1L << 29)
-Py_TPFLAGS_BASE_EXC_SUBCLASS = (1L << 30)
-Py_TPFLAGS_TYPE_SUBCLASS = (1L << 31)
-
-
-MAX_OUTPUT_LEN=1024
-
-class NullPyObjectPtr(RuntimeError):
- pass
-
-
-def safety_limit(val):
- # Given a integer value from the process being debugged, limit it to some
- # safety threshold so that arbitrary breakage within said process doesn't
- # break the gdb process too much (e.g. sizes of iterations, sizes of lists)
- return min(val, 1000)
-
-
-def safe_range(val):
- # As per range, but don't trust the value too much: cap it to a safety
- # threshold in case the data was corrupted
- return xrange(safety_limit(val))
-
-
-class StringTruncated(RuntimeError):
- pass
-
-class TruncatedStringIO(object):
- '''Similar to cStringIO, but can truncate the output by raising a
- StringTruncated exception'''
- def __init__(self, maxlen=None):
- self._val = ''
- self.maxlen = maxlen
-
- def write(self, data):
- if self.maxlen:
- if len(data) + len(self._val) > self.maxlen:
- # Truncation:
- self._val += data[0:self.maxlen - len(self._val)]
- raise StringTruncated()
-
- self._val += data
-
- def getvalue(self):
- return self._val
-
-class PyObjectPtr(object):
- """
- Class wrapping a gdb.Value that's a either a (PyObject*) within the
- inferior process, or some subclass pointer e.g. (PyStringObject*)
-
- There will be a subclass for every refined PyObject type that we care
- about.
-
- Note that at every stage the underlying pointer could be NULL, point
- to corrupt data, etc; this is the debugger, after all.
- """
- _typename = 'PyObject'
-
- def __init__(self, gdbval, cast_to=None):
- if cast_to:
- self._gdbval = gdbval.cast(cast_to)
- else:
- self._gdbval = gdbval
-
- def field(self, name):
- '''
- Get the gdb.Value for the given field within the PyObject, coping with
- some python 2 versus python 3 differences.
-
- Various libpython types are defined using the "PyObject_HEAD" and
- "PyObject_VAR_HEAD" macros.
-
- In Python 2, this these are defined so that "ob_type" and (for a var
- object) "ob_size" are fields of the type in question.
-
- In Python 3, this is defined as an embedded PyVarObject type thus:
- PyVarObject ob_base;
- so that the "ob_size" field is located insize the "ob_base" field, and
- the "ob_type" is most easily accessed by casting back to a (PyObject*).
- '''
- if self.is_null():
- raise NullPyObjectPtr(self)
-
- if name == 'ob_type':
- pyo_ptr = self._gdbval.cast(PyObjectPtr.get_gdb_type())
- return pyo_ptr.dereference()[name]
-
- if name == 'ob_size':
- try:
- # Python 2:
- return self._gdbval.dereference()[name]
- except RuntimeError:
- # Python 3:
- return self._gdbval.dereference()['ob_base'][name]
-
- # General case: look it up inside the object:
- return self._gdbval.dereference()[name]
-
- def pyop_field(self, name):
- '''
- Get a PyObjectPtr for the given PyObject* field within this PyObject,
- coping with some python 2 versus python 3 differences.
- '''
- return PyObjectPtr.from_pyobject_ptr(self.field(name))
-
- def write_field_repr(self, name, out, visited):
- '''
- Extract the PyObject* field named "name", and write its representation
- to file-like object "out"
- '''
- field_obj = self.pyop_field(name)
- field_obj.write_repr(out, visited)
-
- def get_truncated_repr(self, maxlen):
- '''
- Get a repr-like string for the data, but truncate it at "maxlen" bytes
- (ending the object graph traversal as soon as you do)
- '''
- out = TruncatedStringIO(maxlen)
- try:
- self.write_repr(out, set())
- except StringTruncated:
- # Truncation occurred:
- return out.getvalue() + '...(truncated)'
-
- # No truncation occurred:
- return out.getvalue()
-
- def type(self):
- return PyTypeObjectPtr(self.field('ob_type'))
-
- def is_null(self):
- return 0 == long(self._gdbval)
-
- def is_optimized_out(self):
- '''
- Is the value of the underlying PyObject* visible to the debugger?
-
- This can vary with the precise version of the compiler used to build
- Python, and the precise version of gdb.
-
- See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=556975 with
- PyEval_EvalFrameEx's "f"
- '''
- return self._gdbval.is_optimized_out
-
- def safe_tp_name(self):
- try:
- return self.type().field('tp_name').string()
- except NullPyObjectPtr:
- # NULL tp_name?
- return 'unknown'
- except RuntimeError:
- # Can't even read the object at all?
- return 'unknown'
-
- def proxyval(self, visited):
- '''
- Scrape a value from the inferior process, and try to represent it
- within the gdb process, whilst (hopefully) avoiding crashes when
- the remote data is corrupt.
-
- Derived classes will override this.
-
- For example, a PyIntObject* with ob_ival 42 in the inferior process
- should result in an int(42) in this process.
-
- visited: a set of all gdb.Value pyobject pointers already visited
- whilst generating this value (to guard against infinite recursion when
- visiting object graphs with loops). Analogous to Py_ReprEnter and
- Py_ReprLeave
- '''
-
- class FakeRepr(object):
- """
- Class representing a non-descript PyObject* value in the inferior
- process for when we don't have a custom scraper, intended to have
- a sane repr().
- """
-
- def __init__(self, tp_name, address):
- self.tp_name = tp_name
- self.address = address
-
- def __repr__(self):
- # For the NULL pointer, we have no way of knowing a type, so
- # special-case it as per
- # http://bugs.python.org/issue8032#msg100882
- if self.address == 0:
- return '0x0'
- return '<%s at remote 0x%x>' % (self.tp_name, self.address)
-
- return FakeRepr(self.safe_tp_name(),
- long(self._gdbval))
-
- def write_repr(self, out, visited):
- '''
- Write a string representation of the value scraped from the inferior
- process to "out", a file-like object.
- '''
- # Default implementation: generate a proxy value and write its repr
- # However, this could involve a lot of work for complicated objects,
- # so for derived classes we specialize this
- return out.write(repr(self.proxyval(visited)))
-
- @classmethod
- def subclass_from_type(cls, t):
- '''
- Given a PyTypeObjectPtr instance wrapping a gdb.Value that's a
- (PyTypeObject*), determine the corresponding subclass of PyObjectPtr
- to use
-
- Ideally, we would look up the symbols for the global types, but that
- isn't working yet:
- (gdb) python print gdb.lookup_symbol('PyList_Type')[0].value
- Traceback (most recent call last):
- File "<string>", line 1, in <module>
- NotImplementedError: Symbol type not yet supported in Python scripts.
- Error while executing Python code.
-
- For now, we use tp_flags, after doing some string comparisons on the
- tp_name for some special-cases that don't seem to be visible through
- flags
- '''
- try:
- tp_name = t.field('tp_name').string()
- tp_flags = int(t.field('tp_flags'))
- except RuntimeError:
- # Handle any kind of error e.g. NULL ptrs by simply using the base
- # class
- return cls
-
- #print 'tp_flags = 0x%08x' % tp_flags
- #print 'tp_name = %r' % tp_name
-
- name_map = {'bool': PyBoolObjectPtr,
- 'classobj': PyClassObjectPtr,
- 'instance': PyInstanceObjectPtr,
- 'NoneType': PyNoneStructPtr,
- 'frame': PyFrameObjectPtr,
- 'set' : PySetObjectPtr,
- 'frozenset' : PySetObjectPtr,
- 'builtin_function_or_method' : PyCFunctionObjectPtr,
- }
- if tp_name in name_map:
- return name_map[tp_name]
-
- if tp_flags & Py_TPFLAGS_HEAPTYPE:
- return HeapTypeObjectPtr
-
- if tp_flags & Py_TPFLAGS_INT_SUBCLASS:
- return PyIntObjectPtr
- if tp_flags & Py_TPFLAGS_LONG_SUBCLASS:
- return PyLongObjectPtr
- if tp_flags & Py_TPFLAGS_LIST_SUBCLASS:
- return PyListObjectPtr
- if tp_flags & Py_TPFLAGS_TUPLE_SUBCLASS:
- return PyTupleObjectPtr
- if tp_flags & Py_TPFLAGS_STRING_SUBCLASS:
- return PyStringObjectPtr
- if tp_flags & Py_TPFLAGS_UNICODE_SUBCLASS:
- return PyUnicodeObjectPtr
- if tp_flags & Py_TPFLAGS_DICT_SUBCLASS:
- return PyDictObjectPtr
- if tp_flags & Py_TPFLAGS_BASE_EXC_SUBCLASS:
- return PyBaseExceptionObjectPtr
- #if tp_flags & Py_TPFLAGS_TYPE_SUBCLASS:
- # return PyTypeObjectPtr
-
- # Use the base class:
- return cls
-
- @classmethod
- def from_pyobject_ptr(cls, gdbval):
- '''
- Try to locate the appropriate derived class dynamically, and cast
- the pointer accordingly.
- '''
- try:
- p = PyObjectPtr(gdbval)
- cls = cls.subclass_from_type(p.type())
- return cls(gdbval, cast_to=cls.get_gdb_type())
- except RuntimeError:
- # Handle any kind of error e.g. NULL ptrs by simply using the base
- # class
- pass
- return cls(gdbval)
-
- @classmethod
- def get_gdb_type(cls):
- return gdb.lookup_type(cls._typename).pointer()
-
- def as_address(self):
- return long(self._gdbval)
-
-
-class ProxyAlreadyVisited(object):
- '''
- Placeholder proxy to use when protecting against infinite recursion due to
- loops in the object graph.
-
- Analogous to the values emitted by the users of Py_ReprEnter and Py_ReprLeave
- '''
- def __init__(self, rep):
- self._rep = rep
-
- def __repr__(self):
- return self._rep
-
-
-def _write_instance_repr(out, visited, name, pyop_attrdict, address):
- '''Shared code for use by old-style and new-style classes:
- write a representation to file-like object "out"'''
- out.write('<')
- out.write(name)
-
- # Write dictionary of instance attributes:
- if isinstance(pyop_attrdict, PyDictObjectPtr):
- out.write('(')
- first = True
- for pyop_arg, pyop_val in pyop_attrdict.iteritems():
- if not first:
- out.write(', ')
- first = False
- out.write(pyop_arg.proxyval(visited))
- out.write('=')
- pyop_val.write_repr(out, visited)
- out.write(')')
- out.write(' at remote 0x%x>' % address)
-
-
-class InstanceProxy(object):
-
- def __init__(self, cl_name, attrdict, address):
- self.cl_name = cl_name
- self.attrdict = attrdict
- self.address = address
-
- def __repr__(self):
- if isinstance(self.attrdict, dict):
- kwargs = ', '.join(["%s=%r" % (arg, val)
- for arg, val in self.attrdict.iteritems()])
- return '<%s(%s) at remote 0x%x>' % (self.cl_name,
- kwargs, self.address)
- else:
- return '<%s at remote 0x%x>' % (self.cl_name,
- self.address)
-
-def _PyObject_VAR_SIZE(typeobj, nitems):
- return ( ( typeobj.field('tp_basicsize') +
- nitems * typeobj.field('tp_itemsize') +
- (SIZEOF_VOID_P - 1)
- ) & ~(SIZEOF_VOID_P - 1)
- ).cast(_type_size_t)
-
-class HeapTypeObjectPtr(PyObjectPtr):
- _typename = 'PyObject'
-
- def get_attr_dict(self):
- '''
- Get the PyDictObject ptr representing the attribute dictionary
- (or None if there's a problem)
- '''
- try:
- typeobj = self.type()
- dictoffset = int_from_int(typeobj.field('tp_dictoffset'))
- if dictoffset != 0:
- if dictoffset < 0:
- type_PyVarObject_ptr = gdb.lookup_type('PyVarObject').pointer()
- tsize = int_from_int(self._gdbval.cast(type_PyVarObject_ptr)['ob_size'])
- if tsize < 0:
- tsize = -tsize
- size = _PyObject_VAR_SIZE(typeobj, tsize)
- dictoffset += size
- assert dictoffset > 0
- assert dictoffset % SIZEOF_VOID_P == 0
-
- dictptr = self._gdbval.cast(_type_char_ptr) + dictoffset
- PyObjectPtrPtr = PyObjectPtr.get_gdb_type().pointer()
- dictptr = dictptr.cast(PyObjectPtrPtr)
- return PyObjectPtr.from_pyobject_ptr(dictptr.dereference())
- except RuntimeError:
- # Corrupt data somewhere; fail safe
- pass
-
- # Not found, or some kind of error:
- return None
-
- def proxyval(self, visited):
- '''
- Support for new-style classes.
-
- Currently we just locate the dictionary using a transliteration to
- python of _PyObject_GetDictPtr, ignoring descriptors
- '''
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('<...>')
- visited.add(self.as_address())
-
- pyop_attr_dict = self.get_attr_dict()
- if pyop_attr_dict:
- attr_dict = pyop_attr_dict.proxyval(visited)
- else:
- attr_dict = {}
- tp_name = self.safe_tp_name()
-
- # New-style class:
- return InstanceProxy(tp_name, attr_dict, long(self._gdbval))
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('<...>')
- return
- visited.add(self.as_address())
-
- pyop_attrdict = self.get_attr_dict()
- _write_instance_repr(out, visited,
- self.safe_tp_name(), pyop_attrdict, self.as_address())
-
-class ProxyException(Exception):
- def __init__(self, tp_name, args):
- self.tp_name = tp_name
- self.args = args
-
- def __repr__(self):
- return '%s%r' % (self.tp_name, self.args)
-
-class PyBaseExceptionObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyBaseExceptionObject* i.e. an exception
- within the process being debugged.
- """
- _typename = 'PyBaseExceptionObject'
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('(...)')
- visited.add(self.as_address())
- arg_proxy = self.pyop_field('args').proxyval(visited)
- return ProxyException(self.safe_tp_name(),
- arg_proxy)
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('(...)')
- return
- visited.add(self.as_address())
-
- out.write(self.safe_tp_name())
- self.write_field_repr('args', out, visited)
-
-class PyBoolObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyBoolObject* i.e. one of the two
- <bool> instances (Py_True/Py_False) within the process being debugged.
- """
- _typename = 'PyBoolObject'
-
- def proxyval(self, visited):
- if int_from_int(self.field('ob_ival')):
- return True
- else:
- return False
-
-
-class PyClassObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyClassObject* i.e. a <classobj>
- instance within the process being debugged.
- """
- _typename = 'PyClassObject'
-
-
-class BuiltInFunctionProxy(object):
- def __init__(self, ml_name):
- self.ml_name = ml_name
-
- def __repr__(self):
- return "<built-in function %s>" % self.ml_name
-
-class BuiltInMethodProxy(object):
- def __init__(self, ml_name, pyop_m_self):
- self.ml_name = ml_name
- self.pyop_m_self = pyop_m_self
-
- def __repr__(self):
- return ('<built-in method %s of %s object at remote 0x%x>'
- % (self.ml_name,
- self.pyop_m_self.safe_tp_name(),
- self.pyop_m_self.as_address())
- )
-
-class PyCFunctionObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyCFunctionObject*
- (see Include/methodobject.h and Objects/methodobject.c)
- """
- _typename = 'PyCFunctionObject'
-
- def proxyval(self, visited):
- m_ml = self.field('m_ml') # m_ml is a (PyMethodDef*)
- ml_name = m_ml['ml_name'].string()
-
- pyop_m_self = self.pyop_field('m_self')
- if pyop_m_self.is_null():
- return BuiltInFunctionProxy(ml_name)
- else:
- return BuiltInMethodProxy(ml_name, pyop_m_self)
-
-
-class PyCodeObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyCodeObject* i.e. a <code> instance
- within the process being debugged.
- """
- _typename = 'PyCodeObject'
-
- def addr2line(self, addrq):
- '''
- Get the line number for a given bytecode offset
-
- Analogous to PyCode_Addr2Line; translated from pseudocode in
- Objects/lnotab_notes.txt
- '''
- co_lnotab = self.pyop_field('co_lnotab').proxyval(set())
-
- # Initialize lineno to co_firstlineno as per PyCode_Addr2Line
- # not 0, as lnotab_notes.txt has it:
- lineno = int_from_int(self.field('co_firstlineno'))
-
- addr = 0
- for addr_incr, line_incr in zip(co_lnotab[::2], co_lnotab[1::2]):
- addr += ord(addr_incr)
- if addr > addrq:
- return lineno
- lineno += ord(line_incr)
- return lineno
-
-
-class PyDictObjectPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyDictObject* i.e. a dict instance
- within the process being debugged.
- """
- _typename = 'PyDictObject'
-
- def iteritems(self):
- '''
- Yields a sequence of (PyObjectPtr key, PyObjectPtr value) pairs,
- analagous to dict.iteritems()
- '''
- for i in safe_range(self.field('ma_mask') + 1):
- ep = self.field('ma_table') + i
- pyop_value = PyObjectPtr.from_pyobject_ptr(ep['me_value'])
- if not pyop_value.is_null():
- pyop_key = PyObjectPtr.from_pyobject_ptr(ep['me_key'])
- yield (pyop_key, pyop_value)
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('{...}')
- visited.add(self.as_address())
-
- result = {}
- for pyop_key, pyop_value in self.iteritems():
- proxy_key = pyop_key.proxyval(visited)
- proxy_value = pyop_value.proxyval(visited)
- result[proxy_key] = proxy_value
- return result
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('{...}')
- return
- visited.add(self.as_address())
-
- out.write('{')
- first = True
- for pyop_key, pyop_value in self.iteritems():
- if not first:
- out.write(', ')
- first = False
- pyop_key.write_repr(out, visited)
- out.write(': ')
- pyop_value.write_repr(out, visited)
- out.write('}')
-
-class PyInstanceObjectPtr(PyObjectPtr):
- _typename = 'PyInstanceObject'
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('<...>')
- visited.add(self.as_address())
-
- # Get name of class:
- in_class = self.pyop_field('in_class')
- cl_name = in_class.pyop_field('cl_name').proxyval(visited)
-
- # Get dictionary of instance attributes:
- in_dict = self.pyop_field('in_dict').proxyval(visited)
-
- # Old-style class:
- return InstanceProxy(cl_name, in_dict, long(self._gdbval))
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('<...>')
- return
- visited.add(self.as_address())
-
- # Old-style class:
-
- # Get name of class:
- in_class = self.pyop_field('in_class')
- cl_name = in_class.pyop_field('cl_name').proxyval(visited)
-
- # Get dictionary of instance attributes:
- pyop_in_dict = self.pyop_field('in_dict')
-
- _write_instance_repr(out, visited,
- cl_name, pyop_in_dict, self.as_address())
-
-class PyIntObjectPtr(PyObjectPtr):
- _typename = 'PyIntObject'
-
- def proxyval(self, visited):
- result = int_from_int(self.field('ob_ival'))
- return result
-
-class PyListObjectPtr(PyObjectPtr):
- _typename = 'PyListObject'
-
- def __getitem__(self, i):
- # Get the gdb.Value for the (PyObject*) with the given index:
- field_ob_item = self.field('ob_item')
- return field_ob_item[i]
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('[...]')
- visited.add(self.as_address())
-
- result = [PyObjectPtr.from_pyobject_ptr(self[i]).proxyval(visited)
- for i in safe_range(int_from_int(self.field('ob_size')))]
- return result
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('[...]')
- return
- visited.add(self.as_address())
-
- out.write('[')
- for i in safe_range(int_from_int(self.field('ob_size'))):
- if i > 0:
- out.write(', ')
- element = PyObjectPtr.from_pyobject_ptr(self[i])
- element.write_repr(out, visited)
- out.write(']')
-
-class PyLongObjectPtr(PyObjectPtr):
- _typename = 'PyLongObject'
-
- def proxyval(self, visited):
- '''
- Python's Include/longobjrep.h has this declaration:
- struct _longobject {
- PyObject_VAR_HEAD
- digit ob_digit[1];
- };
-
- with this description:
- The absolute value of a number is equal to
- SUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)
- Negative numbers are represented with ob_size < 0;
- zero is represented by ob_size == 0.
-
- where SHIFT can be either:
- #define PyLong_SHIFT 30
- #define PyLong_SHIFT 15
- '''
- ob_size = long(self.field('ob_size'))
- if ob_size == 0:
- return 0L
-
- ob_digit = self.field('ob_digit')
-
- if gdb.lookup_type('digit').sizeof == 2:
- SHIFT = 15L
- else:
- SHIFT = 30L
-
- digits = [long(ob_digit[i]) * 2**(SHIFT*i)
- for i in safe_range(abs(ob_size))]
- result = sum(digits)
- if ob_size < 0:
- result = -result
- return result
-
-
-class PyNoneStructPtr(PyObjectPtr):
- """
- Class wrapping a gdb.Value that's a PyObject* pointing to the
- singleton (we hope) _Py_NoneStruct with ob_type PyNone_Type
- """
- _typename = 'PyObject'
-
- def proxyval(self, visited):
- return None
-
-
-class PyFrameObjectPtr(PyObjectPtr):
- _typename = 'PyFrameObject'
-
- def __init__(self, gdbval, cast_to):
- PyObjectPtr.__init__(self, gdbval, cast_to)
-
- if not self.is_optimized_out():
- self.co = PyCodeObjectPtr.from_pyobject_ptr(self.field('f_code'))
- self.co_name = self.co.pyop_field('co_name')
- self.co_filename = self.co.pyop_field('co_filename')
-
- self.f_lineno = int_from_int(self.field('f_lineno'))
- self.f_lasti = int_from_int(self.field('f_lasti'))
- self.co_nlocals = int_from_int(self.co.field('co_nlocals'))
- self.co_varnames = PyTupleObjectPtr.from_pyobject_ptr(self.co.field('co_varnames'))
-
- def iter_locals(self):
- '''
- Yield a sequence of (name,value) pairs of PyObjectPtr instances, for
- the local variables of this frame
- '''
- if self.is_optimized_out():
- return
-
- f_localsplus = self.field('f_localsplus')
- for i in safe_range(self.co_nlocals):
- pyop_value = PyObjectPtr.from_pyobject_ptr(f_localsplus[i])
- if not pyop_value.is_null():
- pyop_name = PyObjectPtr.from_pyobject_ptr(self.co_varnames[i])
- yield (pyop_name, pyop_value)
-
- def iter_globals(self):
- '''
- Yield a sequence of (name,value) pairs of PyObjectPtr instances, for
- the global variables of this frame
- '''
- if self.is_optimized_out():
- return
-
- pyop_globals = self.pyop_field('f_globals')
- return pyop_globals.iteritems()
-
- def iter_builtins(self):
- '''
- Yield a sequence of (name,value) pairs of PyObjectPtr instances, for
- the builtin variables
- '''
- if self.is_optimized_out():
- return
-
- pyop_builtins = self.pyop_field('f_builtins')
- return pyop_builtins.iteritems()
-
- def get_var_by_name(self, name):
- '''
- Look for the named local variable, returning a (PyObjectPtr, scope) pair
- where scope is a string 'local', 'global', 'builtin'
-
- If not found, return (None, None)
- '''
- for pyop_name, pyop_value in self.iter_locals():
- if name == pyop_name.proxyval(set()):
- return pyop_value, 'local'
- for pyop_name, pyop_value in self.iter_globals():
- if name == pyop_name.proxyval(set()):
- return pyop_value, 'global'
- for pyop_name, pyop_value in self.iter_builtins():
- if name == pyop_name.proxyval(set()):
- return pyop_value, 'builtin'
- return None, None
-
- def filename(self):
- '''Get the path of the current Python source file, as a string'''
- if self.is_optimized_out():
- return '(frame information optimized out)'
- return self.co_filename.proxyval(set())
-
- def current_line_num(self):
- '''Get current line number as an integer (1-based)
-
- Translated from PyFrame_GetLineNumber and PyCode_Addr2Line
-
- See Objects/lnotab_notes.txt
- '''
- if self.is_optimized_out():
- return None
- f_trace = self.field('f_trace')
- if long(f_trace) != 0:
- # we have a non-NULL f_trace:
- return self.f_lineno
- else:
- #try:
- return self.co.addr2line(self.f_lasti)
- #except ValueError:
- # return self.f_lineno
-
- def current_line(self):
- '''Get the text of the current source line as a string, with a trailing
- newline character'''
- if self.is_optimized_out():
- return '(frame information optimized out)'
- with open(self.filename(), 'r') as f:
- all_lines = f.readlines()
- # Convert from 1-based current_line_num to 0-based list offset:
- return all_lines[self.current_line_num()-1]
-
- def write_repr(self, out, visited):
- if self.is_optimized_out():
- out.write('(frame information optimized out)')
- return
- out.write('Frame 0x%x, for file %s, line %i, in %s ('
- % (self.as_address(),
- self.co_filename,
- self.current_line_num(),
- self.co_name))
- first = True
- for pyop_name, pyop_value in self.iter_locals():
- if not first:
- out.write(', ')
- first = False
-
- out.write(pyop_name.proxyval(visited))
- out.write('=')
- pyop_value.write_repr(out, visited)
-
- out.write(')')
-
-class PySetObjectPtr(PyObjectPtr):
- _typename = 'PySetObject'
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('%s(...)' % self.safe_tp_name())
- visited.add(self.as_address())
-
- members = []
- table = self.field('table')
- for i in safe_range(self.field('mask')+1):
- setentry = table[i]
- key = setentry['key']
- if key != 0:
- key_proxy = PyObjectPtr.from_pyobject_ptr(key).proxyval(visited)
- if key_proxy != '<dummy key>':
- members.append(key_proxy)
- if self.safe_tp_name() == 'frozenset':
- return frozenset(members)
- else:
- return set(members)
-
- def write_repr(self, out, visited):
- out.write(self.safe_tp_name())
-
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('(...)')
- return
- visited.add(self.as_address())
-
- out.write('([')
- first = True
- table = self.field('table')
- for i in safe_range(self.field('mask')+1):
- setentry = table[i]
- key = setentry['key']
- if key != 0:
- pyop_key = PyObjectPtr.from_pyobject_ptr(key)
- key_proxy = pyop_key.proxyval(visited) # FIXME!
- if key_proxy != '<dummy key>':
- if not first:
- out.write(', ')
- first = False
- pyop_key.write_repr(out, visited)
- out.write('])')
-
-
-class PyStringObjectPtr(PyObjectPtr):
- _typename = 'PyStringObject'
-
- def __str__(self):
- field_ob_size = self.field('ob_size')
- field_ob_sval = self.field('ob_sval')
- char_ptr = field_ob_sval.address.cast(_type_unsigned_char_ptr)
- return ''.join([chr(char_ptr[i]) for i in safe_range(field_ob_size)])
-
- def proxyval(self, visited):
- return str(self)
-
-class PyTupleObjectPtr(PyObjectPtr):
- _typename = 'PyTupleObject'
-
- def __getitem__(self, i):
- # Get the gdb.Value for the (PyObject*) with the given index:
- field_ob_item = self.field('ob_item')
- return field_ob_item[i]
-
- def proxyval(self, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- return ProxyAlreadyVisited('(...)')
- visited.add(self.as_address())
-
- result = tuple([PyObjectPtr.from_pyobject_ptr(self[i]).proxyval(visited)
- for i in safe_range(int_from_int(self.field('ob_size')))])
- return result
-
- def write_repr(self, out, visited):
- # Guard against infinite loops:
- if self.as_address() in visited:
- out.write('(...)')
- return
- visited.add(self.as_address())
-
- out.write('(')
- for i in safe_range(int_from_int(self.field('ob_size'))):
- if i > 0:
- out.write(', ')
- element = PyObjectPtr.from_pyobject_ptr(self[i])
- element.write_repr(out, visited)
- if self.field('ob_size') == 1:
- out.write(',)')
- else:
- out.write(')')
-
-class PyTypeObjectPtr(PyObjectPtr):
- _typename = 'PyTypeObject'
-
-
-class PyUnicodeObjectPtr(PyObjectPtr):
- _typename = 'PyUnicodeObject'
-
- def proxyval(self, visited):
- # From unicodeobject.h:
- # Py_ssize_t length; /* Length of raw Unicode data in buffer */
- # Py_UNICODE *str; /* Raw Unicode buffer */
- field_length = long(self.field('length'))
- field_str = self.field('str')
-
- # Gather a list of ints from the Py_UNICODE array; these are either
- # UCS-2 or UCS-4 code points:
- Py_UNICODEs = [int(field_str[i]) for i in safe_range(field_length)]
-
- # Convert the int code points to unicode characters, and generate a
- # local unicode instance:
- result = u''.join([unichr(ucs) for ucs in Py_UNICODEs])
- return result
-
-
-def int_from_int(gdbval):
- return int(str(gdbval))
-
-
-def stringify(val):
- # TODO: repr() puts everything on one line; pformat can be nicer, but
- # can lead to v.long results; this function isolates the choice
- if True:
- return repr(val)
- else:
- from pprint import pformat
- return pformat(val)
-
-
-class PyObjectPtrPrinter:
- "Prints a (PyObject*)"
-
- def __init__ (self, gdbval):
- self.gdbval = gdbval
-
- def to_string (self):
- pyop = PyObjectPtr.from_pyobject_ptr(self.gdbval)
- if True:
- return pyop.get_truncated_repr(MAX_OUTPUT_LEN)
- else:
- # Generate full proxy value then stringify it.
- # Doing so could be expensive
- proxyval = pyop.proxyval(set())
- return stringify(proxyval)
-
-def pretty_printer_lookup(gdbval):
- type = gdbval.type.unqualified()
- if type.code == gdb.TYPE_CODE_PTR:
- type = type.target().unqualified()
- t = str(type)
- if t in ("PyObject", "PyFrameObject"):
- return PyObjectPtrPrinter(gdbval)
-
-"""
-During development, I've been manually invoking the code in this way:
-(gdb) python
-
-import sys
-sys.path.append('/home/david/coding/python-gdb')
-import libpython
-end
-
-then reloading it after each edit like this:
-(gdb) python reload(libpython)
-
-The following code should ensure that the prettyprinter is registered
-if the code is autoloaded by gdb when visiting libpython.so, provided
-that this python file is installed to the same path as the library (or its
-.debug file) plus a "-gdb.py" suffix, e.g:
- /usr/lib/libpython2.6.so.1.0-gdb.py
- /usr/lib/debug/usr/lib/libpython2.6.so.1.0.debug-gdb.py
-"""
-def register (obj):
- if obj == None:
- obj = gdb
-
- # Wire up the pretty-printer
- obj.pretty_printers.append(pretty_printer_lookup)
-
-register (gdb.current_objfile ())
-
-
-class Frame(object):
- '''
- Wrapper for gdb.Frame, adding various methods
- '''
- def __init__(self, gdbframe):
- self._gdbframe = gdbframe
-
- def older(self):
- older = self._gdbframe.older()
- if older:
- return Frame(older)
- else:
- return None
-
- def newer(self):
- newer = self._gdbframe.newer()
- if newer:
- return Frame(newer)
- else:
- return None
-
- def select(self):
- self._gdbframe.select()
-
- def get_index(self):
- '''Calculate index of frame, starting at 0 for the newest frame within
- this thread'''
- index = 0
- # Go down until you reach the newest frame:
- iter_frame = self
- while iter_frame.newer():
- index += 1
- iter_frame = iter_frame.newer()
- return index
-
- def is_evalframeex(self):
- if self._gdbframe.function():
- if self._gdbframe.function().name == 'PyEval_EvalFrameEx':
- '''
- I believe we also need to filter on the inline
- struct frame_id.inline_depth, only regarding frames with
- an inline depth of 0 as actually being this function
-
- So we reject those with type gdb.INLINE_FRAME
- '''
- if self._gdbframe.type() == gdb.NORMAL_FRAME:
- # We have a PyEval_EvalFrameEx frame:
- return True
-
- return False
-
- def get_pyop(self):
- try:
- f = self._gdbframe.read_var('f')
- return PyFrameObjectPtr.from_pyobject_ptr(f)
- except ValueError:
- return None
-
- @classmethod
- def get_selected_frame(cls):
- _gdbframe = gdb.selected_frame()
- if _gdbframe:
- return Frame(_gdbframe)
- return None
-
- @classmethod
- def get_selected_python_frame(cls):
- '''Try to obtain the Frame for the python code in the selected frame,
- or None'''
- frame = cls.get_selected_frame()
-
- while frame:
- if frame.is_evalframeex():
- return frame
- frame = frame.older()
-
- # Not found:
- return None
-
- def print_summary(self):
- if self.is_evalframeex():
- pyop = self.get_pyop()
- if pyop:
- sys.stdout.write('#%i %s\n' % (self.get_index(), pyop.get_truncated_repr(MAX_OUTPUT_LEN)))
- sys.stdout.write(pyop.current_line())
- else:
- sys.stdout.write('#%i (unable to read python frame information)\n' % self.get_index())
- else:
- sys.stdout.write('#%i\n' % self.get_index())
-
-class PyList(gdb.Command):
- '''List the current Python source code, if any
-
- Use
- py-list START
- to list at a different line number within the python source.
-
- Use
- py-list START, END
- to list a specific range of lines within the python source.
- '''
-
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-list",
- gdb.COMMAND_FILES,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- import re
-
- start = None
- end = None
-
- m = re.match(r'\s*(\d+)\s*', args)
- if m:
- start = int(m.group(0))
- end = start + 10
-
- m = re.match(r'\s*(\d+)\s*,\s*(\d+)\s*', args)
- if m:
- start, end = map(int, m.groups())
-
- frame = Frame.get_selected_python_frame()
- if not frame:
- print 'Unable to locate python frame'
- return
-
- pyop = frame.get_pyop()
- if not pyop:
- print 'Unable to read information on python frame'
- return
-
- filename = pyop.filename()
- lineno = pyop.current_line_num()
-
- if start is None:
- start = lineno - 5
- end = lineno + 5
-
- if start<1:
- start = 1
-
- with open(filename, 'r') as f:
- all_lines = f.readlines()
- # start and end are 1-based, all_lines is 0-based;
- # so [start-1:end] as a python slice gives us [start, end] as a
- # closed interval
- for i, line in enumerate(all_lines[start-1:end]):
- linestr = str(i+start)
- # Highlight current line:
- if i + start == lineno:
- linestr = '>' + linestr
- sys.stdout.write('%4s %s' % (linestr, line))
-
-
-# ...and register the command:
-PyList()
-
-def move_in_stack(move_up):
- '''Move up or down the stack (for the py-up/py-down command)'''
- frame = Frame.get_selected_python_frame()
- while frame:
- if move_up:
- iter_frame = frame.older()
- else:
- iter_frame = frame.newer()
-
- if not iter_frame:
- break
-
- if iter_frame.is_evalframeex():
- # Result:
- iter_frame.select()
- iter_frame.print_summary()
- return
-
- frame = iter_frame
-
- if move_up:
- print 'Unable to find an older python frame'
- else:
- print 'Unable to find a newer python frame'
-
-class PyUp(gdb.Command):
- 'Select and print the python stack frame that called this one (if any)'
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-up",
- gdb.COMMAND_STACK,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- move_in_stack(move_up=True)
-
-PyUp()
-
-class PyDown(gdb.Command):
- 'Select and print the python stack frame called by this one (if any)'
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-down",
- gdb.COMMAND_STACK,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- move_in_stack(move_up=False)
-
-PyDown()
-
-class PyBacktrace(gdb.Command):
- 'Display the current python frame and all the frames within its call stack (if any)'
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-bt",
- gdb.COMMAND_STACK,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- frame = Frame.get_selected_python_frame()
- while frame:
- if frame.is_evalframeex():
- frame.print_summary()
- frame = frame.older()
-
-PyBacktrace()
-
-class PyPrint(gdb.Command):
- 'Look up the given python variable name, and print it'
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-print",
- gdb.COMMAND_DATA,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- name = str(args)
-
- frame = Frame.get_selected_python_frame()
- if not frame:
- print 'Unable to locate python frame'
- return
-
- pyop_frame = frame.get_pyop()
- if not pyop_frame:
- print 'Unable to read information on python frame'
- return
-
- pyop_var, scope = pyop_frame.get_var_by_name(name)
-
- if pyop_var:
- print ('%s %r = %s'
- % (scope,
- name,
- pyop_var.get_truncated_repr(MAX_OUTPUT_LEN)))
- else:
- print '%r not found' % name
-
-PyPrint()
-
-class PyLocals(gdb.Command):
- 'Look up the given python variable name, and print it'
- def __init__(self):
- gdb.Command.__init__ (self,
- "py-locals",
- gdb.COMMAND_DATA,
- gdb.COMPLETE_NONE)
-
-
- def invoke(self, args, from_tty):
- name = str(args)
-
- frame = Frame.get_selected_python_frame()
- if not frame:
- print 'Unable to locate python frame'
- return
-
- pyop_frame = frame.get_pyop()
- if not pyop_frame:
- print 'Unable to read information on python frame'
- return
-
- for pyop_name, pyop_value in pyop_frame.iter_locals():
- print ('%s = %s'
- % (pyop_name.proxyval(set()),
- pyop_value.get_truncated_repr(MAX_OUTPUT_LEN)))
-
-PyLocals()
diff --git a/python2.spec b/python2.spec
deleted file mode 100644
index 7e2c5f5..0000000
--- a/python2.spec
+++ /dev/null
@@ -1,3770 +0,0 @@
-# ======================================================
-# Conditionals and other variables controlling the build
-# ======================================================
-
-# Note that the bcond macros are named for the CLI option they create.
-# "%%bcond_without" means "ENABLE by default and create a --without option"
-
-# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
-# Uses upstream bundled prebuilt wheels otherwise
-%bcond_without rpmwheels
-
-# Extra build for debugging the interpreter or C-API extensions
-# (the -debug subpackages)
-%bcond_without debug_build
-
-# Only use this when bootstrapping python3
-# Needed to build setuptools for the first time
-%bcond_with python3_bootstrap
-
-%global unicode ucs4
-
-%global python python2
-
-%global pybasever 2.7
-%global pylibdir %{_libdir}/python%{pybasever}
-%global tools_dir %{pylibdir}/Tools
-%global demo_dir %{pylibdir}/Demo
-%global doc_tools_dir %{pylibdir}/Doc/tools
-%global dynload_dir %{pylibdir}/lib-dynload
-%global site_packages %{pylibdir}/site-packages
-
-# Python's configure script defines SOVERSION, and this is used in the Makefile
-# to determine INSTSONAME, the name of the libpython DSO:
-# LDLIBRARY='libpython$(VERSION).so'
-# INSTSONAME="$LDLIBRARY".$SOVERSION
-# We mirror this here in order to make it easier to add the -gdb.py hooks.
-# (if these get out of sync, the payload of the libs subpackage will fail
-# and halt the build)
-%global py_SOVERSION 1.0
-%global py_INSTSONAME_optimized libpython%{pybasever}.so.%{py_SOVERSION}
-%global py_INSTSONAME_debug libpython%{pybasever}_d.so.%{py_SOVERSION}
-
-# Disabled for now:
-%global with_huntrleaks 0
-
-%global with_gdb_hooks 1
-
-%global with_systemtap 1
-
-# some arches don't have valgrind so we need to disable its support on them
-%ifnarch s390 %{mips} riscv64
-%global with_valgrind 1
-%else
-%global with_valgrind 0
-%endif
-
-%global with_gdbm 1
-
-%if 0%{?_module_build}
-%global with_valgrind 0
-%global with_systemtap 0
-
-# (Don't) Run the test suite in %%check
-%bcond_with tests
-%else
-# Run the test suite in %%check
-%bcond_without tests
-%endif
-
-# Disable automatic bytecompilation. The python2.7 binary is not yet
-# available in /usr/bin when Python is built. Also, the bytecompilation fails
-# on files that test invalid syntax.
-%global __brp_python_bytecompile %{nil}
-
-# We need to get a newer configure generated out of configure.in for the following
-# patches:
-# patch 4 (CFLAGS)
-# patch 52 (valgrind)
-# patch 55 (systemtap)
-# patch 145 (linux2)
-#
-# For patch 55 (systemtap), we need to get a new header for configure to use
-#
-# configure.in requires autoconf-2.65, but the version in Fedora is currently
-# autoconf-2.66
-#
-# For now, we'll generate a patch to the generated configure script and
-# pyconfig.h.in on a machine that has a local copy of autoconf 2.65
-#
-# Instructions on obtaining such a copy can be seen at
-# http://bugs.python.org/issue7997
-#
-# To make it easy to regenerate the patch, this specfile can be run in two
-# ways:
-# (i) regenerate_autotooling_patch 0 : the normal approach: prep the
-# source tree using a pre-generated patch to the "configure" script, and do a
-# full build
-# (ii) regenerate_autotooling_patch 1 : intended to be run on a developer's
-# workstation: prep the source tree without patching configure, then rerun a
-# local copy of autoconf-2.65, regenerate the patch, then exit, without doing
-# the rest of the build
-%global regenerate_autotooling_patch 0
-
-# Python 2 is deprecated in Fedora 30+, see:
-# https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
-# This means that new packages MUST NOT depend on python2, even transitively
-# see: https://fedoraproject.org/wiki/Packaging:Deprecating_Packages
-# Python 2 will not be supported after 2019. Use the python3 package instead
-# if possible.
-%if 0%{fedora} >= 30
-%global deprecated Provides: deprecated()
-%endif
-
-
-# ==================
-# Top-level metadata
-# ==================
-Summary: An interpreted, interactive, object-oriented programming language
-Name: %{python}
-# Remember to also rebase python2-docs when changing this:
-%global general_version %{pybasever}.16
-#global prerel ...
-%global upstream_version %{general_version}%{?prerel}
-Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 7%{?dist}
-License: Python
-Requires: %{python}-libs%{?_isa} = %{version}-%{release}
-Provides: python(abi) = %{pybasever}
-
-%?deprecated
-
-# People might want to dnf install pythonX.Y instead of pythonXY
-Provides: python%{pybasever} = %{version}-%{release}
-
-
-# =======================
-# Build-time requirements
-# =======================
-
-# (keep this list alphabetized)
-
-BuildRequires: autoconf
-%if ! 0%{?_module_build}
-BuildRequires: bluez-libs-devel
-%endif
-BuildRequires: bzip2
-BuildRequires: bzip2-devel
-BuildRequires: glibc-all-langpacks
-BuildRequires: glibc-devel
-BuildRequires: gmp-devel
-BuildRequires: libdb-devel
-BuildRequires: libffi-devel
-BuildRequires: ncurses-devel
-BuildRequires: pkgconfig
-BuildRequires: readline-devel
-BuildRequires: sqlite-devel
-BuildRequires: tcl-devel
-
-BuildRequires: openssl-devel
-
-# For the nis module
-BuildRequires: libnsl2-devel
-BuildRequires: libtirpc-devel
-
-# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
-# it (in pyexpat) in order to enable the fix in Python-2.7.3 for CVE-2012-0876:
-BuildRequires: expat-devel >= 2.1.0
-
-BuildRequires: findutils
-BuildRequires: gcc-c++
-%if %{with_gdbm}
-# ABI change without soname bump, reverted
-BuildRequires: gdbm-devel >= 1:1.13
-%endif
-%if ! 0%{?_module_build}
-BuildRequires: libGL-devel
-BuildRequires: libX11-devel
-%endif
-
-%if 0%{?with_systemtap}
-BuildRequires: systemtap-sdt-devel
-# (this introduces a circular dependency, in that systemtap-sdt-devel's
-# /usr/bin/dtrace is a python script)
-%global tapsetdir /usr/share/systemtap/tapset
-%endif # with_systemtap
-
-BuildRequires: tar
-%if ! 0%{?_module_build}
-BuildRequires: tix-devel
-BuildRequires: tk-devel
-%endif
-
-%if 0%{?with_valgrind}
-BuildRequires: valgrind-devel
-%endif
-
-BuildRequires: zlib-devel
-
-# For %%python_provide
-BuildRequires: python-rpm-macros
-
-%if %{with rpmwheels}
-BuildRequires: python-setuptools-wheel
-BuildRequires: python-pip-wheel
-%endif
-
-# Providing python27 as now multiple interpreters exist in Fedora
-# alongside the system one e.g. python26, python33 etc
-Provides: python27 = %{version}-%{release}
-
-# Previously, this was required for our rewheel patch to work.
-# This is technically no longer needed, but we keep it recommended
-# for the developer experience.
-Recommends: python2-setuptools
-Recommends: python2-pip
-
-
-# =======================
-# Source code and patches
-# =======================
-
-Source: https://www.python.org/ftp/python/%{version}/Python-%{upstream_version}.t...
-
-# Work around bug 562906 until it's fixed in rpm-build by providing a fixed
-# version of pythondeps.sh:
-Source2: pythondeps.sh
-%global __python_requires %{SOURCE2}
-
-# Systemtap tapset to make it easier to use the systemtap static probes
-# (actually a template; LIBRARY_PATH will get fixed up during install)
-# Written by dmalcolm; not yet sent upstream
-Source3: libpython.stp
-
-
-# Example systemtap script using the tapset
-# Written by wcohen, mjw, dmalcolm; not yet sent upstream
-Source4: systemtap-example.stp
-
-# Another example systemtap script that uses the tapset
-# Written by dmalcolm; not yet sent upstream
-Source5: pyfuntop.stp
-
-Source7: pynche
-
-# Modules/Setup.dist is ultimately used by the "makesetup" script to construct
-# the Makefile and config.c
-#
-# Upstream leaves many things disabled by default, to try to make it easy as
-# possible to build the code on as many platforms as possible.
-#
-# TODO: many modules can also now be built by setup.py after the python binary
-# has been built; need to assess if we should instead build things there
-#
-# We patch it downstream as follows:
-# - various modules are built by default by upstream as static libraries;
-# we built them as shared libraries
-# - build the "readline" module (appears to also be handled by setup.py now)
-# - build the nis module (which needs the tirpc library since glibc 2.26)
-# - enable the build of the following modules:
-# - array arraymodule.c # array objects
-# - cmath cmathmodule.c # -lm # complex math library functions
-# - math mathmodule.c # -lm # math library functions, e.g. sin()
-# - _struct _struct.c # binary structure packing/unpacking
-# - time timemodule.c # -lm # time operations and variables
-# - operator operator.c # operator.add() and similar goodies
-# - _weakref _weakref.c # basic weak reference support
-# - _testcapi _testcapimodule.c # Python C API test module
-# - _random _randommodule.c # Random number generator
-# - _collections _collectionsmodule.c # Container types
-# - itertools itertoolsmodule.c
-# - strop stropmodule.c
-# - _functools _functoolsmodule.c
-# - _bisect _bisectmodule.c # Bisection algorithms
-# - unicodedata unicodedata.c # static Unicode character database
-# - _locale _localemodule.c
-# - fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
-# - spwd spwdmodule.c # spwd(3)
-# - grp grpmodule.c # grp(3)
-# - select selectmodule.c # select(2); not on ancient System V
-# - mmap mmapmodule.c # Memory-mapped files
-# - _csv _csv.c # CSV file helper
-# - _socket socketmodule.c # Socket module helper for socket(2)
-# - _ssl _ssl.c
-# - crypt cryptmodule.c -lcrypt # crypt(3)
-# - termios termios.c # Steen Lumholt's termios module
-# - resource resource.c # Jeremy Hylton's rlimit interface
-# - audioop audioop.c # Operations on audio samples
-# - imageop imageop.c # Operations on images
-# - _md5 md5module.c md5.c
-# - _sha shamodule.c
-# - _sha256 sha256module.c
-# - _sha512 sha512module.c
-# - linuxaudiodev linuxaudiodev.c
-# - timing timingmodule.c
-# - _tkinter _tkinter.c tkappinit.c
-# - dl dlmodule.c
-# - gdbm gdbmmodule.c
-# - _bsddb _bsddb.c
-# - binascii binascii.c
-# - parser parsermodule.c
-# - cStringIO cStringIO.c
-# - cPickle cPickle.c
-# - zlib zlibmodule.c
-# - _multibytecodec cjkcodecs/multibytecodec.c
-# - _codecs_cn cjkcodecs/_codecs_cn.c
-# - _codecs_hk cjkcodecs/_codecs_hk.c
-# - _codecs_iso2022 cjkcodecs/_codecs_iso2022.c
-# - _codecs_jp cjkcodecs/_codecs_jp.c
-# - _codecs_kr cjkcodecs/_codecs_kr.c
-# - _codecs_tw cjkcodecs/_codecs_tw.c
-Patch0: python-2.7.1-config.patch
-
-# Removes the "-g" option from "pydoc", for some reason; I believe
-# (dmalcolm 2010-01-29) that this was introduced in this change:
-# - fix pydoc (#68082)
-# in 2.2.1-12 as a response to the -g option needing TkInter installed
-# (Red Hat Linux 8)
-# Not upstream
-Patch1: 00001-pydocnogui.patch
-
-# Add $(CFLAGS) to the linker arguments when linking the "python" binary
-# since some architectures (sparc64) need this (rhbz:199373).
-# Not yet filed upstream
-Patch4: python-2.5-cflags.patch
-
-# Work around a bug in Python' gettext module relating to the "Plural-Forms"
-# header (rhbz:252136)
-# Related to upstream issues:
-# http://bugs.python.org/issue1448060 and http://bugs.python.org/issue1475523
-# though the proposed upstream patches are, alas, different
-Patch6: python-2.5.1-plural-fix.patch
-
-# This patch was listed in the changelog as:
-# * Fri Sep 14 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-11
-# - fix encoding of sqlite .py files to work around weird encoding problem
-# in Turkish (#283331)
-# A traceback attached to rhbz 244016 shows the problem most clearly: a
-# traceback on attempting to import the sqlite module, with:
-# "SyntaxError: encoding problem: with BOM (__init__.py, line 1)"
-# This seems to come from Parser/tokenizer.c:check_coding_spec
-# Our patch changes two source files within sqlite3, removing the
-# "coding: ISO-8859-1" specs and character E4 = U+00E4 =
-# LATIN SMALL LETTER A WITH DIAERESIS from in ghaering's surname.
-#
-# It may be that the conversion of "ISO-8859-1" to "iso-8859-1" is thwarted
-# by the implementation of "tolower" in the Turkish locale; see:
-# https://bugzilla.redhat.com/show_bug.cgi?id=191096#c9
-#
-# TODO: Not yet sent upstream, and appears to me (dmalcolm 2010-01-29) that
-# it may be papering over a symptom
-Patch7: python-2.5.1-sqlite-encoding.patch
-
-# FIXME: Lib/ctypes/util.py posix implementation defines a function
-# _get_soname(f). Upstreams's implementation of this uses objdump to read the
-# SONAME from a library; we avoid this, apparently to minimize space
-# requirements on the live CD:
-# (rhbz:307221)
-Patch10: 00010-2.7.13-binutils-no-dep.patch
-
-# Upstream as of Python 2.7.3:
-# Patch11: python-2.7rc1-codec-ascii-tolower.patch
-
-# Add various constants to the socketmodule (rhbz#436560):
-# TODO: these patches were added in 2.5.1-22 and 2.5.1-24 but appear not to
-# have been sent upstream yet:
-Patch13: python-2.7rc1-socketmodule-constants.patch
-Patch14: python-2.7rc1-socketmodule-constants2.patch
-
-# Remove an "-rpath $(LIBDIR)" argument from the linkage args in configure.in:
-# FIXME: is this for OSF, not Linux?
-Patch16: python-2.6-rpath.patch
-
-# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
-# Adapted from Patch0 in ivazquez' python3000 specfile, removing usage of
-# super() as it's an old-style class
-Patch17: python-2.6.4-distutils-rpath.patch
-
-# 00055 #
-# Systemtap support: add statically-defined probe points
-# Patch based on upstream bug: http://bugs.python.org/issue4111
-# fixed up by mjw and wcohen for 2.6.2, then fixed up by dmalcolm for 2.6.4
-# then rewritten by mjw (attachment 390110 of rhbz 545179), then reformatted
-# for 2.7rc1 by dmalcolm:
-Patch55: 00055-systemtap.patch
-
-# Only used when "%%{_lib}" == "lib64"
-# Fixup various paths throughout the build and in distutils from "lib" to "lib64",
-# and add the /usr/lib64/pythonMAJOR.MINOR/site-packages to sitedirs, in front of
-# /usr/lib/pythonMAJOR.MINOR/site-packages
-# Not upstream
-Patch102: 00102-2.7.13-lib64.patch
-
-# Python 2.7 split out much of the path-handling from distutils/sysconfig.py to
-# a new sysconfig.py (in r77704).
-# We need to make equivalent changes to that new file to ensure that the stdlib
-# and platform-specific code go to /usr/lib64 not /usr/lib, on 64-bit archs:
-Patch103: python-2.7-lib64-sysconfig.patch
-
-# 00104 #
-# Only used when "%%{_lib}" == "lib64"
-# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
-Patch104: 00104-lib64-fix-for-test_install.patch
-
-# 00111 #
-# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
-# a libpythonMAJOR.MINOR.a (bug 550692):
-# Downstream only: not appropriate for upstream
-Patch111: 00111-no-static-lib.patch
-
-# 00112 #
-# Patch to support building both optimized vs debug stacks DSO ABIs, sharing
-# the same .py and .pyc files, using "_d.so" to signify a debug build of an
-# extension module.
-#
-# Based on Debian's patch for the same,
-# http://patch-tracker.debian.org/patch/series/view/python2.6/2.6.5-2/debug...
-#
-# (which was itself based on the upstream Windows build), but with some
-# changes:
-#
-# * Debian's patch to dynload_shlib.c looks for module_d.so, then module.so,
-# but this can potentially find a module built against the wrong DSO ABI. We
-# instead search for just module_d.so in a debug build
-#
-# * We remove this change from configure.in's build of the Makefile:
-# SO=$DEBUG_EXT.so
-# so that sysconfig.py:customize_compiler stays with shared_lib_extension='.so'
-# on debug builds, so that UnixCCompiler.find_library_file can find system
-# libraries (otherwise "make sharedlibs" fails to find system libraries,
-# erroneously looking e.g. for "libffi_d.so" rather than "libffi.so")
-#
-# * We change Lib/distutils/command/build_ext.py:build_ext.get_ext_filename
-# to add the _d there, when building an extension. This way, "make sharedlibs"
-# can build ctypes, by finding the sysmtem libffi.so (rather than failing to
-# find "libffi_d.so"), and builds the module as _ctypes_d.so
-#
-# * Similarly, update build_ext:get_libraries handling of Py_ENABLE_SHARED by
-# appending "_d" to the python library's name for the debug configuration
-#
-# * We modify Modules/makesetup to add the "_d" to the generated Makefile
-# rules for the various Modules/*.so targets
-#
-# This may introduce issues when building an extension that links directly
-# against another extension (e.g. users of NumPy?), but seems more robust when
-# searching for external libraries
-#
-# * We don't change Lib/distutils/command/build.py: build.build_purelib to
-# embed plat_specifier, leaving it as is, as pure python builds should be
-# unaffected by these differences (we'll be sharing the .py and .pyc files)
-#
-# * We introduce DEBUG_SUFFIX as well as DEBUG_EXT:
-# - DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for
-# a debug build
-# - DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a
-# debug build
-#
-# Both will be empty in an optimized build. "_d" contains characters that
-# are valid ELF metadata, but this leads to various ugly filesystem paths (such
-# as the include path), and DEBUG_SUFFIX allows these paths to have more natural
-# names. Changing this requires changes elsewhere in the distutils code.
-#
-# * We add DEBUG_SUFFIX to PYTHON in the Makefile, so that the two
-# configurations build parallel-installable binaries with different names
-# ("python-debug" vs "python").
-#
-# * Similarly, we add DEBUG_SUFFIX within python-config and
-# python$(VERSION)-config, so that the two configuration get different paths
-# for these.
-#
-# See also patch 130 below
-#
-Patch112: 00112-2.7.13-debug-build.patch
-
-
-# 00113 #
-# Add configure-time support for the COUNT_ALLOCS and CALL_PROFILE options
-# described at http://svn.python.org/projects/python/trunk/Misc/SpecialBuilds.txt
-# so that if they are enabled, they will be in that build's pyconfig.h, so that
-# extension modules will reliably use them
-# Not yet sent upstream
-Patch113: 00113-more-configuration-flags.patch
-
-# 00114 #
-# Add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
-# (rhbz:553020); partially upstream as http://bugs.python.org/issue7647
-# Not yet sent upstream
-Patch114: 00114-statvfs-f_flag-constants.patch
-
-# Upstream r79310 removed the "Modules" directory from sys.path when Python is
-# running from the build directory on POSIX to fix a unit test (issue #8205).
-# This seems to have broken the compileall.py done in "make install": it cannot
-# find shared library extension modules at this point in the build (sys.path
-# does not contain DESTDIR/usr/lib(64)/python-2.7/lib-dynload for some reason),
-# leading to the build failing with:
-# Traceback (most recent call last):
-# File "/home/david/rpmbuild/BUILDROOT/python-2.7-0.1.rc2.fc14.x86_64/usr/lib64/python2.7/compileall.py", line 17, in <module>
-# import struct
-# File "/home/david/rpmbuild/BUILDROOT/python-2.7-0.1.rc2.fc14.x86_64/usr/lib64/python2.7/struct.py", line 1, in <module>
-# from _struct import *
-# ImportError: No module named _struct
-# This patch adds the build Modules directory to build path.
-Patch121: 00121-add-Modules-to-build-path.patch
-
-# 2.7.1 (in r84230) added a test to test_abc which fails if python is
-# configured with COUNT_ALLOCS, which is the case for our debug build
-# (the COUNT_ALLOCS instrumentation keeps "C" alive).
-# Not yet sent upstream
-Patch128: python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
-
-# 00130 #
-# Add "--extension-suffix" option to python-config and python-debug-config
-# (rhbz#732808)
-#
-# This is adapted from 3.2's PEP-3149 support.
-#
-# Fedora's debug build has some non-standard features (see also patch 112
-# above), though largely shared with Debian/Ubuntu and Windows
-#
-# In particular, SO in the Makefile is currently always just ".so" for our
-# python 2 optimized builds, but for python 2 debug it should be '_d.so', to
-# distinguish the debug vs optimized ABI, following the pattern in the above
-# patch.
-#
-# Not yet sent upstream
-Patch130: python-2.7.2-add-extension-suffix-to-python-config.patch
-
-# 00131 #
-# The four tests in test_io built on top of check_interrupted_write_retry
-# fail when built in Koji, for ppc and ppc64; for some reason, the SIGALRM
-# handlers are never called, and the call to write runs to completion
-# (rhbz#732998)
-Patch131: 00131-disable-tests-in-test_io.patch
-
-# 00132 #
-# Add non-standard hooks to unittest for use in the "check" phase below, when
-# running selftests within the build:
-# @unittest._skipInRpmBuild(reason)
-# for tests that hang or fail intermittently within the build environment, and:
-# @unittest._expectedFailureInRpmBuild
-# for tests that always fail within the build environment
-#
-# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
-# environment, which we set manually in the appropriate portion of the "check"
-# phase below (and which potentially other python-* rpms could set, to reuse
-# these unittest hooks in their own "check" phases)
-Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
-
-# 00133 #
-# "dl" is deprecated, and test_dl doesn't work on 64-bit builds:
-Patch133: 00133-skip-test_dl.patch
-
-# 00136 #
-# Some tests try to seek on sys.stdin, but don't work as expected when run
-# within Koji/mock; skip them within the rpm build:
-Patch136: 00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
-
-# 00137 #
-# Some tests within distutils fail when run in an rpmbuild:
-Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
-
-# 00138 #
-# Fixup some tests within distutils to work with how debug builds are set up:
-Patch138: 00138-fix-distutils-tests-in-debug-build.patch
-
-# 00139 #
-# ARM-specific: skip known failure in test_float:
-# http://bugs.python.org/issue8265 (rhbz#706253)
-Patch139: 00139-skip-test_float-known-failure-on-arm.patch
-
-# 00140 #
-# Sparc-specific: skip known failure in test_ctypes:
-# http://bugs.python.org/issue8314 (rhbz#711584)
-# which appears to be a libffi bug
-Patch140: 00140-skip-test_ctypes-known-failure-on-sparc.patch
-
-# 00142 #
-# Some pty tests fail when run in mock (rhbz#714627):
-Patch142: 00142-skip-failing-pty-tests-in-rpmbuild.patch
-
-# 00143 #
-# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
-# aliasing violations (rhbz#698726)
-# Sent upstream as http://bugs.python.org/issue12872
-Patch143: 00143-tsc-on-ppc.patch
-
-# 00144 #
-# (Optionally) disable the gdbm module:
-Patch144: 00144-no-gdbm.patch
-
-# 00146 #
-# Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
-# - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
-# FIPS-enforcing environment)
-# - add a new "usedforsecurity" keyword argument to the various digest
-# algorithms in hashlib so that you can whitelist a callsite with
-# "usedforsecurity=False"
-# (sent upstream for python 3 as http://bugs.python.org/issue9216; this is a
-# backport to python 2.7; see RHEL6 patch 119)
-# - enforce usage of the _hashlib implementation: don't fall back to the _md5
-# and _sha* modules (leading to clearer error messages if fips selftests
-# fail)
-# - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
-# of hashlib (for example, md5.py will use _hashlib's implementation of MD5,
-# if permitted by the FIPS setting)
-# (rhbz#563986)
-Patch146: 00146-hashlib-fips.patch
-
-# 00147 #
-# Add a sys._debugmallocstats() function
-# Based on patch 202 from RHEL 5's python.spec, with updates from rhbz#737198
-# Sent upstream as http://bugs.python.org/issue14785
-Patch147: 00147-add-debug-malloc-stats.patch
-
-# 00155 #
-# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
-# generating SELinux denials on "import ctypes" and "import uuid" when
-# embedding Python within httpd (rhbz#814391)
-Patch155: 00155-avoid-ctypes-thunks.patch
-
-# 00156 #
-# Recent builds of gdb will only auto-load scripts from certain safe
-# locations. Turn off this protection when running test_gdb in the selftest
-# suite to ensure that it can load our -gdb.py script (rhbz#817072):
-# Not yet sent upstream
-Patch156: 00156-gdb-autoload-safepath.patch
-
-# 00157 #
-# Update uid/gid handling throughout the standard library: uid_t and gid_t are
-# unsigned 32-bit values, but existing code often passed them through C long
-# values, which are signed 32-bit values on 32-bit architectures, leading to
-# negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
-#
-# Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
-# objects, using int objects where the value will fit (long objects otherwise),
-# and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
-# as a special case (since this is given special meaning by the chown syscall)
-#
-# Update standard library to use this throughout for uid/gid values, so that
-# very large uid/gid values are round-trippable, and -1 remains usable.
-# (rhbz#697470)
-Patch157: 00157-uid-gid-overflows.patch
-
-# 00165 #
-# Backport to Python 2 from Python 3.3 of improvements to the "crypt" module
-# adding precanned ways of salting a password (rhbz#835021)
-# Based on r88500 patch to py3k from Python 3.3
-# plus 6482dd1c11ed, 0586c699d467, 62994662676a, 74a1110a3b50, plus edits
-# to docstrings to note that this additional functionality is not standard
-# within 2.7
-Patch165: 00165-crypt-module-salt-backport.patch
-
-# 00167 #
-# Don't run any of the stack navigation tests in test_gdb when Python is
-# optimized, since there appear to be many different ways in which gdb can
-# fail to read the PyFrameObject* for arbitrary places in the callstack,
-# presumably due to compiler optimization (rhbz#912025)
-#
-# Not yet sent upstream
-Patch167: 00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
-
-# 00168 #
-# Update distutils.sysconfig so that if CFLAGS is defined in the environment,
-# when building extension modules, it is appended to the full compilation
-# flags from Python's Makefile, rather than instead reducing the compilation
-# flags to the subset within OPT and adding it to those.
-#
-# In particular, this should ensure that "-fno-strict-aliasing" is used by
-# "python setup.py build" even when CFLAGS is defined in the environment.
-#
-# (rhbz#849994)
-Patch168: 00168-distutils-cflags.patch
-
-# 00169 #
-# Use SHA-256 rather than implicitly using MD5 within the challenge handling
-# in multiprocessing.connection
-#
-# Sent upstream as http://bugs.python.org/issue17258
-# (rhbz#879695)
-Patch169: 00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
-
-# 00170 #
-# In debug builds, try to print repr() when a C-level assert fails in the
-# garbage collector (typically indicating a reference-counting error
-# somewhere else e.g in an extension module)
-# Backported to 2.7 from a patch I sent upstream for py3k
-# http://bugs.python.org/issue9263 (rhbz#614680)
-# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
-# them within the extension API.
-# (rhbz#850013)
-Patch170: 00170-gc-assertions.patch
-
-# 00174 #
-# Workaround for failure to set up prefix/exec_prefix when running
-# an embededed libpython that sets Py_SetProgramName() to a name not
-# on $PATH when run from the root directory due to
-# https://fedoraproject.org/wiki/Features/UsrMove
-# e.g. cmpi-bindings under systemd (rhbz#817554):
-Patch174: 00174-fix-for-usr-move.patch
-
-# 00180 #
-# Enable building on ppc64p7
-# Not appropriate for upstream, Fedora-specific naming
-Patch180: 00180-python-add-support-for-ppc64p7.patch
-
-# 00181 #
-# Allow arbitrary timeout for Condition.wait, as reported in
-# https://bugzilla.redhat.com/show_bug.cgi?id=917709
-# Upstream doesn't want this: http://bugs.python.org/issue17748
-# But we have no better solution downstream yet, and since there is
-# no API breakage, we apply this patch.
-# Doesn't apply to Python 3, where this is fixed otherwise and works.
-Patch181: 00181-allow-arbitrary-timeout-in-condition-wait.patch
-
-# 00185 #
-# Makes urllib2 honor "no_proxy" enviroment variable for "ftp:" URLs
-# when ftp_proxy is set
-Patch185: 00185-urllib2-honors-noproxy-for-ftp.patch
-
-# 00187 #
-# Add an explicit RPATH to pyexpat.so pointing at the directory
-# containing the system expat (which has the extra XML_SetHashSalt
-# symbol), to avoid an ImportError with a link error if there's an
-# LD_LIBRARY_PATH containing a "vanilla" build of expat (without the
-# symbol)
-Patch187: 00187-add-RPATH-to-pyexpat.patch
-
-# 00189 #
-# Instead of bundled wheels, use our RPM packaged wheels from
-# /usr/share/python-wheels
-Patch189: 00189-use-rpm-wheels.patch
-
-# 00191 #
-# Disabling NOOP test as it fails without internet connection
-Patch191: 00191-disable-NOOP.patch
-
-# 00193 #
-# Enable loading sqlite extensions. This patch isn't needed for
-# python3.spec, since Python 3 has a configuration option for this.
-# rhbz#1066708
-# Patch provided by John C. Peterson
-Patch193: 00193-enable-loading-sqlite-extensions.patch
-
-# 00289 #
-# Disable automatic detection for the nis module
-# (we handle it it in Setup.dist, see Patch0)
-Patch289: 00289-disable-nis-detection.patch
-
-# (New patches go here ^^^)
-#
-# When adding new patches to "python2" and "python3" in Fedora, EL, etc.,
-# please try to keep the patch numbers in-sync between all specfiles.
-#
-# More information, and a patch number catalog, is at:
-#
-# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
-
-# This is the generated patch to "configure"; see the description of
-# %%{regenerate_autotooling_patch}
-# above:
-
-# Disable tk for modularity builds to break up build dependencies
-Patch04000: 04000-modularity-disable-tk.patch
-
-Patch5000: 05000-autotool-intermediates.patch
-
-# ======================================================
-# Additional metadata, and subpackages
-# ======================================================
-
-URL: https://www.python.org/
-
-%description
-Python 2 is an old version of the language that is incompatible with the 3.x
-line of releases. The language is mostly the same, but many details, especially
-how built-in objects like dictionaries and strings work, have changed
-considerably, and a lot of deprecated features have finally been removed in the
-3.x line.
-
-Note that documentation for Python 2 is provided in the python2-docs
-package.
-
-This package provides the "python2" executable; most of the actual
-implementation is within the "python2-libs" package.
-
-
-%package libs
-Summary: Runtime libraries for Python 2
-%?deprecated
-
-# Needed for ctypes, to load libraries, worked around for Live CDs size
-# Requires: binutils
-
-# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
-# this symbol (in pyexpat), so we must explicitly state this dependency to
-# prevent "import pyexpat" from failing with a linker error if someone hasn't
-# yet upgraded expat:
-Requires: expat >= 2.1.0
-
-# Python built with glibc >= 2.24.90-26 needs to require it (rhbz#1410644).
-Requires: glibc%{?_isa} >= 2.24.90-26
-
-%if %{with_gdbm}
-# ABI change without soname bump, reverted
-Requires: gdbm%{?_isa} >= 1:1.13
-%endif
-
-%if %{with rpmwheels}
-Requires: python-setuptools-wheel
-Requires: python-pip-wheel
-%else
-Provides: bundled(python2-pip) = 18.1
-Provides: bundled(python2-setuptools) = 40.6.2
-%endif
-
-%{?python_provide:%python_provide python2-libs}
-%{?python_provide:%python_provide python2-libs%{?_isa}}
-
-%description libs
-This package contains files used to embed Python 2 into applications.
-
-%package devel
-Summary: Libraries and header files needed for Python 2 development
-%?deprecated
-
-Requires: %{python}%{?_isa} = %{version}-%{release}
-Requires: pkgconfig
-
-# The RPM related dependencies bring nothing to a non-RPM Python developer
-# But we want them when packages BuildRequire python2-devel
-Requires: (python-rpm-macros if rpm-build)
-Requires: (python2-rpm-macros if rpm-build)
-
-%if %{without python3_bootstrap}
-# When bootstrapping python3, we need to build setuptools
-# But setuptools BR python2-devel and that brings in python3-rpm-generators
-# python3-rpm-generators needs python3-setuptools, so we cannot have it yet
-Requires: (python3-rpm-generators if rpm-build)
-%endif
-
-# This is not "API" (packages that need setuptools should still BuildRequire it)
-# However some packages apparently can build both with and without setuptools
-# producing egg-info as file or directory (depending on setuptools presence).
-# Directory-to-file updates are problematic in RPM, so we ensure setuptools is
-# installed when -devel is required.
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1623922
-# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
-Requires: (python2-setuptools if rpm-build)
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=1217376
-# https://bugzilla.redhat.com/show_bug.cgi?id=1496757
-# https://bugzilla.redhat.com/show_bug.cgi?id=1218294
-# TODO change to a specific subpackage once available (#1218294)
-Requires: (redhat-rpm-config if gcc)
-
-# Needed here because of the migration of Makefile from -devel to the main
-# package
-Conflicts: %{python} < %{version}-%{release}
-
-%{?python_provide:%python_provide python2-devel}
-%{?python_provide:%python_provide python2-devel%{?_isa}}
-
-%description devel
-This package contains libraries and header files used to build applications
-with and native libraries for Python 2
-
-%package tools
-Summary: A collection of development tools included with Python 2
-%?deprecated
-
-Requires: %{name} = %{version}-%{release}
-Requires: %{python}-tkinter = %{version}-%{release}
-
-%{?python_provide:%python_provide python2-tools}
-%{?python_provide:%python_provide python2-tools%{?_isa}}
-
-%description tools
-This package includes several tools to help with the development of Python 2
-programs, including IDLE (an IDE with editing and debugging facilities), a
-color editor (pynche), and a python gettext program (pygettext.py).
-
-%package tkinter
-Summary: A graphical user interface for the Python 2 scripting language
-%?deprecated
-
-Requires: %{name} = %{version}-%{release}
-
-%if 0%{?fedora} < 31
-Provides: tkinter = %{version}-%{release}
-Provides: tkinter%{?_isa} = %{version}-%{release}
-Provides: tkinter2 = %{version}-%{release}
-Provides: tkinter2%{?_isa} = %{version}-%{release}
-%endif
-%{?python_provide:%python_provide python2-tkinter}
-%{?python_provide:%python_provide python2-tkinter%{?_isa}}
-
-%description tkinter
-
-The Tkinter (Tk interface) program is an graphical user interface for
-the Python 2 scripting language.
-
-You should install the python2tkinter package if you'd like to use a graphical
-user interface for Python 2 programming.
-
-%package test
-Summary: The test modules from the main python2 package
-%?deprecated
-
-Requires: %{name} = %{version}-%{release}
-
-%{?python_provide:%python_provide python2-test}
-%{?python_provide:%python_provide python2-test%{?_isa}}
-
-%description test
-
-The test modules from the main python2 package: %{name}
-These have been removed to save space, as they are never or almost
-never used in production.
-
-You might want to install the python2-test package if you're developing python 2
-code that uses more than just unittest and/or test.support.
-
-%if %{with debug_build}
-%package debug
-Summary: Debug version of the Python 2 runtime
-%?deprecated
-
-# The debug build is an all-in-one package version of the regular build, and
-# shares the same .py/.pyc files and directories as the regular build. Hence
-# we depend on all of the subpackages of the regular build:
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
-Requires: %{name}-test%{?_isa} = %{version}-%{release}
-Requires: %{python}-tkinter%{?_isa} = %{version}-%{release}
-Requires: %{name}-tools%{?_isa} = %{version}-%{release}
-
-%{?python_provide:%python_provide python2-debug}
-%{?python_provide:%python_provide python2-debug%{?_isa}}
-
-%description debug
-python2-debug provides a version of the Python 2 runtime with numerous debugging
-features enabled, aimed at advanced Python users, such as developers of Python
-extension modules.
-
-This version uses more memory and will be slower than the regular Python 2 build,
-but is useful for tracking down reference-counting issues, and other bugs.
-
-The bytecodes are unchanged, so that .pyc files are compatible between the two
-version of Python 2, but the debugging features mean that C/C++ extension modules
-are ABI-incompatible with those built for the standard runtime.
-
-It shares installation directories with the standard Python 2 runtime, so that
-.py and .pyc files can be shared. All compiled extension modules gain a "_d"
-suffix ("foo_d.so" rather than "foo.so") so that each Python 2 implementation can
-load its own extensions.
-%endif # with debug_build
-
-
-# ======================================================
-# The prep phase of the build:
-# ======================================================
-
-%prep
-%setup -q -n Python-%{upstream_version}
-
-%if 0%{?with_systemtap}
-# Provide an example of usage of the tapset:
-cp -a %{SOURCE4} .
-cp -a %{SOURCE5} .
-%endif # with_systemtap
-
-# Ensure that we're using the system copy of various libraries, rather than
-# copies shipped by upstream in the tarball:
-# Remove embedded copy of expat:
-rm -r Modules/expat || exit 1
-
-# Remove embedded copy of libffi:
-for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx ; do
- rm -r Modules/_ctypes/$SUBDIR || exit 1 ;
-done
-
-# Remove embedded copy of zlib:
-rm -r Modules/zlib || exit 1
-
-## Disabling hashlib patch for now as it needs to be reimplemented
-## for OpenSSL 1.1.0.
-# Don't build upstream Python's implementation of these crypto algorithms;
-# instead rely on _hashlib and OpenSSL.
-#
-# For example, in our builds md5.py uses always uses hashlib.md5 (rather than
-# falling back to _md5 when hashlib.md5 is not available); hashlib.md5 is
-# implemented within _hashlib via OpenSSL (and thus respects FIPS mode)
-#for f in md5module.c md5.c shamodule.c sha256module.c sha512module.c; do
-# rm Modules/$f
-#done
-
-#
-# Apply patches:
-#
-%patch0 -p1 -b .rhconfig
-%patch1 -p1 -b .no_gui
-%patch4 -p1 -b .cflags
-%patch6 -p1 -b .plural
-%patch7 -p1
-
-%if "%{_lib}" == "lib64"
-%patch102 -p1 -b .lib64
-%patch103 -p1 -b .lib64-sysconfig
-%patch104 -p1
-%endif
-
-%patch10 -p1 -b .binutils-no-dep
-%patch13 -p1 -b .socketmodule
-%patch14 -p1 -b .socketmodule2
-%patch16 -p1 -b .rpath
-%patch17 -p1 -b .distutils-rpath
-
-%if 0%{?with_systemtap}
-%patch55 -p1 -b .systemtap
-%endif
-
-%patch111 -p1 -b .no-static-lib
-
-%patch112 -p1 -b .debug-build
-
-%patch113 -p1 -b .more-configuration-flags
-
-%patch114 -p1 -b .statvfs-f-flag-constants
-
-
-%patch121 -p1
-%patch128 -p1
-
-%patch130 -p1
-
-%ifarch ppc %{power64}
-%patch131 -p1
-%endif
-
-%patch132 -p1
-%patch133 -p1
-%patch136 -p1 -b .stdin-test
-%patch137 -p1
-%patch138 -p1
-%ifarch %{arm}
-%patch139 -p1
-%endif
-%ifarch %{sparc}
-%patch140 -p1
-%endif
-%patch142 -p1 -b .tty-fail
-%patch143 -p1 -b .tsc-on-ppc
-%if !%{with_gdbm}
-%patch144 -p1
-%endif
-#patch146 -p1
-%patch147 -p1
-%patch155 -p1
-%patch156 -p1
-%patch157 -p1
-%patch165 -p1
-mv Modules/cryptmodule.c Modules/_cryptmodule.c
-%patch167 -p1
-%patch168 -p1
-%patch169 -p1
-%patch170 -p1
-%patch174 -p1 -b .fix-for-usr-move
-%patch180 -p1
-%patch181 -p1
-%patch185 -p1
-%patch187 -p1
-
-%if %{with rpmwheels}
-%patch189 -p1
-rm Lib/ensurepip/_bundled/*.whl
-%endif
-
-%patch191 -p1
-%patch193 -p1
-%patch289 -p1
-
-%if 0%{?_module_build}
-%patch4000 -p1
-%endif
-
-# This shouldn't be necesarry, but is right now (2.2a3)
-find -name "*~" |xargs rm -f
-
-%if ! 0%{regenerate_autotooling_patch}
-# Normally we apply the patch to "configure"
-# We don't apply the patch if we're working towards regenerating it
-%patch5000 -p0 -b .autotool-intermediates
-%endif
-
-
-# ======================================================
-# Configuring and building the code:
-# ======================================================
-
-%build
-topdir=$(pwd)
-export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"
-export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export LINKCC="gcc"
-export LDFLAGS="$RPM_LD_FLAGS"
-if pkg-config openssl ; then
- export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
- export LDFLAGS="$LDFLAGS $(pkg-config --libs-only-L openssl)"
-fi
-# Force CC
-export CC=gcc
-
-%if 0%{regenerate_autotooling_patch}
-# If enabled, this code regenerates the patch to "configure", using a
-# local copy of autoconf-2.65, then exits the build
-#
-# The following assumes that the copy is installed to ~/autoconf-2.65/bin
-# as per these instructions:
-# http://bugs.python.org/issue7997
-
-for f in pyconfig.h.in configure ; do
- cp $f $f.autotool-intermediates ;
-done
-
-# Rerun the autotools:
-PATH=~/autoconf-2.65/bin:$PATH autoconf
-autoheader
-
-# Regenerate the patch:
-gendiff . .autotool-intermediates > %{PATCH5000}
-
-
-# Exit the build
-exit 1
-%endif
-
-# Define a function, for how to perform a "build" of python for a given
-# configuration:
-BuildPython() {
- ConfName=$1
- BinaryName=$2
- SymlinkName=$3
- ExtraConfigArgs=$4
- PathFixWithThisBinary=$5
-
- ConfDir=build/$ConfName
-
- echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
- mkdir -p $ConfDir
-
- pushd $ConfDir
-
- # Use the freshly created "configure" script, but in the directory two above:
- %global _configure $topdir/configure
-
-%configure \
- --enable-ipv6 \
- --enable-shared \
- --enable-unicode=%{unicode} \
- --with-dbmliborder=gdbm:ndbm:bdb \
- --with-system-expat \
- --with-system-ffi \
-%if 0%{?with_systemtap}
- --with-dtrace \
- --with-tapset-install-dir=%{tapsetdir} \
-%endif
-%if 0%{?with_valgrind}
- --with-valgrind \
-%endif
- $ExtraConfigArgs \
- %{nil}
-
-make EXTRA_CFLAGS="$CFLAGS" %{?_smp_mflags}
-
-# We need to fix shebang lines across the full source tree.
-#
-# We do this using the pathfix.py script, which requires one of the
-# freshly-built Python binaries.
-#
-# We use the optimized python binary, and make the shebangs point at that same
-# optimized python binary:
-if $PathFixWithThisBinary
-then
- # pathfix.py currently only works with files matching ^[a-zA-Z0-9_]+\.py$
- # when crawling through directories, so we handle the special cases manually
- LD_LIBRARY_PATH="$topdir/$ConfDir" ./$BinaryName \
- $topdir/Tools/scripts/pathfix.py \
- -i "%{_bindir}/python%{pybasever}" \
- $topdir \
- $topdir/Tools/pynche/pynche \
- $topdir/Demo/pdist/{rcvs,rcsbump,rrcs} \
- $topdir/Demo/scripts/find-uname.py \
- $topdir/Tools/scripts/reindent-rst.py
-fi
-
-# Rebuild with new python
-# We need a link to a versioned python in the build directory
-ln -s $BinaryName $SymlinkName
-LD_LIBRARY_PATH="$topdir/$ConfDir" PATH=$PATH:$topdir/$ConfDir make -s EXTRA_CFLAGS="$CFLAGS" %{?_smp_mflags}
-
- popd
- echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
-}
-
-# Use "BuildPython" to support building with different configurations:
-
-%if %{with debug_build}
-BuildPython debug \
- python-debug \
- python%{pybasever}-debug \
-%ifarch %{ix86} x86_64 ppc %{power64}
- "--with-pydebug --with-tsc --with-count-allocs --with-call-profile" \
-%else
- "--with-pydebug --with-count-allocs --with-call-profile" \
-%endif
- false
-%endif # with debug_build
-
-BuildPython optimized \
- python \
- python%{pybasever} \
-%ifarch %{ix86} x86_64
- "--enable-optimizations" \
-%else
- "" \
-%endif
- true
-
-
-# ======================================================
-# Installing the built code:
-# ======================================================
-
-%install
-topdir=$(pwd)
-rm -rf %{buildroot}
-mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
-
-# Clean up patched .py files that are saved as .lib64
-for f in distutils/command/install distutils/sysconfig; do
- rm -f Lib/$f.py.lib64
-done
-
-InstallPython() {
-
- ConfName=$1
- BinaryName=$2
- PyInstSoName=$3
-
- ConfDir=build/$ConfName
-
- echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
- mkdir -p $ConfDir
-
- pushd $ConfDir
-
-make install DESTDIR=%{buildroot}
-
-# We install a collection of hooks for gdb that make it easier to debug
-# executables linked against libpython (such as /usr/lib/python itself)
-#
-# These hooks are implemented in Python itself
-#
-# gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
-# We put them in the debuginfo package by installing them to e.g.:
-# /usr/lib/debug/usr/lib/libpython2.6.so.1.0.debug-gdb.py
-# (note that the debug path is /usr/lib/debug for both 32/64 bit)
-#
-# See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
-# information
-#
-# Initially I tried:
-# /usr/lib/libpython2.6.so.1.0-gdb.py
-# but doing so generated noise when ldconfig was rerun (rhbz:562980)
-#
-%if 0%{?with_gdb_hooks}
-DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
-PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
-
-mkdir -p %{buildroot}$DirHoldingGdbPy
-cp $topdir/Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
-
-# Manually byte-compile the file, in case find-debuginfo.sh is run before
-# brp-python-bytecompile, so that the .pyc/.pyo files are properly listed in
-# the debuginfo manifest:
-LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName \
- -c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
-
-LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName -O \
- -c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
-%endif # with_gdb_hooks
-
- popd
-
- echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
-}
-
-# Use "InstallPython" to support building with different configurations:
-
-# Install the "debug" build first, so that we can move some files aside
-%if %{with debug_build}
-InstallPython debug \
- python%{pybasever}-debug \
- %{py_INSTSONAME_debug}
-%endif # with debug_build
-
-# Now the optimized build:
-InstallPython optimized \
- python%{pybasever} \
- %{py_INSTSONAME_optimized}
-
-
-# Fix the interpreter path in binaries installed by distutils
-# (which changes them by itself)
-# Make sure we preserve the file permissions
-for fixed in %{buildroot}%{_bindir}/pydoc; do
- sed 's,#!.*/python$,#!/usr/bin/env python%{pybasever},' $fixed > $fixed- \
- && cat $fixed- > $fixed && rm -f $fixed-
-done
-
-# Junk, no point in putting in -test sub-pkg
-rm -f %{buildroot}/%{pylibdir}/idlelib/testcode.py*
-
-# don't include tests that are run at build time in the package
-# This is documented, and used: rhbz#387401
-if /bin/false; then
- # Move this to -test subpackage.
-mkdir save_bits_of_test
-for i in test_support.py __init__.py; do
- cp -a %{buildroot}/%{pylibdir}/test/$i save_bits_of_test
-done
-rm -rf %{buildroot}/%{pylibdir}/test
-mkdir %{buildroot}/%{pylibdir}/test
-cp -a save_bits_of_test/* %{buildroot}/%{pylibdir}/test
-fi
-
-# tools
-
-mkdir -p ${RPM_BUILD_ROOT}%{site_packages}
-
-#pynche
-install -p -m755 %{SOURCE7} ${RPM_BUILD_ROOT}%{_bindir}/pynche
-chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/pynche
-rm -f Tools/pynche/*.pyw
-cp -rp Tools/pynche \
- ${RPM_BUILD_ROOT}%{site_packages}/
-
-mv Tools/pynche/README Tools/pynche/README.pynche
-
-#gettext
-install -m755 Tools/i18n/pygettext.py %{buildroot}%{_bindir}/
-install -m755 Tools/i18n/msgfmt.py %{buildroot}%{_bindir}/
-
-# Useful development tools
-install -m755 -d %{buildroot}%{tools_dir}/scripts
-install Tools/README %{buildroot}%{tools_dir}/
-install Tools/scripts/*py %{buildroot}%{tools_dir}/scripts/
-
-# Documentation tools
-install -m755 -d %{buildroot}%{doc_tools_dir}
-#install -m755 Doc/tools/mkhowto %{buildroot}%{doc_tools_dir}
-
-# Useful demo scripts
-install -m755 -d %{buildroot}%{demo_dir}
-cp -ar Demo/* %{buildroot}%{demo_dir}
-
-# Get rid of crap
-find %{buildroot}/ -name "*~"|xargs rm -f
-find %{buildroot}/ -name ".cvsignore"|xargs rm -f
-find %{buildroot}/ -name "*.bat"|xargs rm -f
-find . -name "*~"|xargs rm -f
-find . -name ".cvsignore"|xargs rm -f
-
-
-# Provide binaries in the form of bin2 and bin2.7, thus implementing
-# (and expanding) the recommendations of PEP 394.
-# Do NOT provide unversioned binaries
-# https://fedoraproject.org/wiki/Changes/Python_means_Python3
-mv %{buildroot}%{_bindir}/idle %{buildroot}%{_bindir}/idle%{pybasever}
-ln -s ./idle%{pybasever} %{buildroot}%{_bindir}/idle2
-
-mv %{buildroot}%{_bindir}/pynche %{buildroot}%{_bindir}/pynche%{pybasever}
-ln -s ./pynche%{pybasever} %{buildroot}%{_bindir}/pynche2
-
-mv %{buildroot}%{_bindir}/pydoc %{buildroot}%{_bindir}/pydoc%{pybasever}
-ln -s ./pydoc%{pybasever} %{buildroot}%{_bindir}/pydoc2
-
-mv %{buildroot}%{_bindir}/pygettext.py %{buildroot}%{_bindir}/pygettext%{pybasever}.py
-ln -s ./pygettext%{pybasever}.py %{buildroot}%{_bindir}/pygettext2.py
-
-mv %{buildroot}%{_bindir}/msgfmt.py %{buildroot}%{_bindir}/msgfmt%{pybasever}.py
-ln -s ./msgfmt%{pybasever}.py %{buildroot}%{_bindir}/msgfmt2.py
-
-mv %{buildroot}%{_bindir}/smtpd.py %{buildroot}%{_bindir}/smtpd%{pybasever}.py
-ln -s ./smtpd%{pybasever}.py %{buildroot}%{_bindir}/smtpd2.py
-
-# Fix for bug #136654
-rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
-
-# Fix bug #143667: python should own /usr/lib/python2.x on 64-bit machines
-%if "%{_lib}" == "lib64"
-install -d %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages
-%endif
-
-# Make python-devel multilib-ready (bug #192747, #139911)
-%global _pyconfig32_h pyconfig-32.h
-%global _pyconfig64_h pyconfig-64.h
-
-%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64
-%global _pyconfig_h %{_pyconfig64_h}
-%else
-%global _pyconfig_h %{_pyconfig32_h}
-%endif
-
-%if %{with debug_build}
-%global PyIncludeDirs python%{pybasever} python%{pybasever}-debug
-%else
-%global PyIncludeDirs python%{pybasever}
-%endif
-
-for PyIncludeDir in %{PyIncludeDirs} ; do
- mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
- %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
- cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 32
-#include "%{_pyconfig32_h}"
-#elif __WORDSIZE == 64
-#include "%{_pyconfig64_h}"
-#else
-#error "Unknown word size"
-#endif
-EOF
-done
-ln -s ../../libpython%{pybasever}.so %{buildroot}%{pylibdir}/config/libpython%{pybasever}.so
-
-# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
-# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
-# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
-# when python starts up.
-#
-# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
-# variants:
-sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
- %{buildroot}%{pylibdir}/distutils/sysconfig.py \
- %{buildroot}%{pylibdir}/sysconfig.py
-
-# Ensure that the curses module was linked against libncursesw.so, rather than
-# libncurses.so (bug 539917)
-ldd %{buildroot}/%{dynload_dir}/_curses*.so \
- | grep curses \
- | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
-
-# Ensure that the debug modules are linked against the debug libpython, and
-# likewise for the optimized modules and libpython:
-for Module in %{buildroot}/%{dynload_dir}/*.so ; do
- case $Module in
- *_d.so)
- ldd $Module | grep %{py_INSTSONAME_optimized} &&
- (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
-
- ;;
- *)
- ldd $Module | grep %{py_INSTSONAME_debug} &&
- (echo Optimized module $Module linked against debug %{py_INSTSONAME_optimized} ; exit 1)
- ;;
- esac
-done
-
-#
-# Systemtap hooks:
-#
-%if 0%{?with_systemtap}
-# Install a tapset for this libpython into tapsetdir, fixing up the path to the
-# library:
-mkdir -p %{buildroot}%{tapsetdir}
-%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
-%global libpython_stp_optimized libpython%{pybasever}-64.stp
-%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
-%else
-%global libpython_stp_optimized libpython%{pybasever}-32.stp
-%global libpython_stp_debug libpython%{pybasever}-debug-32.stp
-%endif
-
-sed \
- -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
- %{SOURCE3} \
- > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
-
-%if %{with debug_build}
-sed \
- -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
- %{SOURCE3} \
- > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
-%endif # with debug_build
-%endif # with_systemtap
-
-# Do bytecompilation with the newly installed interpreter.
-# compile *.pyo
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
-# compile *.pyc
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
-
-
-# Make library-files user writable
-/usr/bin/chmod 755 %{buildroot}%{dynload_dir}/*.so
-/usr/bin/chmod 755 %{buildroot}%{_libdir}/libpython%{pybasever}.so.1.0
-%if %{with debug_build}
-/usr/bin/chmod 755 %{buildroot}%{_libdir}/libpython%{pybasever}_d.so.1.0
-%endif
-
-# Remove pyc/pyo files from /usr/bin
-# They are not needed, and due to them, the resulting RPM is not multilib-clean
-# https://bugzilla.redhat.com/show_bug.cgi?id=1703575
-rm %{buildroot}%{_bindir}/*.py{c,o}
-
-# Remove all remaining unversioned commands
-# https://fedoraproject.org/wiki/Changes/Python_means_Python3
-rm %{buildroot}%{_bindir}/python
-rm %{buildroot}%{_bindir}/python-config
-rm %{buildroot}%{_mandir}/*/python.1*
-rm %{buildroot}%{_libdir}/pkgconfig/python.pc
-%if %{with debug_build}
-rm %{buildroot}%{_bindir}/python-debug
-rm %{buildroot}%{_bindir}/python-debug-config
-rm %{buildroot}%{_libdir}/pkgconfig/python-debug.pc
-%endif
-
-
-# ======================================================
-# Running the upstream test suite
-# ======================================================
-
-%check
-topdir=$(pwd)
-CheckPython() {
- ConfName=$1
- BinaryName=$2
- ConfDir=$(pwd)/build/$ConfName
-
- export OPENSSL_CONF=/non-existing-file
-
- echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
-
- # Note that we're running the tests using the version of the code in the
- # builddir, not in the buildroot.
-
- pushd $ConfDir
-
- EXTRATESTOPTS="--verbose"
-
-%ifarch s390 s390x %{power64} %{arm} aarch64 %{mips}
- EXTRATESTOPTS="$EXTRATESTOPTS -x test_gdb"
-%endif
-%ifarch %{mips64}
- EXTRATESTOPTS="$EXTRATESTOPTS -x test_ctypes"
-%endif
-
-%if 0%{?with_huntrleaks}
- # Try to detect reference leaks on debug builds. By default this means
- # running every test 10 times (6 to stabilize, then 4 to watch):
- if [ "$ConfName" = "debug" ] ; then
- EXTRATESTOPTS="$EXTRATESTOPTS --huntrleaks : "
- fi
-%endif
-
- # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
- # our non-standard decorators take effect on the relevant tests:
- # @unittest._skipInRpmBuild(reason)
- # @unittest._expectedFailureInRpmBuild
- WITHIN_PYTHON_RPM_BUILD= EXTRATESTOPTS="$EXTRATESTOPTS" make test
-
- popd
-
- echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
-
-}
-
-%if %{with tests}
-
-# no locale coercion in python2
-# test_ssl:test_load_dh_params shutil.copies into unicode filename
-export LC_ALL=C.utf-8
-
-# Check each of the configurations:
-%if %{with debug_build}
-CheckPython \
- debug \
- python%{pybasever}-debug
-%endif # with debug_build
-CheckPython \
- optimized \
- python%{pybasever}
-
-%endif # with tests
-
-
-# ======================================================
-# Cleaning up
-# ======================================================
-
-
-%files
-%doc README
-%{_bindir}/pydoc2*
-%{_bindir}/%{python}
-%{_bindir}/python%{pybasever}
-%{_mandir}/*/python2*
-
-%files libs
-%doc README
-%license %{pylibdir}/LICENSE.txt
-%dir %{pylibdir}
-%dir %{dynload_dir}
-
-%{dynload_dir}/_md5module.so
-%{dynload_dir}/_sha256module.so
-%{dynload_dir}/_sha512module.so
-%{dynload_dir}/_shamodule.so
-
-%{dynload_dir}/Python-%{upstream_version}-py%{pybasever}.egg-info
-%{dynload_dir}/_bisectmodule.so
-%{dynload_dir}/_bsddb.so
-%{dynload_dir}/_codecs_cn.so
-%{dynload_dir}/_codecs_hk.so
-%{dynload_dir}/_codecs_iso2022.so
-%{dynload_dir}/_codecs_jp.so
-%{dynload_dir}/_codecs_kr.so
-%{dynload_dir}/_codecs_tw.so
-%{dynload_dir}/_collectionsmodule.so
-%{dynload_dir}/_csv.so
-%{dynload_dir}/_ctypes.so
-%{dynload_dir}/_curses.so
-%{dynload_dir}/_curses_panel.so
-%{dynload_dir}/_elementtree.so
-%{dynload_dir}/_functoolsmodule.so
-%{dynload_dir}/_hashlib.so
-%{dynload_dir}/_heapq.so
-%{dynload_dir}/_hotshot.so
-%{dynload_dir}/_io.so
-%{dynload_dir}/_json.so
-%{dynload_dir}/_localemodule.so
-%{dynload_dir}/_lsprof.so
-%{dynload_dir}/_multibytecodecmodule.so
-%{dynload_dir}/_multiprocessing.so
-%{dynload_dir}/_randommodule.so
-%{dynload_dir}/_socketmodule.so
-%{dynload_dir}/_sqlite3.so
-%{dynload_dir}/_ssl.so
-%{dynload_dir}/_struct.so
-%{dynload_dir}/arraymodule.so
-%{dynload_dir}/audioop.so
-%{dynload_dir}/binascii.so
-%{dynload_dir}/bz2.so
-%{dynload_dir}/cPickle.so
-%{dynload_dir}/cStringIO.so
-%{dynload_dir}/cmathmodule.so
-%{dynload_dir}/_cryptmodule.so
-%{dynload_dir}/datetime.so
-%{dynload_dir}/dbm.so
-%{dynload_dir}/dlmodule.so
-%{dynload_dir}/fcntlmodule.so
-%{dynload_dir}/future_builtins.so
-%if %{with_gdbm}
-%{dynload_dir}/gdbmmodule.so
-%endif
-%{dynload_dir}/grpmodule.so
-%{dynload_dir}/imageop.so
-%{dynload_dir}/itertoolsmodule.so
-%{dynload_dir}/linuxaudiodev.so
-%{dynload_dir}/math.so
-%{dynload_dir}/mmapmodule.so
-%{dynload_dir}/nismodule.so
-%{dynload_dir}/operator.so
-%{dynload_dir}/ossaudiodev.so
-%{dynload_dir}/parsermodule.so
-%{dynload_dir}/pyexpat.so
-%{dynload_dir}/readline.so
-%{dynload_dir}/resource.so
-%{dynload_dir}/selectmodule.so
-%{dynload_dir}/spwdmodule.so
-%{dynload_dir}/stropmodule.so
-%{dynload_dir}/syslog.so
-%{dynload_dir}/termios.so
-%{dynload_dir}/timemodule.so
-%{dynload_dir}/timingmodule.so
-%{dynload_dir}/unicodedata.so
-%{dynload_dir}/xxsubtype.so
-%{dynload_dir}/zlibmodule.so
-
-%dir %{site_packages}
-%{site_packages}/README
-%{pylibdir}/*.py*
-%{pylibdir}/*.doc
-%{pylibdir}/wsgiref.egg-info
-%dir %{pylibdir}/bsddb
-%{pylibdir}/bsddb/*.py*
-%{pylibdir}/compiler
-%dir %{pylibdir}/ctypes
-%{pylibdir}/ctypes/*.py*
-%{pylibdir}/ctypes/macholib
-%{pylibdir}/curses
-%dir %{pylibdir}/distutils
-%{pylibdir}/distutils/*.py*
-%{pylibdir}/distutils/README
-%{pylibdir}/distutils/command
-%exclude %{pylibdir}/distutils/command/wininst-*.exe
-%dir %{pylibdir}/email
-%{pylibdir}/email/*.py*
-%{pylibdir}/email/mime
-%{pylibdir}/encodings
-%{pylibdir}/hotshot
-%{pylibdir}/idlelib
-%{pylibdir}/importlib
-%dir %{pylibdir}/json
-%{pylibdir}/json/*.py*
-%{pylibdir}/lib2to3
-%exclude %{pylibdir}/lib2to3/tests
-%{pylibdir}/logging
-%{pylibdir}/multiprocessing
-%{pylibdir}/plat-linux2
-%{pylibdir}/pydoc_data
-%dir %{pylibdir}/sqlite3
-%{pylibdir}/sqlite3/*.py*
-
-# Some bits of test are used for actual testing of stuff, not just python itself:
-# See also https://bugzilla.redhat.com/show_bug.cgi?id=1528899
-%dir %{pylibdir}/test
-%{pylibdir}/test/__init__.py*
-%{pylibdir}/test/support/
-%{pylibdir}/test/script_helper.py*
-%{pylibdir}/test/test_support.py*
-
-%{pylibdir}/unittest
-%{pylibdir}/wsgiref
-%{pylibdir}/xml
-%if "%{_lib}" == "lib64"
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
-%endif
-
-# "Makefile" and the config-32/64.h file are needed by
-# distutils/sysconfig.py:_init_posix(), so we include them in the libs
-# package, along with their parent directories (bug 531901):
-%dir %{pylibdir}/config
-%{pylibdir}/config/Makefile
-%dir %{_includedir}/python%{pybasever}
-%{_includedir}/python%{pybasever}/%{_pyconfig_h}
-
-%{_libdir}/%{py_INSTSONAME_optimized}
-%if 0%{?with_systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_optimized}
-%doc systemtap-example.stp pyfuntop.stp
-%endif
-
-%dir %{pylibdir}/ensurepip/
-%{pylibdir}/ensurepip/*.py*
-%if %{with rpmwheels}
-%exclude %{pylibdir}/ensurepip/_bundled
-%else
-%dir %{pylibdir}/ensurepip/_bundled
-%{pylibdir}/ensurepip/_bundled/*.whl
-%endif
-
-
-%files devel
-%{_libdir}/pkgconfig/python-%{pybasever}.pc
-%{_libdir}/pkgconfig/python2.pc
-%{pylibdir}/config/*
-%exclude %{pylibdir}/config/Makefile
-%{pylibdir}/distutils/command/wininst-*.exe
-%{_includedir}/python%{pybasever}/*.h
-%exclude %{_includedir}/python%{pybasever}/%{_pyconfig_h}
-%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
-%{_bindir}/python2-config
-%{_bindir}/python%{pybasever}-config
-%{_libdir}/libpython%{pybasever}.so
-
-%files tools
-%doc Tools/pynche/README.pynche
-%{site_packages}/pynche
-%{_bindir}/smtpd2*.py
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
-%exclude %{_bindir}/2to3*
-
-%{_bindir}/idle2*
-%{_bindir}/pynche2*
-%{_bindir}/pygettext2*.py
-%{_bindir}/msgfmt2*.py
-%{tools_dir}
-%{demo_dir}
-%{pylibdir}/Doc
-
-%files tkinter
-%{pylibdir}/lib-tk
-%if ! 0%{?_module_build}
-%{dynload_dir}/_tkinter.so
-%endif
-
-%files test
-%{pylibdir}/bsddb/test
-%{pylibdir}/ctypes/test
-%{pylibdir}/distutils/tests
-%{pylibdir}/email/test
-%{pylibdir}/json/tests
-%{pylibdir}/lib2to3/tests
-%{pylibdir}/sqlite3/test
-%{pylibdir}/test/*
-
-# Some bits of test are used for actual testing of stuff, not just python itself:
-# See also https://bugzilla.redhat.com/show_bug.cgi?id=1528899
-%exclude %{pylibdir}/test/__init__.py*
-%exclude %{pylibdir}/test/support/
-%exclude %{pylibdir}/test/script_helper.py*
-%exclude %{pylibdir}/test/test_support.py*
-
-%{dynload_dir}/_ctypes_test.so
-%{dynload_dir}/_testcapimodule.so
-
-
-# We don't bother splitting the debug build out into further subpackages:
-# if you need it, you're probably a developer.
-
-# Hence the manifest is the combination of analogous files in the manifests of
-# all of the other subpackages
-
-%if %{with debug_build}
-%files debug
-
-# Analog of the core subpackage's files:
-%{_bindir}/%{python}-debug
-%{_bindir}/python%{pybasever}-debug
-
-# Analog of the -libs subpackage's files, with debug builds of the built-in
-# "extension" modules:
-
-%{dynload_dir}/_md5module_d.so
-%{dynload_dir}/_sha256module_d.so
-%{dynload_dir}/_sha512module_d.so
-%{dynload_dir}/_shamodule_d.so
-
-%{dynload_dir}/_bisectmodule_d.so
-%{dynload_dir}/_bsddb_d.so
-%{dynload_dir}/_codecs_cn_d.so
-%{dynload_dir}/_codecs_hk_d.so
-%{dynload_dir}/_codecs_iso2022_d.so
-%{dynload_dir}/_codecs_jp_d.so
-%{dynload_dir}/_codecs_kr_d.so
-%{dynload_dir}/_codecs_tw_d.so
-%{dynload_dir}/_collectionsmodule_d.so
-%{dynload_dir}/_csv_d.so
-%{dynload_dir}/_ctypes_d.so
-%{dynload_dir}/_curses_d.so
-%{dynload_dir}/_curses_panel_d.so
-%{dynload_dir}/_elementtree_d.so
-%{dynload_dir}/_functoolsmodule_d.so
-%{dynload_dir}/_hashlib_d.so
-%{dynload_dir}/_heapq_d.so
-%{dynload_dir}/_hotshot_d.so
-%{dynload_dir}/_io_d.so
-%{dynload_dir}/_json_d.so
-%{dynload_dir}/_localemodule_d.so
-%{dynload_dir}/_lsprof_d.so
-%{dynload_dir}/_multibytecodecmodule_d.so
-%{dynload_dir}/_multiprocessing_d.so
-%{dynload_dir}/_randommodule_d.so
-%{dynload_dir}/_socketmodule_d.so
-%{dynload_dir}/_sqlite3_d.so
-%{dynload_dir}/_ssl_d.so
-%{dynload_dir}/_struct_d.so
-%{dynload_dir}/arraymodule_d.so
-%{dynload_dir}/audioop_d.so
-%{dynload_dir}/binascii_d.so
-%{dynload_dir}/bz2_d.so
-%{dynload_dir}/cPickle_d.so
-%{dynload_dir}/cStringIO_d.so
-%{dynload_dir}/cmathmodule_d.so
-%{dynload_dir}/_cryptmodule_d.so
-%{dynload_dir}/datetime_d.so
-%{dynload_dir}/dbm_d.so
-%{dynload_dir}/dlmodule_d.so
-%{dynload_dir}/fcntlmodule_d.so
-%{dynload_dir}/future_builtins_d.so
-%if %{with_gdbm}
-%{dynload_dir}/gdbmmodule_d.so
-%endif
-%{dynload_dir}/grpmodule_d.so
-%{dynload_dir}/imageop_d.so
-%{dynload_dir}/itertoolsmodule_d.so
-%{dynload_dir}/linuxaudiodev_d.so
-%{dynload_dir}/math_d.so
-%{dynload_dir}/mmapmodule_d.so
-%{dynload_dir}/nismodule_d.so
-%{dynload_dir}/operator_d.so
-%{dynload_dir}/ossaudiodev_d.so
-%{dynload_dir}/parsermodule_d.so
-%{dynload_dir}/pyexpat_d.so
-%{dynload_dir}/readline_d.so
-%{dynload_dir}/resource_d.so
-%{dynload_dir}/selectmodule_d.so
-%{dynload_dir}/spwdmodule_d.so
-%{dynload_dir}/stropmodule_d.so
-%{dynload_dir}/syslog_d.so
-%{dynload_dir}/termios_d.so
-%{dynload_dir}/timemodule_d.so
-%{dynload_dir}/timingmodule_d.so
-%{dynload_dir}/unicodedata_d.so
-%{dynload_dir}/xxsubtype_d.so
-%{dynload_dir}/zlibmodule_d.so
-
-# No need to split things out the "Makefile" and the config-32/64.h file as we
-# do for the regular build above (bug 531901), since they're all in one package
-# now; they're listed below, under "-devel":
-
-%{_libdir}/%{py_INSTSONAME_debug}
-%if 0%{?with_systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_debug}
-%endif
-
-# Analog of the -devel subpackage's files:
-%dir %{pylibdir}/config-debug
-%{_libdir}/pkgconfig/python-%{pybasever}-debug.pc
-%{_libdir}/pkgconfig/python2-debug.pc
-%{pylibdir}/config-debug/*
-%{_includedir}/python%{pybasever}-debug/*.h
-%{_bindir}/python2-debug-config
-%{_bindir}/python%{pybasever}-debug-config
-%{_libdir}/libpython%{pybasever}_d.so
-
-# Analog of the -tools subpackage's files:
-# None for now; we could build precanned versions that have the appropriate
-# shebang if needed
-
-%if ! 0%{?_module_build}
-# Analog of the tkinter subpackage's files:
-%{dynload_dir}/_tkinter_d.so
-%endif
-
-# Analog of the -test subpackage's files:
-%{dynload_dir}/_ctypes_test_d.so
-%{dynload_dir}/_testcapimodule_d.so
-
-%endif # with debug_build
-
-# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
-# ldconfig (rhbz:562980).
-#
-# The /usr/lib/rpm/redhat/macros defines the __debug_package macro to use
-# debugfiles.list, and it appears that everything below /usr/lib/debug and
-# (/usr/src/debug) gets added to this file (via LISTFILES) in
-# /usr/lib/rpm/find-debuginfo.sh
-#
-# Hence by installing it below /usr/lib/debug we ensure it is added to the
-# -debuginfo subpackage
-# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
-# payload file would be unpackaged)
-
-# Workaround for rhbz#1476593
-%undefine _debuginfo_subpackages
-
-# ======================================================
-# Finally, the changelog:
-# ======================================================
-
-%changelog
-* Tue Aug 20 2019 Miro Hronok <mhroncok(a)redhat.com> - 2.7.16-7
-- Conditionalize python2-devel runtime dependencies
-
-* Wed Aug 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 2.7.16-6
-- Rebuilt for Python 3.8
-
-* Wed Aug 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 2.7.16-5
-- Bootstrap for Python 3.8
-
-* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.16-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 2.7.16-3
-- https://fedoraproject.org/wiki/Changes/Python_means_Python3
-- The python-unversioned-command package is no longer Python 2, but 3
-- The python, pydoc, python-config, python-debug, idle, pygettext.py and
- msgfmt.py commands are now in python3
-
-* Fri Apr 26 2019 Tomas Orsava <torsava(a)redhat.com> - 2.7.16-2
-- Remove pyc/pyo files from /usr/bin (#1703575)
-- Update the macro that disables automatic bytecompilation to the new correct
- form (#1597664)
-
-* Mon Mar 04 2019 Miro Hronok <mhroncok(a)redhat.com> - 2.7.16-1
-- Update to 2.7.16 final
-
-* Tue Feb 19 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.16~rc1-1
-- Update to 2.7.16rc1
-
-* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 2.7.15-14
-- Rebuild for readline 8.0
-
-* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.15-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 2.7.15-12
-- Rebuilt for libcrypt.so.2 (#1666033)
-
-* Mon Sep 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-11
-- Security fix for CVE-2018-14647 (#1631822)
-
-* Thu Sep 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-10
-- Security fix for CVE-2018-1000802 (#1631662)
-
-* Thu Sep 06 2018 Petr Viktorin <pviktori(a)redhat.com> - 2.7.15-9
-- Deprecate python2 and all subpackages in Fedora 30+ (#1625773)
-
-* Thu Aug 30 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-8
-- Require python2-setuptools from python2-devel to prevent packaging errors (#1623922)
-
-* Tue Aug 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-7
-- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch
-
-* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.15-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Thu Jun 14 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-5
-- Move /usr/bin/python into a separate package
- https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
-- Revert https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build
-
-* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-4
-- Rebuilt for Python 3.7
-
-* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-3
-- Bootstrap for Python 3.7
-
-* Tue May 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.15-2
-- Fix loading of the gdb python plugin (rhbz#1578001)
-
-* Tue May 01 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.15-1
-- Update to version 2.7.15
-
-* Wed Apr 25 2018 Tomas Orsava <torsava(a)redhat.com> - 2.7.14-17
-- Change shebangs to the proper versioned binary
-- Bytecompile files manually, disbale brp-python-bytecompile
-Resolves: rhbz#1572171
-
-* Fri Apr 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.14-16
-- Remove Obsoletes tag from when python was renamed to python2 (Fedora 25 was last)
-
-* Wed Mar 14 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.14-15
-- Fix broken SSL module
-Resolves: rhbz#1555081
-
-* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.14-14
-- Do not send IP addresses in SNI TLS extension
-
-* Mon Feb 26 2018 Petr Viktorin <pviktori(a)redhat.com> - 2.7.14-13
-- Fix -Wint-in-bool-context warnings
-Resolves: rhbz#1473425
-
-* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 2.7.14-12
-- Rebuild with new LDFLAGS from redhat-rpm-config
-
-* Thu Feb 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.14-11
-- Move test.support and test.script_helper to python2-libs
-Resolves: rhbz#1528899
-
-* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.14-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Tue Jan 30 2018 Petr Viktorin <pviktori(a)redhat.com> - 2.7.14-9
-- Add patch 288: warn/fail if Python 2 is called as /usr/bin/python and
- PYTHON_DISALLOW_AMBIGUOUS_VERSION is set
-- Add patch 289: Fix for over-aligned GC info
-
-* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 2.7.14-8
-- Rebuilt for switch to libxcrypt
-
-* Wed Jan 17 2018 Petr Viktorin <pviktori(a)redhat.com> - 2.7.14-7
-- Build the nis module with tirpc
-
-* Tue Jan 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 2.7.14-6
-- Rebuild for reverted gdbm 1.13 on Fedora 27
-
-* Thu Jan 11 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.14-5
-- Rebuild for gdbm 1.14
-
-* Mon Dec 11 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.14-4
-- Fix hanging of all threads when trying to access an inaccessible NFS server.
-
-* Thu Nov 09 2017 Miro Hronok <mhroncok(a)redhat.com> - 2.7.14-3
-- Make the -devel package require redhat-rpm-config
-Resolves: rhbz#1496757
-
-* Thu Nov 02 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.14-2
-- Add a new PYTHONSHOWREFCOUNT environment variable for printing the reference
- count in debug builds.
-- Fix nondeterministic read in test_pty.
-
-* Mon Oct 09 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.7.14-1
-- Update to version 2.7.14
-
-* Thu Aug 31 2017 Tomas Orsava <torsava(a)redhat.com> - 2.7.13-18
-- Switch some macros into bconds to facilitate modularity
-
-* Wed Aug 16 2017 Miro Hronok <mhroncok(a)redhat.com> - 2.7.13-17
-- Exclude /usr/bin/2to3 (rhbz#1111275)
-
-* Mon Aug 14 2017 David "Sanqui" Labsk <dlabsky(a)redhat.com> - 2.7.13-16
-- Do not generate debuginfo subpackages (#1476593)
-
-* Wed Aug 09 2017 Michal Cyprian <mcyprian(a)redhat.com> - 2.7.13-15
-- Revert "Add --executable option to install.py command"
- This enhancement is currently not needed and it can possibly
- collide with `pip --editable`option
-
-* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.13-14
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.13-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Mon Jun 26 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.13-11
-- Fix test_alpn_protocols from test_ssl
-
-* Wed May 31 2017 Miro Hronok <mhroncok(a)redhat.com> - 2.7.13-11
-- Change fixed Obsoletes version with a dynamic one (rhbz#1457336)
-
-* Thu May 18 2017 Karsten Hopp <karsten(a)redhat.com> - 2.7.13-10
-- revert logic for modularity patch and enable gdbm for modularity
-
-* Tue May 16 2017 Tomas Orsava <torsava(a)redhat.com> - 2.7.13-9
-- Added a dependency to the devel subpackage on python3-rpm-generators which
- have been excised out of rpm-build
-- There is no Python 2 package containing Python RPM generators, therefore
- Python 3 is needed when Python 2 package is to be built, but this was
- decided not to be a problem due to nearing EOL of Python 2
-- Involves: rhbz#1410631, rhbz#1444925
-
-* Wed May 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.13-8
-- Enable profile guided optimizations for x86_64 and i686 architectures
-- Update description to reflect that Python 2 is not the default Python
-
-* Tue Apr 25 2017 Karsten Hopp <karsten(a)redhat.com> - 2.7.13-7
-- apply modularity patch only during module builds
-
-* Sun Apr 23 2017 Karsten Hopp <karsten(a)redhat.com> - 2.7.13-6
-- add missing patch
-
-* Fri Apr 21 2017 Karsten Hopp <karsten(a)redhat.com> - 2.7.13-5
-- drop a couple of dependencies for Modularity builds
-
-* Tue Feb 21 2017 Michal Cyprian <mcyprian(a)redhat.com> - 2.7.13-5
-- Add --executable option to install.py command
-
-* Fri Feb 17 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.13-4
-- Fix the upgrade path to F26 due to renaming the package to python2 (rhbz#1420332)
-
-* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.13-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 2.7.13-2
-- Rebuild for readline 7.x
-
-* Wed Jan 11 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.13-1
-- Update to 2.7.13
-- Don't blow up on EL7 kernel (random generator) (rhbz#1410175, rhbz#1410187)
-- Require glibc >= 2.24.90-26 (rhbz#1410644)
-
-* Thu Oct 27 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-9
-- Rename package to python2 and also rename the subpackages accordingly
-- Provide and obsolete python and the respective subpackages to ensure a clean
-upgrade path
-- Remove old provides for packages that got into stdlib
-- Implement PEP 394
-
-* Wed Oct 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-8
-- Port ssl and hashlib modules to OpenSSL 1.1.0
-- Drop hashlib patch for now
-- Add riscv64 arch to 64bit and no-valgrind arches
-
-* Thu Sep 29 2016 Miro Hronok <mhroncok(a)redhat.com> - 2.7.12-7
-- Provide python27
-
-* Fri Sep 02 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-6
-- Remove unversioned Obsoletes
-
-* Thu Sep 01 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-5
-- Rebase rewheel patch so it applies properly (rhbz#1372183)
-
-* Tue Aug 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-4
-- SPEC file cleanup
-- Removal of unapplied patches
-
-* Tue Aug 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-3
-- Fix for CVE-2016-1000110 HTTPoxy attack
-- SPEC file cleanup
-
-* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 2.7.12-2
-- Build properly on MIPS
-
-* Fri Jul 15 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.12-1
-- Update to 2.7.12
-- Refactored patches: 10, 102, 112, 134, 153
-- Dropped patches: 166, 209, 210
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.11-8
-- Refactor patch for properly fixing CVE-2016-5636
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.11-7
-- Fix test_pyexpat failure with Expat version of 2.2.0
-
-* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 2.7.11-6
-- Fix for: CVE-2016-0772 python: smtplib StartTLS stripping attack
-- Raise an error when STARTTLS fails
-- rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
-- rhbz#1346344: https://bugzilla.redhat.com/show_bug.cgi?id=1346344
-- Fixed upstream: https://hg.python.org/cpython/rev/b3ce713fb9be
-
-* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 2.7.11-5
-- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.7.11-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Wed Jan 13 2016 Orion Poplawski <orion(a)cora.nwra.com> - 2.7.11-3
-- Drop macros, require python/python2-rpm-macros
-
-* Wed Dec 30 2015 Orion Poplawski <orion(a)cora.nwra.com> - 2.7.11-2
-- Get ready for separate python-macros package
-
-* Tue Dec 15 2015 Robert Kuska <rkuska(a)redhat.com> - 2.7.11-1
-- Update to 2.7.11
-
-* Thu Oct 15 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.10-11
-- provide/obsolete _isa packages in python_provide (#1271776)
-
-* Wed Sep 23 2015 Robert Kuska <rkuska(a)redhat.com> - 2.7.10-10
-- Revert the moving modules to python-tools because distutils uses lib2to3
-
-* Tue Sep 22 2015 Robert Kuska <rkuska(a)redhat.com> - 2.7.10-9
-- Move idlelib and lib2to3 modules to pythont-tools
-
-* Thu Sep 3 2015 Orion Poplawski <orion(a)cora.nwra.com> - 2.7.10-8
-- Fix quoting in %%python_provide macro
-
-* Thu Sep 3 2015 Orion Poplawski <orion(a)cora.nwra.com> - 2.7.10-7
-- Add obsoletes to %%python_provide macro to fix upgrade path
-- Fix python2- provides for python- packages in %%python_provide
-
-* Thu Jul 23 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.10-6
-- python-macros: remove R on python (#1246036)
-
-* Wed Jul 22 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.10-5
-- Include epoch in the python_provide macro fpc#534 (Slavek Kabrda)
-
-* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.10-4
-- correct python_provide macro to include version only when emiting provides
-
-* Thu Jun 25 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.10-3
-- Add unversioned python-macros from fpc#281 and fpc#534
- and require it from python-devel
-- Make python-macros noarch
-
-* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.10-2
-- Make relocating Python by changing _prefix actually work
-Resolves: rhbz#1231801
-
-* Mon May 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.10-1
-- Update to 2.7.10
-
-* Tue May 5 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.7.9-11
-- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
-
-* Wed Apr 15 2015 Robert Kuska <rkuska(a)redhat.com> - 2.7.9-10
-- Remove provides/obsolates for unittest2
-- Skip test_gdb on arm until rhbz#1196181 is resolved
-
-* Thu Mar 05 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.9-9
-- Add proper rewheel Requires
-
-* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 2.7.9-8
-- Rebuilt for Fedora 23 Change
- https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-...
-
-* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 2.7.9-7
-- Rebuilt for Fedora 23 Change
- https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-...
-
-* Tue Feb 17 2015 Ville Skytt <ville.skytta(a)iki.fi> - 2.7.9-6
-- Own systemtap dirs (#710733)
-
-* Fri Feb 06 2015 Karsten Hopp <karsten(a)redhat.com> 2.7.9-5
-- disable test_gdb on ppc64* until rhbz#1132488 is really resolved
-
-* Tue Jan 20 2015 Slavek Kabrda <bkabrda(a)redhat.com> - 2.7.9-4
-- We need to provide both arch specific and noarch Provide for python2-devel
-in order not to break noarch builds.
-
-* Tue Jan 20 2015 Slavek Kabrda <bkabrda(a)redhat.com> - 2.7.9-3
-- Make python2-devel provide arch specific.
-Resolves: rhbz#1183530
-
-* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 2.7.9-2
-- build with valgrind on ppc64le
-- disable test_gdb on s390(x) until rhbz#1181034 is resolved
-
-* Thu Dec 11 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.9-1
-- Update to 2.7.9
-- Refreshed patches: #55, #137, #146, #153, #156, #198
-- Dropped patches: #196, #197
-- New patch: #199
-- Added the rewheel module
-
-* Mon Nov 24 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.8-10
-- Improve python2_version macros
-
-* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.8-9
-- Add python2_version_nodots macro
-
-* Mon Nov 10 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 2.7.8-8
-- Revert previous change, see rhbz#1161166#c6.
-
-* Fri Nov 07 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 2.7.8-7
-- Provide importable unittest2
-Resolves: rhbz#1161166
-
-* Thu Aug 21 2014 Robert Kuska <rkuska(a)redhat.com> - 2.7.8-6
-- Update patch 196 (ssl backport)
-
-* Tue Aug 19 2014 Robert Kuska <rkuska(a)redhat.com> - 2.7.8-5
-- Backport ssl module from python3
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.7.8-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Thu Jul 31 2014 Tom Callaway <spot(a)fedoraproject.org> - 2.7.8-3
-- fix license handling
-
-* Fri Jul 18 2014 Robert Kuska <rkuska(a)redhat.com> - 2.7.8-2
-- Enable SSLv2 and SSLv3 when SSLv23_method is used in ssl
-
-* Mon Jul 14 2014 Robert Kuska <rkuska(a)redhat.com> - 2.7.8-1
-- Update to 2.7.8
-
-* Fri Jul 11 2014 Dan Hork <dan[at]danny.cz> - 2.7.7-3
-- rebuilt for updated libffi ABI on ppc64le
-
-* Sat Jun 7 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.7.7-2
-- aarch64 has valgrind, just list those that don't support it
-
-* Wed Jun 04 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.7-1
-- Update to 2.7.7
-- Refreshed patches: #16, #112, #138, #147, #157, #166, #173, #5000
-- Dropped patches: #190, #192, #194
-
-* Tue Jun 03 2014 Dan Hork <dan[at]danny.cz> - 2.7.6-9
-- update the arch list where valgrind exists - %%power64 includes also
- ppc64le which is not supported yet
-
-* Wed May 21 2014 Jaroslav karvada <jskarvad(a)redhat.com> - 2.7.6-8
-- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86
-
-* Fri May 09 2014 Tomas Radej <tradej(a)redhat.com> - 2.7.6-7
-- Fixed obsoletes on ordereddict (bz #1095434)
-
-* Mon Apr 14 2014 Tomas Radej <tradej(a)redhat.com> - 2.7.6-6
-- Obsoletes python-ordereddict (bz #1085593, not precisely 1:1 replacement)
-
-* Mon Apr 07 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.6-5
-- Fix test failure with SQLite > 3.8.4.
-- Obsolete/Provide python-unittest2
-Related: rhbz#1060426
-
-* Wed Feb 19 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.6-4
-- Enable loading sqlite extensions.
-Resolves: rhbz#1066708
-
-* Mon Feb 10 2014 Tomas Radej <tradej(a)redhat.com> - 2.7.6-3
-- Fixed buffer overflow (upstream patch)
-Resolves: rhbz#1062375
-
-* Tue Feb 04 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.6-2
-- Install macros in _rpmconfigdir.
-
-* Wed Jan 29 2014 Tomas Radej <tradej(a)redhat.com> - 2.7.6-1
-- Updated to v2.7.6
-- Freshened patches 102, 111, 112, 136, and 142
-- Dropped patches 186, 188 (both fixed upstream)
-
-* Wed Jan 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.5-11
-- Make library-files user writable to get rid of
- Permission Denied in buildlog from debuginfo-packaging
-
-* Tue Jan 14 2014 Dennis Gilmore <dennis(a)ausil.us> - 2.7.5-10
-- enable valgrind support on 32 bit arm
-
-* Tue Nov 12 2013 Tomas Radej <tradej(a)redhat.com> - 2.7.5-9
-- Import get_python_version in bdist_rpm
-Resolves: rhbz#1029082
-
-* Tue Oct 08 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-8
-- Fix processing gdb py-bt command in eval calls.
-Resolves: rhbz#1008154
-
-* Tue Sep 03 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-7
-- Removed ancient Obsolete: python-sqlite2.
-
-* Mon Aug 26 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-6
-- Sync back/renumber patches to stay consistent with rhel.
-
-* Mon Aug 19 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 2.7.5-5
-- Added fix for CVE-2013-4238 (rhbz#998430)
-
-* Sun Aug 04 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.7.5-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Mon Jul 08 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-3
-- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
-
-* Mon Jul 08 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-2
-- Obsolete PyXML as requested in rhbz#981137.
-
-* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.5-1
-- Updated to Python 2.7.5.
-- Refreshed patches: 0 (config), 102 (lib64), 121 (add Modules to build path),
-153 (gdb test noise)
-- Dropped patches: 126, 127 (big endian issues, both fixed upstream),
-175 (configure -Wformat, fixed upstream)
-- Synced patch numbers with python3.spec.
-
-* Tue May 14 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.4-5
-- fix multilib issue in python-tools due to /usr/bin/pynche (source 7;
-rhbz#831437)
-
-* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.4-4
-- Add patch that enables building on ppc64p7.
-
-* Mon Apr 22 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.4-3
-- Allow arbitrary timeout in Condition.wait (rhbz#917709).
-
-* Thu Apr 11 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.7.4-2
-- Build with libdb 5.3 instead of libdb4
-- Refreshed patches: 0 (config), 102 (lib64)
-- Dropped patches: 54 (db4 version), 159 (db4 include path adjustment)
-
-* Mon Apr 08 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.4-1
-- Updated to Python 2.7.4.
-- Refreshed patches: 0 (config), 7 (sqlite encoding), 16 (rpath in config),
-55 (systemtap), 111 (no static lib), 112 (debug build), 113 (more
-configuration flags), 130 (add extension to python config), 134 (fix
-COUNT_ALLOCS in test_sys), 146 (haslib FIPS), 147 (add debug malloc stats),
-153 (fix gdb test noise), 157 (uid, gid overflow - fixed upstream, just
-keeping few more downstream tests), 165 (crypt module salt backport),
-175 (fix configure Wformat), 5000 (regenerated autotooling patch)
-- Dropped patches: 101 (lib64 regex; merged upstream), 171 (exception on
-missing /dev/urandom; merged upstream), 172 (poll for multiprocessing socket
-connection; merged upstream)
-
-* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-35
-- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
-
-* Wed Mar 6 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-34
-- restrict scope of workaround for cmpi-bindings issue to avoid breaking
-in-tree running of test_sys and test_subprocess (rhbz#817554)
-
-* Wed Mar 6 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-33
-- add workaround for cmpi-bindings issue (rhbz#817554)
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-32
-- add workaround for ENOPROTOOPT seen running selftests in Koji
-(rhbz#913732)
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-31
-- remove config flag from /etc/rpm/macros.python2
-
-* Fri Feb 22 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-30
-- remove __debug_package macro from comment
-
-* Fri Feb 22 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-29
-- drop -b from application of patch 157 (uid/gid overflows)
-
-* Fri Feb 22 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-28
-- fix bogus dates in changelog
-
-* Thu Feb 21 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-27
-- port _multiprocessing.Connection.poll() to use the "poll" syscall, rather
-than "select", allowing large numbers of subprocesses (patch 172;
-rhbz#849992)
-
-* Thu Feb 21 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-26
-- raise correct exception in os.urandom() when /dev/urandom is missing
-(patch 171; rhbz#907383)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-25
-- in debug builds, try to print repr() when a C-level assert fails in the
-garbage collector (typically indicating a reference-counting error somewhere
-else e.g in an extension module) (patch 170; rhbz#850013)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-24
-- move lib2to3/tests from python-libs to python-test (rhbz#850056)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-23
-- use SHA-256 rather than implicitly using MD5 within the challenge handling
-in multiprocessing.connection (patch 169; rhbz#879695)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-22
-- fix a problem with distutils.sysconfig when CFLAGS is defined in the
-environment (patch 168; rhbz#849994)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-21
-- don't run any stack navigation tests in test_gdb for optimized builds
-(patch 167; rhbz#912025)
-
-* Wed Feb 20 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-20
-- s/cryptmodule/_cryptmodule/ in package payload (rhbz#835021)
-
-* Tue Feb 19 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-19
-- bulletproof the gdb debugging hooks against a failure seen in ARM builds
-(patch 166; rhbz#912025)
-- re-enable make check on ARM (rhbz#912025)
-
-* Tue Feb 19 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-18
-- backport pre-canned ways of salting a password to the "crypt" module from 3.3
-(rhbz#835021)
-
-* Tue Feb 19 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-17
-- remove "_default_patch_fuzz" directive to avoid patches being silently
-misapplied (refresh patch 1, patch 101, patch 102, patch 111, patch 121,
-patch 158; rename patch 1, patch 101, patch 121; apply patch 54 before the
-lib64 patches to avoid fuzz problems caused by the conditional application
-of the lib64 patches)
-
-* Mon Feb 18 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.7.3-16
-- disable make check on ARM for the moment until 912025 is fixed
-
-* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-15
-- add aarch64 (rhbz#909783)
-
-* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-14
-- add BR on bluez-libs-devel (rhbz#879720)
-
-* Thu Aug 9 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-13
-- remove f18 conditional from patch 159
-
-* Fri Jul 27 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.7.3-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Tue Jul 17 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 2.7.3-11
-- fix memory leak in module _hashlib (patch 158, rhbz#836285)
-- fix db4 include path for libdb4 package (f18 and above) (patch 159)
-
-* Tue Jun 26 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-10
-- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
-
-* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-9
-- use rpm macro for power64 (rhbz#834653)
-
-* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-8
-- update uid/gid handling to avoid int overflows seen with uid/gid
-values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470)
-
-* Fri May 4 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-7
-- renumber autotools patch from 300 to 5000
-- specfile cleanups
-
-* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-6
-- try again to fix test_gdb.py (patch 156; rhbz#817072)
-
-* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-5
-- fix test_gdb.py (patch 156; rhbz#817072)
-
-* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-4
-- avoid allocating thunks in ctypes unless absolutely necessary, to avoid
-generating SELinux denials on "import ctypes" and "import uuid" when embedding
-Python within httpd (patch 155; rhbz#814391)
-
-* Thu Apr 19 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-3
-- add explicit version requirements on expat to avoid linkage problems with
-XML_SetHashSalt
-
-* Wed Apr 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-2
-- fix -config symlinks (patch 112; rhbz#813836)
-
-* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 2.7.3-1
-- 2.7.3: refresh patch 102 (lib64); drop upstream patches 11 (ascii-to-lower),
-115 (pydoc robustness), 145 (linux2), 148 (gdbm magic values), 151 (deadlock
-in fork); refresh patch 112 (debug build); revise patch 127
-(test_structmember); fix test_gdb (patch 153); refresh patch 137 (distutils
-tests); add python2.pc to python-devel; regenerate the autotool intermediates
-patch (patch 300)
-
-* Sat Feb 25 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.2-20
-- fix deadlock issue (#787712)
-
-* Fri Feb 17 2012 Toshio Kuratomi <toshio(a)fedoraproject.org> - 2.7.2-19
-- Obsolete python-sqlite2
-
-* Thu Nov 24 2011 Ville Skytt <ville.skytta(a)iki.fi> - 2.7.2-18
-- Build with $RPM_LD_FLAGS (#756862).
-- Use xz-compressed source tarball.
-
-* Wed Oct 26 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.7.2-17
-- Rebuilt for glibc bug#747377
-
-* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-16
-- re-enable gdbm (patch 148; rhbz#742242)
-
-* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-15
-- add a sys._debugmallocstats() function (patch 147)
-
-* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-14
-- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
-_sha* modules, relying on _hashlib in hashlib, and thus within md5 etc
-(rhbz#563986; patch 146)
-
-* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-13
-- force sys.platform to be "linux2" (patch 145)
-
-* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-12
-- disable gdbm module to prepare for gdbm soname bump
-
-* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-11
-- rename and renumber patches for consistency with python3.spec (55, 111, 113,
-114, 125, 131, 129 to 143)
-
-* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-10
-- rewrite of "check", introducing downstream-only hooks for skipping specific
-cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more
-fine-grained manner than before (patches 104, 133-142)
-
-* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-9
-- run selftests with "--verbose"
-- disable parts of test_io on ppc (rhbz#732998)
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-8
-- add --extension-suffix option to python-config (patch 130; rhbz#732808)
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-7
-- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
-ppc to avoid aliasing violations (patch 129; rhbz#698726)
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-6
-- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
-
-* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-5
-- add rpm macros file (rhbz#731800)
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-4
-- cleanup of BuildRequires; add comment headings to specfile sections
-
-* Wed Jun 22 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-3
-- reorganize test exclusions (test_openpty and test_pty seem to be failing on
-every arch, not just the explicitly-listed ones)
-
-* Mon Jun 13 2011 Dan Hork <dan[at]danny.cz> - 2.7.2-2
-- add s390(x) excluded tests
-
-* Mon Jun 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.2-1
-- 2.7.2; drop upstreamed patches: patch 122 (parallel make fix), patch 124
-(test_commands and SELinux), patch 130 (ppc preprocessor macro in debug
-build); patch 131 (decimal in Turkish locale); regenerate the autotool
-intermediates patch (patch 300)
-
-* Tue Jun 07 2011 Dennis Gilmore <dennis(a)ausil.us> - 2.7.1-9
-- fix sparc building by excluding failing tests RHBZ#711584
-
-* Mon May 23 2011 Peter Robinson <pbrobinson(a)gmail.com> - 2.7.1-8
-- fix compile on ARM by excluding failing tests on arm - RHBZ #706253
-
-* Tue Apr 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.1-7
-- fix "import decimal" in the Turkish locale (patch 131; rhbz#694928)
-
-* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.7.1-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Fri Jan 21 2011 Toshio Kuratomi <toshio(a)fedoraproject.org> - 2.7.1-5
-- Switch from setting OPT to setting EXTRA_CFLAGS so we don't overwrite the
- DNDEBUG flag
-
-* Fri Jan 7 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.1-4
-- for now, drop "obsoletes" of python-argparse, since it interracts badly with
-multilib (rhbz#667984)
-
-* Fri Jan 7 2011 Thomas Spura <tomspur(a)fedoraproject.org> - 2.7.1-3
-- obsolete/provide python-argparse (new in 2.7)
-
-* Thu Jan 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 2.7.1-2
-- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
-
-* Thu Dec 23 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7.1-1
-- 2.7.1, reworking patch 0 (config), patch 102 (lib64); drop upstream
-patch 56 (cfgparse), patch 110 (ctypes/SELinux/noexecmem), patch 119 (expat
-compat), patch 123 (2to3 on "from itertools import *")
-- fix test_abc's test_cache_leak in the debug build (patch 128)
-- drop _weakref.so from manifest (_weakref became a core module in r84230)
-
-* Wed Sep 29 2010 jkeating - 2.7-13
-- Rebuilt for gcc bug 634757
-
-* Mon Sep 27 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-12
-- fix test_structmember on 64bit-bigendian (patch 127)
-
-* Fri Sep 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-11
-- fix dbm_contains on 64bit-bigendian (patch 126; rhbz#626756)
-
-* Thu Sep 16 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 2.7-10
-- backport a patch to fix a change in behaviour in configparse.
-
-* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-9
-- move most of the payload of the core package to the libs subpackage, given
-that the libs aren't meaningfully usable without the standard libraries
-
-* Wed Aug 18 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-8
-- add %%check section
-- update lib64 patch (patch 102) to fix expected output in test_site.py on
-64-bit systems
-- patch test_commands.py to work with SELinux (patch 124)
-- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
-
-* Mon Jul 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-7
-- fixup missing -lcrypt to "crypt" module in config patch (patch 0)
-
-* Mon Jul 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-6
-- re-enable systemtap
-- cherrypick upstream patch to 2to3 for "from itertools import *"
-traceback (patch 123)
-
-* Thu Jul 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-5
-- disable systemtap for now (dtrace is failing on startup due to the bug
-mentioned in 2.7-4)
-- provide relative path to python binary when running pathfix.py
-- fix parallel make (patch 122)
-
-* Thu Jul 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-4
-- fix reference to pyconfig.h in sysconfig that led to failure on startup if
-python-devel was not installed
-
-* Thu Jul 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-3
-- add patch to fixup the new sysconfig.py for our multilib support on
-64-bit (patch 103)
-
-* Thu Jul 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-2
-- add machinery for regenerating the "configure" script in the face of
-mismatching autoconf versions (patch 300)
-
-* Tue Jul 6 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-1
-- 2.7 final; drop alphatag
-- drop patch 117 (upstream), patch 120 (upstreamed)
-- fix the commented-out __python_ver from 26 to 27
-
-* Tue Jun 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-0.1.rc2
-- 2.7rc2
-- revert r79310 (patch 121)
-- remove modulator: upstream removed it in r78338
-- rename mathmodule(_d).so to math(_d).so in manifests (appears to be changed
-by r76861)
-- _bytesio(_d).so and _filesio(_d).so were consolidated into _io(_d).so in
-r73394 (upstream issue 6215)
-- use the gdb hooks from the upstream tarball, rather than keeping our own
-copy. The upstream version has some whitespace changes, a new write_repr for
-unicode objects, and various bulletproofings for being run on older gdbs
-
-* Tue Jun 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.7-0.1.rc1
-- 2.7rc1:
- - rework patches to apply against 2.7 (which among other changes has had a
-whitespace cleanup of the .c code): .rhconfig (patch0), .binutils-no-dep
-(patch10), .ascii-tolower (patch11), .socketmodule (patch13), .socketmodule2
-(patch14), .systemtap (patch55), .lib64 (patch102), .selinux (patch110),
-.no-static-lib (patch111), .debug-build (patch112), .statvfs-f-flag-constants
-(patch114), ..CVE-2010-2089 (patch117)
- - drop upstream patches: .expat (patch3), .brprpm (patch51), .valgrind
-(patch52), .db48 (patch53), .CVE-2010-1634 (patch 116), .CVE-2008-5983 (patch
-118)
-
-* Tue Jun 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-17
-- Stop python bailing out with an assertion failure when UnicodeDecodeErrors
-occur on very large buffers (patch 120, upstream issue 9058)
-
-* Mon Jun 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-16
-- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
-a segfault running test_pyexpat.py (patch 119; upstream issue 9054)
-
-* Tue Jun 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-15
-- add a flag to make it easy to turn off the debug build when troubleshooting
-the rpm build
-
-* Sat Jun 5 2010 Dan Hork <dan[at]danny.cz> - 2.6.5-14
-- reading the timestamp counter is available only on some arches (see Python/ceval.c)
-- disable --with-valgrind on s390(x) arches
-
-* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-13
-- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
-- CVE-2010-1634: fix various integer overflow checks in the audioop
-module (patch 116)
-- CVE-2010-2089: further checks within the audioop module (patch 117)
-- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 118)
-
-* Thu May 27 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-12
-- make "pydoc -k" more robust in the face of broken modules (rhbz:461419, patch115)
-
-* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-11
-- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
-(patch 114)
-
-* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-10
-- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
-(patch 113); enable them and the WITH_TSC option within the debug build
-
-* Tue May 18 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-9
-- build and install two different configurations of Python: debug and standard,
-packaging the debug build in a new "python-debug" subpackage (patch 112)
-
-* Tue May 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-8
-- don't delete wsgiref.egg-info (rhbz:588426)
-
-* Mon Apr 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-7
-- disable --with-valgrind on sparc arches
-
-* Mon Apr 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-6
-- move the "bdist_wininst" command's template .exe files from the core package
-to the devel subpackage, to save space (rhbz:525469)
-- fix stray doublelisting of config directory wildcard in devel subpackage
-
-* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-5
-- update python-gdb.py from v4 to v5 (improving performance and stability,
-adding commands)
-
-* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-4
-- update python-gdb.py from v3 to v4 (fixing infinite recursion on reference
-cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets
-and exceptions)
-
-* Wed Mar 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-3
-- refresh gdb hooks to v3 (reworking how they are packaged)
-
-* Mon Mar 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-2
-- remove unnecessary arch-conditionality for patch 101
-
-* Fri Mar 19 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.5-1
-- update to 2.6.5: http://www.python.org/download/releases/2.6.5/
-- replace our patch to compile against db4.8 with a patch from
-upstream (patch 53, from r78974); update patch 54 since part of it is now in
-that upstream patch
-- update patch 110 so that it still applies in the face of upstream r78380
-
-* Tue Mar 16 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-23
-- fixup distutils/unixccompiler.py to remove standard library path from
-rpath (patch 17)
-- delete DOS batch files
-
-* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-22
-- add pyfuntop.stp; allow systemtap support to be disabled
-- remove trailing period from tkinter summary
-- don't own /usr/bin/python-config if you're not the main python
-
-* Thu Mar 11 2010 Marcela Malov <mmaslano(a)redhat.com> - 2.6.4-21
-- rebuild with new gdbm
-
-* Thu Feb 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-20
-- avoid having the "test" subdirectory and the files within it that are in the
-core subpackage also be owned by the test subpackage (rhbz:467588)
-
-* Wed Feb 10 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-19
-- revise the systemtap patch (patch 55:python-2.6.4-dtrace.patch) to the
-new version by mjw in attachment 390110 of rhbz:545179, as this should
-eliminate the performance penalty for the case where the probes aren't in
-use, and eliminate all architecture-specific code (rhbz:563541; except on
-sparc)
-
-* Tue Feb 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-18
-- add a systemtap tapset defining "python.function.entry" and
-"python.function.return" to make it easy to use the static probepoint within
-Python; add an example of using the tapset to the docs
-
-* Tue Feb 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-17
-- add systemtap static probes (wcohen; patch 55; rh bug #545179)
-- update some comments in specfile relating to gdb work
-- manually byte-compile the gdb.py file with the freshly-built python to ensure
-that .pyx and .pyo files make it into the debuginfo manifest if they are later
-byte-compiled after find-debuginfo.sh is run
-
-* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-16
-- move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to
-%%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from
-ldconfig (bug 562980), and which should also ensure it becomes part of the
-debuginfo subpackage, rather than the libs subpackage
-- introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream
-configure script, and to avoid fragile scripts that try to figure this out
-dynamically (e.g. for the -gdb.py change)
-
-* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-15
-- work around bug 562906 by supplying a fixed version of pythondeps.sh
-- set %%{_python_bytecompile_errors_terminate_build} to 0 to prevent the broken
-test files from killing the build on buildroots where python is installed
-
-* Fri Feb 5 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-14
-- add gdb hooks for easier debugging
-
-* Fri Jan 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-13
-- document all patches, and remove the commented-out ones
-
-* Tue Jan 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-12
-- Address some of the issues identified in package review (bug 226342):
- - update libs requirement on base package to use %%{name} for consistency's
-sake
- - convert from backticks to $() syntax throughout
- - wrap value of LD_LIBRARY_PATH in quotes
- - convert "/usr/bin/find" requirement to "findutils"
- - remove trailing periods from summaries of -devel and -tools subpackages
- - fix spelling mistake in description of -test subpackage
- - convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
-stylistic consistency
- - supply dirmode arguments to defattr directives
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-11
-- update python-2.6.2-config.patch to remove downstream customization of build
-of pyexpat and elementtree modules
-- add patch adapted from upstream (patch 3) to add support for building against
-system expat; add --with-system-expat to "configure" invocation
-- remove embedded copy of expat from source tree during "prep"
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-10
-- introduce macros for 3 directories, replacing expanded references throughout:
-%%{pylibdir}, %%{dynload_dir}, %%{site_packages}
-- explicitly list all lib-dynload files, rather than dynamically gathering the
-payload into a temporary text file, so that we can be sure what we are
-shipping; remove now-redundant testing for presence of certain .so files
-- remove embedded copy of zlib from source tree before building
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-9
-- change python-2.6.2-config.patch to remove our downstream change to curses
-configuration in Modules/Setup.dist, so that the curses modules are built using
-setup.py with the downstream default (linking against libncursesw.so, rather
-than libncurses.so), rather than within the Makefile; add a test to %%install
-to verify the dso files that the curses module is linked against the correct
-DSO (bug 539917; changes _cursesmodule.so -> _curses.so)
-
-* Fri Jan 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-8
-- rebuild (bug 556975)
-
-* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-7
-- move lib2to3 from -tools subpackage to main package (bug 556667)
-
-* Mon Jan 18 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-6
-- patch Makefile.pre.in to avoid building static library (patch111, bug 556092)
-- split up the "configure" invocation flags onto individual lines
-
-* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-5
-- replace usage of %%define with %%global
-- use the %%{_isa} macro to ensure that the python-devel dependency on python
-is for the correct multilib arch (#555943)
-- delete bundled copy of libffi to make sure we use the system one
-- replace references to /usr with %%{_prefix}; replace references to
-/usr/include with %%{_includedir}
-
-* Wed Dec 16 2009 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-4
-- automatically disable arena allocator when run under valgrind (upstream
-issue 2422; patch 52)
-- add patch from Josh Boyer containing diff against upstream PyBSDDB to make
-the bsddb module compile against db-4.8 (patch 53, #544275); bump the necessary
-version of db4-devel to 4.8
-- patch setup.py so that it searches for db-4.8, and enable debug output for
-said search; make Setup.dist use db-4.8 (patch 54)
-
-* Thu Nov 12 2009 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-3
-- fixup the build when __python_ver is set (Zach Sadecki; bug 533989); use
-pybasever in the files section
-
-* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-2
-- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
-_init_posix(), so we include them in the core package, along with their parent
-directories (bug 531901)
-
-* Mon Oct 26 2009 David Malcolm <dmalcolm(a)redhat.com> - 2.6.4-1
-- Update to 2.6.4
-
-* Fri Aug 21 2009 Tomas Mraz <tmraz(a)redhat.com> - 2.6.2-2
-- rebuilt with new openssl
-
-* Mon Jul 27 2009 James Antill <james.antill(a)redhat.com> - 2.6.2-1
-- Update to 2.6.2
-
-* Sun Jul 26 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.6-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
-
-* Sat Jul 4 2009 Jonathan Steffan <jsteffan(a)fedoraproject.org> - 2.6-10
-- Move python-config to devel subpackage (#506153)
-- Update BuildRoot for new standard
-
-* Sun Jun 28 2009 Jonathan Steffan <jsteffan(a)fedoraproject.org> - 2.6-9
-- Update python-tools description (#448940)
-
-* Wed Apr 15 2009 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> 2.6-8
-- Replace python-hashlib and python-uuid (#484715)
-
-* Tue Mar 17 2009 James Antill <james(a)fedoraproject.org> - 2.6-7
-- Use system libffi
-- Resolves: bug#490573
-- Fix SELinux execmem problems
-- Resolves: bug#488396
-
-* Thu Feb 26 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.6-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
-* Fri Jan 16 2009 Tomas Mraz <tmraz(a)redhat.com> - 2.6-4
-- rebuild with new openssl
-
-* Tue Jan 6 2009 James Antill <james.antill(a)redhat.com> - 2.6-3
-- Fix distutils generated rpms.
-- Resolves: bug#236535
-
-* Wed Dec 10 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.6-2
-- Enable -lcrypt for cryptmodule
-
-* Fri Nov 28 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.6-1
-- Update to 2.6
-
-* Tue Sep 30 2008 James Antill <james.antill(a)redhat.com> - 2.5.2-1
-- Move to 2.5.2
-- Fix CVE-2008-2316 hashlib overflow.
-
-* Thu Jul 17 2008 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-30
-- Fix up the build for new rpm
-- And actually build against db4-4.7 (#455170)
-
-* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.5.1-27
-- fix license tag
-- enable support for db4-4.7
-
-* Sun Jun 15 2008 James Antill <jantill(a)redhat.com> - 2.5.1-26
-- Fix sporadic listdir problem
-- Resolves: bug#451494
-
-* Mon Apr 7 2008 James Antill <jantill(a)redhat.com> - 2.5.1-25
-- Rebuild to re-gen autoconf file due to glibc change.
-- Resolves: bug#441003
-
-* Tue Mar 25 2008 James Antill <jantill(a)redhat.com> - 2.5.1-24
-- Add more constants to socketmodule
-
-* Sat Mar 8 2008 James Antill <jantill(a)redhat.com> - 2.5.1-22
-- Add constants to socketmodule
-- Resolves: bug#436560
-
-* Tue Feb 19 2008 Fedora Release Engineering <rel-eng(a)fedoraproject.org> - 2.5.1-22
-- Autorebuild for GCC 4.3
-
-* Sun Jan 13 2008 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.5.1-21
-- rebuild for new tk in rawhide
-
-* Mon Jan 7 2008 James Antill <jantill(a)redhat.com> - 2.5.1-20
-- Add valgrind support files, as doc, to python-devel
-- Relates: rhbz#418621
-- Add new API from 2.6, set_wakeup_fd ... use at own risk, presumably won't
-- change but I have no control to guarantee that.
-- Resolves: rhbz#427794
-- Add gdbinit support file, as doc, to python-devel
-
-* Fri Jan 4 2008 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.5.1-19
-- rebuild for new tcl/tk in rawhide
-
-* Fri Dec 7 2007 James Antill <jantill(a)redhat.com> - 2.5.1-18
-- Create a python-test sub-module, over 3MB of stuff noone wants.
-- Don't remove egginfo files, try this see what happens ... may revert.
-- Resolves: rhbz#414711
-
-* Mon Dec 3 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-17
-- rebuild for new libssl
-
-* Fri Nov 30 2007 James Antill <jantill(a)redhat.com> - 2.5.1-16
-- Fix pyconfig.h comment typo.
-- Add back test_support.py and the __init__.py file.
-- Resolves: rhbz#387401
-
-* Tue Oct 30 2007 James Antill <jantill(a)redhat.com> - 2.5.1-15
-- Do codec lowercase in C Locale.
-- Resolves: 207134 191096
-- Fix stupid namespacing in pysqlite, minimal upgrade to 2.3.3 pysqlite
-- Resolves: 263221
-
-* Wed Oct 24 2007 James Antill <jantill(a)redhat.com> - 2.5.1-14
-- Remove bintuils dep. for live CD ... add work around for ctypes
-
-* Mon Oct 22 2007 James Antill <jantill(a)redhat.com> - 2.5.1-13
-- Add tix buildprereq
-- Add tkinter patch
-- Resolves: #281751
-- Fix ctypes loading of libraries, add requires on binutils
-- Resolves: #307221
-- Possible fix for CVE-2007-4965 possible exploitable integer overflow
-- Resolves: #295971
-
-* Tue Oct 16 2007 Mike Bonnet <mikeb(a)redhat.com> - 2.5.1-12
-- fix marshalling of objects in xmlrpclib (python bug #1739842)
-
-* Fri Sep 14 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-11
-- fix encoding of sqlite .py files to work around weird encoding problem
- in Turkish (#283331)
-
-* Mon Sep 10 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-10
-- work around problems with multi-line plural specification (#252136)
-
-* Tue Aug 28 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-9
-- rebuild against new expat
-
-* Tue Aug 14 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-8
-- build against db4.6
-
-* Tue Aug 14 2007 Dennis Gilmore <dennis(a)ausil.us> - 2.5.1-7
-- add sparc64 to the list of archs for _pyconfig64_h
-
-* Fri Aug 10 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-6
-- fix ctypes again on some arches (Hans de Goede, #251637)
-
-* Fri Jul 6 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-5
-- link curses modules with ncursesw (#246385)
-
-* Wed Jun 27 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-4
-- fix _elementtree.so build (#245703)
-- ensure that extension modules we expect are actually built rather than
- having them silently fall out of the package
-
-* Tue Jun 26 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-3
-- link with system expat (#245703)
-
-* Thu Jun 21 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-2
-- rebuild to take advantage of hardlinking between identical pyc/pyo files
-
-* Thu May 31 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.1-1
-- update to python 2.5.1
-
-* Mon Mar 19 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-12
-- fix alpha build (#231961)
-
-* Tue Feb 13 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-11
-- tcl/tk was reverted; rebuild again
-
-* Thu Feb 1 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-10
-- rebuild for new tcl/tk
-
-* Tue Jan 16 2007 Miroslav Lichvar <mlichvar(a)redhat.com> - 2.5.3-9
-- link with ncurses
-
-* Sat Jan 6 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-8
-- fix extensions to use shared libpython (#219564)
-- all 64bit platforms need the regex fix (#122304)
-
-* Wed Jan 3 2007 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-7
-- fix ctypes to not require execstack (#220669)
-
-* Fri Dec 15 2006 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-6
-- don't link against compat-db (Robert Scheck)
-
-* Wed Dec 13 2006 Jarod Wilson <jwilson(a)redhat.com> - 2.5.3-5
-- fix invalid assert in debug mode (upstream changeset 52622)
-
-* Tue Dec 12 2006 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-4
-- obsolete/provide python-ctypes (#219256)
-
-* Mon Dec 11 2006 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-3
-- fix atexit traceback with failed syslog logger (#218214)
-- split libpython into python-libs subpackage for multilib apps
- embedding python interpreters
-
-* Wed Dec 6 2006 Jeremy Katz <katzj(a)redhat.com> - 2.5.3-2
-- disable installation of .egg-info files for now
-
-* Tue Dec 5 2006 Jeremy Katz <katzj(a)redhat.com>
-- support db 4.5
-- obsolete python-elementtree; since it requires some code tweaks, don't
- provide it
-- obsolete old python-sqlite; provide the version that's actually included
-
-* Mon Oct 30 2006 Jeremy Katz <katzj(a)redhat.com>
-- fix _md5 and _sha modules (Robert Sheck)
-- no longer provide optik compat; it's been a couple of years now
-- no longer provide the old shm module; if this is still needed, let's
- build it separately
-- no longer provide japanese codecs; should be a separate package
-
-* Mon Oct 23 2006 Jeremy Katz <katzj(a)redhat.com> - 2.5-0
-- update to 2.5.0 final
-
-* Fri Aug 18 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.99.c1
-- Updated to 2.5c1. Merged fixes from FC6 too:
-- Fixed bug #199373 (on some platforms CFLAGS is needed when linking)
-- Fixed bug #198971 (case conversion not locale safe in logging library)
-- Verified bug #201434 (distutils.sysconfig is confused by the change to make
- python-devel multilib friendly) is fixed upstream
-
-* Sun Jul 16 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.99.b2
-- Updated to 2.5b2 (which for comparison reasons is re-labeled 2.4.99.b2)
-
-* Fri Jun 23 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.99.b1
-- Updated to 2.5b1 (which for comparison reasons is re-labeled 2.4.99.b1)
-
-* Tue Jun 13 2006 Jeremy Katz <katzj(a)redhat.com> - 2.4.3-11.FC6
-- and fix it for real
-
-* Tue Jun 13 2006 Jeremy Katz <katzj(a)redhat.com> - 2.4.3-10.FC6
-- fix python-devel on ia64
-
-* Tue Jun 13 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-9
-- Fixed python-devel to be multilib friendly (bug #192747, #139911)
-
-* Tue Jun 13 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-8
-- Only copying mkhowto from the Docs - we don't need perl dependencies from
- python-tools.
-
-* Mon Jun 12 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-7
-- Fixed bug #121198 (webbrowser.py should use the user's preferences first)
-
-* Mon Jun 12 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-6
-- Fixed bug #192592 (too aggressive assertion fails) - SF#1257960
-- Fixed bug #167468 (Doc/tools not included) - added in the python-tools package
-
-* Thu Jun 8 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-5
-- Fixed bug #193484 (added pydoc in the main package)
-
-* Mon Jun 5 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-4
-- Added dist in the release
-
-* Mon May 15 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-3
-- rebuilt to fix broken libX11 dependency
-
-* Wed Apr 12 2006 Jeremy Katz <katzj(a)redhat.com> - 2.4.3-2
-- rebuild with new gcc to fix #188649
-
-* Thu Apr 6 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-1
-- Updated to 2.4.3
-
-* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.4.2-3.2.1
-- bump again for double-long bug on ppc(64)
-
-* Fri Feb 10 2006 Mihai Ibanescu <misa(a)redhat.com> - 2.4.3-3.2
-- rebuilt for newer tix
-
-* Tue Feb 07 2006 Jesse Keating <jkeating(a)redhat.com> - 2.4.2-3.1
-- rebuilt for new gcc4.1 snapshot and glibc changes
-
-* Fri Jan 20 2006 Mihai Ibanescu <misa(a)redhat.com> 2.4.2-3
-- fixed #136654 for another instance of audiotest.au
-
-* Fri Dec 09 2005 Jesse Keating <jkeating(a)redhat.com>
-- rebuilt
-
-* Sat Nov 19 2005 Bill Nottingham <notting(a)redhat.com> 2.4.2-2
-- fix build for modular X, remove X11R6 path references
-
-* Tue Nov 15 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.2-1
-- Upgraded to 2.4.2
-- BuildRequires autoconf
-
-* Wed Nov 9 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-16
-- Rebuilding against newer openssl.
-- XFree86-devel no longer exists
-
-* Mon Sep 26 2005 Peter Jones <pjones(a)redhat.com> 2.4.1-14
-- Once more -- this time, to fix -EPERM when you run it in a directory
- you can't read from.
-
-* Mon Sep 26 2005 Peter Jones <pjones(a)redhat.com> 2.4.1-13
-- So, 5 or 6 people have said it works for them with this patch...
-
-* Sun Sep 25 2005 Peter Jones <pjones(a)redhat.com> 2.4.1-12
-- Fixed bug #169159 (check for argc>0 and argv[0] == NULL, not just
- argv[0][0]='\0')
- Reworked the patch from -8 a bit more.
-
-* Fri Sep 23 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-10
-- Fixed bug #169159 (don't let python core dump if no arguments are passed in)
- Reworked the patch from -8 a bit more.
-
-* Thu Sep 22 2005 Peter Jones <pjones(a)redhat.com> 2.4.1-8
-- Fix bug #169046 more correctly.
-
-* Thu Sep 22 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-7
-- Fixed bug #169046 (realpath is unsafe); thanks to
- Peter Jones <pjones(a)redhat.com> and Arjan van de Ven <arjanv(a)redhat.com> for
- diagnosing and the patch.
-
-* Tue Sep 20 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-4
-- Fixed bug #168655 (fixes for building as python24)
-
-* Tue Jul 26 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-3
-- Fixed bug #163435 (pynche doesn't start))
-
-* Wed Apr 20 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-2
-- Fixed bug #143667 (python should own /usr/lib/python* on 64-bit systems, for
- noarch packages)
-- Fixed bug #143419 (BuildRequires db4 is not versioned)
-
-* Wed Apr 6 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4.1-1
-- updated to 2.4.1
-
-* Mon Mar 14 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4-6
-- building the docs from a different source rpm, to decouple bootstrapping
- python from having tetex installed
-
-* Fri Mar 11 2005 Dan Williams <dcbw(a)redhat.com> 2.4-5
-- Rebuild to pick up new libssl.so.5
-
-* Wed Feb 2 2005 Mihai Ibanescu <misa(a)redhat.com> 2.4-4
-- Fixed security issue in SimpleXMLRPCServer.py (#146647)
-
-* Wed Jan 12 2005 Tim Waugh <twaugh(a)redhat.com> 2.4-3
-- Rebuilt for new readline.
-
-* Mon Dec 6 2004 Jeff Johnson <jbj(a)jbj.org> 2.4-2
-- db-4.3.21 returns DB_BUFFER_SMALL rather than ENOMEM (#141994).
-- add Provide: python(abi) = 2.4
-- include msgfmt/pygettext *.pyc and *.pyo from brp-python-bytecompile.
-
-* Fri Dec 3 2004 Mihai Ibanescu <misa(a)redhat.com> 2.4-1
-- Python-2.4.tar.bz2 (final)
-
-* Fri Nov 19 2004 Mihai Ibanescu <misa(a)redhat.com> 2.4-0.c1.1
-- Python-2.4c1.tar.bz2 (release candidate 1)
-
-* Thu Nov 11 2004 Jeff Johnson <jbj(a)jbj.org> 2.4-0.b2.4
-- rebuild against db-4.3.21.
-
-* Mon Nov 8 2004 Jeremy Katz <katzj(a)redhat.com> - 2.4-0.b2.3
-- fix the lib64 patch so that 64bit arches still look in /usr/lib/python...
-
-* Mon Nov 8 2004 Jeremy Katz <katzj(a)redhat.com> - 2.4-0.b2.2
-- cryptmodule still needs -lcrypt (again)
-
-* Thu Nov 4 2004 Mihai Ibanescu <misa(a)redhat.com> 2.4-0.b2.1
-- Updated to python 2.4b2 (and labeled it 2.4-0.b2.1 to avoid breaking rpm's
- version comparison)
-
-* Thu Nov 4 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-13
-- Fixed bug #138112 (python overflows stack buffer) - SF bug 105470
-
-* Tue Nov 2 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-12
-- Fixed bugs #131439 #136023 #137863 (.pyc/.pyo files had the buildroot added)
-
-* Tue Oct 26 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-11
-- Fixed bug #136654 (python has sketchy audio clip)
-
-* Tue Aug 31 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-10
-- Fixed bug #77418 (Demo dir not packaged)
-- More tweaking on #19347 (Moved Tools/ under /usr/lib/python2.3/Tools)
-
-* Fri Aug 13 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-8
-- Fixed bug #129769: Makefile in new python conflicts with older version found
- in old python-devel
-- Reorganized the spec file to get rid of the aspython2 define; __python_ver
- is more powerful.
-
-* Tue Aug 3 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-7
-- Including html documentation for non-i386 arches
-- Fixed #125362 (python-doc html files have japanese character encoding)
-- Fixed #128923 (missing dependency between python and python-devel)
-
-* Fri Jul 30 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-6
-- Fixed #128030 (help() not printing anything)
-- Fixed #125472 (distutils.sysconfig.get_python_lib() not returning the right
- path on 64-bit systems)
-- Fixed #127357 (building python as a shared library)
-- Fixed #19347 (including the contents of Tools/scripts/ in python-tools)
-
-* Tue Jun 15 2004 Elliot Lee <sopwith(a)redhat.com>
-- rebuilt
-
-* Tue Jun 8 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-3
-- Added an optik.py that provides the same interface from optparse for
- backward compatibility; obsoleting python-optik
-
-* Mon Jun 7 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-2
-- Patched bdist_rpm to allow for builds of multiple binary rpms (bug #123598)
-
-* Fri Jun 4 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.4-1
-- Updated to 2.3.4-1 with Robert Scheck's help (bug #124764)
-- Added BuildRequires: tix-devel (bug #124918)
-
-* Fri May 7 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.3-6
-- Correct fix for #122304 from upstream:
- http://sourceforge.net/tracker/?func=detail&atid=105470&aid=931848&group_...
-
-* Thu May 6 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.3-4
-- Fix for bug #122304 : splitting the domain name fails on 64-bit arches
-- Fix for bug #120879 : including Makefile into the main package
-
-- Requires XFree86-devel instead of -libs (see bug #118442)
-
-* Tue Mar 16 2004 Mihai Ibanescu <misa(a)redhat.com> 2.3.3-3
-- Requires XFree86-devel instead of -libs (see bug #118442)
-
-* Tue Mar 02 2004 Elliot Lee <sopwith(a)redhat.com>
-- rebuilt
-
-* Fri Feb 13 2004 Elliot Lee <sopwith(a)redhat.com>
-- rebuilt
-
-* Fri Dec 19 2003 Jeff Johnson <jbj(a)jbj.org> 2.3.3-1
-- upgrade to 2.3.3.
-
-* Sat Dec 13 2003 Jeff Johnson <jbj(a)jbj.org> 2.3.2-9
-- rebuild against db-4.2.52.
-
-* Fri Dec 12 2003 Jeremy Katz <katzj(a)redhat.com> 2.3.2-8
-- more rebuilding for new tcl/tk
-
-* Wed Dec 3 2003 Jeff Johnson <jbj(a)jbj.org> 2.3.2-7.1
-- rebuild against db-4.2.42.
-
-* Fri Nov 28 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.2-7
-- rebuilt against newer tcl/tk
-
-* Mon Nov 24 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.2-6
-- added a Provides: python-abi
-
-* Wed Nov 12 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.2-5
-- force CC (#109268)
-
-* Sun Nov 9 2003 Jeremy Katz <katzj(a)redhat.com> 2.3.2-4
-- cryptmodule still needs -lcrypt
-
-* Wed Nov 5 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.2-2
-- Added patch for missing mkhowto
-
-* Thu Oct 16 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.2-1
-- Updated to 2.3.2
-
-* Thu Sep 25 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.1-1
-- 2.3.1 final
-
-* Tue Sep 23 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3.1-0.8.RC1
-- Building the python 2.3.1 release candidate
-- Updated the lib64 patch
-
-* Wed Jul 30 2003 Mihai Ibanescu <misa(a)redhat.com> 2.3-0.2
-- Building python 2.3
-- Added more BuildRequires
-- Updated the startup files for modulator and pynche; idle installs its own
- now.
-
-* Thu Jul 3 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.3-4
-- Rebuilt against newer db4 packages (bug #98539)
-
-* Mon Jun 9 2003 Elliot Lee <sopwith(a)redhat.com> 2.2.3-3
-- rebuilt
-
-* Sat Jun 7 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.3-2
-- Rebuilt
-
-* Fri Jun 6 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.3-1
-- Upgraded to 2.2.3
-
-* Wed Apr 2 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-28
-- Rebuilt
-
-* Wed Apr 2 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-27
-- Modified the ftpuri patch conforming to http://ietf.org/rfc/rfc1738.txt
-
-* Mon Feb 24 2003 Elliot Lee <sopwith(a)redhat.com>
-- rebuilt
-
-* Mon Feb 24 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-25
-- Fixed bug #84886: pydoc dies when run w/o arguments
-- Fixed bug #84205: add python shm module back (used to be shipped with 1.5.2)
-- Fixed bug #84966: path in byte-compiled code still wrong
-
-* Thu Feb 20 2003 Jeremy Katz <katzj(a)redhat.com> 2.2.2-23
-- ftp uri's should be able to specify being rooted at the root instead of
- where you login via ftp (#84692)
-
-* Mon Feb 10 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-22
-- Using newer Japanese codecs (1.4.9). Thanks to
- Peter Bowen <pzb(a)datastacks.com> for pointing this out.
-
-* Thu Feb 6 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-21
-- Rebuild
-
-* Wed Feb 5 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-20
-- Release number bumped really high: turning on UCS4 (ABI compatibility
- breakage)
-
-* Fri Jan 31 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-13
-- Attempt to look both in /usr/lib64 and /usr/lib/python2.2/site-packages/:
- some work on python-2.2.2-lib64.patch
-
-* Thu Jan 30 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-12
-- Rebuild to incorporate the removal of .lib64 and - files.
-
-* Thu Jan 30 2003 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-11.7.3
-- Fixed bug #82544: Errata removes most tools
-- Fixed bug #82435: Python 2.2.2 errata breaks redhat-config-users
-- Removed .lib64 and - files that get installed after we fix the multilib
- .py files.
-
-* Wed Jan 22 2003 Tim Powers <timp(a)redhat.com>
-- rebuilt
-
-* Wed Jan 15 2003 Jens Petersen <petersen(a)redhat.com> 2.2.2-10
-- rebuild to update tkinter's tcltk deps
-- convert changelog to utf-8
-
-* Tue Jan 7 2003 Nalin Dahyabhai <nalin(a)redhat.com> 2.2.2-9
-- rebuild
-
-* Fri Jan 3 2003 Nalin Dahyabhai <nalin(a)redhat.com>
-- pick up OpenSSL cflags and ldflags from pkgconfig if available
-
-* Thu Jan 2 2003 Jeremy Katz <katzj(a)redhat.com> 2.2.2-8
-- urllib2 didn't support non-anonymous ftp. add support based on how
- urllib did it (#80676, #78168)
-
-* Mon Dec 16 2002 Mihai Ibanescu <misa(a)redhat.com> 2.2.2-7
-- Fix bug #79647 (Rebuild of SRPM fails if python isn't installed)
-- Added a bunch of missing BuildRequires found while fixing the
- above-mentioned bug
-
-* Tue Dec 10 2002 Tim Powers <timp(a)redhat.com> 2.2.2-6
-- rebuild to fix broken tcltk deps for tkinter
-
-* Fri Nov 22 2002 Mihai Ibanescu <misa(a)redhat.com>
-2.2.2-3.7.3
-- Recompiled for 7.3 (to fix the -lcrypt bug)
-- Fix for the spurious error message at the end of the build (build-requires
- gets confused by executable files starting with """"): make the tests
- non-executable.
-
-* Wed Nov 20 2002 Mihai Ibanescu <misa(a)redhat.com>
-2.2.2-5
-- Fixed configuration patch to add -lcrypt when compiling cryptmodule.c
-
-2.2.2-4
-- Spec file change from Matt Wilson <msw(a)redhat.com> to disable linking
- with the C++ compiler.
-
-* Mon Nov 11 2002 Mihai Ibanescu <misa(a)redhat.com>
-2.2.2-3.*
-- Merged patch from Karsten Hopp <karsten(a)redhat.de> from 2.2.1-17hammer to
- use %%{_libdir}
-- Added XFree86-libs as BuildRequires (because of tkinter)
-- Fixed duplicate listing of plat-linux2
-- Fixed exclusion of lib-dynload/japanese
-- Added lib64 patch for the japanese codecs
-- Use setup magic instead of using tar directly on JapaneseCodecs
-
-* Tue Nov 5 2002 Mihai Ibanescu <misa(a)redhat.com>
-2.2.2-2
-- Fix #76912 (python-tools contains idle, which uses tkinter, but there is no
- requirement of tkinter from python-tools).
-- Fix #74013 (rpm is missing the /usr/lib/python2.2/test directory)
-
-* Mon Nov 4 2002 Mihai Ibanescu <misa(a)redhat.com>
-- builds as python2 require a different libdb
-- changed the buildroot name of python to match python2 builds
-
-* Fri Nov 1 2002 Mihai Ibanescu <misa(a)redhat.com>
-- updated python to 2.2.2 and adjusted the patches accordingly
-
-* Mon Oct 21 2002 Mihai Ibanescu <misa(a)redhat.com>
-- Fix #53930 (Python-2.2.1-buildroot-bytecode.patch)
-- Added BuildPrereq dependency on gcc-c++
-
-* Fri Aug 30 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-17
-- security fix for _execvpe
-
-* Tue Aug 13 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-16
-- Fix #71011,#71134, #58157
-
-* Wed Aug 7 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-15
-- Resurrect tkinter
-- Fix for distutils (#67671)
-- Fix #69962
-
-* Thu Jul 25 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-14
-- Obsolete tkinter/tkinter2 (#69838)
-
-* Tue Jul 23 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-13
-- Doc fixes (#53951) - not on alpha at the momemt
-
-* Mon Jul 8 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-12
-- fix pydoc (#68082)
-
-* Mon Jul 8 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-11
-- Add db4-devel as a BuildPrereq
-
-* Fri Jun 21 2002 Tim Powers <timp(a)redhat.com> 2.2.1-10
-- automated rebuild
-
-* Mon Jun 17 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-9
-- Add Japanese codecs (#66352)
-
-* Tue Jun 11 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-8
-- No more tkinter...
-
-* Wed May 29 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-7
-- Rebuild
-
-* Tue May 21 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-6
-- Add the email subcomponent (#65301)
-
-* Fri May 10 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-5
-- Rebuild
-
-* Thu May 02 2002 Than Ngo <than(a)redhat.com> 2.2.1-4
-- rebuild i new enviroment
-
-* Tue Apr 23 2002 Trond Eivind Glomsrd <teg(a)redhat.com>
-- Use ucs2, not ucs4, to avoid breaking tkinter (#63965)
-
-* Mon Apr 22 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-2
-- Make it use db4
-
-* Fri Apr 12 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2.1-1
-- 2.2.1 - a bugfix-only release
-
-* Fri Apr 12 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-16
-- the same, but in builddirs - this will remove them from the
- docs package, which doesn't look in the buildroot for files.
-
-* Fri Apr 12 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-15
-- Get rid of temporary files and .cvsignores included
- in the tarball and make install
-
-* Fri Apr 5 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-14
-- Don't own lib-tk in main package, only in tkinter (#62753)
-
-* Mon Mar 25 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-13
-- rebuild
-
-* Mon Mar 25 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-12
-- rebuild
-
-* Fri Mar 1 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-11
-- Add a not to the Distutils obsoletes test (doh!)
-
-* Fri Mar 1 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-10
-- Rebuild
-
-* Mon Feb 25 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-9
-- Only obsolete Distutils when built as python
-
-* Thu Feb 21 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-8
-- Make files in /usr/bin install side by side with python 1.5 when
-- Drop explicit requirement of db4
- built as python2
-
-* Thu Jan 31 2002 Elliot Lee <sopwith(a)redhat.com> 2.2-7
-- Use version and pybasever macros to make updating easy
-- Use _smp_mflags macro
-
-* Tue Jan 29 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-6
-- Add db4-devel to BuildPrereq
-
-* Fri Jan 25 2002 Nalin Dahyabhai <nalin(a)redhat.com> 2.2-5
-- disable ndbm support, which is db2 in disguise (really interesting things
- can happen when you mix db2 and db4 in a single application)
-
-* Thu Jan 24 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-4
-- Obsolete subpackages if necesarry
-- provide versioned python2
-- build with db4
-
-* Wed Jan 16 2002 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-3
-- Alpha toolchain broken. Disable build on alpha.
-- New openssl
-
-* Wed Dec 26 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-1
-- 2.2 final
-
-* Fri Dec 14 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.11c1
-- 2.2 RC 1
-- Don't include the _tkinter module in the main package - it's
- already in the tkiter packace
-- Turn off the mpzmodule, something broke in the buildroot
-
-* Wed Nov 28 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.10b2
-- Use -fPIC for OPT as well, in lack of a proper libpython.so
-
-* Mon Nov 26 2001 Matt Wilson <msw(a)redhat.com> 2.2-0.9b2
-- changed DESTDIR to point to / so that distutils will install dynload
- modules properly in the installroot
-
-* Fri Nov 16 2001 Matt Wilson <msw(a)redhat.com> 2.2-0.8b2
-- 2.2b2
-
-* Fri Oct 26 2001 Matt Wilson <msw(a)redhat.com> 2.2-0.7b1
-- python2ify
-
-* Fri Oct 19 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.5b1
-- 2.2b1
-
-* Sun Sep 30 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.4a4
-- 2.2a4
-- Enable UCS4 support
-- Enable IPv6
-- Provide distutils
-- Include msgfmt.py and pygettext.py
-
-* Fri Sep 14 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.3a3
-- Obsolete Distutils, which is now part of the main package
-- Obsolete python2
-
-* Thu Sep 13 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.2a3
-- Add docs, tools and tkinter subpackages, to match the 1.5 layout
-
-* Wed Sep 12 2001 Trond Eivind Glomsrd <teg(a)redhat.com> 2.2-0.1a3
-- 2.2a3
-- don't build tix and blt extensions
-
-* Mon Aug 13 2001 Trond Eivind Glomsrd <teg(a)redhat.com>
-- Add tk and tix to build dependencies
-
-* Sat Jul 21 2001 Trond Eivind Glomsrd <teg(a)redhat.com>
-- 2.1.1 bugfix release - with a GPL compatible license
-
-* Fri Jul 20 2001 Trond Eivind Glomsrd <teg(a)redhat.com>
-- Add new build dependencies (#49753)
-
-* Tue Jun 26 2001 Nalin Dahyabhai <nalin(a)redhat.com>
-- build with -fPIC
-
-* Fri Jun 1 2001 Trond Eivind Glomsrd <teg(a)redhat.com>
-- 2.1
-- reorganization of file includes
-
-* Wed Dec 20 2000 Trond Eivind Glomsrd <teg(a)redhat.com>
-- fix the "requires" clause, it lacked a space causing problems
-- use %%{_tmppath}
-- don't define name, version etc
-- add the available patches from the Python home page
-
-* Fri Dec 15 2000 Matt Wilson <msw(a)redhat.com>
-- added devel subpackage
-
-* Fri Dec 15 2000 Matt Wilson <msw(a)redhat.com>
-- modify all files to use "python2.0" as the intrepter
-- don't build the Expat bindings
-- build against db1
-
-* Mon Oct 16 2000 Jeremy Hylton <jeremy(a)beopen.com>
-- updated for 2.0 final
-
-* Mon Oct 9 2000 Jeremy Hylton <jeremy(a)beopen.com>
-- updated for 2.0c1
-- build audioop, imageop, and rgbimg extension modules
-- include xml.parsers subpackage
-- add test.xml.out to files list
-
-* Thu Oct 5 2000 Jeremy Hylton <jeremy(a)beopen.com>
-- added bin/python2.0 to files list (suggested by Martin v. L?)
-
-* Tue Sep 26 2000 Jeremy Hylton <jeremy(a)beopen.com>
-- updated for release 1 of 2.0b2
-- use .bz2 version of Python source
-
-* Tue Sep 12 2000 Jeremy Hylton <jeremy(a)beopen.com>
-- Version 2 of 2.0b1
-- Make the package relocatable. Thanks to Suchandra Thapa.
-- Exclude Tkinter from main RPM. If it is in a separate RPM, it is
- easier to track Tk releases.
diff --git a/pythondeps.sh b/pythondeps.sh
deleted file mode 100755
index 10a060a..0000000
--- a/pythondeps.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-[ $# -ge 1 ] || {
- cat > /dev/null
- exit 0
-}
-
-case $1 in
--P|--provides)
- shift
- # Match buildroot/payload paths of the form
- # /PATH/OF/BUILDROOT/usr/bin/pythonMAJOR.MINOR
- # generating a line of the form
- # python(abi) = MAJOR.MINOR
- # (Don't match against -config tools e.g. /usr/bin/python2.6-config)
- grep "/usr/bin/python.\..$" \
- | sed -e "s|.*/usr/bin/python\(.\..\)|python(abi) = \1|"
- ;;
--R|--requires)
- shift
- # Match buildroot paths of the form
- # /PATH/OF/BUILDROOT/usr/lib/pythonMAJOR.MINOR/ and
- # /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/
- # generating (uniqely) lines of the form:
- # python(abi) = MAJOR.MINOR
- grep "/usr/lib[^/]*/python.\../.*" \
- | sed -e "s|.*/usr/lib[^/]*/python\(.\..\)/.*|python(abi) = \1|g" \
- | sort | uniq
- ;;
-esac
-
-exit 0
diff --git a/sources b/sources
deleted file mode 100644
index f0a0c91..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-SHA512 (Python-2.7.16.tar.xz) = 16e814e8dcffc707b595ca2919bd2fa3db0d15794c63d977364652c4a5b92e90e72b8c9e1cc83b5020398bd90a1b397dbdd7cb931c49f1aa4af6ef95414b43e0
diff --git a/systemtap-example.stp b/systemtap-example.stp
deleted file mode 100644
index 164333a..0000000
--- a/systemtap-example.stp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- Example usage of the Python systemtap tapset to show a nested view of all
- Python function calls (and returns) across the whole system.
-
- Run this using
- stap systemtap-example.stp
- to instrument all Python processes on the system, or (for example) using
- stap systemtap-example.stp -c COMMAND
- to instrument a specific program (implemented in Python)
-*/
-probe python.function.entry
-{
- printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
-}
-
-probe python.function.return
-{
- printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
-}
diff --git a/tests/tests.yml b/tests/tests.yml
deleted file mode 100644
index a31cb8b..0000000
--- a/tests/tests.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- hosts: localhost
- roles:
- - role: standard-test-basic
- tags:
- - classic
- repositories:
- - repo: "https://src.fedoraproject.org/tests/python.git"
- dest: "python"
- tests:
- - smoke:
- dir: python/smoke
- run: METHOD=virtualenv VERSION=2.7 ./venv.sh
- required_packages:
- - gcc
- - virtualenv
- - python3-tox
- - python2-devel
- - glibc-all-langpacks # for locale tests
3 years, 9 months
Architecture specific change in rpms/git-annex.git
by githook-noreply@fedoraproject.org
The package rpms/git-annex.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/git-annex.git/commit/?id=41c1fcdf...
https://src.fedoraproject.org/cgit/rpms/git-annex.git/commit/?id=767616a2....
Change:
-%ifnarch s390x
+%ifnarch s390x
Thanks.
Full change:
============
commit 41c1fcdf6632f76a55e205df09acd7f2dfc5f327
Author: Elliott Sales de Andrade <quantum.analyst(a)gmail.com>
Date: Fri Aug 30 04:13:23 2019 -0400
Update to 7.20190819.
diff --git a/.gitignore b/.gitignore
index 5e01a5d..0c780a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@
/git-annex-7.20190626.tar.gz
/git-annex-7.20190708.tar.gz
/git-annex-7.20190730.tar.gz
+/git-annex-7.20190819.tar.gz
diff --git a/git-annex.spec b/git-annex.spec
index de55d80..37c658d 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -4,7 +4,7 @@
%bcond_without ikiwiki
Name: git-annex
-Version: 7.20190730
+Version: 7.20190819
Release: 1%{?dist}
Summary: Manage files with git, without checking their contents into git
@@ -189,13 +189,11 @@ install -m 644 bash-completion.bash $bash_completion_dir/git-annex
%check
-%ifnarch s390x
mkdir test
pushd test
PATH=%{buildroot}%{_bindir}:$PATH \
git annex test
popd
-%endif
%files
@@ -219,6 +217,9 @@ popd
%changelog
+* Fri Aug 30 2019 Elliott Sales de Andrade <quantum.analyst(a)gmail.com> - 7.20190819-1
+- update to 7.20190819
+
* Fri Aug 09 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190730-1
- update to 7.20190730
diff --git a/sources b/sources
index 2976049..6f0c2f7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (git-annex-7.20190730.tar.gz) = 15dde60d1b4d04e4d8e324a281d5865a1465385607cb525f09ac35cd4edcfe2796d920e964a8229b3dd480e8962b95eb6fc78ef015bb9716d5528b1707e5b38a
+SHA512 (git-annex-7.20190819.tar.gz) = 46747327707a3d2256a2310340f36874a6bcc7ddd960bc277b5e81bd4e9b9e777a4bb24b11d6d2008d25bc4df9f5da236e880f9a9219831db05067f6629deff0
commit 767616a2c90b5675b66a098868c2cc79bd92bdf9
Author: Jens Petersen <petersen(a)redhat.com>
Date: Wed Aug 14 16:22:31 2019 +0200
disable tests on s390x
2 out of 300 tests failed (204.72s)
Only happens in F31+: is it Haskell or git-core?
diff --git a/git-annex.spec b/git-annex.spec
index 907d2c0..de55d80 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -189,11 +189,13 @@ install -m 644 bash-completion.bash $bash_completion_dir/git-annex
%check
+%ifnarch s390x
mkdir test
pushd test
PATH=%{buildroot}%{_bindir}:$PATH \
git annex test
popd
+%endif
%files
commit ae2e70b1d67011a8b26c21783983f521c19dd380
Author: Jens Petersen <petersen(a)redhat.com>
Date: Fri Aug 9 07:04:18 2019 +0200
update to 7.20190730
diff --git a/.gitignore b/.gitignore
index e83a259..5e01a5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,4 @@
/git-annex-7.20190615.tar.gz
/git-annex-7.20190626.tar.gz
/git-annex-7.20190708.tar.gz
+/git-annex-7.20190730.tar.gz
diff --git a/git-annex.spec b/git-annex.spec
index 1e6ee4e..907d2c0 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -4,8 +4,8 @@
%bcond_without ikiwiki
Name: git-annex
-Version: 7.20190708
-Release: 3%{?dist}
+Version: 7.20190730
+Release: 1%{?dist}
Summary: Manage files with git, without checking their contents into git
License: AGPLv3+
@@ -217,6 +217,9 @@ popd
%changelog
+* Fri Aug 09 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190730-1
+- update to 7.20190730
+
* Thu Aug 01 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190708-3
- rebuild
diff --git a/sources b/sources
index 9d57133..2976049 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (git-annex-7.20190708.tar.gz) = 369817b4315565564eee6c329a317410f9839ec6016d24091f895334e2e93bfa2a0895efb930f9a3292d8d872dfa9737ad031a270681a3cc89626e8e501686e0
+SHA512 (git-annex-7.20190730.tar.gz) = 15dde60d1b4d04e4d8e324a281d5865a1465385607cb525f09ac35cd4edcfe2796d920e964a8229b3dd480e8962b95eb6fc78ef015bb9716d5528b1707e5b38a
commit 07221c6265dc69c86227ccd8a4441ea4d6323f55
Author: Jens Petersen <petersen(a)redhat.com>
Date: Mon Aug 5 18:33:19 2019 +0800
BR prof for lib and static for executable
diff --git a/git-annex.spec b/git-annex.spec
index 8a9688e..1e6ee4e 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -1,4 +1,4 @@
-# generated by cabal-rpm-0.13
+# generated by cabal-rpm-1.0.1
# https://fedoraproject.org/wiki/Packaging:Haskell
%bcond_without ikiwiki
@@ -22,95 +22,95 @@ BuildRequires: bash-completion
# Begin cabal-rpm deps:
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
-BuildRequires: ghc-DAV-devel >= 1.0
-BuildRequires: ghc-IfElse-devel
-BuildRequires: ghc-QuickCheck-devel >= 2.8.2
-BuildRequires: ghc-SafeSemaphore-devel
-BuildRequires: ghc-aeson-devel
-BuildRequires: ghc-async-devel
-BuildRequires: ghc-attoparsec-devel
-BuildRequires: ghc-aws-devel >= 0.9.2
-BuildRequires: ghc-blaze-builder-devel
-BuildRequires: ghc-bloomfilter-devel
-BuildRequires: ghc-byteable-devel
-BuildRequires: ghc-bytestring-devel
-BuildRequires: ghc-case-insensitive-devel
-BuildRequires: ghc-clientsession-devel
-BuildRequires: ghc-concurrent-output-devel >= 1.6
-BuildRequires: ghc-conduit-devel
-BuildRequires: ghc-connection-devel
-BuildRequires: ghc-containers-devel >= 0.5.7.1
-BuildRequires: ghc-crypto-api-devel
-BuildRequires: ghc-cryptonite-devel
-BuildRequires: ghc-data-default-devel
-BuildRequires: ghc-dbus-devel >= 0.10.7
-BuildRequires: ghc-directory-devel >= 1.2
-BuildRequires: ghc-disk-free-space-devel
-BuildRequires: ghc-dlist-devel
-BuildRequires: ghc-edit-distance-devel
-BuildRequires: ghc-exceptions-devel >= 0.6
-BuildRequires: ghc-fdo-notify-devel
-BuildRequires: ghc-feed-devel >= 0.3.9
-BuildRequires: ghc-filepath-devel
-BuildRequires: ghc-free-devel
-BuildRequires: ghc-hinotify-devel
-BuildRequires: ghc-hslogger-devel
-BuildRequires: ghc-http-client-devel
-BuildRequires: ghc-http-client-tls-devel
-BuildRequires: ghc-http-conduit-devel >= 2.0
-BuildRequires: ghc-http-types-devel >= 0.7
-BuildRequires: ghc-magic-devel
-BuildRequires: ghc-memory-devel
-BuildRequires: ghc-microlens-devel
-BuildRequires: ghc-monad-control-devel
-BuildRequires: ghc-monad-logger-devel
-BuildRequires: ghc-mountpoints-devel
-BuildRequires: ghc-mtl-devel >= 2
-BuildRequires: ghc-network-devel >= 2.6
-BuildRequires: ghc-network-info-devel
-BuildRequires: ghc-network-multicast-devel
-BuildRequires: ghc-network-uri-devel >= 2.6
-BuildRequires: ghc-old-locale-devel
-BuildRequires: ghc-optparse-applicative-devel >= 0.11.0
-BuildRequires: ghc-path-pieces-devel >= 0.2.1
-BuildRequires: ghc-persistent-devel
-BuildRequires: ghc-persistent-sqlite-devel >= 2.1.3
-BuildRequires: ghc-persistent-template-devel
-BuildRequires: ghc-process-devel
-BuildRequires: ghc-random-devel
-BuildRequires: ghc-regex-tdfa-devel
-BuildRequires: ghc-resourcet-devel
-BuildRequires: ghc-sandi-devel
-BuildRequires: ghc-securemem-devel
-BuildRequires: ghc-shakespeare-devel >= 2.0.11
-BuildRequires: ghc-socks-devel
-BuildRequires: ghc-split-devel
-BuildRequires: ghc-stm-chans-devel
-BuildRequires: ghc-stm-devel >= 2.3
-BuildRequires: ghc-tagsoup-devel
-BuildRequires: ghc-tasty-devel >= 0.7
-BuildRequires: ghc-tasty-hunit-devel
-BuildRequires: ghc-tasty-quickcheck-devel
-BuildRequires: ghc-tasty-rerun-devel
-BuildRequires: ghc-template-haskell-devel
-BuildRequires: ghc-text-devel
-BuildRequires: ghc-time-devel
-BuildRequires: ghc-torrent-devel >= 10000.0.0
-BuildRequires: ghc-transformers-devel
-BuildRequires: ghc-unix-compat-devel
-BuildRequires: ghc-unix-devel >= 2.7.2
-BuildRequires: ghc-unordered-containers-devel
-BuildRequires: ghc-utf8-string-devel
-BuildRequires: ghc-uuid-devel >= 1.2.6
-BuildRequires: ghc-vector-devel
-BuildRequires: ghc-wai-devel
-BuildRequires: ghc-wai-extra-devel
-BuildRequires: ghc-warp-devel >= 3.2.8
-BuildRequires: ghc-warp-tls-devel >= 3.2.2
-BuildRequires: ghc-yesod-core-devel >= 1.4.25
+BuildRequires: ghc-DAV-static >= 1.0
+BuildRequires: ghc-IfElse-static
+BuildRequires: ghc-QuickCheck-static >= 2.8.2
+BuildRequires: ghc-SafeSemaphore-static
+BuildRequires: ghc-aeson-static
+BuildRequires: ghc-async-static
+BuildRequires: ghc-attoparsec-static
+BuildRequires: ghc-aws-static >= 0.9.2
+BuildRequires: ghc-blaze-builder-static
+BuildRequires: ghc-bloomfilter-static
+BuildRequires: ghc-byteable-static
+BuildRequires: ghc-bytestring-static
+BuildRequires: ghc-case-insensitive-static
+BuildRequires: ghc-clientsession-static
+BuildRequires: ghc-concurrent-output-static >= 1.6
+BuildRequires: ghc-conduit-static
+BuildRequires: ghc-connection-static
+BuildRequires: ghc-containers-static >= 0.5.7.1
+BuildRequires: ghc-crypto-api-static
+BuildRequires: ghc-cryptonite-static
+BuildRequires: ghc-data-default-static
+BuildRequires: ghc-dbus-static >= 0.10.7
+BuildRequires: ghc-directory-static >= 1.2
+BuildRequires: ghc-disk-free-space-static
+BuildRequires: ghc-dlist-static
+BuildRequires: ghc-edit-distance-static
+BuildRequires: ghc-exceptions-static >= 0.6
+BuildRequires: ghc-fdo-notify-static
+BuildRequires: ghc-feed-static >= 0.3.9
+BuildRequires: ghc-filepath-static
+BuildRequires: ghc-free-static
+BuildRequires: ghc-hinotify-static
+BuildRequires: ghc-hslogger-static
+BuildRequires: ghc-http-client-static
+BuildRequires: ghc-http-client-tls-static
+BuildRequires: ghc-http-conduit-static >= 2.0
+BuildRequires: ghc-http-types-static >= 0.7
+BuildRequires: ghc-magic-static
+BuildRequires: ghc-memory-static
+BuildRequires: ghc-microlens-static
+BuildRequires: ghc-monad-control-static
+BuildRequires: ghc-monad-logger-static
+BuildRequires: ghc-mountpoints-static
+BuildRequires: ghc-mtl-static >= 2
+BuildRequires: ghc-network-static >= 2.6
+BuildRequires: ghc-network-info-static
+BuildRequires: ghc-network-multicast-static
+BuildRequires: ghc-network-uri-static >= 2.6
+BuildRequires: ghc-old-locale-static
+BuildRequires: ghc-optparse-applicative-static >= 0.11.0
+BuildRequires: ghc-path-pieces-static >= 0.2.1
+BuildRequires: ghc-persistent-static
+BuildRequires: ghc-persistent-sqlite-static >= 2.1.3
+BuildRequires: ghc-persistent-template-static
+BuildRequires: ghc-process-static
+BuildRequires: ghc-random-static
+BuildRequires: ghc-regex-tdfa-static
+BuildRequires: ghc-resourcet-static
+BuildRequires: ghc-sandi-static
+BuildRequires: ghc-securemem-static
+BuildRequires: ghc-shakespeare-static >= 2.0.11
+BuildRequires: ghc-socks-static
+BuildRequires: ghc-split-static
+BuildRequires: ghc-stm-chans-static
+BuildRequires: ghc-stm-static >= 2.3
+BuildRequires: ghc-tagsoup-static
+BuildRequires: ghc-tasty-static >= 0.7
+BuildRequires: ghc-tasty-hunit-static
+BuildRequires: ghc-tasty-quickcheck-static
+BuildRequires: ghc-tasty-rerun-static
+BuildRequires: ghc-template-haskell-static
+BuildRequires: ghc-text-static
+BuildRequires: ghc-time-static
+BuildRequires: ghc-torrent-static >= 10000.0.0
+BuildRequires: ghc-transformers-static
+BuildRequires: ghc-unix-compat-static
+BuildRequires: ghc-unix-static >= 2.7.2
+BuildRequires: ghc-unordered-containers-static
+BuildRequires: ghc-utf8-string-static
+BuildRequires: ghc-uuid-static >= 1.2.6
+BuildRequires: ghc-vector-static
+BuildRequires: ghc-wai-static
+BuildRequires: ghc-wai-extra-static
+BuildRequires: ghc-warp-static >= 3.2.8
+BuildRequires: ghc-warp-tls-static >= 3.2.2
BuildRequires: ghc-yesod-devel >= 1.4.3
-BuildRequires: ghc-yesod-form-devel >= 1.4.8
-BuildRequires: ghc-yesod-static-devel >= 1.5.1
+BuildRequires: ghc-yesod-core-static >= 1.4.25
+BuildRequires: ghc-yesod-form-static >= 1.4.8
+BuildRequires: ghc-yesod-static-static >= 1.5.1
# End cabal-rpm deps
BuildRequires: git
BuildRequires: rsync
commit 269f083019671727fa6547d0048d3ecb61d0909d
Author: Jens Petersen <petersen(a)redhat.com>
Date: Thu Aug 1 19:56:53 2019 +0530
bump release
diff --git a/git-annex.spec b/git-annex.spec
index 727b3ba..8a9688e 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -5,7 +5,7 @@
Name: git-annex
Version: 7.20190708
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Manage files with git, without checking their contents into git
License: AGPLv3+
@@ -217,6 +217,9 @@ popd
%changelog
+* Thu Aug 01 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190708-3
+- rebuild
+
* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.20190708-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit 8b24a60b39261ada813f5e12ac83846f2c77e651
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 25 03:26:46 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/git-annex.spec b/git-annex.spec
index 6cdadc8..727b3ba 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -5,7 +5,7 @@
Name: git-annex
Version: 7.20190708
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Manage files with git, without checking their contents into git
License: AGPLv3+
@@ -217,6 +217,9 @@ popd
%changelog
+* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.20190708-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Mon Jul 15 2019 Elliott Sales de Andrade <quantum.analyst(a)gmail.com> - 7.20190708-1
- update to 7.20190708
3 years, 9 months
Architecture specific change in rpms/git-annex.git
by githook-noreply@fedoraproject.org
The package rpms/git-annex.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/git-annex.git/commit/?id=41c1fcdf....
Change:
-%ifnarch s390x
Thanks.
Full change:
============
commit 41c1fcdf6632f76a55e205df09acd7f2dfc5f327
Author: Elliott Sales de Andrade <quantum.analyst(a)gmail.com>
Date: Fri Aug 30 04:13:23 2019 -0400
Update to 7.20190819.
diff --git a/.gitignore b/.gitignore
index 5e01a5d..0c780a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@
/git-annex-7.20190626.tar.gz
/git-annex-7.20190708.tar.gz
/git-annex-7.20190730.tar.gz
+/git-annex-7.20190819.tar.gz
diff --git a/git-annex.spec b/git-annex.spec
index de55d80..37c658d 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -4,7 +4,7 @@
%bcond_without ikiwiki
Name: git-annex
-Version: 7.20190730
+Version: 7.20190819
Release: 1%{?dist}
Summary: Manage files with git, without checking their contents into git
@@ -189,13 +189,11 @@ install -m 644 bash-completion.bash $bash_completion_dir/git-annex
%check
-%ifnarch s390x
mkdir test
pushd test
PATH=%{buildroot}%{_bindir}:$PATH \
git annex test
popd
-%endif
%files
@@ -219,6 +217,9 @@ popd
%changelog
+* Fri Aug 30 2019 Elliott Sales de Andrade <quantum.analyst(a)gmail.com> - 7.20190819-1
+- update to 7.20190819
+
* Fri Aug 09 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190730-1
- update to 7.20190730
diff --git a/sources b/sources
index 2976049..6f0c2f7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (git-annex-7.20190730.tar.gz) = 15dde60d1b4d04e4d8e324a281d5865a1465385607cb525f09ac35cd4edcfe2796d920e964a8229b3dd480e8962b95eb6fc78ef015bb9716d5528b1707e5b38a
+SHA512 (git-annex-7.20190819.tar.gz) = 46747327707a3d2256a2310340f36874a6bcc7ddd960bc277b5e81bd4e9b9e777a4bb24b11d6d2008d25bc4df9f5da236e880f9a9219831db05067f6629deff0
3 years, 9 months
Architecture specific change in rpms/git-annex.git
by githook-noreply@fedoraproject.org
The package rpms/git-annex.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/git-annex.git/commit/?id=41c1fcdf....
Change:
-%ifnarch s390x
Thanks.
Full change:
============
commit 41c1fcdf6632f76a55e205df09acd7f2dfc5f327
Author: Elliott Sales de Andrade <quantum.analyst(a)gmail.com>
Date: Fri Aug 30 04:13:23 2019 -0400
Update to 7.20190819.
diff --git a/.gitignore b/.gitignore
index 5e01a5d..0c780a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@
/git-annex-7.20190626.tar.gz
/git-annex-7.20190708.tar.gz
/git-annex-7.20190730.tar.gz
+/git-annex-7.20190819.tar.gz
diff --git a/git-annex.spec b/git-annex.spec
index de55d80..37c658d 100644
--- a/git-annex.spec
+++ b/git-annex.spec
@@ -4,7 +4,7 @@
%bcond_without ikiwiki
Name: git-annex
-Version: 7.20190730
+Version: 7.20190819
Release: 1%{?dist}
Summary: Manage files with git, without checking their contents into git
@@ -189,13 +189,11 @@ install -m 644 bash-completion.bash $bash_completion_dir/git-annex
%check
-%ifnarch s390x
mkdir test
pushd test
PATH=%{buildroot}%{_bindir}:$PATH \
git annex test
popd
-%endif
%files
@@ -219,6 +217,9 @@ popd
%changelog
+* Fri Aug 30 2019 Elliott Sales de Andrade <quantum.analyst(a)gmail.com> - 7.20190819-1
+- update to 7.20190819
+
* Fri Aug 09 2019 Jens Petersen <petersen(a)redhat.com> - 7.20190730-1
- update to 7.20190730
diff --git a/sources b/sources
index 2976049..6f0c2f7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (git-annex-7.20190730.tar.gz) = 15dde60d1b4d04e4d8e324a281d5865a1465385607cb525f09ac35cd4edcfe2796d920e964a8229b3dd480e8962b95eb6fc78ef015bb9716d5528b1707e5b38a
+SHA512 (git-annex-7.20190819.tar.gz) = 46747327707a3d2256a2310340f36874a6bcc7ddd960bc277b5e81bd4e9b9e777a4bb24b11d6d2008d25bc4df9f5da236e880f9a9219831db05067f6629deff0
3 years, 9 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=0172e0c499ce3....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 0172e0c499ce31d4c194a16abb01634d4cf13f1c
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Aug 30 09:20:16 2019 +0200
Update to 6.18.02
Add workarounds for issues caused by the RHEL 7.7 update, that left the
aarch64 architecture at RHEL 7.6.
diff --git a/root.spec b/root.spec
index 4330068..f477501 100644
--- a/root.spec
+++ b/root.spec
@@ -16,7 +16,7 @@
%global __pythondef %{__python2}
%endif
-%if %{?fedora}%{!?fedora:0} >= 31
+%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8
# Don't build python2-root for Fedora >= 31
%global buildpy2 0
%else
@@ -49,9 +49,9 @@
%global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$
Name: root
-Version: 6.18.00
+Version: 6.18.02
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 5%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -282,13 +282,8 @@ This package contains icons used by the ROOT GUI.
%package fonts
Summary: ROOT font collection
BuildArch: noarch
-%if %{?rhel}%{!?rhel:0}
-# STIX version 0.9 and Driod Sans Fallback
-License: OFL and ASL 2.0
-%else
# STIX version 0.9 only
License: OFL
-%endif
Requires: %{name}-core = %{version}-%{release}
%description fonts
@@ -297,7 +292,15 @@ In particular it contains STIX version 0.9 that is used by TMathText.
%package doc
Summary: Documentation for the ROOT system
+%if %{?rhel}%{!?rhel:0} != 7
+# RHEL 7 is now RHEL 7.7, but aarch64 is stuck on RHEL 7.6.
+# Differences in graphics libraries (SVG support in doxygen)
+# between the releases result in that the content of the
+# documentation package differs between architectures in such a
+# way that the build is rejected as invalid if the documentation
+# package is noarch. Don't declare the package noarch in EPEL 7.
BuildArch: noarch
+%endif
License: LGPLv2+ and GPLv2+ and BSD
Requires: mathjax
@@ -452,8 +455,8 @@ The Jupyter kernel for the ROOT notebook.
%package -n python2-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python2-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python2-jsmva}
Requires: %{name}-tmva = %{version}-%{release}
%description -n python2-jsmva
@@ -463,6 +466,12 @@ TMVA interface used by JupyROOT.
%package -n python%{python3_pkgversion}-%{name}
Summary: Python extension for ROOT
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-%{name} = %{version}-%{release}
+%endif
+%endif
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -476,6 +485,12 @@ provide a Python interface to ROOT, and a ROOT interface to Python.
%package -n python%{python3_pkgversion}-jupyroot
Summary: ROOT Jupyter kernel
%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-jupyroot = %{version}-%{release}
+%endif
+%endif
Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release}
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -495,8 +510,14 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_pkgversion}-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-jsmva = %{version}-%{release}
+%endif
+%endif
Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
@@ -528,8 +549,8 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_other_pkgversion}-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python%{python3_other_pkgversion}-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_other_pkgversion}-jsmva}
Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_other_pkgversion}-jsmva
@@ -3646,6 +3667,11 @@ fi
%endif
%changelog
+* Mon Aug 26 2019 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.18.02-1
+- Update to 6.18.02
+- Add workarounds for issues caused by the RHEL 7.7 update, that left the
+ aarch64 architecture at RHEL 7.6.
+
* Tue Aug 20 2019 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 6.18.00-5
- Rebuilt for GSL 2.6.
diff --git a/sources b/sources
index e1e5742..8289c06 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.18.00.tar.xz) = d7e34c04f22ed2f3a6caf94263126c296df7fda176fc644a166ac47f93663134bd3b34c5d1dfb99cf84071eb93a08602b1cb0a8526610993f099fd3161c897c7
+SHA512 (root-6.18.02.tar.xz) = fe9ab15282f112b8a322e2b25fd15f7703055bcdc2de9f0a3a4457b1e727a172d122d4613faf84ccc27fe4149dc4489f62ee4dac3189c44ad3376e1c81186c28
SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
commit d01240d460d483d3cc139c1727952b79054f4276
Author: Susi Lehtola <jussilehtola(a)fedoraproject.org>
Date: Tue Aug 20 22:13:22 2019 +0200
Rebuilt for GSL 2.6.
diff --git a/root.spec b/root.spec
index 135dd53..4330068 100644
--- a/root.spec
+++ b/root.spec
@@ -51,7 +51,7 @@
Name: root
Version: 6.18.00
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3646,6 +3646,9 @@ fi
%endif
%changelog
+* Tue Aug 20 2019 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 6.18.00-5
+- Rebuilt for GSL 2.6.
+
* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 6.18.00-4
- Rebuilt for Python 3.8
commit ac7ef9a2e3672f8414e22df3c29d6113c1965c18
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 19 11:05:09 2019 +0200
Rebuilt for Python 3.8
diff --git a/root.spec b/root.spec
index 6e2e920..135dd53 100644
--- a/root.spec
+++ b/root.spec
@@ -51,7 +51,7 @@
Name: root
Version: 6.18.00
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3646,6 +3646,9 @@ fi
%endif
%changelog
+* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 6.18.00-4
+- Rebuilt for Python 3.8
+
* Wed Jul 31 2019 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.18.00-3
- Root 6.18 requires pcm files to be in the same directory as libraries
- Add libPyROOT.rootmap and libPyROOT_rdict.pcm as slaves to libPyROOT.so
3 years, 9 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=0172e0c499ce3....
Change:
+%ifarch aarch64
Thanks.
Full change:
============
commit 0172e0c499ce31d4c194a16abb01634d4cf13f1c
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Aug 30 09:20:16 2019 +0200
Update to 6.18.02
Add workarounds for issues caused by the RHEL 7.7 update, that left the
aarch64 architecture at RHEL 7.6.
diff --git a/root.spec b/root.spec
index 4330068..f477501 100644
--- a/root.spec
+++ b/root.spec
@@ -16,7 +16,7 @@
%global __pythondef %{__python2}
%endif
-%if %{?fedora}%{!?fedora:0} >= 31
+%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8
# Don't build python2-root for Fedora >= 31
%global buildpy2 0
%else
@@ -49,9 +49,9 @@
%global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$
Name: root
-Version: 6.18.00
+Version: 6.18.02
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 5%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -282,13 +282,8 @@ This package contains icons used by the ROOT GUI.
%package fonts
Summary: ROOT font collection
BuildArch: noarch
-%if %{?rhel}%{!?rhel:0}
-# STIX version 0.9 and Driod Sans Fallback
-License: OFL and ASL 2.0
-%else
# STIX version 0.9 only
License: OFL
-%endif
Requires: %{name}-core = %{version}-%{release}
%description fonts
@@ -297,7 +292,15 @@ In particular it contains STIX version 0.9 that is used by TMathText.
%package doc
Summary: Documentation for the ROOT system
+%if %{?rhel}%{!?rhel:0} != 7
+# RHEL 7 is now RHEL 7.7, but aarch64 is stuck on RHEL 7.6.
+# Differences in graphics libraries (SVG support in doxygen)
+# between the releases result in that the content of the
+# documentation package differs between architectures in such a
+# way that the build is rejected as invalid if the documentation
+# package is noarch. Don't declare the package noarch in EPEL 7.
BuildArch: noarch
+%endif
License: LGPLv2+ and GPLv2+ and BSD
Requires: mathjax
@@ -452,8 +455,8 @@ The Jupyter kernel for the ROOT notebook.
%package -n python2-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python2-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python2-jsmva}
Requires: %{name}-tmva = %{version}-%{release}
%description -n python2-jsmva
@@ -463,6 +466,12 @@ TMVA interface used by JupyROOT.
%package -n python%{python3_pkgversion}-%{name}
Summary: Python extension for ROOT
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-%{name} = %{version}-%{release}
+%endif
+%endif
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -476,6 +485,12 @@ provide a Python interface to ROOT, and a ROOT interface to Python.
%package -n python%{python3_pkgversion}-jupyroot
Summary: ROOT Jupyter kernel
%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-jupyroot = %{version}-%{release}
+%endif
+%endif
Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release}
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -495,8 +510,14 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_pkgversion}-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva}
+%if %{?rhel}%{!?rhel:0} == 7
+%ifarch aarch64
+# Workaround broken RHEL 7 aarch64
+Provides: python3-jsmva = %{version}-%{release}
+%endif
+%endif
Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
@@ -528,8 +549,8 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_other_pkgversion}-jsmva
Summary: TMVA interface used by JupyROOT
-%{?python_provide:%python_provide python%{python3_other_pkgversion}-jsmva}
BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_other_pkgversion}-jsmva}
Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_other_pkgversion}-jsmva
@@ -3646,6 +3667,11 @@ fi
%endif
%changelog
+* Mon Aug 26 2019 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.18.02-1
+- Update to 6.18.02
+- Add workarounds for issues caused by the RHEL 7.7 update, that left the
+ aarch64 architecture at RHEL 7.6.
+
* Tue Aug 20 2019 Susi Lehtola <jussilehtola(a)fedoraproject.org> - 6.18.00-5
- Rebuilt for GSL 2.6.
diff --git a/sources b/sources
index e1e5742..8289c06 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.18.00.tar.xz) = d7e34c04f22ed2f3a6caf94263126c296df7fda176fc644a166ac47f93663134bd3b34c5d1dfb99cf84071eb93a08602b1cb0a8526610993f099fd3161c897c7
+SHA512 (root-6.18.02.tar.xz) = fe9ab15282f112b8a322e2b25fd15f7703055bcdc2de9f0a3a4457b1e727a172d122d4613faf84ccc27fe4149dc4489f62ee4dac3189c44ad3376e1c81186c28
SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
3 years, 9 months