Architecture specific change in rpms/gnome-python2-desktop.git
by githook-noreply@fedoraproject.org
The package rpms/gnome-python2-desktop.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/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/...
https://src.fedoraproject.org/cgit/rpms/gnome-python2-desktop.git/commit/....
Change:
+%ifnarch s390 s390x ppc ppc64
+%ifnarch s390 s390x
+%ifnarch s390 s390x ppc ppc64
-%ifnarch s390 s390x
+%ifnarch s390 s390x
-%ifnarch s390 s390x
-%ifnarch s390 s390x
+%ifnarch s390 s390x
+%ifnarch s390 s390x
Thanks.
Full change:
============
commit d3eab572834c644a96e8569bdd826b936dc6474e
Author: Mohan Boddu <mboddu(a)bhujji.com>
Date: Tue Aug 27 07:13:29 2019 -0400
Unretirement for https://pagure.io/releng/issue/8671
Revert "Depends on dead FTBFS Python2 upstream."
This reverts commit 678d124906a58fd1f3ba5c3781a990f0cb982e4c.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7fd6f6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+gnome-python-desktop-2.31.1.tar.bz2
+/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
new file mode 100644
index 0000000..35c7be7
--- /dev/null
+++ b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
@@ -0,0 +1,503 @@
+From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
+From: Gustavo Carneiro <gjc(a)inescporto.pt>
+Date: Thu, 28 Jan 2010 16:10:16 +0000
+Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
+
+---
+ totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
+ totem/plparser.override | 102 +----------------
+ 2 files changed, 276 insertions(+), 122 deletions(-)
+
+diff --git a/totem/plparser.defs b/totem/plparser.defs
+index 184578e..9f25ff1 100644
+--- a/totem/plparser.defs
++++ b/totem/plparser.defs
+@@ -1,8 +1,24 @@
+ ;; -*- scheme -*-
+ ; object definitions ...
++
++(define-object Parser
++ (in-module "totem.plparser")
++ (parent "GObject")
++ (c-name "TotemPlParser")
++ (gtype-id "TOTEM_TYPE_PL_PARSER")
++)
++
++(define-object Playlist
++ (in-module "totem.playlist")
++ (parent "GObject")
++ (c-name "TotemPlPlaylist")
++ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
++)
++
+ ;; Enumerations and flags ...
+
+-(define-enum ParserResult
++
++(define-enum PlParserResult
+ (in-module "Totem")
+ (c-name "TotemPlParserResult")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
+@@ -10,10 +26,12 @@
+ '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
+ '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
+ '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
++ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
++ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
+ )
+ )
+
+-(define-enum ParserType
++(define-enum PlParserType
+ (in-module "Totem")
+ (c-name "TotemPlParserType")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
+@@ -21,47 +39,60 @@
+ '("pls" "TOTEM_PL_PARSER_PLS")
+ '("m3u" "TOTEM_PL_PARSER_M3U")
+ '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
++ '("xspf" "TOTEM_PL_PARSER_XSPF")
++ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
+ )
+ )
+
+-(define-enum ParserError
++(define-enum PlParserError
+ (in-module "Totem")
+ (c-name "TotemPlParserError")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
+ (values
+- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
+- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
++ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
++ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
+ )
+ )
+
+
+ ;; From totem-pl-parser.h
+
+-(define-object Parser
+- (in-module "PlaylistParser")
+- (parent "GObject")
+- (c-name "TotemPlParser")
+- (gtype-id "TOTEM_TYPE_PL_PARSER")
+-)
+-
+-(define-function totem_pl_parser_error_quark
++(define-function error_quark
+ (c-name "totem_pl_parser_error_quark")
+ (return-type "GQuark")
+ )
+
+-(define-function totem_pl_parser_get_type
++(define-function get_type
+ (c-name "totem_pl_parser_get_type")
+ (return-type "GType")
+ )
+
+-(define-method write
++(define-function parse_duration
++ (c-name "totem_pl_parser_parse_duration")
++ (return-type "gint64")
++ (parameters
++ '("const-char*" "duration")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function parse_date
++ (c-name "totem_pl_parser_parse_date")
++ (return-type "guint64")
++ (parameters
++ '("const-char*" "date_str")
++ '("gboolean" "debug")
++ )
++)
++
++(define-method save
+ (of-object "TotemPlParser")
+- (c-name "totem_pl_parser_write")
++ (c-name "totem_pl_parser_save")
+ (return-type "gboolean")
+ (parameters
+- '("GtkTreeModel*" "model")
+- '("TotemPlParserIterFunc" "func")
+- '("const-char*" "output")
++ '("TotemPlPlaylist*" "playlist")
++ '("GFile*" "dest")
++ '("const-gchar*" "title")
+ '("TotemPlParserType" "type")
+ '("GError**" "error")
+ )
+@@ -76,20 +107,243 @@
+ )
+ )
+
++(define-method add_ignored_mimetype
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_add_ignored_mimetype")
++ (return-type "none")
++ (parameters
++ '("const-char*" "mimetype")
++ )
++)
++
+ (define-method parse
+ (of-object "TotemPlParser")
+ (c-name "totem_pl_parser_parse")
+ (return-type "TotemPlParserResult")
+ (parameters
+- '("const-char*" "url")
++ '("const-char*" "uri")
+ '("gboolean" "fallback")
+ )
+ )
+
+-(define-function totem_pl_parser_new
++(define-method parse_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-method parse_finish
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_finish")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("GAsyncResult*" "async_result")
++ '("GError**" "error")
++ )
++)
++
++(define-method parse_with_base
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ )
++)
++
++(define-method parse_with_base_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-function new
+ (c-name "totem_pl_parser_new")
+ (is-constructor-of "TotemPlParser")
+ (return-type "TotemPlParser*")
+ )
+
++(define-function metadata_get_type
++ (c-name "totem_pl_parser_metadata_get_type")
++ (return-type "GType")
++)
++
++
++
++;; From totem-pl-parser-mini.h
++
++(define-function can_parse_from_data
++ (c-name "totem_pl_parser_can_parse_from_data")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "data")
++ '("gsize" "len")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function can_parse_from_filename
++ (c-name "totem_pl_parser_can_parse_from_filename")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "filename")
++ '("gboolean" "debug")
++ )
++)
++
++
++
++;; From totem-pl-playlist.h
++
++(define-function totem_pl_playlist_get_type
++ (c-name "totem_pl_playlist_get_type")
++ (return-type "GType")
++)
++
++(define-function totem_pl_playlist_new
++ (c-name "totem_pl_playlist_new")
++ (is-constructor-of "TotemPlPlaylist")
++ (return-type "TotemPlPlaylist*")
++)
++
++(define-method size
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_size")
++ (return-type "guint")
++)
++
++(define-method prepend
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_prepend")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method append
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_append")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method insert
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_insert")
++ (return-type "none")
++ (parameters
++ '("gint" "position")
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_first
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_first")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_next
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_next")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_prev
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_prev")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method get_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method get_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method get
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
++(define-method set_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method set_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method set
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
+
+diff --git a/totem/plparser.override b/totem/plparser.override
+index 3cbe2fb..48e1853 100644
+--- a/totem/plparser.override
++++ b/totem/plparser.override
+@@ -5,7 +5,7 @@ headers
+ #include "pygobject.h"
+ #include "totem-pl-parser.h"
+ #include "totem-pl-parser-builtins.h"
+-#include <gtk/gtk.h>
++#include "totem-pl-parser-mini.h"
+ #include <glib.h>
+
+ #include "config.h"
+@@ -14,108 +14,8 @@ headers
+ modulename totem.plparser
+ %%
+ import gobject.GObject as PyGObject_Type
+-import gtk.TreeModel as PyGtkTreeModel_Type
+ %%
+ ignore-glob
+ *_get_type
+ *_error_quark
+-%%
+-override totem_pl_parser_write kwargs
+-
+-typedef struct {
+- PyObject *func;
+- PyObject *data;
+- gboolean has_error;
+-} PyPlParserIterFuncData;
+-
+-static void
+-_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
+- gboolean *custom_title, gpointer user_data)
+-{
+- PyObject *args = NULL;
+- PyObject *result = NULL;
+- char *tmp_uri = NULL, *tmp_title = NULL;
+- PyPlParserIterFuncData *data = user_data;
+- PyObject *py_custom_title = NULL;
+-
+- if (data->has_error)
+- return;
+-
+- if (data->data)
+- args = Py_BuildValue ("(NNO)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
+- data->data);
+- else
+- args = Py_BuildValue ("(NN)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
+- result = PyEval_CallObject (data->func, args);
+- Py_DECREF (args);
+-
+- if (result == NULL) {
+- data->has_error = TRUE;
+- return;
+- }
+- /* ?! */
+- /* PyObject_Print (result, stdout, 0); */
+-
+- if (PyString_Check (result)) {
+- tmp_uri = PyString_AsString (result);
+- if (tmp_uri == NULL) {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one"
+- " string or a tuple of two strings.");
+- data->has_error = TRUE;
+- }
+- } else if (!PyTuple_Check (result) ||
+- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
+- {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one "
+- "string or a tuple of two strings,"
+- " or two strings and a boolean.");
+- data->has_error = TRUE;
+- }
+-
+- /* g_strdup handles NULL case for us */
+- *uri = g_strdup (tmp_uri);
+- *title = g_strdup (tmp_title);
+- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
+-
+- Py_DECREF (result);
+-}
+
+-static PyObject *
+-_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
+- PyGObject *model;
+- char *output;
+- TotemPlParserType type;
+- GError *error = NULL;
+- PyPlParserIterFuncData data = {0, };
+-
+- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
+- kwlist, &PyGtkTreeModel_Type, &model,
+- &data.func, &output, &type, &data.data))
+- return NULL;
+- /* verify arguments' integrity */
+- if (!PyCallable_Check (data.func)) {
+- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
+- return NULL;
+- }
+- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
+- GTK_TREE_MODEL(model->obj),
+- _pl_parser_iter_func,
+- output,type, &data, &error))
+- {
+- /* return an GError */
+- pyg_error_check(&error);
+- return NULL;
+- }
+- if (data.has_error)
+- return NULL;
+- Py_INCREF(Py_None);
+- return Py_None;
+-}
+--
+1.6.6.1
+
diff --git a/dead.package b/dead.package
deleted file mode 100644
index 1a2859e..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-Depends on dead FTBFS Python2 upstream.
diff --git a/evince.patch b/evince.patch
new file mode 100644
index 0000000..c7ba5c8
--- /dev/null
+++ b/evince.patch
@@ -0,0 +1,12 @@
+diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
+--- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
++++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
+@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
+ dnl should we build the evince module
+ AC_ARG_BINDING([evince],[YES])
+ if $build_evince; then
+- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
++ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
+ build_evince=true,
+ build_evince=false)
+ if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
new file mode 100644
index 0000000..0be84c9
--- /dev/null
+++ b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -0,0 +1,30 @@
+diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
+--- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
++++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
+@@ -100,7 +100,7 @@
+ )
+ )
+
+-(define-enum WindowState
++(define-flags WindowState
+ (in-module "Wnck")
+ (c-name "WnckWindowState")
+ (gtype-id "WNCK_TYPE_WINDOW_STATE")
+@@ -121,7 +121,7 @@
+ )
+ )
+
+-(define-enum WindowActions
++(define-flags WindowActions
+ (in-module "Wnck")
+ (c-name "WnckWindowActions")
+ (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
+@@ -184,7 +184,7 @@
+ )
+ )
+
+-(define-enum WindowMoveResizeMask
++(define-flags WindowMoveResizeMask
+ (in-module "Wnck")
+ (c-name "WnckWindowMoveResizeMask")
+ (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
new file mode 100644
index 0000000..5054dd2
--- /dev/null
+++ b/gnome-python-desktop-2.32.0-metacity-build.patch
@@ -0,0 +1,42 @@
+From: Daniel Drake <dsd(a)laptop.org>
+
+Fix build against metacity-2.34.2. The port to GSettings
+removed these constants from the codebase.
+
+Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
+===================================================================
+--- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
++++ gnome-python-desktop-2.32.0/metacity/metacity.defs
+@@ -120,32 +120,6 @@
+ )
+ )
+
+-(define-enum FocusMode
+- (in-module "Meta")
+- (c-name "MetaFocusMode")
+-; (gtype-id "META_TYPE_FOCUS_MODE")
+- (values
+- '("click" "META_FOCUS_MODE_CLICK")
+- '("sloppy" "META_FOCUS_MODE_SLOPPY")
+- '("mouse" "META_FOCUS_MODE_MOUSE")
+- )
+-)
+-
+-(define-enum ActionTitlebar
+- (in-module "Meta")
+- (c-name "MetaActionTitlebar")
+-; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+- (values
+- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_TITLEBAR_NONE")
+- '("lower" "META_ACTION_TITLEBAR_LOWER")
+- '("menu" "META_ACTION_TITLEBAR_MENU")
+- '("last" "META_ACTION_TITLEBAR_LAST")
+- )
+-)
+-
+ (define-enum FrameType
+ (in-module "Meta")
+ (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
new file mode 100644
index 0000000..e1375b7
--- /dev/null
+++ b/gnome-python2-desktop.spec
@@ -0,0 +1,547 @@
+# Last updated for version 2.29.1
+# The order here corresponds to that in configure.ac,
+# for easier comparison. Please do not alphabetize.
+%define pygtk_version 2.10.3
+%define glib_version 2.6.0
+%define gtk_version 2.4.0
+%define gnome_python_version 2.10.0
+%define gtksourceview_version 1:1.8.5-2
+%define libwnck_version 2.19.3
+%define libgtop_version 2.13.0
+%define gconf2_version 2.10.0
+%define librsvg2_version 2.13.93
+%define gnome_keyring_version 0.5.0
+%define gnome_desktop_version 2.10.0
+%define totem_version 1.4.0
+%define eds_version 1.4.0
+
+### Abstract ###
+
+Name: gnome-python2-desktop
+Version: 2.32.0
+Release: 37%{?dist}
+License: GPLv2+
+Summary: The sources for additional PyGNOME Python extension modules
+#VCS: git://git.gnome.org/gnome-python-desktop
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=616306
+Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=672016
+Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
+
+### Dependencies ###
+
+Requires: gnome-python2-canvas >= %{gnome_python_version}
+
+### Build Dependencies ###
+
+BuildRequires: glib2-devel >= %{glib_version}
+BuildRequires: GConf2-devel >= %{gconf2_version}
+BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
+BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
+BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
+BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
+BuildRequires: gnome-python2-devel >= %{gnome_python_version}
+BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
+BuildRequires: gtk2-devel >= %{gtk_version}
+BuildRequires: libgnomeui-devel
+BuildRequires: librsvg2-devel >= %{librsvg2_version}
+BuildRequires: libwnck-devel >= %{libwnck_version}
+BuildRequires: pygtk2-devel >= %{pygtk_version}
+BuildRequires: python2-devel
+BuildRequires: autoconf, automake, libtool
+Provides: gnome-python2-gnomedesktop = 2.32.0-33
+Obsoletes: gnome-python2-gnomedesktop < 2.32.0-33
+Provides: gnome-python2-libgtop2 = 2.32.0-33
+Obsoletes: gnome-python2-libgtop2 < 2.32.0-33
+Provides: gnome-python2-totem = 2.32.0-33
+Obsoletes: gnome-python2-totem < 2.32.0-33
+
+%description
+The gnome-python-desktop package contains the source packages for additional
+Python bindings for GNOME. It should be used together with gnome-python.
+
+%package -n gnome-python2-libwnck
+Summary: Python bindings for interacting with libwnck
+License: LGPLv2
+Requires: libwnck >= %{libwnck_version}
+
+%description -n gnome-python2-libwnck
+This module contains a wrapper that allows the use of libwnck via
+Python.
+
+%package -n gnome-python2-rsvg
+Summary: Python bindings for interacting with librsvg
+License: LGPLv2
+Requires: librsvg2 >= %{librsvg2_version}
+
+%description -n gnome-python2-rsvg
+This module contains a wrapper that allows the use of librsvg
+via Python.
+
+%package -n gnome-python2-gnomekeyring
+Summary: Python bindings for interacting with gnome-keyring
+License: LGPLv2
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-keyring >= %{gnome_keyring_version}
+
+%description -n gnome-python2-gnomekeyring
+This module contains a wrapper that allows the use of gnome-keyring
+via Python.
+
+%prep
+%setup -q -n gnome-python-desktop-%{version}
+%patch0 -p1 -b .flags
+%patch1 -p1 -b .metacity-build
+
+%build
+# evince, brasero and mediaprofiles are disabled because these things have
+# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
+# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
+# stuff. - AdamW 2010/07
+# gnomeprint and gtksourceview are disabled due to removal of C libraries
+# from F23. - Yaakov 2015/07
+%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
+make
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+
+find $RPM_BUILD_ROOT -name '*.la' -delete
+
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
+
+
+%files
+%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
+%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
+%{_datadir}/pygtk
+%exclude %{python2_sitearch}/gtk-2.0/gtop.so
+%exclude %{python2_sitearch}/gtk-2.0/totem
+%exclude %{python2_sitearch}/gtk-2.0/gnomedesktop
+
+%files -n gnome-python2-libwnck
+%{python2_sitearch}/gtk-2.0/wnck.so
+
+%files -n gnome-python2-rsvg
+%{python2_sitearch}/gtk-2.0/rsvg.so
+
+%files -n gnome-python2-gnomekeyring
+%{python2_sitearch}/gtk-2.0/gnomekeyring.so
+
+%changelog
+* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-37
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Sun Jun 30 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-36
+- Drop unnessary BuildReq of /usr/bin/python
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-35
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Thu Sep 13 2018 Gwyn Ciesla <limburgher(a)gmail.com> - 2.32.0-34
+- Drop gnomedesktop, libgtop2 and totem per BZ 1627331.
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
+- Update Python 2 dependency declarations to new packaging standards
+ (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
+
+* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
+- Rebuilt for libtotem-plparser soname bump
+
+* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
+- Rebuilt for libtotem-plparser soname bump
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
+- Rebuilt for libgtop2 soname bump
+
+* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
+- Remove obsolete dependencies and cleanup build
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
+- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
+- Drop broken gnome-python2-metacity subpackage
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
+- Rebuilt for libgtop2 soname bump
+
+* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
+- Rebuilt for totem-pl-parser soname bump
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
+- Drop dead gnome-panel dependency
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
+- Obsolete the dropped gnome-python2-evolution subpackage
+
+* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
+- Drop evolution bindings; they don't build against the latest EDS
+
+* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
+- Fix build against metacity-2.34.2
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
+- Rebuilt for new libedataserver
+
+* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
+- Rebuilt for new libedataserver
+
+* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
+- Rebuilt for new libedataserver
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
+- Update to 2.32.0 to match f14
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
+- Disable applets
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
+- gnome-media-profiles support also broken due to gtk3 port, so
+ disable it
+- drop evince and brasero modules for now as they won't build due
+ to evince and brasero being ported to gtk3
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
+- Update to 2.31.1
+
+* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
+- Rebuild against new brasero
+
+* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
+- rebuilt
+
+* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
+- Rebuild against latest libedataserver.
+
+* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
+- Rebuild against latest evolution
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
+- remember to commit patch to cvs
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
+- fix wnck gtypes to be flags, instead of enum
+
+* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
+- Drop bug-buddy package, we use abrt
+
+* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
+- Update to 2.30.0
+
+* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
+- Update to 2.29.92
+
+* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
+- add missing patch
+
+* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
+- Add patch to fix build
+
+* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
+- rebuilt
+
+* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
+- Rebuild against new totem-pl-parser.
+
+* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
+- Rebuild against new gnome-desktop.
+
+* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
+- Fix rpmlint warnings.
+
+* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
+- Provide a complete URI for the Source field.
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
+- Update to 2.29.1
+- Remove patch for GNOME bug #603231 (fixed upstream).
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
+- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
+
+* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
+- Rebuild for new evince
+
+* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
+- Update to 2.28.0
+
+* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
+- Update to 2.27.3
+
+* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
+- Disable nautilus-cd-burner bindings. Package is dead.
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
+- Update to 2.27.2
+
+* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
+- Change gnome-python2-evince to depend on evince-libs
+
+* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
+- Update to 2.27.1
+- New subpackage: gnome-python2-brasero
+
+* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
+- Removed cd-burner subpackage Require on nautilus-cd-burn
+
+* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
+- Rebuild against newer libnautilus-burn.
+
+* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
+- Update to 2.26.0
+
+* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
+- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
+- Update to 2.25.91
+
+* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
+- New subpackage: gnome-python2-evince
+
+* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
+- Update to 2.25.90
+
+* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
+- Update to 2.25.1
+- Remove patch for GNOME bug #564525 (fixed upstream).
+
+* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
+- make build
+
+* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
+- Update to 2.24.1
+- Add patch for GNOME bug #564525 (build failure).
+
+* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
+- Rebuild for new libgnome-desktop
+
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
+- Rebuild for Python 2.6
+
+* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
+- Update subpackage requirements, since gnome-python2 no longer drags in
+ the world.
+
+* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
+- Rebuild
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
+- Change gnome-python2 requirement to gnome-python2-canvas.
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
+- Update to 2.24.0
+
+* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
+- Update to 2.23.1
+- Update version requirements.
+
+* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
+- Update to 2.23.0
+
+* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
+- Don't drag in devel packages when installing gnome-python2-evolution
+ (RH bug #450932).
+
+* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
+- Rebuild
+
+* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
+- Rebuild against newer libedataserver and libtotem-plparser.
+
+* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
+- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
+
+* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
+- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
+
+* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
+- Update to 2.22.0
+- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
+
+* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
+- Update to 2.21.3
+
+* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
+- Rebuild with GCC 4.3
+
+* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
+- Update to 2.21.2
+
+* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
+- Update to 2.21.1
+- New subpackage: gnome-python2-evolution
+- Change totem-devel BR to totem-pl-parser-devel.
+
+* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
+- Rebuild against newer libtotem-plparser.so.
+
+* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
+- Update to 2.20.0
+
+* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
+- Rebuild for selinux ppc32 issue.
+
+* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
+- Rebuild
+
+* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
+- Update license fields
+
+* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
+- Update to 2.19.2
+
+* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
+- Rebuild against gtksourceview
+
+* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
+- Update to 2.19.1
+- Update versions of required packages.
+- Remove patch for GNOME bug #428697 (fixed upstream).
+
+* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
+- Rebuild again
+
+* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
+- Rebuild against new libwnck
+
+* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
+- Require metacity-devel, not metacity, for building.
+- Add patch for GNOME bug #428697 (adapt to API change).
+
+* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
+- Update to 2.18.0
+
+* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
+- Update to 2.17.93
+
+* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
+- Update to 2.17.92
+- Remove patch for GNOME bug #401760 (fixed upstream).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
+- Add patch for GNOME bug #401760 (plparser fails to build).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
+- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
+
+* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
+- Update to 2.17.3
+
+* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
+- Update to 2.17.2
+- New gnome-python2-bugbuddy subpackage.
+- Update version requirements to match configure.ac.
+- Use python_sitearch macro for installing libraries.
+
+* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
+- rebuild for python 2.5
+- BR gnome-python2-devel
+
+* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
+- Update to 2.17.1
+
+* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
+- Update to 2.16.0
+
+* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
+- Remove unecessary dependencies on gnome-python2-desktop from
+ -libwnck and -rsvg subpackages (OLPC)
+
+* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
+- Update to 2.15.90
+
+* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
+- Rebuild against dbus
+
+* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
+- Update to 2.15.4
+
+* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
+- rebuild
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
+- Create gnomekeyring subpackage
+- block out the nautilus-cd stuff
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
+- Bump for new nautilus-cd-burner
+
+* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
+- Update to 2.15.3
+
+* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
+- Update to 2.15.2
+- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
+
+* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
+- Add pygtk2 BR
+
+* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
+- Update to 2.14.0
+
+* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
+- Buildrequires: python-devel
+
+* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
+- bump again for double-long bug on ppc(64)
+
+* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
+- Initial build.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..2304e97
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit 678d124906a58fd1f3ba5c3781a990f0cb982e4c
Author: Gwyn Ciesla <gwync(a)protonmail.com>
Date: Mon Aug 12 10:31:02 2019 -0500
Depends on dead FTBFS Python2 upstream.
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d7fd6f6..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gnome-python-desktop-2.31.1.tar.bz2
-/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
deleted file mode 100644
index 35c7be7..0000000
--- a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
+++ /dev/null
@@ -1,503 +0,0 @@
-From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
-From: Gustavo Carneiro <gjc(a)inescporto.pt>
-Date: Thu, 28 Jan 2010 16:10:16 +0000
-Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
-
----
- totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
- totem/plparser.override | 102 +----------------
- 2 files changed, 276 insertions(+), 122 deletions(-)
-
-diff --git a/totem/plparser.defs b/totem/plparser.defs
-index 184578e..9f25ff1 100644
---- a/totem/plparser.defs
-+++ b/totem/plparser.defs
-@@ -1,8 +1,24 @@
- ;; -*- scheme -*-
- ; object definitions ...
-+
-+(define-object Parser
-+ (in-module "totem.plparser")
-+ (parent "GObject")
-+ (c-name "TotemPlParser")
-+ (gtype-id "TOTEM_TYPE_PL_PARSER")
-+)
-+
-+(define-object Playlist
-+ (in-module "totem.playlist")
-+ (parent "GObject")
-+ (c-name "TotemPlPlaylist")
-+ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
-+)
-+
- ;; Enumerations and flags ...
-
--(define-enum ParserResult
-+
-+(define-enum PlParserResult
- (in-module "Totem")
- (c-name "TotemPlParserResult")
- (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
-@@ -10,10 +26,12 @@
- '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
- '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
- '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
-+ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
-+ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
- )
- )
-
--(define-enum ParserType
-+(define-enum PlParserType
- (in-module "Totem")
- (c-name "TotemPlParserType")
- (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
-@@ -21,47 +39,60 @@
- '("pls" "TOTEM_PL_PARSER_PLS")
- '("m3u" "TOTEM_PL_PARSER_M3U")
- '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
-+ '("xspf" "TOTEM_PL_PARSER_XSPF")
-+ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
- )
- )
-
--(define-enum ParserError
-+(define-enum PlParserError
- (in-module "Totem")
- (c-name "TotemPlParserError")
- (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
- (values
-- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
-- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
-+ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
-+ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
- )
- )
-
-
- ;; From totem-pl-parser.h
-
--(define-object Parser
-- (in-module "PlaylistParser")
-- (parent "GObject")
-- (c-name "TotemPlParser")
-- (gtype-id "TOTEM_TYPE_PL_PARSER")
--)
--
--(define-function totem_pl_parser_error_quark
-+(define-function error_quark
- (c-name "totem_pl_parser_error_quark")
- (return-type "GQuark")
- )
-
--(define-function totem_pl_parser_get_type
-+(define-function get_type
- (c-name "totem_pl_parser_get_type")
- (return-type "GType")
- )
-
--(define-method write
-+(define-function parse_duration
-+ (c-name "totem_pl_parser_parse_duration")
-+ (return-type "gint64")
-+ (parameters
-+ '("const-char*" "duration")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function parse_date
-+ (c-name "totem_pl_parser_parse_date")
-+ (return-type "guint64")
-+ (parameters
-+ '("const-char*" "date_str")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-method save
- (of-object "TotemPlParser")
-- (c-name "totem_pl_parser_write")
-+ (c-name "totem_pl_parser_save")
- (return-type "gboolean")
- (parameters
-- '("GtkTreeModel*" "model")
-- '("TotemPlParserIterFunc" "func")
-- '("const-char*" "output")
-+ '("TotemPlPlaylist*" "playlist")
-+ '("GFile*" "dest")
-+ '("const-gchar*" "title")
- '("TotemPlParserType" "type")
- '("GError**" "error")
- )
-@@ -76,20 +107,243 @@
- )
- )
-
-+(define-method add_ignored_mimetype
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_add_ignored_mimetype")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "mimetype")
-+ )
-+)
-+
- (define-method parse
- (of-object "TotemPlParser")
- (c-name "totem_pl_parser_parse")
- (return-type "TotemPlParserResult")
- (parameters
-- '("const-char*" "url")
-+ '("const-char*" "uri")
- '("gboolean" "fallback")
- )
- )
-
--(define-function totem_pl_parser_new
-+(define-method parse_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-method parse_finish
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_finish")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("GAsyncResult*" "async_result")
-+ '("GError**" "error")
-+ )
-+)
-+
-+(define-method parse_with_base
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ )
-+)
-+
-+(define-method parse_with_base_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-function new
- (c-name "totem_pl_parser_new")
- (is-constructor-of "TotemPlParser")
- (return-type "TotemPlParser*")
- )
-
-+(define-function metadata_get_type
-+ (c-name "totem_pl_parser_metadata_get_type")
-+ (return-type "GType")
-+)
-+
-+
-+
-+;; From totem-pl-parser-mini.h
-+
-+(define-function can_parse_from_data
-+ (c-name "totem_pl_parser_can_parse_from_data")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "data")
-+ '("gsize" "len")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function can_parse_from_filename
-+ (c-name "totem_pl_parser_can_parse_from_filename")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "filename")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+
-+
-+;; From totem-pl-playlist.h
-+
-+(define-function totem_pl_playlist_get_type
-+ (c-name "totem_pl_playlist_get_type")
-+ (return-type "GType")
-+)
-+
-+(define-function totem_pl_playlist_new
-+ (c-name "totem_pl_playlist_new")
-+ (is-constructor-of "TotemPlPlaylist")
-+ (return-type "TotemPlPlaylist*")
-+)
-+
-+(define-method size
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_size")
-+ (return-type "guint")
-+)
-+
-+(define-method prepend
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_prepend")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method append
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_append")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method insert
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_insert")
-+ (return-type "none")
-+ (parameters
-+ '("gint" "position")
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_first
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_first")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_next
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_next")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_prev
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_prev")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method get_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method get_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method get
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-+(define-method set_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method set_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method set
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-
-diff --git a/totem/plparser.override b/totem/plparser.override
-index 3cbe2fb..48e1853 100644
---- a/totem/plparser.override
-+++ b/totem/plparser.override
-@@ -5,7 +5,7 @@ headers
- #include "pygobject.h"
- #include "totem-pl-parser.h"
- #include "totem-pl-parser-builtins.h"
--#include <gtk/gtk.h>
-+#include "totem-pl-parser-mini.h"
- #include <glib.h>
-
- #include "config.h"
-@@ -14,108 +14,8 @@ headers
- modulename totem.plparser
- %%
- import gobject.GObject as PyGObject_Type
--import gtk.TreeModel as PyGtkTreeModel_Type
- %%
- ignore-glob
- *_get_type
- *_error_quark
--%%
--override totem_pl_parser_write kwargs
--
--typedef struct {
-- PyObject *func;
-- PyObject *data;
-- gboolean has_error;
--} PyPlParserIterFuncData;
--
--static void
--_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
-- gboolean *custom_title, gpointer user_data)
--{
-- PyObject *args = NULL;
-- PyObject *result = NULL;
-- char *tmp_uri = NULL, *tmp_title = NULL;
-- PyPlParserIterFuncData *data = user_data;
-- PyObject *py_custom_title = NULL;
--
-- if (data->has_error)
-- return;
--
-- if (data->data)
-- args = Py_BuildValue ("(NNO)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
-- data->data);
-- else
-- args = Py_BuildValue ("(NN)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
-- result = PyEval_CallObject (data->func, args);
-- Py_DECREF (args);
--
-- if (result == NULL) {
-- data->has_error = TRUE;
-- return;
-- }
-- /* ?! */
-- /* PyObject_Print (result, stdout, 0); */
--
-- if (PyString_Check (result)) {
-- tmp_uri = PyString_AsString (result);
-- if (tmp_uri == NULL) {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one"
-- " string or a tuple of two strings.");
-- data->has_error = TRUE;
-- }
-- } else if (!PyTuple_Check (result) ||
-- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
-- {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one "
-- "string or a tuple of two strings,"
-- " or two strings and a boolean.");
-- data->has_error = TRUE;
-- }
--
-- /* g_strdup handles NULL case for us */
-- *uri = g_strdup (tmp_uri);
-- *title = g_strdup (tmp_title);
-- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
--
-- Py_DECREF (result);
--}
-
--static PyObject *
--_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
--{
-- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
-- PyGObject *model;
-- char *output;
-- TotemPlParserType type;
-- GError *error = NULL;
-- PyPlParserIterFuncData data = {0, };
--
-- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
-- kwlist, &PyGtkTreeModel_Type, &model,
-- &data.func, &output, &type, &data.data))
-- return NULL;
-- /* verify arguments' integrity */
-- if (!PyCallable_Check (data.func)) {
-- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
-- return NULL;
-- }
-- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
-- GTK_TREE_MODEL(model->obj),
-- _pl_parser_iter_func,
-- output,type, &data, &error))
-- {
-- /* return an GError */
-- pyg_error_check(&error);
-- return NULL;
-- }
-- if (data.has_error)
-- return NULL;
-- Py_INCREF(Py_None);
-- return Py_None;
--}
---
-1.6.6.1
-
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..1a2859e
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Depends on dead FTBFS Python2 upstream.
diff --git a/evince.patch b/evince.patch
deleted file mode 100644
index c7ba5c8..0000000
--- a/evince.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
---- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
-+++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
-@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
- dnl should we build the evince module
- AC_ARG_BINDING([evince],[YES])
- if $build_evince; then
-- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
-+ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
- build_evince=true,
- build_evince=false)
- if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
deleted file mode 100644
index 0be84c9..0000000
--- a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
---- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
-+++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
-@@ -100,7 +100,7 @@
- )
- )
-
--(define-enum WindowState
-+(define-flags WindowState
- (in-module "Wnck")
- (c-name "WnckWindowState")
- (gtype-id "WNCK_TYPE_WINDOW_STATE")
-@@ -121,7 +121,7 @@
- )
- )
-
--(define-enum WindowActions
-+(define-flags WindowActions
- (in-module "Wnck")
- (c-name "WnckWindowActions")
- (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
-@@ -184,7 +184,7 @@
- )
- )
-
--(define-enum WindowMoveResizeMask
-+(define-flags WindowMoveResizeMask
- (in-module "Wnck")
- (c-name "WnckWindowMoveResizeMask")
- (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
deleted file mode 100644
index 5054dd2..0000000
--- a/gnome-python-desktop-2.32.0-metacity-build.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Daniel Drake <dsd(a)laptop.org>
-
-Fix build against metacity-2.34.2. The port to GSettings
-removed these constants from the codebase.
-
-Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
-===================================================================
---- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
-+++ gnome-python-desktop-2.32.0/metacity/metacity.defs
-@@ -120,32 +120,6 @@
- )
- )
-
--(define-enum FocusMode
-- (in-module "Meta")
-- (c-name "MetaFocusMode")
--; (gtype-id "META_TYPE_FOCUS_MODE")
-- (values
-- '("click" "META_FOCUS_MODE_CLICK")
-- '("sloppy" "META_FOCUS_MODE_SLOPPY")
-- '("mouse" "META_FOCUS_MODE_MOUSE")
-- )
--)
--
--(define-enum ActionTitlebar
-- (in-module "Meta")
-- (c-name "MetaActionTitlebar")
--; (gtype-id "META_TYPE_ACTION_TITLEBAR")
-- (values
-- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
-- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
-- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
-- '("none" "META_ACTION_TITLEBAR_NONE")
-- '("lower" "META_ACTION_TITLEBAR_LOWER")
-- '("menu" "META_ACTION_TITLEBAR_MENU")
-- '("last" "META_ACTION_TITLEBAR_LAST")
-- )
--)
--
- (define-enum FrameType
- (in-module "Meta")
- (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
deleted file mode 100644
index e1375b7..0000000
--- a/gnome-python2-desktop.spec
+++ /dev/null
@@ -1,547 +0,0 @@
-# Last updated for version 2.29.1
-# The order here corresponds to that in configure.ac,
-# for easier comparison. Please do not alphabetize.
-%define pygtk_version 2.10.3
-%define glib_version 2.6.0
-%define gtk_version 2.4.0
-%define gnome_python_version 2.10.0
-%define gtksourceview_version 1:1.8.5-2
-%define libwnck_version 2.19.3
-%define libgtop_version 2.13.0
-%define gconf2_version 2.10.0
-%define librsvg2_version 2.13.93
-%define gnome_keyring_version 0.5.0
-%define gnome_desktop_version 2.10.0
-%define totem_version 1.4.0
-%define eds_version 1.4.0
-
-### Abstract ###
-
-Name: gnome-python2-desktop
-Version: 2.32.0
-Release: 37%{?dist}
-License: GPLv2+
-Summary: The sources for additional PyGNOME Python extension modules
-#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=616306
-Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=672016
-Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
-
-### Dependencies ###
-
-Requires: gnome-python2-canvas >= %{gnome_python_version}
-
-### Build Dependencies ###
-
-BuildRequires: glib2-devel >= %{glib_version}
-BuildRequires: GConf2-devel >= %{gconf2_version}
-BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
-BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
-BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
-BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
-BuildRequires: gnome-python2-devel >= %{gnome_python_version}
-BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
-BuildRequires: gtk2-devel >= %{gtk_version}
-BuildRequires: libgnomeui-devel
-BuildRequires: librsvg2-devel >= %{librsvg2_version}
-BuildRequires: libwnck-devel >= %{libwnck_version}
-BuildRequires: pygtk2-devel >= %{pygtk_version}
-BuildRequires: python2-devel
-BuildRequires: autoconf, automake, libtool
-Provides: gnome-python2-gnomedesktop = 2.32.0-33
-Obsoletes: gnome-python2-gnomedesktop < 2.32.0-33
-Provides: gnome-python2-libgtop2 = 2.32.0-33
-Obsoletes: gnome-python2-libgtop2 < 2.32.0-33
-Provides: gnome-python2-totem = 2.32.0-33
-Obsoletes: gnome-python2-totem < 2.32.0-33
-
-%description
-The gnome-python-desktop package contains the source packages for additional
-Python bindings for GNOME. It should be used together with gnome-python.
-
-%package -n gnome-python2-libwnck
-Summary: Python bindings for interacting with libwnck
-License: LGPLv2
-Requires: libwnck >= %{libwnck_version}
-
-%description -n gnome-python2-libwnck
-This module contains a wrapper that allows the use of libwnck via
-Python.
-
-%package -n gnome-python2-rsvg
-Summary: Python bindings for interacting with librsvg
-License: LGPLv2
-Requires: librsvg2 >= %{librsvg2_version}
-
-%description -n gnome-python2-rsvg
-This module contains a wrapper that allows the use of librsvg
-via Python.
-
-%package -n gnome-python2-gnomekeyring
-Summary: Python bindings for interacting with gnome-keyring
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-keyring >= %{gnome_keyring_version}
-
-%description -n gnome-python2-gnomekeyring
-This module contains a wrapper that allows the use of gnome-keyring
-via Python.
-
-%prep
-%setup -q -n gnome-python-desktop-%{version}
-%patch0 -p1 -b .flags
-%patch1 -p1 -b .metacity-build
-
-%build
-# evince, brasero and mediaprofiles are disabled because these things have
-# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
-# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
-# stuff. - AdamW 2010/07
-# gnomeprint and gtksourceview are disabled due to removal of C libraries
-# from F23. - Yaakov 2015/07
-%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
-make
-
-%install
-make install DESTDIR=$RPM_BUILD_ROOT
-
-find $RPM_BUILD_ROOT -name '*.la' -delete
-
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
-
-
-%files
-%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
-%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
-%{_datadir}/pygtk
-%exclude %{python2_sitearch}/gtk-2.0/gtop.so
-%exclude %{python2_sitearch}/gtk-2.0/totem
-%exclude %{python2_sitearch}/gtk-2.0/gnomedesktop
-
-%files -n gnome-python2-libwnck
-%{python2_sitearch}/gtk-2.0/wnck.so
-
-%files -n gnome-python2-rsvg
-%{python2_sitearch}/gtk-2.0/rsvg.so
-
-%files -n gnome-python2-gnomekeyring
-%{python2_sitearch}/gtk-2.0/gnomekeyring.so
-
-%changelog
-* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-37
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sun Jun 30 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-36
-- Drop unnessary BuildReq of /usr/bin/python
-
-* Thu Jan 31 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-35
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Thu Sep 13 2018 Gwyn Ciesla <limburgher(a)gmail.com> - 2.32.0-34
-- Drop gnomedesktop, libgtop2 and totem per BZ 1627331.
-
-* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
-- Update Python 2 dependency declarations to new packaging standards
- (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
-
-* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
-- Rebuilt for libtotem-plparser soname bump
-
-* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
-- Rebuilt for libtotem-plparser soname bump
-
-* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
-- Rebuilt for libgtop2 soname bump
-
-* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
-- Remove obsolete dependencies and cleanup build
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
-- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
-- Drop broken gnome-python2-metacity subpackage
-
-* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
-- Rebuilt for libgtop2 soname bump
-
-* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
-- Rebuilt for totem-pl-parser soname bump
-
-* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
-- Drop dead gnome-panel dependency
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
-- Obsolete the dropped gnome-python2-evolution subpackage
-
-* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
-- Drop evolution bindings; they don't build against the latest EDS
-
-* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
-- Fix build against metacity-2.34.2
-
-* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
-* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
-- Rebuilt for new libedataserver
-
-* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
-- Rebuilt for new libedataserver
-
-* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
-- Rebuilt for new libedataserver
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
-- Update to 2.32.0 to match f14
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
-- Disable applets
-
-* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
-- gnome-media-profiles support also broken due to gtk3 port, so
- disable it
-- drop evince and brasero modules for now as they won't build due
- to evince and brasero being ported to gtk3
-
-* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
-- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
-
-* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
-- Update to 2.31.1
-
-* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
-- Rebuild against new brasero
-
-* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
-- rebuilt
-
-* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
-- Rebuild against latest libedataserver.
-
-* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
-- Rebuild against latest evolution
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
-- remember to commit patch to cvs
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
-- fix wnck gtypes to be flags, instead of enum
-
-* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
-- Drop bug-buddy package, we use abrt
-
-* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
-- Update to 2.30.0
-
-* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
-- Update to 2.29.92
-
-* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
-- add missing patch
-
-* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
-- Add patch to fix build
-
-* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
-- rebuilt
-
-* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
-- Rebuild against new totem-pl-parser.
-
-* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
-- Rebuild against new gnome-desktop.
-
-* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
-- Fix rpmlint warnings.
-
-* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
-- Provide a complete URI for the Source field.
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
-- Update to 2.29.1
-- Remove patch for GNOME bug #603231 (fixed upstream).
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
-- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
-
-* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
-- Rebuild for new evince
-
-* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
-- Update to 2.28.0
-
-* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
-- Update to 2.27.3
-
-* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
-- Disable nautilus-cd-burner bindings. Package is dead.
-
-* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
-
-* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
-- Update to 2.27.2
-
-* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
-- Change gnome-python2-evince to depend on evince-libs
-
-* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
-- Update to 2.27.1
-- New subpackage: gnome-python2-brasero
-
-* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
-- Removed cd-burner subpackage Require on nautilus-cd-burn
-
-* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
-- Rebuild against newer libnautilus-burn.
-
-* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
-- Update to 2.26.0
-
-* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
-- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
-
-* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
-* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
-- Update to 2.25.91
-
-* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
-- New subpackage: gnome-python2-evince
-
-* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
-- Update to 2.25.90
-
-* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
-- Update to 2.25.1
-- Remove patch for GNOME bug #564525 (fixed upstream).
-
-* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
-- make build
-
-* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
-- Update to 2.24.1
-- Add patch for GNOME bug #564525 (build failure).
-
-* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
-- Rebuild for new libgnome-desktop
-
-* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
-- Rebuild for Python 2.6
-
-* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
-- Update subpackage requirements, since gnome-python2 no longer drags in
- the world.
-
-* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
-- Rebuild
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
-- Change gnome-python2 requirement to gnome-python2-canvas.
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
-- Update to 2.24.0
-
-* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
-- Update to 2.23.1
-- Update version requirements.
-
-* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
-- Update to 2.23.0
-
-* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
-- Don't drag in devel packages when installing gnome-python2-evolution
- (RH bug #450932).
-
-* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
-- Rebuild
-
-* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
-- Rebuild against newer libedataserver and libtotem-plparser.
-
-* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
-- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
-
-* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
-- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
-
-* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
-- Update to 2.22.0
-- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
-
-* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
-- Update to 2.21.3
-
-* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
-- Rebuild with GCC 4.3
-
-* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
-- Update to 2.21.2
-
-* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
-- Update to 2.21.1
-- New subpackage: gnome-python2-evolution
-- Change totem-devel BR to totem-pl-parser-devel.
-
-* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
-- Rebuild against newer libtotem-plparser.so.
-
-* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
-- Update to 2.20.0
-
-* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
-- Rebuild for selinux ppc32 issue.
-
-* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
-- Rebuild
-
-* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
-- Update license fields
-
-* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
-- Update to 2.19.2
-
-* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
-- Rebuild against gtksourceview
-
-* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
-- Update to 2.19.1
-- Update versions of required packages.
-- Remove patch for GNOME bug #428697 (fixed upstream).
-
-* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
-- Rebuild again
-
-* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
-- Rebuild against new libwnck
-
-* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
-- Require metacity-devel, not metacity, for building.
-- Add patch for GNOME bug #428697 (adapt to API change).
-
-* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
-- Update to 2.18.0
-
-* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
-- Update to 2.17.93
-
-* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
-- Update to 2.17.92
-- Remove patch for GNOME bug #401760 (fixed upstream).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
-- Add patch for GNOME bug #401760 (plparser fails to build).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
-- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
-
-* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
-- Update to 2.17.3
-
-* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
-- Update to 2.17.2
-- New gnome-python2-bugbuddy subpackage.
-- Update version requirements to match configure.ac.
-- Use python_sitearch macro for installing libraries.
-
-* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
-- rebuild for python 2.5
-- BR gnome-python2-devel
-
-* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
-- Update to 2.17.1
-
-* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
-- Update to 2.16.0
-
-* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
-- Remove unecessary dependencies on gnome-python2-desktop from
- -libwnck and -rsvg subpackages (OLPC)
-
-* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
-- Update to 2.15.90
-
-* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
-- Rebuild against dbus
-
-* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
-- Update to 2.15.4
-
-* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
-- rebuild
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
-- Create gnomekeyring subpackage
-- block out the nautilus-cd stuff
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
-- Bump for new nautilus-cd-burner
-
-* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
-- Update to 2.15.3
-
-* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
-- Update to 2.15.2
-- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
-
-* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
-- Add pygtk2 BR
-
-* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
-- Update to 2.14.0
-
-* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
-- Buildrequires: python-devel
-
-* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
-- bump again for double-long bug on ppc(64)
-
-* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
-- Initial build.
-
diff --git a/sources b/sources
deleted file mode 100644
index 2304e97..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit 2e40197957ba66c7322a4498995ad575066e07e5
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 25 04:15:03 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/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6db2110..e1375b7 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -19,7 +19,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 36%{?dist}
+Release: 37%{?dist}
License: GPLv2+
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
@@ -133,6 +133,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python2_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-37
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Sun Jun 30 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-36
- Drop unnessary BuildReq of /usr/bin/python
commit 7eb85988e51fccc638a25d27d6b2eea14a6db247
Author: Peter Robinson <pbrobinson(a)gmail.com>
Date: Mon Jul 1 14:21:40 2019 +0100
Drop unnessary BuildReq of /usr/bin/python
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0dfb956..6db2110 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -19,7 +19,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 35%{?dist}
+Release: 36%{?dist}
License: GPLv2+
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
@@ -52,7 +52,6 @@ BuildRequires: libwnck-devel >= %{libwnck_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python2-devel
BuildRequires: autoconf, automake, libtool
-BuildRequires: /usr/bin/python
Provides: gnome-python2-gnomedesktop = 2.32.0-33
Obsoletes: gnome-python2-gnomedesktop < 2.32.0-33
Provides: gnome-python2-libgtop2 = 2.32.0-33
@@ -134,6 +133,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python2_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Jun 30 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-36
+- Drop unnessary BuildReq of /usr/bin/python
+
* Thu Jan 31 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-35
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
commit c2194890a297d3618a275d15edc38fe4bc42362d
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 31 23:13:42 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b7554d8..0dfb956 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -19,7 +19,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 34%{?dist}
+Release: 35%{?dist}
License: GPLv2+
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
@@ -134,6 +134,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python2_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Jan 31 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-35
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Thu Sep 13 2018 Gwyn Ciesla <limburgher(a)gmail.com> - 2.32.0-34
- Drop gnomedesktop, libgtop2 and totem per BZ 1627331.
commit 71a4f3492189b0dfa17f52bf03216f32d33159fd
Author: Gwyn Ciesla <limburgher(a)gmail.com>
Date: Thu Sep 13 12:25:17 2018 -0500
Drop some python2 subpackages.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index bc0102f..b7554d8 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -19,7 +19,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 33%{?dist}
+Release: 34%{?dist}
License: GPLv2+
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
@@ -47,14 +47,18 @@ BuildRequires: gnome-python2-devel >= %{gnome_python_version}
BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
BuildRequires: libgnomeui-devel
-BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
BuildRequires: libwnck-devel >= %{libwnck_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python2-devel
-BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, automake, libtool
BuildRequires: /usr/bin/python
+Provides: gnome-python2-gnomedesktop = 2.32.0-33
+Obsoletes: gnome-python2-gnomedesktop < 2.32.0-33
+Provides: gnome-python2-libgtop2 = 2.32.0-33
+Obsoletes: gnome-python2-libgtop2 < 2.32.0-33
+Provides: gnome-python2-totem = 2.32.0-33
+Obsoletes: gnome-python2-totem < 2.32.0-33
%description
The gnome-python-desktop package contains the source packages for additional
@@ -69,27 +73,6 @@ Requires: libwnck >= %{libwnck_version}
This module contains a wrapper that allows the use of libwnck via
Python.
-%package -n gnome-python2-libgtop2
-Summary: Python bindings for interacting with libgtop
-License: GPLv2+
-Requires: %{name} = %{version}-%{release}
-Requires: libgtop2 >= %{libgtop_version}
-
-%description -n gnome-python2-libgtop2
-This module contains a wrapper that allows the use of libgtop via
-Python.
-
-%package -n gnome-python2-totem
-Summary: Python bindings for interacting with totem
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: totem-pl-parser >= %{totem_version}
-Requires: gnome-python2-gconf
-
-%description -n gnome-python2-totem
-This module contains a wrapper that allows the use of totem
-via Python.
-
%package -n gnome-python2-rsvg
Summary: Python bindings for interacting with librsvg
License: LGPLv2
@@ -99,16 +82,6 @@ Requires: librsvg2 >= %{librsvg2_version}
This module contains a wrapper that allows the use of librsvg
via Python.
-%package -n gnome-python2-gnomedesktop
-Summary: Python bindings for interacting with gnome-desktop
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-desktop >= %{gnome_desktop_version}
-
-%description -n gnome-python2-gnomedesktop
-This module contains a wrapper that allows the use of gnome-desktop
-via Python.
-
%package -n gnome-python2-gnomekeyring
Summary: Python bindings for interacting with gnome-keyring
License: LGPLv2
@@ -147,26 +120,23 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
%{_datadir}/pygtk
+%exclude %{python2_sitearch}/gtk-2.0/gtop.so
+%exclude %{python2_sitearch}/gtk-2.0/totem
+%exclude %{python2_sitearch}/gtk-2.0/gnomedesktop
%files -n gnome-python2-libwnck
%{python2_sitearch}/gtk-2.0/wnck.so
-%files -n gnome-python2-libgtop2
-%{python2_sitearch}/gtk-2.0/gtop.so
-
-%files -n gnome-python2-totem
-%{python2_sitearch}/gtk-2.0/totem
-
%files -n gnome-python2-rsvg
%{python2_sitearch}/gtk-2.0/rsvg.so
-%files -n gnome-python2-gnomedesktop
-%{python2_sitearch}/gtk-2.0/gnomedesktop
-
%files -n gnome-python2-gnomekeyring
%{python2_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Sep 13 2018 Gwyn Ciesla <limburgher(a)gmail.com> - 2.32.0-34
+- Drop gnomedesktop, libgtop2 and totem per BZ 1627331.
+
* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
commit 09a1f2a4bf2cee4ad34ccc694965d62e1766fcb8
Author: Gwyn Ciesla <limburgher(a)gmail.com>
Date: Thu Sep 13 12:05:39 2018 -0500
Revert "BZ 1627331"
This reverts commit 135ce7f2110d5c53f64ded3558c70e7f8267ad4c.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7fd6f6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+gnome-python-desktop-2.31.1.tar.bz2
+/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
new file mode 100644
index 0000000..35c7be7
--- /dev/null
+++ b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
@@ -0,0 +1,503 @@
+From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
+From: Gustavo Carneiro <gjc(a)inescporto.pt>
+Date: Thu, 28 Jan 2010 16:10:16 +0000
+Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
+
+---
+ totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
+ totem/plparser.override | 102 +----------------
+ 2 files changed, 276 insertions(+), 122 deletions(-)
+
+diff --git a/totem/plparser.defs b/totem/plparser.defs
+index 184578e..9f25ff1 100644
+--- a/totem/plparser.defs
++++ b/totem/plparser.defs
+@@ -1,8 +1,24 @@
+ ;; -*- scheme -*-
+ ; object definitions ...
++
++(define-object Parser
++ (in-module "totem.plparser")
++ (parent "GObject")
++ (c-name "TotemPlParser")
++ (gtype-id "TOTEM_TYPE_PL_PARSER")
++)
++
++(define-object Playlist
++ (in-module "totem.playlist")
++ (parent "GObject")
++ (c-name "TotemPlPlaylist")
++ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
++)
++
+ ;; Enumerations and flags ...
+
+-(define-enum ParserResult
++
++(define-enum PlParserResult
+ (in-module "Totem")
+ (c-name "TotemPlParserResult")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
+@@ -10,10 +26,12 @@
+ '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
+ '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
+ '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
++ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
++ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
+ )
+ )
+
+-(define-enum ParserType
++(define-enum PlParserType
+ (in-module "Totem")
+ (c-name "TotemPlParserType")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
+@@ -21,47 +39,60 @@
+ '("pls" "TOTEM_PL_PARSER_PLS")
+ '("m3u" "TOTEM_PL_PARSER_M3U")
+ '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
++ '("xspf" "TOTEM_PL_PARSER_XSPF")
++ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
+ )
+ )
+
+-(define-enum ParserError
++(define-enum PlParserError
+ (in-module "Totem")
+ (c-name "TotemPlParserError")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
+ (values
+- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
+- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
++ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
++ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
+ )
+ )
+
+
+ ;; From totem-pl-parser.h
+
+-(define-object Parser
+- (in-module "PlaylistParser")
+- (parent "GObject")
+- (c-name "TotemPlParser")
+- (gtype-id "TOTEM_TYPE_PL_PARSER")
+-)
+-
+-(define-function totem_pl_parser_error_quark
++(define-function error_quark
+ (c-name "totem_pl_parser_error_quark")
+ (return-type "GQuark")
+ )
+
+-(define-function totem_pl_parser_get_type
++(define-function get_type
+ (c-name "totem_pl_parser_get_type")
+ (return-type "GType")
+ )
+
+-(define-method write
++(define-function parse_duration
++ (c-name "totem_pl_parser_parse_duration")
++ (return-type "gint64")
++ (parameters
++ '("const-char*" "duration")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function parse_date
++ (c-name "totem_pl_parser_parse_date")
++ (return-type "guint64")
++ (parameters
++ '("const-char*" "date_str")
++ '("gboolean" "debug")
++ )
++)
++
++(define-method save
+ (of-object "TotemPlParser")
+- (c-name "totem_pl_parser_write")
++ (c-name "totem_pl_parser_save")
+ (return-type "gboolean")
+ (parameters
+- '("GtkTreeModel*" "model")
+- '("TotemPlParserIterFunc" "func")
+- '("const-char*" "output")
++ '("TotemPlPlaylist*" "playlist")
++ '("GFile*" "dest")
++ '("const-gchar*" "title")
+ '("TotemPlParserType" "type")
+ '("GError**" "error")
+ )
+@@ -76,20 +107,243 @@
+ )
+ )
+
++(define-method add_ignored_mimetype
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_add_ignored_mimetype")
++ (return-type "none")
++ (parameters
++ '("const-char*" "mimetype")
++ )
++)
++
+ (define-method parse
+ (of-object "TotemPlParser")
+ (c-name "totem_pl_parser_parse")
+ (return-type "TotemPlParserResult")
+ (parameters
+- '("const-char*" "url")
++ '("const-char*" "uri")
+ '("gboolean" "fallback")
+ )
+ )
+
+-(define-function totem_pl_parser_new
++(define-method parse_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-method parse_finish
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_finish")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("GAsyncResult*" "async_result")
++ '("GError**" "error")
++ )
++)
++
++(define-method parse_with_base
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ )
++)
++
++(define-method parse_with_base_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-function new
+ (c-name "totem_pl_parser_new")
+ (is-constructor-of "TotemPlParser")
+ (return-type "TotemPlParser*")
+ )
+
++(define-function metadata_get_type
++ (c-name "totem_pl_parser_metadata_get_type")
++ (return-type "GType")
++)
++
++
++
++;; From totem-pl-parser-mini.h
++
++(define-function can_parse_from_data
++ (c-name "totem_pl_parser_can_parse_from_data")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "data")
++ '("gsize" "len")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function can_parse_from_filename
++ (c-name "totem_pl_parser_can_parse_from_filename")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "filename")
++ '("gboolean" "debug")
++ )
++)
++
++
++
++;; From totem-pl-playlist.h
++
++(define-function totem_pl_playlist_get_type
++ (c-name "totem_pl_playlist_get_type")
++ (return-type "GType")
++)
++
++(define-function totem_pl_playlist_new
++ (c-name "totem_pl_playlist_new")
++ (is-constructor-of "TotemPlPlaylist")
++ (return-type "TotemPlPlaylist*")
++)
++
++(define-method size
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_size")
++ (return-type "guint")
++)
++
++(define-method prepend
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_prepend")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method append
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_append")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method insert
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_insert")
++ (return-type "none")
++ (parameters
++ '("gint" "position")
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_first
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_first")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_next
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_next")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_prev
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_prev")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method get_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method get_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method get
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
++(define-method set_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method set_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method set
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
+
+diff --git a/totem/plparser.override b/totem/plparser.override
+index 3cbe2fb..48e1853 100644
+--- a/totem/plparser.override
++++ b/totem/plparser.override
+@@ -5,7 +5,7 @@ headers
+ #include "pygobject.h"
+ #include "totem-pl-parser.h"
+ #include "totem-pl-parser-builtins.h"
+-#include <gtk/gtk.h>
++#include "totem-pl-parser-mini.h"
+ #include <glib.h>
+
+ #include "config.h"
+@@ -14,108 +14,8 @@ headers
+ modulename totem.plparser
+ %%
+ import gobject.GObject as PyGObject_Type
+-import gtk.TreeModel as PyGtkTreeModel_Type
+ %%
+ ignore-glob
+ *_get_type
+ *_error_quark
+-%%
+-override totem_pl_parser_write kwargs
+-
+-typedef struct {
+- PyObject *func;
+- PyObject *data;
+- gboolean has_error;
+-} PyPlParserIterFuncData;
+-
+-static void
+-_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
+- gboolean *custom_title, gpointer user_data)
+-{
+- PyObject *args = NULL;
+- PyObject *result = NULL;
+- char *tmp_uri = NULL, *tmp_title = NULL;
+- PyPlParserIterFuncData *data = user_data;
+- PyObject *py_custom_title = NULL;
+-
+- if (data->has_error)
+- return;
+-
+- if (data->data)
+- args = Py_BuildValue ("(NNO)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
+- data->data);
+- else
+- args = Py_BuildValue ("(NN)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
+- result = PyEval_CallObject (data->func, args);
+- Py_DECREF (args);
+-
+- if (result == NULL) {
+- data->has_error = TRUE;
+- return;
+- }
+- /* ?! */
+- /* PyObject_Print (result, stdout, 0); */
+-
+- if (PyString_Check (result)) {
+- tmp_uri = PyString_AsString (result);
+- if (tmp_uri == NULL) {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one"
+- " string or a tuple of two strings.");
+- data->has_error = TRUE;
+- }
+- } else if (!PyTuple_Check (result) ||
+- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
+- {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one "
+- "string or a tuple of two strings,"
+- " or two strings and a boolean.");
+- data->has_error = TRUE;
+- }
+-
+- /* g_strdup handles NULL case for us */
+- *uri = g_strdup (tmp_uri);
+- *title = g_strdup (tmp_title);
+- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
+-
+- Py_DECREF (result);
+-}
+
+-static PyObject *
+-_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
+- PyGObject *model;
+- char *output;
+- TotemPlParserType type;
+- GError *error = NULL;
+- PyPlParserIterFuncData data = {0, };
+-
+- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
+- kwlist, &PyGtkTreeModel_Type, &model,
+- &data.func, &output, &type, &data.data))
+- return NULL;
+- /* verify arguments' integrity */
+- if (!PyCallable_Check (data.func)) {
+- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
+- return NULL;
+- }
+- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
+- GTK_TREE_MODEL(model->obj),
+- _pl_parser_iter_func,
+- output,type, &data, &error))
+- {
+- /* return an GError */
+- pyg_error_check(&error);
+- return NULL;
+- }
+- if (data.has_error)
+- return NULL;
+- Py_INCREF(Py_None);
+- return Py_None;
+-}
+--
+1.6.6.1
+
diff --git a/dead.package b/dead.package
deleted file mode 100644
index f0082fc..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-BZ 1627331
diff --git a/evince.patch b/evince.patch
new file mode 100644
index 0000000..c7ba5c8
--- /dev/null
+++ b/evince.patch
@@ -0,0 +1,12 @@
+diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
+--- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
++++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
+@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
+ dnl should we build the evince module
+ AC_ARG_BINDING([evince],[YES])
+ if $build_evince; then
+- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
++ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
+ build_evince=true,
+ build_evince=false)
+ if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
new file mode 100644
index 0000000..0be84c9
--- /dev/null
+++ b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -0,0 +1,30 @@
+diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
+--- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
++++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
+@@ -100,7 +100,7 @@
+ )
+ )
+
+-(define-enum WindowState
++(define-flags WindowState
+ (in-module "Wnck")
+ (c-name "WnckWindowState")
+ (gtype-id "WNCK_TYPE_WINDOW_STATE")
+@@ -121,7 +121,7 @@
+ )
+ )
+
+-(define-enum WindowActions
++(define-flags WindowActions
+ (in-module "Wnck")
+ (c-name "WnckWindowActions")
+ (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
+@@ -184,7 +184,7 @@
+ )
+ )
+
+-(define-enum WindowMoveResizeMask
++(define-flags WindowMoveResizeMask
+ (in-module "Wnck")
+ (c-name "WnckWindowMoveResizeMask")
+ (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
new file mode 100644
index 0000000..5054dd2
--- /dev/null
+++ b/gnome-python-desktop-2.32.0-metacity-build.patch
@@ -0,0 +1,42 @@
+From: Daniel Drake <dsd(a)laptop.org>
+
+Fix build against metacity-2.34.2. The port to GSettings
+removed these constants from the codebase.
+
+Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
+===================================================================
+--- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
++++ gnome-python-desktop-2.32.0/metacity/metacity.defs
+@@ -120,32 +120,6 @@
+ )
+ )
+
+-(define-enum FocusMode
+- (in-module "Meta")
+- (c-name "MetaFocusMode")
+-; (gtype-id "META_TYPE_FOCUS_MODE")
+- (values
+- '("click" "META_FOCUS_MODE_CLICK")
+- '("sloppy" "META_FOCUS_MODE_SLOPPY")
+- '("mouse" "META_FOCUS_MODE_MOUSE")
+- )
+-)
+-
+-(define-enum ActionTitlebar
+- (in-module "Meta")
+- (c-name "MetaActionTitlebar")
+-; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+- (values
+- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_TITLEBAR_NONE")
+- '("lower" "META_ACTION_TITLEBAR_LOWER")
+- '("menu" "META_ACTION_TITLEBAR_MENU")
+- '("last" "META_ACTION_TITLEBAR_LAST")
+- )
+-)
+-
+ (define-enum FrameType
+ (in-module "Meta")
+ (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
new file mode 100644
index 0000000..bc0102f
--- /dev/null
+++ b/gnome-python2-desktop.spec
@@ -0,0 +1,569 @@
+# Last updated for version 2.29.1
+# The order here corresponds to that in configure.ac,
+# for easier comparison. Please do not alphabetize.
+%define pygtk_version 2.10.3
+%define glib_version 2.6.0
+%define gtk_version 2.4.0
+%define gnome_python_version 2.10.0
+%define gtksourceview_version 1:1.8.5-2
+%define libwnck_version 2.19.3
+%define libgtop_version 2.13.0
+%define gconf2_version 2.10.0
+%define librsvg2_version 2.13.93
+%define gnome_keyring_version 0.5.0
+%define gnome_desktop_version 2.10.0
+%define totem_version 1.4.0
+%define eds_version 1.4.0
+
+### Abstract ###
+
+Name: gnome-python2-desktop
+Version: 2.32.0
+Release: 33%{?dist}
+License: GPLv2+
+Summary: The sources for additional PyGNOME Python extension modules
+#VCS: git://git.gnome.org/gnome-python-desktop
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=616306
+Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=672016
+Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
+
+### Dependencies ###
+
+Requires: gnome-python2-canvas >= %{gnome_python_version}
+
+### Build Dependencies ###
+
+BuildRequires: glib2-devel >= %{glib_version}
+BuildRequires: GConf2-devel >= %{gconf2_version}
+BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
+BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
+BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
+BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
+BuildRequires: gnome-python2-devel >= %{gnome_python_version}
+BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
+BuildRequires: gtk2-devel >= %{gtk_version}
+BuildRequires: libgnomeui-devel
+BuildRequires: libgtop2-devel >= %{libgtop_version}
+BuildRequires: librsvg2-devel >= %{librsvg2_version}
+BuildRequires: libwnck-devel >= %{libwnck_version}
+BuildRequires: pygtk2-devel >= %{pygtk_version}
+BuildRequires: python2-devel
+BuildRequires: totem-pl-parser-devel >= %{totem_version}
+BuildRequires: autoconf, automake, libtool
+BuildRequires: /usr/bin/python
+
+%description
+The gnome-python-desktop package contains the source packages for additional
+Python bindings for GNOME. It should be used together with gnome-python.
+
+%package -n gnome-python2-libwnck
+Summary: Python bindings for interacting with libwnck
+License: LGPLv2
+Requires: libwnck >= %{libwnck_version}
+
+%description -n gnome-python2-libwnck
+This module contains a wrapper that allows the use of libwnck via
+Python.
+
+%package -n gnome-python2-libgtop2
+Summary: Python bindings for interacting with libgtop
+License: GPLv2+
+Requires: %{name} = %{version}-%{release}
+Requires: libgtop2 >= %{libgtop_version}
+
+%description -n gnome-python2-libgtop2
+This module contains a wrapper that allows the use of libgtop via
+Python.
+
+%package -n gnome-python2-totem
+Summary: Python bindings for interacting with totem
+License: LGPLv2
+Requires: %{name} = %{version}-%{release}
+Requires: totem-pl-parser >= %{totem_version}
+Requires: gnome-python2-gconf
+
+%description -n gnome-python2-totem
+This module contains a wrapper that allows the use of totem
+via Python.
+
+%package -n gnome-python2-rsvg
+Summary: Python bindings for interacting with librsvg
+License: LGPLv2
+Requires: librsvg2 >= %{librsvg2_version}
+
+%description -n gnome-python2-rsvg
+This module contains a wrapper that allows the use of librsvg
+via Python.
+
+%package -n gnome-python2-gnomedesktop
+Summary: Python bindings for interacting with gnome-desktop
+License: LGPLv2
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-desktop >= %{gnome_desktop_version}
+
+%description -n gnome-python2-gnomedesktop
+This module contains a wrapper that allows the use of gnome-desktop
+via Python.
+
+%package -n gnome-python2-gnomekeyring
+Summary: Python bindings for interacting with gnome-keyring
+License: LGPLv2
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-keyring >= %{gnome_keyring_version}
+
+%description -n gnome-python2-gnomekeyring
+This module contains a wrapper that allows the use of gnome-keyring
+via Python.
+
+%prep
+%setup -q -n gnome-python-desktop-%{version}
+%patch0 -p1 -b .flags
+%patch1 -p1 -b .metacity-build
+
+%build
+# evince, brasero and mediaprofiles are disabled because these things have
+# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
+# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
+# stuff. - AdamW 2010/07
+# gnomeprint and gtksourceview are disabled due to removal of C libraries
+# from F23. - Yaakov 2015/07
+%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
+make
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+
+find $RPM_BUILD_ROOT -name '*.la' -delete
+
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
+
+
+%files
+%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
+%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
+%{_datadir}/pygtk
+
+%files -n gnome-python2-libwnck
+%{python2_sitearch}/gtk-2.0/wnck.so
+
+%files -n gnome-python2-libgtop2
+%{python2_sitearch}/gtk-2.0/gtop.so
+
+%files -n gnome-python2-totem
+%{python2_sitearch}/gtk-2.0/totem
+
+%files -n gnome-python2-rsvg
+%{python2_sitearch}/gtk-2.0/rsvg.so
+
+%files -n gnome-python2-gnomedesktop
+%{python2_sitearch}/gtk-2.0/gnomedesktop
+
+%files -n gnome-python2-gnomekeyring
+%{python2_sitearch}/gtk-2.0/gnomekeyring.so
+
+%changelog
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
+- Update Python 2 dependency declarations to new packaging standards
+ (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
+
+* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
+- Rebuilt for libtotem-plparser soname bump
+
+* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
+- Rebuilt for libtotem-plparser soname bump
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
+- Rebuilt for libgtop2 soname bump
+
+* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
+- Remove obsolete dependencies and cleanup build
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
+- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
+- Drop broken gnome-python2-metacity subpackage
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
+- Rebuilt for libgtop2 soname bump
+
+* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
+- Rebuilt for totem-pl-parser soname bump
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
+- Drop dead gnome-panel dependency
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
+- Obsolete the dropped gnome-python2-evolution subpackage
+
+* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
+- Drop evolution bindings; they don't build against the latest EDS
+
+* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
+- Fix build against metacity-2.34.2
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
+- Rebuilt for new libedataserver
+
+* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
+- Rebuilt for new libedataserver
+
+* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
+- Rebuilt for new libedataserver
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
+- Update to 2.32.0 to match f14
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
+- Disable applets
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
+- gnome-media-profiles support also broken due to gtk3 port, so
+ disable it
+- drop evince and brasero modules for now as they won't build due
+ to evince and brasero being ported to gtk3
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
+- Update to 2.31.1
+
+* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
+- Rebuild against new brasero
+
+* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
+- rebuilt
+
+* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
+- Rebuild against latest libedataserver.
+
+* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
+- Rebuild against latest evolution
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
+- remember to commit patch to cvs
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
+- fix wnck gtypes to be flags, instead of enum
+
+* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
+- Drop bug-buddy package, we use abrt
+
+* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
+- Update to 2.30.0
+
+* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
+- Update to 2.29.92
+
+* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
+- add missing patch
+
+* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
+- Add patch to fix build
+
+* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
+- rebuilt
+
+* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
+- Rebuild against new totem-pl-parser.
+
+* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
+- Rebuild against new gnome-desktop.
+
+* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
+- Fix rpmlint warnings.
+
+* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
+- Provide a complete URI for the Source field.
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
+- Update to 2.29.1
+- Remove patch for GNOME bug #603231 (fixed upstream).
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
+- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
+
+* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
+- Rebuild for new evince
+
+* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
+- Update to 2.28.0
+
+* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
+- Update to 2.27.3
+
+* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
+- Disable nautilus-cd-burner bindings. Package is dead.
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
+- Update to 2.27.2
+
+* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
+- Change gnome-python2-evince to depend on evince-libs
+
+* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
+- Update to 2.27.1
+- New subpackage: gnome-python2-brasero
+
+* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
+- Removed cd-burner subpackage Require on nautilus-cd-burn
+
+* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
+- Rebuild against newer libnautilus-burn.
+
+* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
+- Update to 2.26.0
+
+* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
+- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
+- Update to 2.25.91
+
+* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
+- New subpackage: gnome-python2-evince
+
+* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
+- Update to 2.25.90
+
+* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
+- Update to 2.25.1
+- Remove patch for GNOME bug #564525 (fixed upstream).
+
+* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
+- make build
+
+* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
+- Update to 2.24.1
+- Add patch for GNOME bug #564525 (build failure).
+
+* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
+- Rebuild for new libgnome-desktop
+
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
+- Rebuild for Python 2.6
+
+* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
+- Update subpackage requirements, since gnome-python2 no longer drags in
+ the world.
+
+* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
+- Rebuild
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
+- Change gnome-python2 requirement to gnome-python2-canvas.
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
+- Update to 2.24.0
+
+* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
+- Update to 2.23.1
+- Update version requirements.
+
+* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
+- Update to 2.23.0
+
+* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
+- Don't drag in devel packages when installing gnome-python2-evolution
+ (RH bug #450932).
+
+* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
+- Rebuild
+
+* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
+- Rebuild against newer libedataserver and libtotem-plparser.
+
+* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
+- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
+
+* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
+- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
+
+* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
+- Update to 2.22.0
+- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
+
+* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
+- Update to 2.21.3
+
+* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
+- Rebuild with GCC 4.3
+
+* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
+- Update to 2.21.2
+
+* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
+- Update to 2.21.1
+- New subpackage: gnome-python2-evolution
+- Change totem-devel BR to totem-pl-parser-devel.
+
+* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
+- Rebuild against newer libtotem-plparser.so.
+
+* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
+- Update to 2.20.0
+
+* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
+- Rebuild for selinux ppc32 issue.
+
+* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
+- Rebuild
+
+* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
+- Update license fields
+
+* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
+- Update to 2.19.2
+
+* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
+- Rebuild against gtksourceview
+
+* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
+- Update to 2.19.1
+- Update versions of required packages.
+- Remove patch for GNOME bug #428697 (fixed upstream).
+
+* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
+- Rebuild again
+
+* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
+- Rebuild against new libwnck
+
+* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
+- Require metacity-devel, not metacity, for building.
+- Add patch for GNOME bug #428697 (adapt to API change).
+
+* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
+- Update to 2.18.0
+
+* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
+- Update to 2.17.93
+
+* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
+- Update to 2.17.92
+- Remove patch for GNOME bug #401760 (fixed upstream).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
+- Add patch for GNOME bug #401760 (plparser fails to build).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
+- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
+
+* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
+- Update to 2.17.3
+
+* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
+- Update to 2.17.2
+- New gnome-python2-bugbuddy subpackage.
+- Update version requirements to match configure.ac.
+- Use python_sitearch macro for installing libraries.
+
+* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
+- rebuild for python 2.5
+- BR gnome-python2-devel
+
+* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
+- Update to 2.17.1
+
+* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
+- Update to 2.16.0
+
+* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
+- Remove unecessary dependencies on gnome-python2-desktop from
+ -libwnck and -rsvg subpackages (OLPC)
+
+* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
+- Update to 2.15.90
+
+* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
+- Rebuild against dbus
+
+* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
+- Update to 2.15.4
+
+* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
+- rebuild
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
+- Create gnomekeyring subpackage
+- block out the nautilus-cd stuff
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
+- Bump for new nautilus-cd-burner
+
+* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
+- Update to 2.15.3
+
+* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
+- Update to 2.15.2
+- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
+
+* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
+- Add pygtk2 BR
+
+* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
+- Update to 2.14.0
+
+* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
+- Buildrequires: python-devel
+
+* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
+- bump again for double-long bug on ppc(64)
+
+* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
+- Initial build.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..2304e97
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit 135ce7f2110d5c53f64ded3558c70e7f8267ad4c
Author: Gwyn Ciesla <limburgher(a)gmail.com>
Date: Thu Sep 13 11:51:11 2018 -0500
BZ 1627331
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d7fd6f6..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gnome-python-desktop-2.31.1.tar.bz2
-/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
deleted file mode 100644
index 35c7be7..0000000
--- a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
+++ /dev/null
@@ -1,503 +0,0 @@
-From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
-From: Gustavo Carneiro <gjc(a)inescporto.pt>
-Date: Thu, 28 Jan 2010 16:10:16 +0000
-Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
-
----
- totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
- totem/plparser.override | 102 +----------------
- 2 files changed, 276 insertions(+), 122 deletions(-)
-
-diff --git a/totem/plparser.defs b/totem/plparser.defs
-index 184578e..9f25ff1 100644
---- a/totem/plparser.defs
-+++ b/totem/plparser.defs
-@@ -1,8 +1,24 @@
- ;; -*- scheme -*-
- ; object definitions ...
-+
-+(define-object Parser
-+ (in-module "totem.plparser")
-+ (parent "GObject")
-+ (c-name "TotemPlParser")
-+ (gtype-id "TOTEM_TYPE_PL_PARSER")
-+)
-+
-+(define-object Playlist
-+ (in-module "totem.playlist")
-+ (parent "GObject")
-+ (c-name "TotemPlPlaylist")
-+ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
-+)
-+
- ;; Enumerations and flags ...
-
--(define-enum ParserResult
-+
-+(define-enum PlParserResult
- (in-module "Totem")
- (c-name "TotemPlParserResult")
- (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
-@@ -10,10 +26,12 @@
- '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
- '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
- '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
-+ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
-+ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
- )
- )
-
--(define-enum ParserType
-+(define-enum PlParserType
- (in-module "Totem")
- (c-name "TotemPlParserType")
- (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
-@@ -21,47 +39,60 @@
- '("pls" "TOTEM_PL_PARSER_PLS")
- '("m3u" "TOTEM_PL_PARSER_M3U")
- '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
-+ '("xspf" "TOTEM_PL_PARSER_XSPF")
-+ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
- )
- )
-
--(define-enum ParserError
-+(define-enum PlParserError
- (in-module "Totem")
- (c-name "TotemPlParserError")
- (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
- (values
-- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
-- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
-+ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
-+ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
- )
- )
-
-
- ;; From totem-pl-parser.h
-
--(define-object Parser
-- (in-module "PlaylistParser")
-- (parent "GObject")
-- (c-name "TotemPlParser")
-- (gtype-id "TOTEM_TYPE_PL_PARSER")
--)
--
--(define-function totem_pl_parser_error_quark
-+(define-function error_quark
- (c-name "totem_pl_parser_error_quark")
- (return-type "GQuark")
- )
-
--(define-function totem_pl_parser_get_type
-+(define-function get_type
- (c-name "totem_pl_parser_get_type")
- (return-type "GType")
- )
-
--(define-method write
-+(define-function parse_duration
-+ (c-name "totem_pl_parser_parse_duration")
-+ (return-type "gint64")
-+ (parameters
-+ '("const-char*" "duration")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function parse_date
-+ (c-name "totem_pl_parser_parse_date")
-+ (return-type "guint64")
-+ (parameters
-+ '("const-char*" "date_str")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-method save
- (of-object "TotemPlParser")
-- (c-name "totem_pl_parser_write")
-+ (c-name "totem_pl_parser_save")
- (return-type "gboolean")
- (parameters
-- '("GtkTreeModel*" "model")
-- '("TotemPlParserIterFunc" "func")
-- '("const-char*" "output")
-+ '("TotemPlPlaylist*" "playlist")
-+ '("GFile*" "dest")
-+ '("const-gchar*" "title")
- '("TotemPlParserType" "type")
- '("GError**" "error")
- )
-@@ -76,20 +107,243 @@
- )
- )
-
-+(define-method add_ignored_mimetype
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_add_ignored_mimetype")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "mimetype")
-+ )
-+)
-+
- (define-method parse
- (of-object "TotemPlParser")
- (c-name "totem_pl_parser_parse")
- (return-type "TotemPlParserResult")
- (parameters
-- '("const-char*" "url")
-+ '("const-char*" "uri")
- '("gboolean" "fallback")
- )
- )
-
--(define-function totem_pl_parser_new
-+(define-method parse_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-method parse_finish
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_finish")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("GAsyncResult*" "async_result")
-+ '("GError**" "error")
-+ )
-+)
-+
-+(define-method parse_with_base
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ )
-+)
-+
-+(define-method parse_with_base_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-function new
- (c-name "totem_pl_parser_new")
- (is-constructor-of "TotemPlParser")
- (return-type "TotemPlParser*")
- )
-
-+(define-function metadata_get_type
-+ (c-name "totem_pl_parser_metadata_get_type")
-+ (return-type "GType")
-+)
-+
-+
-+
-+;; From totem-pl-parser-mini.h
-+
-+(define-function can_parse_from_data
-+ (c-name "totem_pl_parser_can_parse_from_data")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "data")
-+ '("gsize" "len")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function can_parse_from_filename
-+ (c-name "totem_pl_parser_can_parse_from_filename")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "filename")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+
-+
-+;; From totem-pl-playlist.h
-+
-+(define-function totem_pl_playlist_get_type
-+ (c-name "totem_pl_playlist_get_type")
-+ (return-type "GType")
-+)
-+
-+(define-function totem_pl_playlist_new
-+ (c-name "totem_pl_playlist_new")
-+ (is-constructor-of "TotemPlPlaylist")
-+ (return-type "TotemPlPlaylist*")
-+)
-+
-+(define-method size
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_size")
-+ (return-type "guint")
-+)
-+
-+(define-method prepend
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_prepend")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method append
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_append")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method insert
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_insert")
-+ (return-type "none")
-+ (parameters
-+ '("gint" "position")
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_first
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_first")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_next
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_next")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_prev
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_prev")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method get_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method get_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method get
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-+(define-method set_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method set_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method set
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-
-diff --git a/totem/plparser.override b/totem/plparser.override
-index 3cbe2fb..48e1853 100644
---- a/totem/plparser.override
-+++ b/totem/plparser.override
-@@ -5,7 +5,7 @@ headers
- #include "pygobject.h"
- #include "totem-pl-parser.h"
- #include "totem-pl-parser-builtins.h"
--#include <gtk/gtk.h>
-+#include "totem-pl-parser-mini.h"
- #include <glib.h>
-
- #include "config.h"
-@@ -14,108 +14,8 @@ headers
- modulename totem.plparser
- %%
- import gobject.GObject as PyGObject_Type
--import gtk.TreeModel as PyGtkTreeModel_Type
- %%
- ignore-glob
- *_get_type
- *_error_quark
--%%
--override totem_pl_parser_write kwargs
--
--typedef struct {
-- PyObject *func;
-- PyObject *data;
-- gboolean has_error;
--} PyPlParserIterFuncData;
--
--static void
--_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
-- gboolean *custom_title, gpointer user_data)
--{
-- PyObject *args = NULL;
-- PyObject *result = NULL;
-- char *tmp_uri = NULL, *tmp_title = NULL;
-- PyPlParserIterFuncData *data = user_data;
-- PyObject *py_custom_title = NULL;
--
-- if (data->has_error)
-- return;
--
-- if (data->data)
-- args = Py_BuildValue ("(NNO)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
-- data->data);
-- else
-- args = Py_BuildValue ("(NN)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
-- result = PyEval_CallObject (data->func, args);
-- Py_DECREF (args);
--
-- if (result == NULL) {
-- data->has_error = TRUE;
-- return;
-- }
-- /* ?! */
-- /* PyObject_Print (result, stdout, 0); */
--
-- if (PyString_Check (result)) {
-- tmp_uri = PyString_AsString (result);
-- if (tmp_uri == NULL) {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one"
-- " string or a tuple of two strings.");
-- data->has_error = TRUE;
-- }
-- } else if (!PyTuple_Check (result) ||
-- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
-- {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one "
-- "string or a tuple of two strings,"
-- " or two strings and a boolean.");
-- data->has_error = TRUE;
-- }
--
-- /* g_strdup handles NULL case for us */
-- *uri = g_strdup (tmp_uri);
-- *title = g_strdup (tmp_title);
-- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
--
-- Py_DECREF (result);
--}
-
--static PyObject *
--_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
--{
-- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
-- PyGObject *model;
-- char *output;
-- TotemPlParserType type;
-- GError *error = NULL;
-- PyPlParserIterFuncData data = {0, };
--
-- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
-- kwlist, &PyGtkTreeModel_Type, &model,
-- &data.func, &output, &type, &data.data))
-- return NULL;
-- /* verify arguments' integrity */
-- if (!PyCallable_Check (data.func)) {
-- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
-- return NULL;
-- }
-- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
-- GTK_TREE_MODEL(model->obj),
-- _pl_parser_iter_func,
-- output,type, &data, &error))
-- {
-- /* return an GError */
-- pyg_error_check(&error);
-- return NULL;
-- }
-- if (data.has_error)
-- return NULL;
-- Py_INCREF(Py_None);
-- return Py_None;
--}
---
-1.6.6.1
-
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..f0082fc
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+BZ 1627331
diff --git a/evince.patch b/evince.patch
deleted file mode 100644
index c7ba5c8..0000000
--- a/evince.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
---- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
-+++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
-@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
- dnl should we build the evince module
- AC_ARG_BINDING([evince],[YES])
- if $build_evince; then
-- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
-+ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
- build_evince=true,
- build_evince=false)
- if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
deleted file mode 100644
index 0be84c9..0000000
--- a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
---- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
-+++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
-@@ -100,7 +100,7 @@
- )
- )
-
--(define-enum WindowState
-+(define-flags WindowState
- (in-module "Wnck")
- (c-name "WnckWindowState")
- (gtype-id "WNCK_TYPE_WINDOW_STATE")
-@@ -121,7 +121,7 @@
- )
- )
-
--(define-enum WindowActions
-+(define-flags WindowActions
- (in-module "Wnck")
- (c-name "WnckWindowActions")
- (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
-@@ -184,7 +184,7 @@
- )
- )
-
--(define-enum WindowMoveResizeMask
-+(define-flags WindowMoveResizeMask
- (in-module "Wnck")
- (c-name "WnckWindowMoveResizeMask")
- (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
deleted file mode 100644
index 5054dd2..0000000
--- a/gnome-python-desktop-2.32.0-metacity-build.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Daniel Drake <dsd(a)laptop.org>
-
-Fix build against metacity-2.34.2. The port to GSettings
-removed these constants from the codebase.
-
-Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
-===================================================================
---- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
-+++ gnome-python-desktop-2.32.0/metacity/metacity.defs
-@@ -120,32 +120,6 @@
- )
- )
-
--(define-enum FocusMode
-- (in-module "Meta")
-- (c-name "MetaFocusMode")
--; (gtype-id "META_TYPE_FOCUS_MODE")
-- (values
-- '("click" "META_FOCUS_MODE_CLICK")
-- '("sloppy" "META_FOCUS_MODE_SLOPPY")
-- '("mouse" "META_FOCUS_MODE_MOUSE")
-- )
--)
--
--(define-enum ActionTitlebar
-- (in-module "Meta")
-- (c-name "MetaActionTitlebar")
--; (gtype-id "META_TYPE_ACTION_TITLEBAR")
-- (values
-- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
-- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
-- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
-- '("none" "META_ACTION_TITLEBAR_NONE")
-- '("lower" "META_ACTION_TITLEBAR_LOWER")
-- '("menu" "META_ACTION_TITLEBAR_MENU")
-- '("last" "META_ACTION_TITLEBAR_LAST")
-- )
--)
--
- (define-enum FrameType
- (in-module "Meta")
- (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
deleted file mode 100644
index bc0102f..0000000
--- a/gnome-python2-desktop.spec
+++ /dev/null
@@ -1,569 +0,0 @@
-# Last updated for version 2.29.1
-# The order here corresponds to that in configure.ac,
-# for easier comparison. Please do not alphabetize.
-%define pygtk_version 2.10.3
-%define glib_version 2.6.0
-%define gtk_version 2.4.0
-%define gnome_python_version 2.10.0
-%define gtksourceview_version 1:1.8.5-2
-%define libwnck_version 2.19.3
-%define libgtop_version 2.13.0
-%define gconf2_version 2.10.0
-%define librsvg2_version 2.13.93
-%define gnome_keyring_version 0.5.0
-%define gnome_desktop_version 2.10.0
-%define totem_version 1.4.0
-%define eds_version 1.4.0
-
-### Abstract ###
-
-Name: gnome-python2-desktop
-Version: 2.32.0
-Release: 33%{?dist}
-License: GPLv2+
-Summary: The sources for additional PyGNOME Python extension modules
-#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=616306
-Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=672016
-Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
-
-### Dependencies ###
-
-Requires: gnome-python2-canvas >= %{gnome_python_version}
-
-### Build Dependencies ###
-
-BuildRequires: glib2-devel >= %{glib_version}
-BuildRequires: GConf2-devel >= %{gconf2_version}
-BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
-BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
-BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
-BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
-BuildRequires: gnome-python2-devel >= %{gnome_python_version}
-BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
-BuildRequires: gtk2-devel >= %{gtk_version}
-BuildRequires: libgnomeui-devel
-BuildRequires: libgtop2-devel >= %{libgtop_version}
-BuildRequires: librsvg2-devel >= %{librsvg2_version}
-BuildRequires: libwnck-devel >= %{libwnck_version}
-BuildRequires: pygtk2-devel >= %{pygtk_version}
-BuildRequires: python2-devel
-BuildRequires: totem-pl-parser-devel >= %{totem_version}
-BuildRequires: autoconf, automake, libtool
-BuildRequires: /usr/bin/python
-
-%description
-The gnome-python-desktop package contains the source packages for additional
-Python bindings for GNOME. It should be used together with gnome-python.
-
-%package -n gnome-python2-libwnck
-Summary: Python bindings for interacting with libwnck
-License: LGPLv2
-Requires: libwnck >= %{libwnck_version}
-
-%description -n gnome-python2-libwnck
-This module contains a wrapper that allows the use of libwnck via
-Python.
-
-%package -n gnome-python2-libgtop2
-Summary: Python bindings for interacting with libgtop
-License: GPLv2+
-Requires: %{name} = %{version}-%{release}
-Requires: libgtop2 >= %{libgtop_version}
-
-%description -n gnome-python2-libgtop2
-This module contains a wrapper that allows the use of libgtop via
-Python.
-
-%package -n gnome-python2-totem
-Summary: Python bindings for interacting with totem
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: totem-pl-parser >= %{totem_version}
-Requires: gnome-python2-gconf
-
-%description -n gnome-python2-totem
-This module contains a wrapper that allows the use of totem
-via Python.
-
-%package -n gnome-python2-rsvg
-Summary: Python bindings for interacting with librsvg
-License: LGPLv2
-Requires: librsvg2 >= %{librsvg2_version}
-
-%description -n gnome-python2-rsvg
-This module contains a wrapper that allows the use of librsvg
-via Python.
-
-%package -n gnome-python2-gnomedesktop
-Summary: Python bindings for interacting with gnome-desktop
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-desktop >= %{gnome_desktop_version}
-
-%description -n gnome-python2-gnomedesktop
-This module contains a wrapper that allows the use of gnome-desktop
-via Python.
-
-%package -n gnome-python2-gnomekeyring
-Summary: Python bindings for interacting with gnome-keyring
-License: LGPLv2
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-keyring >= %{gnome_keyring_version}
-
-%description -n gnome-python2-gnomekeyring
-This module contains a wrapper that allows the use of gnome-keyring
-via Python.
-
-%prep
-%setup -q -n gnome-python-desktop-%{version}
-%patch0 -p1 -b .flags
-%patch1 -p1 -b .metacity-build
-
-%build
-# evince, brasero and mediaprofiles are disabled because these things have
-# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
-# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
-# stuff. - AdamW 2010/07
-# gnomeprint and gtksourceview are disabled due to removal of C libraries
-# from F23. - Yaakov 2015/07
-%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
-make
-
-%install
-make install DESTDIR=$RPM_BUILD_ROOT
-
-find $RPM_BUILD_ROOT -name '*.la' -delete
-
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
-
-
-%files
-%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
-%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
-%{_datadir}/pygtk
-
-%files -n gnome-python2-libwnck
-%{python2_sitearch}/gtk-2.0/wnck.so
-
-%files -n gnome-python2-libgtop2
-%{python2_sitearch}/gtk-2.0/gtop.so
-
-%files -n gnome-python2-totem
-%{python2_sitearch}/gtk-2.0/totem
-
-%files -n gnome-python2-rsvg
-%{python2_sitearch}/gtk-2.0/rsvg.so
-
-%files -n gnome-python2-gnomedesktop
-%{python2_sitearch}/gtk-2.0/gnomedesktop
-
-%files -n gnome-python2-gnomekeyring
-%{python2_sitearch}/gtk-2.0/gnomekeyring.so
-
-%changelog
-* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
-- Update Python 2 dependency declarations to new packaging standards
- (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
-
-* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
-- Rebuilt for libtotem-plparser soname bump
-
-* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
-- Rebuilt for libtotem-plparser soname bump
-
-* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
-- Rebuilt for libgtop2 soname bump
-
-* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
-- Remove obsolete dependencies and cleanup build
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
-- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
-- Drop broken gnome-python2-metacity subpackage
-
-* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
-- Rebuilt for libgtop2 soname bump
-
-* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
-- Rebuilt for totem-pl-parser soname bump
-
-* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
-- Drop dead gnome-panel dependency
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
-- Obsolete the dropped gnome-python2-evolution subpackage
-
-* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
-- Drop evolution bindings; they don't build against the latest EDS
-
-* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
-- Fix build against metacity-2.34.2
-
-* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
-* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
-- Rebuilt for new libedataserver
-
-* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
-- Rebuilt for new libedataserver
-
-* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
-- Rebuilt for new libedataserver
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
-- Update to 2.32.0 to match f14
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
-- Disable applets
-
-* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
-- gnome-media-profiles support also broken due to gtk3 port, so
- disable it
-- drop evince and brasero modules for now as they won't build due
- to evince and brasero being ported to gtk3
-
-* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
-- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
-
-* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
-- Update to 2.31.1
-
-* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
-- Rebuild against new brasero
-
-* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
-- rebuilt
-
-* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
-- Rebuild against latest libedataserver.
-
-* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
-- Rebuild against latest evolution
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
-- remember to commit patch to cvs
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
-- fix wnck gtypes to be flags, instead of enum
-
-* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
-- Drop bug-buddy package, we use abrt
-
-* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
-- Update to 2.30.0
-
-* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
-- Update to 2.29.92
-
-* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
-- add missing patch
-
-* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
-- Add patch to fix build
-
-* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
-- rebuilt
-
-* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
-- Rebuild against new totem-pl-parser.
-
-* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
-- Rebuild against new gnome-desktop.
-
-* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
-- Fix rpmlint warnings.
-
-* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
-- Provide a complete URI for the Source field.
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
-- Update to 2.29.1
-- Remove patch for GNOME bug #603231 (fixed upstream).
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
-- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
-
-* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
-- Rebuild for new evince
-
-* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
-- Update to 2.28.0
-
-* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
-- Update to 2.27.3
-
-* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
-- Disable nautilus-cd-burner bindings. Package is dead.
-
-* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
-
-* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
-- Update to 2.27.2
-
-* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
-- Change gnome-python2-evince to depend on evince-libs
-
-* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
-- Update to 2.27.1
-- New subpackage: gnome-python2-brasero
-
-* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
-- Removed cd-burner subpackage Require on nautilus-cd-burn
-
-* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
-- Rebuild against newer libnautilus-burn.
-
-* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
-- Update to 2.26.0
-
-* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
-- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
-
-* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
-* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
-- Update to 2.25.91
-
-* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
-- New subpackage: gnome-python2-evince
-
-* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
-- Update to 2.25.90
-
-* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
-- Update to 2.25.1
-- Remove patch for GNOME bug #564525 (fixed upstream).
-
-* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
-- make build
-
-* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
-- Update to 2.24.1
-- Add patch for GNOME bug #564525 (build failure).
-
-* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
-- Rebuild for new libgnome-desktop
-
-* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
-- Rebuild for Python 2.6
-
-* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
-- Update subpackage requirements, since gnome-python2 no longer drags in
- the world.
-
-* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
-- Rebuild
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
-- Change gnome-python2 requirement to gnome-python2-canvas.
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
-- Update to 2.24.0
-
-* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
-- Update to 2.23.1
-- Update version requirements.
-
-* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
-- Update to 2.23.0
-
-* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
-- Don't drag in devel packages when installing gnome-python2-evolution
- (RH bug #450932).
-
-* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
-- Rebuild
-
-* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
-- Rebuild against newer libedataserver and libtotem-plparser.
-
-* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
-- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
-
-* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
-- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
-
-* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
-- Update to 2.22.0
-- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
-
-* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
-- Update to 2.21.3
-
-* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
-- Rebuild with GCC 4.3
-
-* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
-- Update to 2.21.2
-
-* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
-- Update to 2.21.1
-- New subpackage: gnome-python2-evolution
-- Change totem-devel BR to totem-pl-parser-devel.
-
-* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
-- Rebuild against newer libtotem-plparser.so.
-
-* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
-- Update to 2.20.0
-
-* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
-- Rebuild for selinux ppc32 issue.
-
-* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
-- Rebuild
-
-* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
-- Update license fields
-
-* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
-- Update to 2.19.2
-
-* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
-- Rebuild against gtksourceview
-
-* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
-- Update to 2.19.1
-- Update versions of required packages.
-- Remove patch for GNOME bug #428697 (fixed upstream).
-
-* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
-- Rebuild again
-
-* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
-- Rebuild against new libwnck
-
-* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
-- Require metacity-devel, not metacity, for building.
-- Add patch for GNOME bug #428697 (adapt to API change).
-
-* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
-- Update to 2.18.0
-
-* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
-- Update to 2.17.93
-
-* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
-- Update to 2.17.92
-- Remove patch for GNOME bug #401760 (fixed upstream).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
-- Add patch for GNOME bug #401760 (plparser fails to build).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
-- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
-
-* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
-- Update to 2.17.3
-
-* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
-- Update to 2.17.2
-- New gnome-python2-bugbuddy subpackage.
-- Update version requirements to match configure.ac.
-- Use python_sitearch macro for installing libraries.
-
-* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
-- rebuild for python 2.5
-- BR gnome-python2-devel
-
-* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
-- Update to 2.17.1
-
-* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
-- Update to 2.16.0
-
-* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
-- Remove unecessary dependencies on gnome-python2-desktop from
- -libwnck and -rsvg subpackages (OLPC)
-
-* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
-- Update to 2.15.90
-
-* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
-- Rebuild against dbus
-
-* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
-- Update to 2.15.4
-
-* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
-- rebuild
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
-- Create gnomekeyring subpackage
-- block out the nautilus-cd stuff
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
-- Bump for new nautilus-cd-burner
-
-* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
-- Update to 2.15.3
-
-* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
-- Update to 2.15.2
-- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
-
-* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
-- Add pygtk2 BR
-
-* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
-- Update to 2.14.0
-
-* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
-- Buildrequires: python-devel
-
-* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
-- bump again for double-long bug on ppc(64)
-
-* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
-- Initial build.
-
diff --git a/sources b/sources
deleted file mode 100644
index 2304e97..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit ffc14df4ad267c263e5e13d0befafba286dede9c
Author: Gwyn Ciesla <limburgher(a)gmail.com>
Date: Wed Aug 1 15:04:10 2018 -0500
Fix FTBFS.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 853253f..bc0102f 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,5 +1,3 @@
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-
# Last updated for version 2.29.1
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
@@ -23,7 +21,6 @@ Name: gnome-python2-desktop
Version: 2.32.0
Release: 33%{?dist}
License: GPLv2+
-Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
@@ -57,6 +54,7 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python2-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, automake, libtool
+BuildRequires: /usr/bin/python
%description
The gnome-python-desktop package contains the source packages for additional
@@ -65,7 +63,6 @@ Python bindings for GNOME. It should be used together with gnome-python.
%package -n gnome-python2-libwnck
Summary: Python bindings for interacting with libwnck
License: LGPLv2
-Group: Development/Languages
Requires: libwnck >= %{libwnck_version}
%description -n gnome-python2-libwnck
@@ -75,7 +72,6 @@ Python.
%package -n gnome-python2-libgtop2
Summary: Python bindings for interacting with libgtop
License: GPLv2+
-Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: libgtop2 >= %{libgtop_version}
@@ -86,7 +82,6 @@ Python.
%package -n gnome-python2-totem
Summary: Python bindings for interacting with totem
License: LGPLv2
-Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: totem-pl-parser >= %{totem_version}
Requires: gnome-python2-gconf
@@ -98,7 +93,6 @@ via Python.
%package -n gnome-python2-rsvg
Summary: Python bindings for interacting with librsvg
License: LGPLv2
-Group: Development/Languages
Requires: librsvg2 >= %{librsvg2_version}
%description -n gnome-python2-rsvg
@@ -108,7 +102,6 @@ via Python.
%package -n gnome-python2-gnomedesktop
Summary: Python bindings for interacting with gnome-desktop
License: LGPLv2
-Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: gnome-desktop >= %{gnome_desktop_version}
@@ -119,7 +112,6 @@ via Python.
%package -n gnome-python2-gnomekeyring
Summary: Python bindings for interacting with gnome-keyring
License: LGPLv2
-Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: gnome-keyring >= %{gnome_keyring_version}
commit 450d40f0332bd008ef0ed4acaf6d330412aec4d7
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jul 30 00:22:23 2018 +0200
%{python_sitearch} %{python2_sitearch}
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b071e53..853253f 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -157,22 +157,22 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{_datadir}/pygtk
%files -n gnome-python2-libwnck
-%{python_sitearch}/gtk-2.0/wnck.so
+%{python2_sitearch}/gtk-2.0/wnck.so
%files -n gnome-python2-libgtop2
-%{python_sitearch}/gtk-2.0/gtop.so
+%{python2_sitearch}/gtk-2.0/gtop.so
%files -n gnome-python2-totem
-%{python_sitearch}/gtk-2.0/totem
+%{python2_sitearch}/gtk-2.0/totem
%files -n gnome-python2-rsvg
-%{python_sitearch}/gtk-2.0/rsvg.so
+%{python2_sitearch}/gtk-2.0/rsvg.so
%files -n gnome-python2-gnomedesktop
-%{python_sitearch}/gtk-2.0/gnomedesktop
+%{python2_sitearch}/gtk-2.0/gnomedesktop
%files -n gnome-python2-gnomekeyring
-%{python_sitearch}/gtk-2.0/gnomekeyring.so
+%{python2_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
commit 67c203c6729d9559a957a2660f9546eb06ed39b1
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 13 02:57:19 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e126edf..b071e53 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 32%{?dist}
+Release: 33%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit 15d5d7658393fc7fd4e0177dcba28a28e6cd6162
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Feb 7 13:26:36 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 8be60c4..e126edf 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 31%{?dist}
+Release: 32%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
commit 34cf30d325bdf05a9793ca21969f68afd212efbc
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Wed Feb 7 02:06:21 2018 +0100
Update Python 2 dependency declarations to new packaging standards
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6579917..8be60c4 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 30%{?dist}
+Release: 31%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -54,7 +54,7 @@ BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
BuildRequires: libwnck-devel >= %{libwnck_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
-BuildRequires: python-devel
+BuildRequires: python2-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, automake, libtool
@@ -175,6 +175,10 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 07 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 2.32.0-31
+- Update Python 2 dependency declarations to new packaging standards
+ (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
+
* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
- Rebuilt for libtotem-plparser soname bump
commit 79130ea9783048833f9ebb9ed9bab735c7c7ea8e
Author: Kalev Lember <klember(a)redhat.com>
Date: Thu Aug 10 23:01:58 2017 +0200
Rebuilt for libtotem-plparser soname bump
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 7c6b2b5..6579917 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 29%{?dist}
+Release: 30%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Aug 10 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-30
+- Rebuilt for libtotem-plparser soname bump
+
* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
- Rebuilt for libtotem-plparser soname bump
commit 5cf430d7a668fd0686a07214bf70f2a374a8c136
Author: Kalev Lember <klember(a)redhat.com>
Date: Mon Jul 31 15:01:27 2017 +0100
Rebuilt for libtotem-plparser soname bump
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index a1e525d..7c6b2b5 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 28%{?dist}
+Release: 29%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jul 31 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-29
+- Rebuilt for libtotem-plparser soname bump
+
* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
commit 7c1044ddd4755581fa20589a833055ee757988fc
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jul 26 10:48:24 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 816c63f..a1e525d 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 27%{?dist}
+Release: 28%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
- Rebuilt for libgtop2 soname bump
commit 26430ac6027e8ae51723bcbc38088bc74a5cff37
Author: Kalev Lember <klember(a)redhat.com>
Date: Tue Jun 13 08:13:31 2017 +0200
Rebuilt for libgtop2 soname bump
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index d2b51be..816c63f 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 26%{?dist}
+Release: 27%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -175,6 +175,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jun 13 2017 Kalev Lember <klember(a)redhat.com> - 2.32.0-27
+- Rebuilt for libgtop2 soname bump
+
* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
- Remove obsolete dependencies and cleanup build
commit 022752bfd706215d0989aaf95b27873b565b17e5
Author: Peter Robinson <pbrobinson(a)gmail.com>
Date: Fri Mar 24 16:52:11 2017 +0000
Remove obsolete dependencies and cleanup build
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9501561..d2b51be 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -7,26 +7,21 @@
%define glib_version 2.6.0
%define gtk_version 2.4.0
%define gnome_python_version 2.10.0
-# Version not necessary for libgnomeprintui
%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
-# Version not necessary for libnautilus_burn
-%define brasero_version 2.29
-%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
%define gnome_desktop_version 2.10.0
%define totem_version 1.4.0
%define eds_version 1.4.0
-%define evince_version 2.29
### Abstract ###
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 25%{?dist}
+Release: 26%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -45,8 +40,6 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
-#BuildRequires: brasero-devel >= %{brasero_version}
-#BuildRequires: evince-devel >= %{evince_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
@@ -64,39 +57,11 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, automake, libtool
-%ifnarch s390 s390x
-BuildRequires: gnome-media-devel >= %{gnome_media_version}
-%endif
-
-Obsoletes: gnome-python2-evolution < 2.32.0-12
-Obsoletes: gnome-python2-metacity < 2.32.0-20
-Obsoletes: gnome-python2-gnomeprint < 2.32.0-22
-Obsoletes: gnome-python2-gtksourceview < 2.32.0-22
%description
The gnome-python-desktop package contains the source packages for additional
Python bindings for GNOME. It should be used together with gnome-python.
-#package -n gnome-python2-brasero
-#Summary: Python bindings for interacting with brasero
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: brasero-libs >= %{brasero_version}
-
-#description -n gnome-python2-brasero
-#This module contains a wrapper that allows the use of brasero via Python.
-
-#package -n gnome-python2-evince
-#Summary: Python bindings for interacting with evince
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: evince-libs >= %{evince_version}
-
-#description -n gnome-python2-evince
-#This module contains a wrapper that allows the use of evince via Python.
-
%package -n gnome-python2-libwnck
Summary: Python bindings for interacting with libwnck
License: LGPLv2
@@ -178,60 +143,41 @@ via Python.
make
%install
-rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
-find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
+find $RPM_BUILD_ROOT -name '*.la' -delete
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
-%clean
-rm -rf $RPM_BUILD_ROOT
%files
-%defattr(-,root,root,-)
%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
%{_datadir}/pygtk
-#files -n gnome-python2-brasero
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/braseroburn.so
-#{python_sitearch}/gtk-2.0/braseromedia.so
-
-#files -n gnome-python2-evince
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/evince.so
-
%files -n gnome-python2-libwnck
-%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/wnck.so
%files -n gnome-python2-libgtop2
-%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gtop.so
%files -n gnome-python2-totem
-%defattr(-,root,root,-)
-%ifnarch s390 s390x
-#{python_sitearch}/gtk-2.0/mediaprofiles.so
-%endif
%{python_sitearch}/gtk-2.0/totem
%files -n gnome-python2-rsvg
-%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/rsvg.so
%files -n gnome-python2-gnomedesktop
-%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomedesktop
%files -n gnome-python2-gnomekeyring
-%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Mar 24 2017 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-26
+- Remove obsolete dependencies and cleanup build
+
* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
commit 9580e587f576fa227f32aac53f000ebcead19611
Author: Gwyn Ciesla <limburgher(a)gmail.com>
Date: Fri Mar 24 10:27:47 2017 -0500
Revert "2017-03-18: Retired because it depends on libgnome-media-profiles, which was"
This reverts commit d305b9c5cf3d87d8a05ce94d6dedde40da4cc680.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7fd6f6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+gnome-python-desktop-2.31.1.tar.bz2
+/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
new file mode 100644
index 0000000..35c7be7
--- /dev/null
+++ b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
@@ -0,0 +1,503 @@
+From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
+From: Gustavo Carneiro <gjc(a)inescporto.pt>
+Date: Thu, 28 Jan 2010 16:10:16 +0000
+Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
+
+---
+ totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
+ totem/plparser.override | 102 +----------------
+ 2 files changed, 276 insertions(+), 122 deletions(-)
+
+diff --git a/totem/plparser.defs b/totem/plparser.defs
+index 184578e..9f25ff1 100644
+--- a/totem/plparser.defs
++++ b/totem/plparser.defs
+@@ -1,8 +1,24 @@
+ ;; -*- scheme -*-
+ ; object definitions ...
++
++(define-object Parser
++ (in-module "totem.plparser")
++ (parent "GObject")
++ (c-name "TotemPlParser")
++ (gtype-id "TOTEM_TYPE_PL_PARSER")
++)
++
++(define-object Playlist
++ (in-module "totem.playlist")
++ (parent "GObject")
++ (c-name "TotemPlPlaylist")
++ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
++)
++
+ ;; Enumerations and flags ...
+
+-(define-enum ParserResult
++
++(define-enum PlParserResult
+ (in-module "Totem")
+ (c-name "TotemPlParserResult")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
+@@ -10,10 +26,12 @@
+ '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
+ '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
+ '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
++ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
++ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
+ )
+ )
+
+-(define-enum ParserType
++(define-enum PlParserType
+ (in-module "Totem")
+ (c-name "TotemPlParserType")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
+@@ -21,47 +39,60 @@
+ '("pls" "TOTEM_PL_PARSER_PLS")
+ '("m3u" "TOTEM_PL_PARSER_M3U")
+ '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
++ '("xspf" "TOTEM_PL_PARSER_XSPF")
++ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
+ )
+ )
+
+-(define-enum ParserError
++(define-enum PlParserError
+ (in-module "Totem")
+ (c-name "TotemPlParserError")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
+ (values
+- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
+- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
++ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
++ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
+ )
+ )
+
+
+ ;; From totem-pl-parser.h
+
+-(define-object Parser
+- (in-module "PlaylistParser")
+- (parent "GObject")
+- (c-name "TotemPlParser")
+- (gtype-id "TOTEM_TYPE_PL_PARSER")
+-)
+-
+-(define-function totem_pl_parser_error_quark
++(define-function error_quark
+ (c-name "totem_pl_parser_error_quark")
+ (return-type "GQuark")
+ )
+
+-(define-function totem_pl_parser_get_type
++(define-function get_type
+ (c-name "totem_pl_parser_get_type")
+ (return-type "GType")
+ )
+
+-(define-method write
++(define-function parse_duration
++ (c-name "totem_pl_parser_parse_duration")
++ (return-type "gint64")
++ (parameters
++ '("const-char*" "duration")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function parse_date
++ (c-name "totem_pl_parser_parse_date")
++ (return-type "guint64")
++ (parameters
++ '("const-char*" "date_str")
++ '("gboolean" "debug")
++ )
++)
++
++(define-method save
+ (of-object "TotemPlParser")
+- (c-name "totem_pl_parser_write")
++ (c-name "totem_pl_parser_save")
+ (return-type "gboolean")
+ (parameters
+- '("GtkTreeModel*" "model")
+- '("TotemPlParserIterFunc" "func")
+- '("const-char*" "output")
++ '("TotemPlPlaylist*" "playlist")
++ '("GFile*" "dest")
++ '("const-gchar*" "title")
+ '("TotemPlParserType" "type")
+ '("GError**" "error")
+ )
+@@ -76,20 +107,243 @@
+ )
+ )
+
++(define-method add_ignored_mimetype
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_add_ignored_mimetype")
++ (return-type "none")
++ (parameters
++ '("const-char*" "mimetype")
++ )
++)
++
+ (define-method parse
+ (of-object "TotemPlParser")
+ (c-name "totem_pl_parser_parse")
+ (return-type "TotemPlParserResult")
+ (parameters
+- '("const-char*" "url")
++ '("const-char*" "uri")
+ '("gboolean" "fallback")
+ )
+ )
+
+-(define-function totem_pl_parser_new
++(define-method parse_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-method parse_finish
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_finish")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("GAsyncResult*" "async_result")
++ '("GError**" "error")
++ )
++)
++
++(define-method parse_with_base
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ )
++)
++
++(define-method parse_with_base_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-function new
+ (c-name "totem_pl_parser_new")
+ (is-constructor-of "TotemPlParser")
+ (return-type "TotemPlParser*")
+ )
+
++(define-function metadata_get_type
++ (c-name "totem_pl_parser_metadata_get_type")
++ (return-type "GType")
++)
++
++
++
++;; From totem-pl-parser-mini.h
++
++(define-function can_parse_from_data
++ (c-name "totem_pl_parser_can_parse_from_data")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "data")
++ '("gsize" "len")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function can_parse_from_filename
++ (c-name "totem_pl_parser_can_parse_from_filename")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "filename")
++ '("gboolean" "debug")
++ )
++)
++
++
++
++;; From totem-pl-playlist.h
++
++(define-function totem_pl_playlist_get_type
++ (c-name "totem_pl_playlist_get_type")
++ (return-type "GType")
++)
++
++(define-function totem_pl_playlist_new
++ (c-name "totem_pl_playlist_new")
++ (is-constructor-of "TotemPlPlaylist")
++ (return-type "TotemPlPlaylist*")
++)
++
++(define-method size
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_size")
++ (return-type "guint")
++)
++
++(define-method prepend
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_prepend")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method append
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_append")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method insert
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_insert")
++ (return-type "none")
++ (parameters
++ '("gint" "position")
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_first
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_first")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_next
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_next")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_prev
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_prev")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method get_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method get_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method get
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
++(define-method set_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method set_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method set
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
+
+diff --git a/totem/plparser.override b/totem/plparser.override
+index 3cbe2fb..48e1853 100644
+--- a/totem/plparser.override
++++ b/totem/plparser.override
+@@ -5,7 +5,7 @@ headers
+ #include "pygobject.h"
+ #include "totem-pl-parser.h"
+ #include "totem-pl-parser-builtins.h"
+-#include <gtk/gtk.h>
++#include "totem-pl-parser-mini.h"
+ #include <glib.h>
+
+ #include "config.h"
+@@ -14,108 +14,8 @@ headers
+ modulename totem.plparser
+ %%
+ import gobject.GObject as PyGObject_Type
+-import gtk.TreeModel as PyGtkTreeModel_Type
+ %%
+ ignore-glob
+ *_get_type
+ *_error_quark
+-%%
+-override totem_pl_parser_write kwargs
+-
+-typedef struct {
+- PyObject *func;
+- PyObject *data;
+- gboolean has_error;
+-} PyPlParserIterFuncData;
+-
+-static void
+-_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
+- gboolean *custom_title, gpointer user_data)
+-{
+- PyObject *args = NULL;
+- PyObject *result = NULL;
+- char *tmp_uri = NULL, *tmp_title = NULL;
+- PyPlParserIterFuncData *data = user_data;
+- PyObject *py_custom_title = NULL;
+-
+- if (data->has_error)
+- return;
+-
+- if (data->data)
+- args = Py_BuildValue ("(NNO)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
+- data->data);
+- else
+- args = Py_BuildValue ("(NN)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
+- result = PyEval_CallObject (data->func, args);
+- Py_DECREF (args);
+-
+- if (result == NULL) {
+- data->has_error = TRUE;
+- return;
+- }
+- /* ?! */
+- /* PyObject_Print (result, stdout, 0); */
+-
+- if (PyString_Check (result)) {
+- tmp_uri = PyString_AsString (result);
+- if (tmp_uri == NULL) {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one"
+- " string or a tuple of two strings.");
+- data->has_error = TRUE;
+- }
+- } else if (!PyTuple_Check (result) ||
+- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
+- {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one "
+- "string or a tuple of two strings,"
+- " or two strings and a boolean.");
+- data->has_error = TRUE;
+- }
+-
+- /* g_strdup handles NULL case for us */
+- *uri = g_strdup (tmp_uri);
+- *title = g_strdup (tmp_title);
+- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
+-
+- Py_DECREF (result);
+-}
+
+-static PyObject *
+-_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
+- PyGObject *model;
+- char *output;
+- TotemPlParserType type;
+- GError *error = NULL;
+- PyPlParserIterFuncData data = {0, };
+-
+- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
+- kwlist, &PyGtkTreeModel_Type, &model,
+- &data.func, &output, &type, &data.data))
+- return NULL;
+- /* verify arguments' integrity */
+- if (!PyCallable_Check (data.func)) {
+- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
+- return NULL;
+- }
+- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
+- GTK_TREE_MODEL(model->obj),
+- _pl_parser_iter_func,
+- output,type, &data, &error))
+- {
+- /* return an GError */
+- pyg_error_check(&error);
+- return NULL;
+- }
+- if (data.has_error)
+- return NULL;
+- Py_INCREF(Py_None);
+- return Py_None;
+-}
+--
+1.6.6.1
+
diff --git a/dead.package b/dead.package
deleted file mode 100644
index c9b5d84..0000000
--- a/dead.package
+++ /dev/null
@@ -1,3 +0,0 @@
-2017-03-18: Retired because it depends on libgnome-media-profiles, which was
-retired, because it was orphaned for more than six weeks.
-
diff --git a/evince.patch b/evince.patch
new file mode 100644
index 0000000..c7ba5c8
--- /dev/null
+++ b/evince.patch
@@ -0,0 +1,12 @@
+diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
+--- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
++++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
+@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
+ dnl should we build the evince module
+ AC_ARG_BINDING([evince],[YES])
+ if $build_evince; then
+- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
++ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
+ build_evince=true,
+ build_evince=false)
+ if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
new file mode 100644
index 0000000..0be84c9
--- /dev/null
+++ b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -0,0 +1,30 @@
+diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
+--- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
++++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
+@@ -100,7 +100,7 @@
+ )
+ )
+
+-(define-enum WindowState
++(define-flags WindowState
+ (in-module "Wnck")
+ (c-name "WnckWindowState")
+ (gtype-id "WNCK_TYPE_WINDOW_STATE")
+@@ -121,7 +121,7 @@
+ )
+ )
+
+-(define-enum WindowActions
++(define-flags WindowActions
+ (in-module "Wnck")
+ (c-name "WnckWindowActions")
+ (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
+@@ -184,7 +184,7 @@
+ )
+ )
+
+-(define-enum WindowMoveResizeMask
++(define-flags WindowMoveResizeMask
+ (in-module "Wnck")
+ (c-name "WnckWindowMoveResizeMask")
+ (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
new file mode 100644
index 0000000..5054dd2
--- /dev/null
+++ b/gnome-python-desktop-2.32.0-metacity-build.patch
@@ -0,0 +1,42 @@
+From: Daniel Drake <dsd(a)laptop.org>
+
+Fix build against metacity-2.34.2. The port to GSettings
+removed these constants from the codebase.
+
+Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
+===================================================================
+--- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
++++ gnome-python-desktop-2.32.0/metacity/metacity.defs
+@@ -120,32 +120,6 @@
+ )
+ )
+
+-(define-enum FocusMode
+- (in-module "Meta")
+- (c-name "MetaFocusMode")
+-; (gtype-id "META_TYPE_FOCUS_MODE")
+- (values
+- '("click" "META_FOCUS_MODE_CLICK")
+- '("sloppy" "META_FOCUS_MODE_SLOPPY")
+- '("mouse" "META_FOCUS_MODE_MOUSE")
+- )
+-)
+-
+-(define-enum ActionTitlebar
+- (in-module "Meta")
+- (c-name "MetaActionTitlebar")
+-; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+- (values
+- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_TITLEBAR_NONE")
+- '("lower" "META_ACTION_TITLEBAR_LOWER")
+- '("menu" "META_ACTION_TITLEBAR_MENU")
+- '("last" "META_ACTION_TITLEBAR_LAST")
+- )
+-)
+-
+ (define-enum FrameType
+ (in-module "Meta")
+ (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
new file mode 100644
index 0000000..9501561
--- /dev/null
+++ b/gnome-python2-desktop.spec
@@ -0,0 +1,609 @@
+%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+
+# Last updated for version 2.29.1
+# The order here corresponds to that in configure.ac,
+# for easier comparison. Please do not alphabetize.
+%define pygtk_version 2.10.3
+%define glib_version 2.6.0
+%define gtk_version 2.4.0
+%define gnome_python_version 2.10.0
+# Version not necessary for libgnomeprintui
+%define gtksourceview_version 1:1.8.5-2
+%define libwnck_version 2.19.3
+%define libgtop_version 2.13.0
+# Version not necessary for libnautilus_burn
+%define brasero_version 2.29
+%define gnome_media_version 2.10.0
+%define gconf2_version 2.10.0
+%define librsvg2_version 2.13.93
+%define gnome_keyring_version 0.5.0
+%define gnome_desktop_version 2.10.0
+%define totem_version 1.4.0
+%define eds_version 1.4.0
+%define evince_version 2.29
+
+### Abstract ###
+
+Name: gnome-python2-desktop
+Version: 2.32.0
+Release: 25%{?dist}
+License: GPLv2+
+Group: Development/Languages
+Summary: The sources for additional PyGNOME Python extension modules
+#VCS: git://git.gnome.org/gnome-python-desktop
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=616306
+Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=672016
+Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
+
+### Dependencies ###
+
+Requires: gnome-python2-canvas >= %{gnome_python_version}
+
+### Build Dependencies ###
+
+#BuildRequires: brasero-devel >= %{brasero_version}
+#BuildRequires: evince-devel >= %{evince_version}
+BuildRequires: glib2-devel >= %{glib_version}
+BuildRequires: GConf2-devel >= %{gconf2_version}
+BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
+BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
+BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
+BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
+BuildRequires: gnome-python2-devel >= %{gnome_python_version}
+BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
+BuildRequires: gtk2-devel >= %{gtk_version}
+BuildRequires: libgnomeui-devel
+BuildRequires: libgtop2-devel >= %{libgtop_version}
+BuildRequires: librsvg2-devel >= %{librsvg2_version}
+BuildRequires: libwnck-devel >= %{libwnck_version}
+BuildRequires: pygtk2-devel >= %{pygtk_version}
+BuildRequires: python-devel
+BuildRequires: totem-pl-parser-devel >= %{totem_version}
+BuildRequires: autoconf, automake, libtool
+%ifnarch s390 s390x
+BuildRequires: gnome-media-devel >= %{gnome_media_version}
+%endif
+
+Obsoletes: gnome-python2-evolution < 2.32.0-12
+Obsoletes: gnome-python2-metacity < 2.32.0-20
+Obsoletes: gnome-python2-gnomeprint < 2.32.0-22
+Obsoletes: gnome-python2-gtksourceview < 2.32.0-22
+
+%description
+The gnome-python-desktop package contains the source packages for additional
+Python bindings for GNOME. It should be used together with gnome-python.
+
+#package -n gnome-python2-brasero
+#Summary: Python bindings for interacting with brasero
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: brasero-libs >= %{brasero_version}
+
+#description -n gnome-python2-brasero
+#This module contains a wrapper that allows the use of brasero via Python.
+
+#package -n gnome-python2-evince
+#Summary: Python bindings for interacting with evince
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: evince-libs >= %{evince_version}
+
+#description -n gnome-python2-evince
+#This module contains a wrapper that allows the use of evince via Python.
+
+%package -n gnome-python2-libwnck
+Summary: Python bindings for interacting with libwnck
+License: LGPLv2
+Group: Development/Languages
+Requires: libwnck >= %{libwnck_version}
+
+%description -n gnome-python2-libwnck
+This module contains a wrapper that allows the use of libwnck via
+Python.
+
+%package -n gnome-python2-libgtop2
+Summary: Python bindings for interacting with libgtop
+License: GPLv2+
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: libgtop2 >= %{libgtop_version}
+
+%description -n gnome-python2-libgtop2
+This module contains a wrapper that allows the use of libgtop via
+Python.
+
+%package -n gnome-python2-totem
+Summary: Python bindings for interacting with totem
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: totem-pl-parser >= %{totem_version}
+Requires: gnome-python2-gconf
+
+%description -n gnome-python2-totem
+This module contains a wrapper that allows the use of totem
+via Python.
+
+%package -n gnome-python2-rsvg
+Summary: Python bindings for interacting with librsvg
+License: LGPLv2
+Group: Development/Languages
+Requires: librsvg2 >= %{librsvg2_version}
+
+%description -n gnome-python2-rsvg
+This module contains a wrapper that allows the use of librsvg
+via Python.
+
+%package -n gnome-python2-gnomedesktop
+Summary: Python bindings for interacting with gnome-desktop
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-desktop >= %{gnome_desktop_version}
+
+%description -n gnome-python2-gnomedesktop
+This module contains a wrapper that allows the use of gnome-desktop
+via Python.
+
+%package -n gnome-python2-gnomekeyring
+Summary: Python bindings for interacting with gnome-keyring
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-keyring >= %{gnome_keyring_version}
+
+%description -n gnome-python2-gnomekeyring
+This module contains a wrapper that allows the use of gnome-keyring
+via Python.
+
+%prep
+%setup -q -n gnome-python-desktop-%{version}
+%patch0 -p1 -b .flags
+%patch1 -p1 -b .metacity-build
+
+%build
+# evince, brasero and mediaprofiles are disabled because these things have
+# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
+# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
+# stuff. - AdamW 2010/07
+# gnomeprint and gtksourceview are disabled due to removal of C libraries
+# from F23. - Yaakov 2015/07
+%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
+
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
+%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
+%{_datadir}/pygtk
+
+#files -n gnome-python2-brasero
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/braseroburn.so
+#{python_sitearch}/gtk-2.0/braseromedia.so
+
+#files -n gnome-python2-evince
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/evince.so
+
+%files -n gnome-python2-libwnck
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/wnck.so
+
+%files -n gnome-python2-libgtop2
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gtop.so
+
+%files -n gnome-python2-totem
+%defattr(-,root,root,-)
+%ifnarch s390 s390x
+#{python_sitearch}/gtk-2.0/mediaprofiles.so
+%endif
+%{python_sitearch}/gtk-2.0/totem
+
+%files -n gnome-python2-rsvg
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/rsvg.so
+
+%files -n gnome-python2-gnomedesktop
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gnomedesktop
+
+%files -n gnome-python2-gnomekeyring
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gnomekeyring.so
+
+%changelog
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
+- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
+- Drop broken gnome-python2-metacity subpackage
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
+- Rebuilt for libgtop2 soname bump
+
+* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
+- Rebuilt for totem-pl-parser soname bump
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
+- Drop dead gnome-panel dependency
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
+- Obsolete the dropped gnome-python2-evolution subpackage
+
+* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
+- Drop evolution bindings; they don't build against the latest EDS
+
+* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
+- Fix build against metacity-2.34.2
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
+- Rebuilt for new libedataserver
+
+* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
+- Rebuilt for new libedataserver
+
+* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
+- Rebuilt for new libedataserver
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
+- Update to 2.32.0 to match f14
+
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
+- Disable applets
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
+- gnome-media-profiles support also broken due to gtk3 port, so
+ disable it
+- drop evince and brasero modules for now as they won't build due
+ to evince and brasero being ported to gtk3
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
+- Update to 2.31.1
+
+* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
+- Rebuild against new brasero
+
+* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
+- rebuilt
+
+* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
+- Rebuild against latest libedataserver.
+
+* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
+- Rebuild against latest evolution
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
+- remember to commit patch to cvs
+
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
+- fix wnck gtypes to be flags, instead of enum
+
+* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
+- Drop bug-buddy package, we use abrt
+
+* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
+- Update to 2.30.0
+
+* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
+- Update to 2.29.92
+
+* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
+- add missing patch
+
+* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
+- Add patch to fix build
+
+* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
+- rebuilt
+
+* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
+- Rebuild against new totem-pl-parser.
+
+* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
+- Rebuild against new gnome-desktop.
+
+* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
+- Fix rpmlint warnings.
+
+* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
+- Provide a complete URI for the Source field.
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
+- Update to 2.29.1
+- Remove patch for GNOME bug #603231 (fixed upstream).
+
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
+- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
+
+* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
+- Rebuild for new evince
+
+* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
+- Update to 2.28.0
+
+* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
+- Update to 2.27.3
+
+* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
+- Disable nautilus-cd-burner bindings. Package is dead.
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
+- Update to 2.27.2
+
+* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
+- Change gnome-python2-evince to depend on evince-libs
+
+* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
+- Update to 2.27.1
+- New subpackage: gnome-python2-brasero
+
+* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
+- Removed cd-burner subpackage Require on nautilus-cd-burn
+
+* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
+- Rebuild against newer libnautilus-burn.
+
+* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
+- Update to 2.26.0
+
+* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
+- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
+- Update to 2.25.91
+
+* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
+- New subpackage: gnome-python2-evince
+
+* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
+- Update to 2.25.90
+
+* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
+- Update to 2.25.1
+- Remove patch for GNOME bug #564525 (fixed upstream).
+
+* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
+- make build
+
+* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
+- Update to 2.24.1
+- Add patch for GNOME bug #564525 (build failure).
+
+* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
+- Rebuild for new libgnome-desktop
+
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
+- Rebuild for Python 2.6
+
+* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
+- Update subpackage requirements, since gnome-python2 no longer drags in
+ the world.
+
+* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
+- Rebuild
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
+- Change gnome-python2 requirement to gnome-python2-canvas.
+
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
+- Update to 2.24.0
+
+* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
+- Update to 2.23.1
+- Update version requirements.
+
+* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
+- Update to 2.23.0
+
+* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
+- Don't drag in devel packages when installing gnome-python2-evolution
+ (RH bug #450932).
+
+* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
+- Rebuild
+
+* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
+- Rebuild against newer libedataserver and libtotem-plparser.
+
+* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
+- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
+
+* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
+- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
+
+* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
+- Update to 2.22.0
+- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
+
+* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
+- Update to 2.21.3
+
+* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
+- Rebuild with GCC 4.3
+
+* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
+- Update to 2.21.2
+
+* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
+- Update to 2.21.1
+- New subpackage: gnome-python2-evolution
+- Change totem-devel BR to totem-pl-parser-devel.
+
+* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
+- Rebuild against newer libtotem-plparser.so.
+
+* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
+- Update to 2.20.0
+
+* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
+- Rebuild for selinux ppc32 issue.
+
+* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
+- Rebuild
+
+* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
+- Update license fields
+
+* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
+- Update to 2.19.2
+
+* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
+- Rebuild against gtksourceview
+
+* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
+- Update to 2.19.1
+- Update versions of required packages.
+- Remove patch for GNOME bug #428697 (fixed upstream).
+
+* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
+- Rebuild again
+
+* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
+- Rebuild against new libwnck
+
+* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
+- Require metacity-devel, not metacity, for building.
+- Add patch for GNOME bug #428697 (adapt to API change).
+
+* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
+- Update to 2.18.0
+
+* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
+- Update to 2.17.93
+
+* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
+- Update to 2.17.92
+- Remove patch for GNOME bug #401760 (fixed upstream).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
+- Add patch for GNOME bug #401760 (plparser fails to build).
+
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
+- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
+
+* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
+- Update to 2.17.3
+
+* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
+- Update to 2.17.2
+- New gnome-python2-bugbuddy subpackage.
+- Update version requirements to match configure.ac.
+- Use python_sitearch macro for installing libraries.
+
+* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
+- rebuild for python 2.5
+- BR gnome-python2-devel
+
+* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
+- Update to 2.17.1
+
+* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
+- Update to 2.16.0
+
+* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
+- Remove unecessary dependencies on gnome-python2-desktop from
+ -libwnck and -rsvg subpackages (OLPC)
+
+* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
+- Update to 2.15.90
+
+* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
+- Rebuild against dbus
+
+* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
+- Update to 2.15.4
+
+* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
+- rebuild
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
+- Create gnomekeyring subpackage
+- block out the nautilus-cd stuff
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
+- Bump for new nautilus-cd-burner
+
+* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
+- Update to 2.15.3
+
+* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
+- Update to 2.15.2
+- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
+
+* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
+- Add pygtk2 BR
+
+* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
+- Update to 2.14.0
+
+* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
+- Buildrequires: python-devel
+
+* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
+- bump again for double-long bug on ppc(64)
+
+* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
+- Initial build.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..2304e97
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit d305b9c5cf3d87d8a05ce94d6dedde40da4cc680
Author: Till Maas <opensource(a)till.name>
Date: Sat Mar 18 22:48:23 2017 +0100
2017-03-18: Retired because it depends on libgnome-media-profiles, which was
retired, because it was orphaned for more than six weeks.
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d7fd6f6..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gnome-python-desktop-2.31.1.tar.bz2
-/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
deleted file mode 100644
index 35c7be7..0000000
--- a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
+++ /dev/null
@@ -1,503 +0,0 @@
-From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
-From: Gustavo Carneiro <gjc(a)inescporto.pt>
-Date: Thu, 28 Jan 2010 16:10:16 +0000
-Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
-
----
- totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
- totem/plparser.override | 102 +----------------
- 2 files changed, 276 insertions(+), 122 deletions(-)
-
-diff --git a/totem/plparser.defs b/totem/plparser.defs
-index 184578e..9f25ff1 100644
---- a/totem/plparser.defs
-+++ b/totem/plparser.defs
-@@ -1,8 +1,24 @@
- ;; -*- scheme -*-
- ; object definitions ...
-+
-+(define-object Parser
-+ (in-module "totem.plparser")
-+ (parent "GObject")
-+ (c-name "TotemPlParser")
-+ (gtype-id "TOTEM_TYPE_PL_PARSER")
-+)
-+
-+(define-object Playlist
-+ (in-module "totem.playlist")
-+ (parent "GObject")
-+ (c-name "TotemPlPlaylist")
-+ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
-+)
-+
- ;; Enumerations and flags ...
-
--(define-enum ParserResult
-+
-+(define-enum PlParserResult
- (in-module "Totem")
- (c-name "TotemPlParserResult")
- (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
-@@ -10,10 +26,12 @@
- '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
- '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
- '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
-+ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
-+ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
- )
- )
-
--(define-enum ParserType
-+(define-enum PlParserType
- (in-module "Totem")
- (c-name "TotemPlParserType")
- (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
-@@ -21,47 +39,60 @@
- '("pls" "TOTEM_PL_PARSER_PLS")
- '("m3u" "TOTEM_PL_PARSER_M3U")
- '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
-+ '("xspf" "TOTEM_PL_PARSER_XSPF")
-+ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
- )
- )
-
--(define-enum ParserError
-+(define-enum PlParserError
- (in-module "Totem")
- (c-name "TotemPlParserError")
- (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
- (values
-- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
-- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
-+ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
-+ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
- )
- )
-
-
- ;; From totem-pl-parser.h
-
--(define-object Parser
-- (in-module "PlaylistParser")
-- (parent "GObject")
-- (c-name "TotemPlParser")
-- (gtype-id "TOTEM_TYPE_PL_PARSER")
--)
--
--(define-function totem_pl_parser_error_quark
-+(define-function error_quark
- (c-name "totem_pl_parser_error_quark")
- (return-type "GQuark")
- )
-
--(define-function totem_pl_parser_get_type
-+(define-function get_type
- (c-name "totem_pl_parser_get_type")
- (return-type "GType")
- )
-
--(define-method write
-+(define-function parse_duration
-+ (c-name "totem_pl_parser_parse_duration")
-+ (return-type "gint64")
-+ (parameters
-+ '("const-char*" "duration")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function parse_date
-+ (c-name "totem_pl_parser_parse_date")
-+ (return-type "guint64")
-+ (parameters
-+ '("const-char*" "date_str")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-method save
- (of-object "TotemPlParser")
-- (c-name "totem_pl_parser_write")
-+ (c-name "totem_pl_parser_save")
- (return-type "gboolean")
- (parameters
-- '("GtkTreeModel*" "model")
-- '("TotemPlParserIterFunc" "func")
-- '("const-char*" "output")
-+ '("TotemPlPlaylist*" "playlist")
-+ '("GFile*" "dest")
-+ '("const-gchar*" "title")
- '("TotemPlParserType" "type")
- '("GError**" "error")
- )
-@@ -76,20 +107,243 @@
- )
- )
-
-+(define-method add_ignored_mimetype
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_add_ignored_mimetype")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "mimetype")
-+ )
-+)
-+
- (define-method parse
- (of-object "TotemPlParser")
- (c-name "totem_pl_parser_parse")
- (return-type "TotemPlParserResult")
- (parameters
-- '("const-char*" "url")
-+ '("const-char*" "uri")
- '("gboolean" "fallback")
- )
- )
-
--(define-function totem_pl_parser_new
-+(define-method parse_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-method parse_finish
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_finish")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("GAsyncResult*" "async_result")
-+ '("GError**" "error")
-+ )
-+)
-+
-+(define-method parse_with_base
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base")
-+ (return-type "TotemPlParserResult")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ )
-+)
-+
-+(define-method parse_with_base_async
-+ (of-object "TotemPlParser")
-+ (c-name "totem_pl_parser_parse_with_base_async")
-+ (return-type "none")
-+ (parameters
-+ '("const-char*" "uri")
-+ '("const-char*" "base")
-+ '("gboolean" "fallback")
-+ '("GCancellable*" "cancellable")
-+ '("GAsyncReadyCallback" "callback")
-+ '("gpointer" "user_data")
-+ )
-+)
-+
-+(define-function new
- (c-name "totem_pl_parser_new")
- (is-constructor-of "TotemPlParser")
- (return-type "TotemPlParser*")
- )
-
-+(define-function metadata_get_type
-+ (c-name "totem_pl_parser_metadata_get_type")
-+ (return-type "GType")
-+)
-+
-+
-+
-+;; From totem-pl-parser-mini.h
-+
-+(define-function can_parse_from_data
-+ (c-name "totem_pl_parser_can_parse_from_data")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "data")
-+ '("gsize" "len")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+(define-function can_parse_from_filename
-+ (c-name "totem_pl_parser_can_parse_from_filename")
-+ (return-type "gboolean")
-+ (parameters
-+ '("const-char*" "filename")
-+ '("gboolean" "debug")
-+ )
-+)
-+
-+
-+
-+;; From totem-pl-playlist.h
-+
-+(define-function totem_pl_playlist_get_type
-+ (c-name "totem_pl_playlist_get_type")
-+ (return-type "GType")
-+)
-+
-+(define-function totem_pl_playlist_new
-+ (c-name "totem_pl_playlist_new")
-+ (is-constructor-of "TotemPlPlaylist")
-+ (return-type "TotemPlPlaylist*")
-+)
-+
-+(define-method size
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_size")
-+ (return-type "guint")
-+)
-+
-+(define-method prepend
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_prepend")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method append
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_append")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method insert
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_insert")
-+ (return-type "none")
-+ (parameters
-+ '("gint" "position")
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_first
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_first")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_next
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_next")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method iter_prev
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_iter_prev")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+)
-+
-+(define-method get_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method get_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method get
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_get")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-+(define-method set_value
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_value")
-+ (return-type "gboolean")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("const-gchar*" "key")
-+ '("GValue*" "value")
-+ )
-+)
-+
-+(define-method set_valist
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set_valist")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ '("va_list" "args")
-+ )
-+)
-+
-+(define-method set
-+ (of-object "TotemPlPlaylist")
-+ (c-name "totem_pl_playlist_set")
-+ (return-type "none")
-+ (parameters
-+ '("TotemPlPlaylistIter*" "iter")
-+ )
-+ (varargs #t)
-+)
-+
-
-diff --git a/totem/plparser.override b/totem/plparser.override
-index 3cbe2fb..48e1853 100644
---- a/totem/plparser.override
-+++ b/totem/plparser.override
-@@ -5,7 +5,7 @@ headers
- #include "pygobject.h"
- #include "totem-pl-parser.h"
- #include "totem-pl-parser-builtins.h"
--#include <gtk/gtk.h>
-+#include "totem-pl-parser-mini.h"
- #include <glib.h>
-
- #include "config.h"
-@@ -14,108 +14,8 @@ headers
- modulename totem.plparser
- %%
- import gobject.GObject as PyGObject_Type
--import gtk.TreeModel as PyGtkTreeModel_Type
- %%
- ignore-glob
- *_get_type
- *_error_quark
--%%
--override totem_pl_parser_write kwargs
--
--typedef struct {
-- PyObject *func;
-- PyObject *data;
-- gboolean has_error;
--} PyPlParserIterFuncData;
--
--static void
--_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
-- gboolean *custom_title, gpointer user_data)
--{
-- PyObject *args = NULL;
-- PyObject *result = NULL;
-- char *tmp_uri = NULL, *tmp_title = NULL;
-- PyPlParserIterFuncData *data = user_data;
-- PyObject *py_custom_title = NULL;
--
-- if (data->has_error)
-- return;
--
-- if (data->data)
-- args = Py_BuildValue ("(NNO)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
-- data->data);
-- else
-- args = Py_BuildValue ("(NN)",
-- pygobject_new((GObject *)model),
-- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
-- result = PyEval_CallObject (data->func, args);
-- Py_DECREF (args);
--
-- if (result == NULL) {
-- data->has_error = TRUE;
-- return;
-- }
-- /* ?! */
-- /* PyObject_Print (result, stdout, 0); */
--
-- if (PyString_Check (result)) {
-- tmp_uri = PyString_AsString (result);
-- if (tmp_uri == NULL) {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one"
-- " string or a tuple of two strings.");
-- data->has_error = TRUE;
-- }
-- } else if (!PyTuple_Check (result) ||
-- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
-- {
-- PyErr_SetString (PyExc_TypeError,
-- "Callback function must return one "
-- "string or a tuple of two strings,"
-- " or two strings and a boolean.");
-- data->has_error = TRUE;
-- }
--
-- /* g_strdup handles NULL case for us */
-- *uri = g_strdup (tmp_uri);
-- *title = g_strdup (tmp_title);
-- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
--
-- Py_DECREF (result);
--}
-
--static PyObject *
--_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
--{
-- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
-- PyGObject *model;
-- char *output;
-- TotemPlParserType type;
-- GError *error = NULL;
-- PyPlParserIterFuncData data = {0, };
--
-- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
-- kwlist, &PyGtkTreeModel_Type, &model,
-- &data.func, &output, &type, &data.data))
-- return NULL;
-- /* verify arguments' integrity */
-- if (!PyCallable_Check (data.func)) {
-- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
-- return NULL;
-- }
-- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
-- GTK_TREE_MODEL(model->obj),
-- _pl_parser_iter_func,
-- output,type, &data, &error))
-- {
-- /* return an GError */
-- pyg_error_check(&error);
-- return NULL;
-- }
-- if (data.has_error)
-- return NULL;
-- Py_INCREF(Py_None);
-- return Py_None;
--}
---
-1.6.6.1
-
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..c9b5d84
--- /dev/null
+++ b/dead.package
@@ -0,0 +1,3 @@
+2017-03-18: Retired because it depends on libgnome-media-profiles, which was
+retired, because it was orphaned for more than six weeks.
+
diff --git a/evince.patch b/evince.patch
deleted file mode 100644
index c7ba5c8..0000000
--- a/evince.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
---- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
-+++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
-@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
- dnl should we build the evince module
- AC_ARG_BINDING([evince],[YES])
- if $build_evince; then
-- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
-+ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
- build_evince=true,
- build_evince=false)
- if test -n "$export_dynamic"; then
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
deleted file mode 100644
index 0be84c9..0000000
--- a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
---- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
-+++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
-@@ -100,7 +100,7 @@
- )
- )
-
--(define-enum WindowState
-+(define-flags WindowState
- (in-module "Wnck")
- (c-name "WnckWindowState")
- (gtype-id "WNCK_TYPE_WINDOW_STATE")
-@@ -121,7 +121,7 @@
- )
- )
-
--(define-enum WindowActions
-+(define-flags WindowActions
- (in-module "Wnck")
- (c-name "WnckWindowActions")
- (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
-@@ -184,7 +184,7 @@
- )
- )
-
--(define-enum WindowMoveResizeMask
-+(define-flags WindowMoveResizeMask
- (in-module "Wnck")
- (c-name "WnckWindowMoveResizeMask")
- (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
deleted file mode 100644
index 5054dd2..0000000
--- a/gnome-python-desktop-2.32.0-metacity-build.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Daniel Drake <dsd(a)laptop.org>
-
-Fix build against metacity-2.34.2. The port to GSettings
-removed these constants from the codebase.
-
-Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
-===================================================================
---- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
-+++ gnome-python-desktop-2.32.0/metacity/metacity.defs
-@@ -120,32 +120,6 @@
- )
- )
-
--(define-enum FocusMode
-- (in-module "Meta")
-- (c-name "MetaFocusMode")
--; (gtype-id "META_TYPE_FOCUS_MODE")
-- (values
-- '("click" "META_FOCUS_MODE_CLICK")
-- '("sloppy" "META_FOCUS_MODE_SLOPPY")
-- '("mouse" "META_FOCUS_MODE_MOUSE")
-- )
--)
--
--(define-enum ActionTitlebar
-- (in-module "Meta")
-- (c-name "MetaActionTitlebar")
--; (gtype-id "META_TYPE_ACTION_TITLEBAR")
-- (values
-- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
-- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
-- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
-- '("none" "META_ACTION_TITLEBAR_NONE")
-- '("lower" "META_ACTION_TITLEBAR_LOWER")
-- '("menu" "META_ACTION_TITLEBAR_MENU")
-- '("last" "META_ACTION_TITLEBAR_LAST")
-- )
--)
--
- (define-enum FrameType
- (in-module "Meta")
- (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
deleted file mode 100644
index 9501561..0000000
--- a/gnome-python2-desktop.spec
+++ /dev/null
@@ -1,609 +0,0 @@
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-
-# Last updated for version 2.29.1
-# The order here corresponds to that in configure.ac,
-# for easier comparison. Please do not alphabetize.
-%define pygtk_version 2.10.3
-%define glib_version 2.6.0
-%define gtk_version 2.4.0
-%define gnome_python_version 2.10.0
-# Version not necessary for libgnomeprintui
-%define gtksourceview_version 1:1.8.5-2
-%define libwnck_version 2.19.3
-%define libgtop_version 2.13.0
-# Version not necessary for libnautilus_burn
-%define brasero_version 2.29
-%define gnome_media_version 2.10.0
-%define gconf2_version 2.10.0
-%define librsvg2_version 2.13.93
-%define gnome_keyring_version 0.5.0
-%define gnome_desktop_version 2.10.0
-%define totem_version 1.4.0
-%define eds_version 1.4.0
-%define evince_version 2.29
-
-### Abstract ###
-
-Name: gnome-python2-desktop
-Version: 2.32.0
-Release: 25%{?dist}
-License: GPLv2+
-Group: Development/Languages
-Summary: The sources for additional PyGNOME Python extension modules
-#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=616306
-Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
-
-# https://bugzilla.gnome.org/show_bug.cgi?id=672016
-Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
-
-### Dependencies ###
-
-Requires: gnome-python2-canvas >= %{gnome_python_version}
-
-### Build Dependencies ###
-
-#BuildRequires: brasero-devel >= %{brasero_version}
-#BuildRequires: evince-devel >= %{evince_version}
-BuildRequires: glib2-devel >= %{glib_version}
-BuildRequires: GConf2-devel >= %{gconf2_version}
-BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
-BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
-BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
-BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
-BuildRequires: gnome-python2-devel >= %{gnome_python_version}
-BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
-BuildRequires: gtk2-devel >= %{gtk_version}
-BuildRequires: libgnomeui-devel
-BuildRequires: libgtop2-devel >= %{libgtop_version}
-BuildRequires: librsvg2-devel >= %{librsvg2_version}
-BuildRequires: libwnck-devel >= %{libwnck_version}
-BuildRequires: pygtk2-devel >= %{pygtk_version}
-BuildRequires: python-devel
-BuildRequires: totem-pl-parser-devel >= %{totem_version}
-BuildRequires: autoconf, automake, libtool
-%ifnarch s390 s390x
-BuildRequires: gnome-media-devel >= %{gnome_media_version}
-%endif
-
-Obsoletes: gnome-python2-evolution < 2.32.0-12
-Obsoletes: gnome-python2-metacity < 2.32.0-20
-Obsoletes: gnome-python2-gnomeprint < 2.32.0-22
-Obsoletes: gnome-python2-gtksourceview < 2.32.0-22
-
-%description
-The gnome-python-desktop package contains the source packages for additional
-Python bindings for GNOME. It should be used together with gnome-python.
-
-#package -n gnome-python2-brasero
-#Summary: Python bindings for interacting with brasero
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: brasero-libs >= %{brasero_version}
-
-#description -n gnome-python2-brasero
-#This module contains a wrapper that allows the use of brasero via Python.
-
-#package -n gnome-python2-evince
-#Summary: Python bindings for interacting with evince
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: evince-libs >= %{evince_version}
-
-#description -n gnome-python2-evince
-#This module contains a wrapper that allows the use of evince via Python.
-
-%package -n gnome-python2-libwnck
-Summary: Python bindings for interacting with libwnck
-License: LGPLv2
-Group: Development/Languages
-Requires: libwnck >= %{libwnck_version}
-
-%description -n gnome-python2-libwnck
-This module contains a wrapper that allows the use of libwnck via
-Python.
-
-%package -n gnome-python2-libgtop2
-Summary: Python bindings for interacting with libgtop
-License: GPLv2+
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: libgtop2 >= %{libgtop_version}
-
-%description -n gnome-python2-libgtop2
-This module contains a wrapper that allows the use of libgtop via
-Python.
-
-%package -n gnome-python2-totem
-Summary: Python bindings for interacting with totem
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: totem-pl-parser >= %{totem_version}
-Requires: gnome-python2-gconf
-
-%description -n gnome-python2-totem
-This module contains a wrapper that allows the use of totem
-via Python.
-
-%package -n gnome-python2-rsvg
-Summary: Python bindings for interacting with librsvg
-License: LGPLv2
-Group: Development/Languages
-Requires: librsvg2 >= %{librsvg2_version}
-
-%description -n gnome-python2-rsvg
-This module contains a wrapper that allows the use of librsvg
-via Python.
-
-%package -n gnome-python2-gnomedesktop
-Summary: Python bindings for interacting with gnome-desktop
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-desktop >= %{gnome_desktop_version}
-
-%description -n gnome-python2-gnomedesktop
-This module contains a wrapper that allows the use of gnome-desktop
-via Python.
-
-%package -n gnome-python2-gnomekeyring
-Summary: Python bindings for interacting with gnome-keyring
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: gnome-keyring >= %{gnome_keyring_version}
-
-%description -n gnome-python2-gnomekeyring
-This module contains a wrapper that allows the use of gnome-keyring
-via Python.
-
-%prep
-%setup -q -n gnome-python-desktop-%{version}
-%patch0 -p1 -b .flags
-%patch1 -p1 -b .metacity-build
-
-%build
-# evince, brasero and mediaprofiles are disabled because these things have
-# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
-# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
-# stuff. - AdamW 2010/07
-# gnomeprint and gtksourceview are disabled due to removal of C libraries
-# from F23. - Yaakov 2015/07
-%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT
-
-find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
-
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
-rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root,-)
-%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
-%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
-%{_datadir}/pygtk
-
-#files -n gnome-python2-brasero
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/braseroburn.so
-#{python_sitearch}/gtk-2.0/braseromedia.so
-
-#files -n gnome-python2-evince
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/evince.so
-
-%files -n gnome-python2-libwnck
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/wnck.so
-
-%files -n gnome-python2-libgtop2
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/gtop.so
-
-%files -n gnome-python2-totem
-%defattr(-,root,root,-)
-%ifnarch s390 s390x
-#{python_sitearch}/gtk-2.0/mediaprofiles.so
-%endif
-%{python_sitearch}/gtk-2.0/totem
-
-%files -n gnome-python2-rsvg
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/rsvg.so
-
-%files -n gnome-python2-gnomedesktop
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/gnomedesktop
-
-%files -n gnome-python2-gnomekeyring
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/gnomekeyring.so
-
-%changelog
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
-- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
-- Drop broken gnome-python2-metacity subpackage
-
-* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
-- Rebuilt for libgtop2 soname bump
-
-* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
-- Rebuilt for totem-pl-parser soname bump
-
-* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
-- Drop dead gnome-panel dependency
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
-- Obsolete the dropped gnome-python2-evolution subpackage
-
-* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
-- Drop evolution bindings; they don't build against the latest EDS
-
-* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
-- Fix build against metacity-2.34.2
-
-* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
-* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
-- Rebuilt for new libedataserver
-
-* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
-- Rebuilt for new libedataserver
-
-* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
-- Rebuilt for new libedataserver
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
-- Update to 2.32.0 to match f14
-
-* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
-- Disable applets
-
-* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
-- gnome-media-profiles support also broken due to gtk3 port, so
- disable it
-- drop evince and brasero modules for now as they won't build due
- to evince and brasero being ported to gtk3
-
-* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
-- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
-
-* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
-- Update to 2.31.1
-
-* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
-- Rebuild against new brasero
-
-* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
-- rebuilt
-
-* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
-- Rebuild against latest libedataserver.
-
-* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
-- Rebuild against latest evolution
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
-- remember to commit patch to cvs
-
-* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
-- fix wnck gtypes to be flags, instead of enum
-
-* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
-- Drop bug-buddy package, we use abrt
-
-* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
-- Update to 2.30.0
-
-* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
-- Update to 2.29.92
-
-* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
-- add missing patch
-
-* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
-- Add patch to fix build
-
-* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
-- rebuilt
-
-* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
-- Rebuild against new totem-pl-parser.
-
-* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
-- Rebuild against new gnome-desktop.
-
-* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
-- Fix rpmlint warnings.
-
-* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
-- Provide a complete URI for the Source field.
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
-- Update to 2.29.1
-- Remove patch for GNOME bug #603231 (fixed upstream).
-
-* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
-- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
-
-* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
-- Rebuild for new evince
-
-* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
-- Update to 2.28.0
-
-* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
-- Update to 2.27.3
-
-* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
-- Disable nautilus-cd-burner bindings. Package is dead.
-
-* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
-
-* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
-- Update to 2.27.2
-
-* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
-- Change gnome-python2-evince to depend on evince-libs
-
-* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
-- Update to 2.27.1
-- New subpackage: gnome-python2-brasero
-
-* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
-- Removed cd-burner subpackage Require on nautilus-cd-burn
-
-* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
-- Rebuild against newer libnautilus-burn.
-
-* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
-- Update to 2.26.0
-
-* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
-- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
-
-* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
-* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
-- Update to 2.25.91
-
-* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
-- New subpackage: gnome-python2-evince
-
-* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
-- Update to 2.25.90
-
-* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
-- Update to 2.25.1
-- Remove patch for GNOME bug #564525 (fixed upstream).
-
-* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
-- make build
-
-* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
-- Update to 2.24.1
-- Add patch for GNOME bug #564525 (build failure).
-
-* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
-- Rebuild for new libgnome-desktop
-
-* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
-- Rebuild for Python 2.6
-
-* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
-- Update subpackage requirements, since gnome-python2 no longer drags in
- the world.
-
-* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
-- Rebuild
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
-- Change gnome-python2 requirement to gnome-python2-canvas.
-
-* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
-- Update to 2.24.0
-
-* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
-- Update to 2.23.1
-- Update version requirements.
-
-* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
-- Update to 2.23.0
-
-* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
-- Don't drag in devel packages when installing gnome-python2-evolution
- (RH bug #450932).
-
-* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
-- Rebuild
-
-* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
-- Rebuild against newer libedataserver and libtotem-plparser.
-
-* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
-- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
-
-* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
-- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
-
-* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
-- Update to 2.22.0
-- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
-
-* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
-- Update to 2.21.3
-
-* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
-- Rebuild with GCC 4.3
-
-* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
-- Update to 2.21.2
-
-* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
-- Update to 2.21.1
-- New subpackage: gnome-python2-evolution
-- Change totem-devel BR to totem-pl-parser-devel.
-
-* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
-- Rebuild against newer libtotem-plparser.so.
-
-* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
-- Update to 2.20.0
-
-* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
-- Rebuild for selinux ppc32 issue.
-
-* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
-- Rebuild
-
-* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
-- Update license fields
-
-* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
-- Update to 2.19.2
-
-* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
-- Rebuild against gtksourceview
-
-* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
-- Update to 2.19.1
-- Update versions of required packages.
-- Remove patch for GNOME bug #428697 (fixed upstream).
-
-* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
-- Rebuild again
-
-* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
-- Rebuild against new libwnck
-
-* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
-- Require metacity-devel, not metacity, for building.
-- Add patch for GNOME bug #428697 (adapt to API change).
-
-* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
-- Update to 2.18.0
-
-* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
-- Update to 2.17.93
-
-* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
-- Update to 2.17.92
-- Remove patch for GNOME bug #401760 (fixed upstream).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
-- Add patch for GNOME bug #401760 (plparser fails to build).
-
-* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
-- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
-
-* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
-- Update to 2.17.3
-
-* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
-- Update to 2.17.2
-- New gnome-python2-bugbuddy subpackage.
-- Update version requirements to match configure.ac.
-- Use python_sitearch macro for installing libraries.
-
-* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
-- rebuild for python 2.5
-- BR gnome-python2-devel
-
-* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
-- Update to 2.17.1
-
-* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
-- Update to 2.16.0
-
-* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
-- Remove unecessary dependencies on gnome-python2-desktop from
- -libwnck and -rsvg subpackages (OLPC)
-
-* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
-- Update to 2.15.90
-
-* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
-- Rebuild against dbus
-
-* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
-- Update to 2.15.4
-
-* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
-- rebuild
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
-- Create gnomekeyring subpackage
-- block out the nautilus-cd stuff
-
-* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
-- Bump for new nautilus-cd-burner
-
-* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
-- Update to 2.15.3
-
-* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
-- Update to 2.15.2
-- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
-
-* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
-- Add pygtk2 BR
-
-* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
-- Update to 2.14.0
-
-* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
-- Buildrequires: python-devel
-
-* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
-- bump again for double-long bug on ppc(64)
-
-* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
-- Initial build.
-
diff --git a/sources b/sources
deleted file mode 100644
index 2304e97..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit bb2b3749bf27f496f2894868610f392f0458ddfb
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Feb 10 11:26:39 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index dbd9822..9501561 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 24%{?dist}
+Release: 25%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -232,6 +232,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
commit ae6690bf40610187e7e979a04cfa35807500a1ff
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Tue Jul 19 07:15:21 2016 +0000
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index a3685f4..dbd9822 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 23%{?dist}
+Release: 24%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -232,6 +232,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-24
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
commit ac4508ed757a3eb59053057abd05ee72ac9761fb
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Wed Feb 3 22:29:26 2016 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index be03cee..a3685f4 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 22%{?dist}
+Release: 23%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -232,6 +232,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.32.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
commit f9ea98973a131ab526e6b80f0a43c5b3888308da
Author: Yaakov Selkowitz <yselkowi(a)redhat.com>
Date: Tue Jul 7 14:40:39 2015 -0500
Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b7e748b..be03cee 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 21%{?dist}
+Release: 22%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -56,9 +56,7 @@ BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
BuildRequires: gnome-python2-devel >= %{gnome_python_version}
BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
-BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
BuildRequires: libgnomeui-devel
-BuildRequires: libgnomeprintui22-devel
BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
BuildRequires: libwnck-devel >= %{libwnck_version}
@@ -72,6 +70,8 @@ BuildRequires: gnome-media-devel >= %{gnome_media_version}
Obsoletes: gnome-python2-evolution < 2.32.0-12
Obsoletes: gnome-python2-metacity < 2.32.0-20
+Obsoletes: gnome-python2-gnomeprint < 2.32.0-22
+Obsoletes: gnome-python2-gtksourceview < 2.32.0-22
%description
The gnome-python-desktop package contains the source packages for additional
@@ -97,31 +97,6 @@ Python bindings for GNOME. It should be used together with gnome-python.
#description -n gnome-python2-evince
#This module contains a wrapper that allows the use of evince via Python.
-%package -n gnome-python2-gnomeprint
-Summary: Python bindings for interacting with libgnomeprint
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: libgnomeprint22
-Requires: libgnomeprintui22
-Requires: gnome-python2-canvas
-
-%description -n gnome-python2-gnomeprint
-This module contains a wrapper that allows the use of libgnomeprint via
-Python.
-
-%package -n gnome-python2-gtksourceview
-Summary: Python bindings for interacting with the gtksourceview library
-License: GPLv2+
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: gtksourceview >= %{gtksourceview_version}
-Requires: gnome-python2-gnomeprint
-
-%description -n gnome-python2-gtksourceview
-This module contains a wrapper that allows the use of gtksourceview via
-Python.
-
%package -n gnome-python2-libwnck
Summary: Python bindings for interacting with libwnck
License: LGPLv2
@@ -197,7 +172,9 @@ via Python.
# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
# stuff. - AdamW 2010/07
-%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal
+# gnomeprint and gtksourceview are disabled due to removal of C libraries
+# from F23. - Yaakov 2015/07
+%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal --disable-gnomeprint --disable-gtksourceview
make
%install
@@ -227,21 +204,6 @@ rm -rf $RPM_BUILD_ROOT
#defattr(-,root,root,-)
#{python_sitearch}/gtk-2.0/evince.so
-%files -n gnome-python2-gnomeprint
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/gnomeprint/
-%{_datadir}/gtk-doc/html/pygnomeprint
-%{_datadir}/gtk-doc/html/pygnomeprintui
-%defattr(644,root,root,755)
-%doc ../gnome-python-desktop-%{version}/examples/gnomeprint/*
-
-%files -n gnome-python2-gtksourceview
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/gtksourceview.so
-%{_datadir}/gtk-doc/html/pygtksourceview
-%defattr(644,root,root,755)
-%doc ../gnome-python-desktop-%{version}/examples/gtksourceview/*
-
%files -n gnome-python2-libwnck
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/wnck.so
@@ -270,6 +232,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jul 07 2015 Yaakov Selkowitz <yselkowi(a)redhat.com> - 2.32.0-22
+- Drop gnomeprint, gtksourceview bindings for removal of libgnomeprint
+
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
commit be6d86782023632114a5e4046d802a006ca7de66
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Wed Jun 17 08:59:20 2015 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 1c54e87..b7e748b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 20%{?dist}
+Release: 21%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -270,6 +270,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
- Drop broken gnome-python2-metacity subpackage
commit 4f90d603255d0dc082b1a77114f9a9eb88dd5f27
Author: Kalev Lember <kalevlember(a)gmail.com>
Date: Thu Oct 16 15:52:07 2014 +0200
Drop broken gnome-python2-metacity subpackage
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index ba15c99..1c54e87 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -15,7 +15,6 @@
%define brasero_version 2.29
%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
-%define metacity_version 2.21.5
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
%define gnome_desktop_version 2.10.0
@@ -27,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 19%{?dist}
+Release: 20%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -63,7 +62,6 @@ BuildRequires: libgnomeprintui22-devel
BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
BuildRequires: libwnck-devel >= %{libwnck_version}
-BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
@@ -73,6 +71,7 @@ BuildRequires: gnome-media-devel >= %{gnome_media_version}
%endif
Obsoletes: gnome-python2-evolution < 2.32.0-12
+Obsoletes: gnome-python2-metacity < 2.32.0-20
%description
The gnome-python-desktop package contains the source packages for additional
@@ -144,17 +143,6 @@ Requires: libgtop2 >= %{libgtop_version}
This module contains a wrapper that allows the use of libgtop via
Python.
-%package -n gnome-python2-metacity
-Summary: Python bindings for interacting with metacity
-License: GPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: metacity >= %{metacity_version}
-
-%description -n gnome-python2-metacity
-This module contains a wrapper that allows the use of metacity
-via Python.
-
%package -n gnome-python2-totem
Summary: Python bindings for interacting with totem
License: LGPLv2
@@ -209,7 +197,7 @@ via Python.
# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
# stuff. - AdamW 2010/07
-%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal
+%configure --disable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal
make
%install
@@ -262,10 +250,6 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gtop.so
-%files -n gnome-python2-metacity
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/metacity.so
-
%files -n gnome-python2-totem
%defattr(-,root,root,-)
%ifnarch s390 s390x
@@ -286,6 +270,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Oct 16 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-20
+- Drop broken gnome-python2-metacity subpackage
+
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
commit 0f2dd30957df8d41d2804b489e2d00085a62ef0d
Author: Peter Robinson <pbrobinson(a)fedoraproject.org>
Date: Sat Aug 16 17:59:16 2014 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0c23224..ba15c99 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 18%{?dist}
+Release: 19%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -286,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
commit aab6e29a0c335a1e634bdc91de636c9910124014
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Sat Jun 7 12:23:17 2014 -0500
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 5fdd310..0c23224 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 17%{?dist}
+Release: 18%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -286,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
- Rebuilt for libgtop2 soname bump
commit 3f6a8211d8d88b22b4b0699361e00e758a6aeeab
Author: Kalev Lember <kalevlember(a)gmail.com>
Date: Thu May 1 12:09:30 2014 +0200
Rebuilt for libgtop2 soname bump
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 47bc749..5fdd310 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 16%{?dist}
+Release: 17%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -286,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu May 01 2014 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-17
+- Rebuilt for libgtop2 soname bump
+
* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
- Rebuilt for totem-pl-parser soname bump
commit d68d9b3bb5756ed5229cac6f48ef5eb77301af1a
Author: Kalev Lember <kalevlember(a)gmail.com>
Date: Thu Sep 19 00:41:20 2013 +0200
Rebuilt for totem-pl-parser soname bump
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index d975078..47bc749 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 15%{?dist}
+Release: 16%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -286,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Sep 19 2013 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-16
+- Rebuilt for totem-pl-parser soname bump
+
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
commit 30f919fcbc40f7b2ba9c835e8835c1e215c96682
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Sat Aug 3 10:37:31 2013 -0500
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 02d62b8..d975078 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 14%{?dist}
+Release: 15%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -286,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
- Drop dead gnome-panel dependency
commit bf20158c08136503c307bb22d0c0ce4a8dd5acc7
Author: Peter Robinson <pbrobinson(a)gmail.com>
Date: Mon Apr 1 09:13:20 2013 +0100
Drop dead gnome-panel dependency
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f655427..02d62b8 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -7,7 +7,6 @@
%define glib_version 2.6.0
%define gtk_version 2.4.0
%define gnome_python_version 2.10.0
-%define gnome_panel_version 2.13.4
# Version not necessary for libgnomeprintui
%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
@@ -28,7 +27,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 13%{?dist}
+Release: 14%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -53,7 +52,6 @@ BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
-BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
BuildRequires: gnome-python2-devel >= %{gnome_python_version}
@@ -288,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Apr 1 2013 Peter Robinson <pbrobinson(a)fedoraproject.org> 2.32.0-14
+- Drop dead gnome-panel dependency
+
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
commit b05d01c2451ca7fb6f7d10e9f418e6e16b4797ea
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Wed Feb 13 18:03:27 2013 -0600
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2481ba6..f655427 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 12%{?dist}
+Release: 13%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -288,6 +288,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
- Obsolete the dropped gnome-python2-evolution subpackage
commit 3ffaaf5d3bcac3b2c816522db15e0157f5d8561a
Author: Kalev Lember <kalevlember(a)gmail.com>
Date: Sat Jul 28 21:53:27 2012 +0300
Obsolete the dropped gnome-python2-evolution subpackage
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b71993b..2481ba6 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 11%{?dist}
+Release: 12%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -74,6 +74,8 @@ BuildRequires: autoconf, automake, libtool
BuildRequires: gnome-media-devel >= %{gnome_media_version}
%endif
+Obsoletes: gnome-python2-evolution < 2.32.0-12
+
%description
The gnome-python-desktop package contains the source packages for additional
Python bindings for GNOME. It should be used together with gnome-python.
@@ -286,6 +288,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Jul 28 2012 Kalev Lember <kalevlember(a)gmail.com> - 2.32.0-12
+- Obsolete the dropped gnome-python2-evolution subpackage
+
* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
- Drop evolution bindings; they don't build against the latest EDS
commit 64cf0642423e5afc84dae873bb207ed28eadb6e5
Author: Colin Walters <walters(a)verbum.org>
Date: Fri Jul 27 09:39:47 2012 -0400
Drop evolution bindings; they don't build against the latest EDS
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 3dc9533..b71993b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -209,7 +209,7 @@ via Python.
# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
# stuff. - AdamW 2010/07
-%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution
+%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution --disable-evolution_ecal
make
%install
commit 8709c63dcf3750b9a7e25ef9b4ad7fac4e34f878
Author: Colin Walters <walters(a)verbum.org>
Date: Fri Jul 27 09:16:32 2012 -0400
Drop evolution bindings; they don't build against the latest EDS
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 010053d..3dc9533 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 10%{?dist}
+Release: 11%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -49,7 +49,6 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
#BuildRequires: brasero-devel >= %{brasero_version}
#BuildRequires: evince-devel >= %{evince_version}
-BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
@@ -99,19 +98,6 @@ Python bindings for GNOME. It should be used together with gnome-python.
#description -n gnome-python2-evince
#This module contains a wrapper that allows the use of evince via Python.
-%package -n gnome-python2-evolution
-Summary: Python bindings for interacting with evolution-data-server
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: evolution-data-server >= %{eds_version}
-Provides: evolution-python = %{version}-%{release}
-Obsoletes: evolution-python <= 0.0.4-3
-
-%description -n gnome-python2-evolution
-This module contains a wrapper that allows the use of evolution-data-server
-via Python.
-
%package -n gnome-python2-gnomeprint
Summary: Python bindings for interacting with libgnomeprint
License: LGPLv2
@@ -223,7 +209,7 @@ via Python.
# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
# stuff. - AdamW 2010/07
-%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet
+%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet --disable-evolution
make
%install
@@ -253,10 +239,6 @@ rm -rf $RPM_BUILD_ROOT
#defattr(-,root,root,-)
#{python_sitearch}/gtk-2.0/evince.so
-%files -n gnome-python2-evolution
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/evolution/
-
%files -n gnome-python2-gnomeprint
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomeprint/
@@ -304,6 +286,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jul 27 2012 Colin Walters <walters(a)verbum.org> - 2.32.0-11
+- Drop evolution bindings; they don't build against the latest EDS
+
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
commit 0a74a48d4a7b5a54979a611c68e923e9da4220a6
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Thu Jul 19 02:54:50 2012 -0500
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 874c590..010053d 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 9%{?dist}
+Release: 10%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -304,6 +304,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Jul 19 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
- Fix build against metacity-2.34.2
commit 1e9c5e6ee2eddd60d7515b43c96c259a58a971c6
Author: Daniel Drake <dsd(a)laptop.org>
Date: Tue Mar 13 14:59:23 2012 -0600
fix build against metacity-2.34.2
diff --git a/gnome-python-desktop-2.32.0-metacity-build.patch b/gnome-python-desktop-2.32.0-metacity-build.patch
new file mode 100644
index 0000000..5054dd2
--- /dev/null
+++ b/gnome-python-desktop-2.32.0-metacity-build.patch
@@ -0,0 +1,42 @@
+From: Daniel Drake <dsd(a)laptop.org>
+
+Fix build against metacity-2.34.2. The port to GSettings
+removed these constants from the codebase.
+
+Index: gnome-python-desktop-2.32.0/metacity/metacity.defs
+===================================================================
+--- gnome-python-desktop-2.32.0.orig/metacity/metacity.defs
++++ gnome-python-desktop-2.32.0/metacity/metacity.defs
+@@ -120,32 +120,6 @@
+ )
+ )
+
+-(define-enum FocusMode
+- (in-module "Meta")
+- (c-name "MetaFocusMode")
+-; (gtype-id "META_TYPE_FOCUS_MODE")
+- (values
+- '("click" "META_FOCUS_MODE_CLICK")
+- '("sloppy" "META_FOCUS_MODE_SLOPPY")
+- '("mouse" "META_FOCUS_MODE_MOUSE")
+- )
+-)
+-
+-(define-enum ActionTitlebar
+- (in-module "Meta")
+- (c-name "MetaActionTitlebar")
+-; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+- (values
+- '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_TITLEBAR_NONE")
+- '("lower" "META_ACTION_TITLEBAR_LOWER")
+- '("menu" "META_ACTION_TITLEBAR_MENU")
+- '("last" "META_ACTION_TITLEBAR_LAST")
+- )
+-)
+-
+ (define-enum FrameType
+ (in-module "Meta")
+ (c-name "MetaFrameType")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 81d799d..874c590 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 8%{?dist}
+Release: 9%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -38,6 +38,9 @@ Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python
# https://bugzilla.gnome.org/show_bug.cgi?id=616306
Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+# https://bugzilla.gnome.org/show_bug.cgi?id=672016
+Patch1: gnome-python-desktop-2.32.0-metacity-build.patch
+
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -213,6 +216,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
%patch0 -p1 -b .flags
+%patch1 -p1 -b .metacity-build
%build
# evince, brasero and mediaprofiles are disabled because these things have
@@ -300,6 +304,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Mar 13 2012 Daniel Drake <dsd(a)laptop.org> - 2.32.0-9
+- Fix build against metacity-2.34.2
+
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
commit eaf1340251854188a08c5d167d334a30df8c621a
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Thu Jan 12 21:54:17 2012 -0600
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b162752..81d799d 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.32.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
- Rebuilt for new libedataserver
commit a49d60ec106d32c0277ea600b496edf1544a0b05
Author: Tomas Bzatek <tbzatek(a)redhat.com>
Date: Tue Dec 20 15:53:37 2011 +0100
Rebuilt for new libedataserver
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6624788..b162752 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,12 +28,12 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 6%{?dist}
+Release: 7%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.31/gnome-python-...
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.32/gnome-python-...
# https://bugzilla.gnome.org/show_bug.cgi?id=616306
Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Dec 20 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-7
+- Rebuilt for new libedataserver
+
* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
- Rebuilt for new libedataserver
commit dfa9487f5c9bb2d8a4cfcb539782ceb252221704
Author: Bruno Wolff III <bruno(a)wolff.to>
Date: Sun Oct 30 11:51:27 2011 -0500
Rebuilt for new libedataserver
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c5c47e1..6624788 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Oct 30 2011 Bruno Wolff III <bruno(a)wolff.to> - 2.32.0-6
+- Rebuilt for new libedataserver
+
* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
- Rebuilt for new libedataserver
commit 84460a98ec0cfb270b4187bcaebefc5b7789710b
Author: Tomas Bzatek <tbzatek(a)redhat.com>
Date: Tue Aug 30 16:48:56 2011 +0200
Rebuilt for new libedataserver
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 8ae5a3a..c5c47e1 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.32.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Aug 30 2011 Tomas Bzatek <tbzatek(a)redhat.com> - 2.32.0-5
+- Rebuilt for new libedataserver
+
* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
- Update to 2.32.0 to match f14
commit 09d6a068afb651c50a43cb8c6278633e712a5e2b
Author: Colin Walters <walters(a)verbum.org>
Date: Thu May 5 14:43:08 2011 -0400
Update to 2.32.0 to match f14
diff --git a/.gitignore b/.gitignore
index 8bd0557..d7fd6f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
gnome-python-desktop-2.31.1.tar.bz2
+/gnome-python-desktop-2.32.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 1b4ffb4..8ae5a3a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,8 +27,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.31.1
-Release: 5%{?dist}
+Version: 2.32.0
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.32.0-4
+- Update to 2.32.0 to match f14
+
* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
- Disable applets
diff --git a/sources b/sources
index 7e824a0..2304e97 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-fb0d9cd4018412cdd4b9f4ba36f0064a gnome-python-desktop-2.31.1.tar.bz2
+0e73fa80ace5c861777e0b523c6ead9d gnome-python-desktop-2.32.0.tar.bz2
commit 19dc8ffc535296c663204a7f751b1392e0f28309
Author: Colin Walters <walters(a)verbum.org>
Date: Thu May 5 13:24:35 2011 -0400
Disable applets
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 7274461..1b4ffb4 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -76,20 +76,6 @@ BuildRequires: gnome-media-devel >= %{gnome_media_version}
The gnome-python-desktop package contains the source packages for additional
Python bindings for GNOME. It should be used together with gnome-python.
-%package -n gnome-python2-applet
-Summary: Python bindings for GNOME Panel applets.
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-# applets from GNOME 1.4 are no longer supported - we only have 1 panel
-Obsoletes: pygnome-applet <= 1.4.2
-Requires: gnome-python2-bonobo
-Requires: gnome-python2-gnome
-
-%description -n gnome-python2-applet
-This module contains a wrapper that allows GNOME Panel applets to be
-written in Python.
-
#package -n gnome-python2-brasero
#Summary: Python bindings for interacting with brasero
#License: LGPLv2
@@ -233,7 +219,7 @@ via Python.
# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
# stuff. - AdamW 2010/07
-%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles
+%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles --disable-applet
make
%install
@@ -254,11 +240,6 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
%{_datadir}/pygtk
-%files -n gnome-python2-applet
-%defattr(-,root,root,-)
-%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
-%{python_sitearch}/gtk-2.0/gnomeapplet.so
-
#files -n gnome-python2-brasero
#defattr(-,root,root,-)
#{python_sitearch}/gtk-2.0/braseroburn.so
@@ -319,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu May 5 2011 Colin Walters <walters(a)verbum.org> - 2.31.1-5
+- Disable applets
+
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
commit 4d7c03d83e443061d274b3dac11585500256e858
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Tue Feb 8 22:24:50 2011 -0600
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2851014..7274461 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -319,6 +319,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.31.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
- gnome-media-profiles support also broken due to gtk3 port, so
disable it
commit 81eb73e7b65f597f86c335c432e5be95a389440a
Author: Matthias Clasen <mclasen(a)redhat.com>
Date: Thu Aug 12 13:04:25 2010 -0400
Undo a commit that should have gone to f14
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c182614..2851014 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 4%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -44,8 +44,8 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
-BuildRequires: brasero-devel >= %{brasero_version}
-BuildRequires: evince-devel >= %{evince_version}
+#BuildRequires: brasero-devel >= %{brasero_version}
+#BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
@@ -90,25 +90,25 @@ Requires: gnome-python2-gnome
This module contains a wrapper that allows GNOME Panel applets to be
written in Python.
-%package -n gnome-python2-brasero
-Summary: Python bindings for interacting with brasero
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: brasero-libs >= %{brasero_version}
+#package -n gnome-python2-brasero
+#Summary: Python bindings for interacting with brasero
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: brasero-libs >= %{brasero_version}
-%description -n gnome-python2-brasero
-This module contains a wrapper that allows the use of brasero via Python.
+#description -n gnome-python2-brasero
+#This module contains a wrapper that allows the use of brasero via Python.
-%package -n gnome-python2-evince
-Summary: Python bindings for interacting with evince
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: evince-libs >= %{evince_version}
+#package -n gnome-python2-evince
+#Summary: Python bindings for interacting with evince
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: evince-libs >= %{evince_version}
-%description -n gnome-python2-evince
-This module contains a wrapper that allows the use of evince via Python.
+#description -n gnome-python2-evince
+#This module contains a wrapper that allows the use of evince via Python.
%package -n gnome-python2-evolution
Summary: Python bindings for interacting with evolution-data-server
@@ -229,10 +229,15 @@ via Python.
%patch0 -p1 -b .flags
%build
-%configure --enable-metacity
+# evince, brasero and mediaprofiles are disabled because these things have
+# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
+# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
+# stuff. - AdamW 2010/07
+%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles
make
%install
+rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
@@ -240,6 +245,9 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
+%clean
+rm -rf $RPM_BUILD_ROOT
+
%files
%defattr(-,root,root,-)
%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
@@ -251,14 +259,14 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
%{python_sitearch}/gtk-2.0/gnomeapplet.so
-files -n gnome-python2-brasero
-defattr(-,root,root,-)
-{python_sitearch}/gtk-2.0/braseroburn.so
-{python_sitearch}/gtk-2.0/braseromedia.so
+#files -n gnome-python2-brasero
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/braseroburn.so
+#{python_sitearch}/gtk-2.0/braseromedia.so
-files -n gnome-python2-evince
-defattr(-,root,root,-)
-{python_sitearch}/gtk-2.0/evince.so
+#files -n gnome-python2-evince
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/evince.so
%files -n gnome-python2-evolution
%defattr(-,root,root,-)
@@ -294,7 +302,7 @@ defattr(-,root,root,-)
%files -n gnome-python2-totem
%defattr(-,root,root,-)
%ifnarch s390 s390x
-{python_sitearch}/gtk-2.0/mediaprofiles.so
+#{python_sitearch}/gtk-2.0/mediaprofiles.so
%endif
%{python_sitearch}/gtk-2.0/totem
@@ -311,9 +319,6 @@ defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
-* Thu Aug 12 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-4
-- Bring back evince, brasero and media profiles for F14
-
* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
- gnome-media-profiles support also broken due to gtk3 port, so
disable it
commit f6760ad628a8e8e359c7d7e24bcfb11afa496bbe
Author: Matthias Clasen <mclasen(a)redhat.com>
Date: Thu Aug 12 12:53:43 2010 -0400
bring back some subpackages
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2851014..c182614 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -44,8 +44,8 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
-#BuildRequires: brasero-devel >= %{brasero_version}
-#BuildRequires: evince-devel >= %{evince_version}
+BuildRequires: brasero-devel >= %{brasero_version}
+BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
@@ -90,25 +90,25 @@ Requires: gnome-python2-gnome
This module contains a wrapper that allows GNOME Panel applets to be
written in Python.
-#package -n gnome-python2-brasero
-#Summary: Python bindings for interacting with brasero
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: brasero-libs >= %{brasero_version}
+%package -n gnome-python2-brasero
+Summary: Python bindings for interacting with brasero
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: brasero-libs >= %{brasero_version}
-#description -n gnome-python2-brasero
-#This module contains a wrapper that allows the use of brasero via Python.
+%description -n gnome-python2-brasero
+This module contains a wrapper that allows the use of brasero via Python.
-#package -n gnome-python2-evince
-#Summary: Python bindings for interacting with evince
-#License: LGPLv2
-#Group: Development/Languages
-#Requires: %{name} = %{version}-%{release}
-#Requires: evince-libs >= %{evince_version}
+%package -n gnome-python2-evince
+Summary: Python bindings for interacting with evince
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: evince-libs >= %{evince_version}
-#description -n gnome-python2-evince
-#This module contains a wrapper that allows the use of evince via Python.
+%description -n gnome-python2-evince
+This module contains a wrapper that allows the use of evince via Python.
%package -n gnome-python2-evolution
Summary: Python bindings for interacting with evolution-data-server
@@ -229,15 +229,10 @@ via Python.
%patch0 -p1 -b .flags
%build
-# evince, brasero and mediaprofiles are disabled because these things have
-# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
-# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
-# stuff. - AdamW 2010/07
-%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles
+%configure --enable-metacity
make
%install
-rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
@@ -245,9 +240,6 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(-,root,root,-)
%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
@@ -259,14 +251,14 @@ rm -rf $RPM_BUILD_ROOT
%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
%{python_sitearch}/gtk-2.0/gnomeapplet.so
-#files -n gnome-python2-brasero
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/braseroburn.so
-#{python_sitearch}/gtk-2.0/braseromedia.so
+files -n gnome-python2-brasero
+defattr(-,root,root,-)
+{python_sitearch}/gtk-2.0/braseroburn.so
+{python_sitearch}/gtk-2.0/braseromedia.so
-#files -n gnome-python2-evince
-#defattr(-,root,root,-)
-#{python_sitearch}/gtk-2.0/evince.so
+files -n gnome-python2-evince
+defattr(-,root,root,-)
+{python_sitearch}/gtk-2.0/evince.so
%files -n gnome-python2-evolution
%defattr(-,root,root,-)
@@ -302,7 +294,7 @@ rm -rf $RPM_BUILD_ROOT
%files -n gnome-python2-totem
%defattr(-,root,root,-)
%ifnarch s390 s390x
-#{python_sitearch}/gtk-2.0/mediaprofiles.so
+{python_sitearch}/gtk-2.0/mediaprofiles.so
%endif
%{python_sitearch}/gtk-2.0/totem
@@ -319,6 +311,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Aug 12 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-4
+- Bring back evince, brasero and media profiles for F14
+
* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
- gnome-media-profiles support also broken due to gtk3 port, so
disable it
commit d20051c0f4b3c67ad2f9f078961471e00d2187aa
Author: Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
Date: Wed Jul 28 16:26:56 2010 +0000
dist-git conversion
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 8bd0557..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-gnome-python-desktop-2.31.1.tar.bz2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8bd0557
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+gnome-python-desktop-2.31.1.tar.bz2
diff --git a/Makefile b/Makefile
deleted file mode 100644
index af59907..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: gnome-python2-desktop
-# $Id: Makefile,v 1.2 2007/10/15 18:49:07 notting Exp $
-NAME := gnome-python2-desktop
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attempt a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
commit 92eeeb193f5e1c16b0d7e362e144dc5e25f132b8
Author: dmalcolm <dmalcolm(a)fedoraproject.org>
Date: Tue Jul 27 21:00:09 2010 +0000
(committed by dmalcolm on behalf of awilliam)
Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
- gnome-media-profiles support also broken due to gtk3 port, so disable it
- drop evince and brasero modules for now as they won't build due to evince
and brasero being ported to gtk3
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 53f8a93..2851014 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -44,8 +44,8 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
-BuildRequires: brasero-devel >= %{brasero_version}
-BuildRequires: evince-devel >= %{evince_version}
+#BuildRequires: brasero-devel >= %{brasero_version}
+#BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
@@ -90,25 +90,25 @@ Requires: gnome-python2-gnome
This module contains a wrapper that allows GNOME Panel applets to be
written in Python.
-%package -n gnome-python2-brasero
-Summary: Python bindings for interacting with brasero
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: brasero-libs >= %{brasero_version}
+#package -n gnome-python2-brasero
+#Summary: Python bindings for interacting with brasero
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: brasero-libs >= %{brasero_version}
-%description -n gnome-python2-brasero
-This module contains a wrapper that allows the use of brasero via Python.
+#description -n gnome-python2-brasero
+#This module contains a wrapper that allows the use of brasero via Python.
-%package -n gnome-python2-evince
-Summary: Python bindings for interacting with evince
-License: LGPLv2
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: evince-libs >= %{evince_version}
+#package -n gnome-python2-evince
+#Summary: Python bindings for interacting with evince
+#License: LGPLv2
+#Group: Development/Languages
+#Requires: %{name} = %{version}-%{release}
+#Requires: evince-libs >= %{evince_version}
-%description -n gnome-python2-evince
-This module contains a wrapper that allows the use of evince via Python.
+#description -n gnome-python2-evince
+#This module contains a wrapper that allows the use of evince via Python.
%package -n gnome-python2-evolution
Summary: Python bindings for interacting with evolution-data-server
@@ -229,7 +229,11 @@ via Python.
%patch0 -p1 -b .flags
%build
-%configure --enable-metacity
+# evince, brasero and mediaprofiles are disabled because these things have
+# been ported to GTK+3. It's not practical to mix GTK+2 and GTK+3 bindings
+# in gnome-python2-desktop, so for now we'll just have to disable the GTK+3
+# stuff. - AdamW 2010/07
+%configure --enable-metacity --disable-evince --disable-braseromedia --disable-braseroburn --disable-mediaprofiles
make
%install
@@ -255,14 +259,14 @@ rm -rf $RPM_BUILD_ROOT
%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
%{python_sitearch}/gtk-2.0/gnomeapplet.so
-%files -n gnome-python2-brasero
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/braseroburn.so
-%{python_sitearch}/gtk-2.0/braseromedia.so
+#files -n gnome-python2-brasero
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/braseroburn.so
+#{python_sitearch}/gtk-2.0/braseromedia.so
-%files -n gnome-python2-evince
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/evince.so
+#files -n gnome-python2-evince
+#defattr(-,root,root,-)
+#{python_sitearch}/gtk-2.0/evince.so
%files -n gnome-python2-evolution
%defattr(-,root,root,-)
@@ -298,7 +302,7 @@ rm -rf $RPM_BUILD_ROOT
%files -n gnome-python2-totem
%defattr(-,root,root,-)
%ifnarch s390 s390x
-%{python_sitearch}/gtk-2.0/mediaprofiles.so
+#{python_sitearch}/gtk-2.0/mediaprofiles.so
%endif
%{python_sitearch}/gtk-2.0/totem
@@ -315,6 +319,12 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jul 27 2010 Adam Williamson <awilliam(a)redhat.com> - 2.31.1-3
+- gnome-media-profiles support also broken due to gtk3 port, so
+ disable it
+- drop evince and brasero modules for now as they won't build due
+ to evince and brasero being ported to gtk3
+
* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
commit a42a895adc9e91c5f1d9ebc4b580a049d1fcdac3
Author: dmalcolm <dmalcolm(a)fedoraproject.org>
Date: Thu Jul 22 01:41:18 2010 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 60bfc3a..53f8a93 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.31.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jul 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 2.31.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
- Update to 2.31.1
commit 51f46770980b641c617b6d19697fd3be0ede9209
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Sat Jun 12 19:45:20 2010 +0000
updates sources
diff --git a/.cvsignore b/.cvsignore
index 951dafc..8bd0557 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.30.0.tar.bz2
+gnome-python-desktop-2.31.1.tar.bz2
diff --git a/sources b/sources
index 548d777..7e824a0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-a6d448d46a6b3062ce7a1b6a9fddfb48 gnome-python-desktop-2.30.0.tar.bz2
+fb0d9cd4018412cdd4b9f4ba36f0064a gnome-python-desktop-2.31.1.tar.bz2
commit 28e2b2ae7da492160959fc4fcccc15f530d3ef84
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Fri Jun 11 14:53:35 2010 +0000
2.31.1
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0e8defc..60bfc3a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,13 +27,13 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.30.0
-Release: 8%{?dist}
+Version: 2.31.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.30/gnome-python-...
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.31/gnome-python-...
# https://bugzilla.gnome.org/show_bug.cgi?id=616306
Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jun 11 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.31.1-1
+- Update to 2.31.1
+
* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
- Rebuild against new brasero
commit 45ae8ce5b86a1e030974dd1252ece0cc1272f5c9
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Thu Jun 10 21:15:13 2010 +0000
Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 4ef677f..0e8defc 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Jun 10 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-8
+- Rebuild against new brasero
+
* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
- rebuilt
commit 1f0452c6c7ebb75c9710d934e1c1be5e779a199a
Author: Colin Walters <walters(a)fedoraproject.org>
Date: Fri Jun 4 14:51:00 2010 +0000
- rebuilt
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index af69077..4ef677f 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 6%{?dist}
+Release: 7%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jun 04 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-7
+- rebuilt
+
* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
- Rebuild against latest libedataserver.
commit ec2743707257c65d57f90e615caf6b7fe6ae9f7e
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat May 29 15:37:10 2010 +0000
- Rebuild against latest libedataserver.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index fcb9936..af69077 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat May 29 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.30.0-6
+- Rebuild against latest libedataserver.
+
* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
- Rebuild against latest evolution
commit 7dea50eaf97a5cb2f616d17d20a9b5808cd6be54
Author: Colin Walters <walters(a)fedoraproject.org>
Date: Thu May 6 15:15:53 2010 +0000
- Rebuild against latest evolution
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c15e1cf..fcb9936 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu May 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-5
+- Rebuild against latest evolution
+
* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
- remember to commit patch to cvs
commit ffaa6da7fc408117251c1440a2b77fe4428521ec
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Apr 20 21:38:14 2010 +0000
spec changes too
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 8de925d..c15e1cf 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -315,6 +315,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-4
+- remember to commit patch to cvs
+
* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
- fix wnck gtypes to be flags, instead of enum
commit 28773ddfd36e6256fc0423fdd57c30e7739df269
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Apr 20 21:36:50 2010 +0000
actually commit patch to cvs. :/
diff --git a/gnome-python-desktop-2.30.0-wnck-flagsfix.patch b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
new file mode 100644
index 0000000..0be84c9
--- /dev/null
+++ b/gnome-python-desktop-2.30.0-wnck-flagsfix.patch
@@ -0,0 +1,30 @@
+diff -up gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix gnome-python-desktop-2.30.0/wnck/wnck.defs
+--- gnome-python-desktop-2.30.0/wnck/wnck.defs.flagsfix 2010-04-20 11:27:20.119491538 -0400
++++ gnome-python-desktop-2.30.0/wnck/wnck.defs 2010-04-20 11:28:34.715491536 -0400
+@@ -100,7 +100,7 @@
+ )
+ )
+
+-(define-enum WindowState
++(define-flags WindowState
+ (in-module "Wnck")
+ (c-name "WnckWindowState")
+ (gtype-id "WNCK_TYPE_WINDOW_STATE")
+@@ -121,7 +121,7 @@
+ )
+ )
+
+-(define-enum WindowActions
++(define-flags WindowActions
+ (in-module "Wnck")
+ (c-name "WnckWindowActions")
+ (gtype-id "WNCK_TYPE_WINDOW_ACTIONS")
+@@ -184,7 +184,7 @@
+ )
+ )
+
+-(define-enum WindowMoveResizeMask
++(define-flags WindowMoveResizeMask
+ (in-module "Wnck")
+ (c-name "WnckWindowMoveResizeMask")
+ (gtype-id "WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK")
commit 2ef180aead48f6285bf3d350e1262c9f54c6086c
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Apr 20 21:34:01 2010 +0000
fix for noisy issue with wnck module
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 60ba0c4..8de925d 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -22,20 +22,22 @@
%define gnome_desktop_version 2.10.0
%define totem_version 1.4.0
%define eds_version 1.4.0
-%define bug_buddy_version 2.16.0
%define evince_version 2.29
### Abstract ###
Name: gnome-python2-desktop
Version: 2.30.0
-Release: 1%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
Source: http://download.gnome.org/sources/gnome-python-desktop/2.30/gnome-python-...
+# https://bugzilla.gnome.org/show_bug.cgi?id=616306
+Patch0: gnome-python-desktop-2.30.0-wnck-flagsfix.patch
+
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -43,7 +45,6 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
BuildRequires: brasero-devel >= %{brasero_version}
-BuildRequires: bug-buddy >= %{bug_buddy_version}
BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
@@ -99,16 +100,6 @@ Requires: brasero-libs >= %{brasero_version}
%description -n gnome-python2-brasero
This module contains a wrapper that allows the use of brasero via Python.
-%package -n gnome-python2-bugbuddy
-Summary: Python bindings for interacting with bug-buddy
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: bug-buddy >= %{bug_buddy_version}
-
-%description -n gnome-python2-bugbuddy
-This module contains a wrapper that allows the use of bug-buddy via
-Python.
-
%package -n gnome-python2-evince
Summary: Python bindings for interacting with evince
License: LGPLv2
@@ -235,6 +226,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch0 -p1 -b .flags
%build
%configure --enable-metacity
@@ -247,6 +239,7 @@ make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/bugbuddy.*
%clean
rm -rf $RPM_BUILD_ROOT
@@ -267,10 +260,6 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/braseroburn.so
%{python_sitearch}/gtk-2.0/braseromedia.so
-%files -n gnome-python2-bugbuddy
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/bugbuddy.py*
-
%files -n gnome-python2-evince
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/evince.so
@@ -326,6 +315,12 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Apr 20 2010 Tom "spot" Callaway <tcallawa(a)redhat.com> - 2.30.0-3
+- fix wnck gtypes to be flags, instead of enum
+
+* Tue Apr 06 2010 Colin Walters <walters(a)verbum.org> - 2.30.0-2
+- Drop bug-buddy package, we use abrt
+
* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
- Update to 2.30.0
commit 56b248b8e9e8c3f71343e42c825a994b09f26d69
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Mar 31 22:49:20 2010 +0000
2.30.0
diff --git a/.cvsignore b/.cvsignore
index 6d05356..951dafc 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.29.92.tar.bz2
+gnome-python-desktop-2.30.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index d0ab5be..60ba0c4 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -36,8 +36,6 @@ Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
Source: http://download.gnome.org/sources/gnome-python-desktop/2.30/gnome-python-...
-Patch0: evince.patch
-
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -237,9 +235,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch0 -p1 -b .evince
-
-autoreconf -f -i
%build
%configure --enable-metacity
diff --git a/sources b/sources
index 9e94b33..548d777 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ce8151fce019bbd6c3d4c4f95a2ec70d gnome-python-desktop-2.29.92.tar.bz2
+a6d448d46a6b3062ce7a1b6a9fddfb48 gnome-python-desktop-2.30.0.tar.bz2
commit 27fc3435509975c0c871c7e0772f5077dfe98152
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Mar 31 22:37:27 2010 +0000
2.30.0
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9e47278..d0ab5be 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,13 +28,13 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.29.92
+Version: 2.30.0
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
-Source: http://download.gnome.org/sources/gnome-python-desktop/2.29/gnome-python-...
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.30/gnome-python-...
Patch0: evince.patch
@@ -331,6 +331,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Mar 31 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.30.0-1
+- Update to 2.30.0
+
* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
- Update to 2.29.92
commit ab96a52e65f6c1f2f95237289666028bdd4f67ea
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Mar 30 03:12:47 2010 +0000
try to fix the build
diff --git a/evince.patch b/evince.patch
new file mode 100644
index 0000000..c7ba5c8
--- /dev/null
+++ b/evince.patch
@@ -0,0 +1,12 @@
+diff -up gnome-python-desktop-2.29.92/configure.ac.evince gnome-python-desktop-2.29.92/configure.ac
+--- gnome-python-desktop-2.29.92/configure.ac.evince 2010-03-29 23:07:51.936129633 -0400
++++ gnome-python-desktop-2.29.92/configure.ac 2010-03-29 23:08:21.580911027 -0400
+@@ -434,7 +434,7 @@ AM_CONDITIONAL(BUILD_EVOLUTION_ECAL, $bu
+ dnl should we build the evince module
+ AC_ARG_BINDING([evince],[YES])
+ if $build_evince; then
+- PKG_CHECK_MODULES(EVINCE, [evince-document-2.29 evince-view-2.29],
++ PKG_CHECK_MODULES(EVINCE, [evince-document-2.30 evince-view-2.30],
+ build_evince=true,
+ build_evince=false)
+ if test -n "$export_dynamic"; then
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 88af8f2..9e47278 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -36,6 +36,8 @@ Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
Source: http://download.gnome.org/sources/gnome-python-desktop/2.29/gnome-python-...
+Patch0: evince.patch
+
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -66,7 +68,7 @@ BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
-BuildRequires: autoconf, libtool
+BuildRequires: autoconf, automake, libtool
%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
%endif
@@ -235,9 +237,11 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch0 -p1 -b .evince
-%build
autoreconf -f -i
+
+%build
%configure --enable-metacity
make
commit 0494b6e8003190a6abbabdd6c803ca911801dc55
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Mar 30 02:49:07 2010 +0000
drop patch
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 64f43bd..88af8f2 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -34,8 +34,7 @@ License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
#VCS: git://git.gnome.org/gnome-python-desktop
-Patch1: Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
-Source: http://ftp.gnome.org/pub/GNOME/sources/gnome-python-desktop/2.29/gnome-py...
+Source: http://download.gnome.org/sources/gnome-python-desktop/2.29/gnome-python-...
### Dependencies ###
@@ -187,7 +186,7 @@ Requires: %{name} = %{version}-%{release}
Requires: metacity >= %{metacity_version}
%description -n gnome-python2-metacity
-This module contains a wrapper that allows the use of metacity
+This module contains a wrapper that allows the use of metacity
via Python.
%package -n gnome-python2-totem
@@ -236,7 +235,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch1 -p1
%build
autoreconf -f -i
commit a360b9fded596b12451353ae31d80964edf8e6b6
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Mar 30 02:37:36 2010 +0000
2.29.92
diff --git a/.cvsignore b/.cvsignore
index 3e64a1e..6d05356 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.29.1.tar.bz2
+gnome-python-desktop-2.29.92.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c05420a..64f43bd 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,12 +28,11 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.29.1
-Release: 8%{?dist}
+Version: 2.29.92
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
#VCS: git://git.gnome.org/gnome-python-desktop
Patch1: Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
Source: http://ftp.gnome.org/pub/GNOME/sources/gnome-python-desktop/2.29/gnome-py...
@@ -330,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Mar 29 2010 Matthias Clasen <mclasen(a)redhat.com> - 2.29.92-1
+- Update to 2.29.92
+
* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
- add missing patch
diff --git a/sources b/sources
index 893dd63..9e94b33 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-22bb3b93c9d209d6ad23ca56e1d507bc gnome-python-desktop-2.29.1.tar.bz2
+ce8151fce019bbd6c3d4c4f95a2ec70d gnome-python-desktop-2.29.92.tar.bz2
commit ed5926f602933fc78db9a6e1975c310aa857b465
Author: Colin Walters <walters(a)fedoraproject.org>
Date: Thu Mar 4 14:46:10 2010 +0000
add missing patch
diff --git a/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
new file mode 100644
index 0000000..35c7be7
--- /dev/null
+++ b/Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
@@ -0,0 +1,503 @@
+From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
+From: Gustavo Carneiro <gjc(a)inescporto.pt>
+Date: Thu, 28 Jan 2010 16:10:16 +0000
+Subject: [PATCH] Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
+
+---
+ totem/plparser.defs | 296 +++++++++++++++++++++++++++++++++++++++++++----
+ totem/plparser.override | 102 +----------------
+ 2 files changed, 276 insertions(+), 122 deletions(-)
+
+diff --git a/totem/plparser.defs b/totem/plparser.defs
+index 184578e..9f25ff1 100644
+--- a/totem/plparser.defs
++++ b/totem/plparser.defs
+@@ -1,8 +1,24 @@
+ ;; -*- scheme -*-
+ ; object definitions ...
++
++(define-object Parser
++ (in-module "totem.plparser")
++ (parent "GObject")
++ (c-name "TotemPlParser")
++ (gtype-id "TOTEM_TYPE_PL_PARSER")
++)
++
++(define-object Playlist
++ (in-module "totem.playlist")
++ (parent "GObject")
++ (c-name "TotemPlPlaylist")
++ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
++)
++
+ ;; Enumerations and flags ...
+
+-(define-enum ParserResult
++
++(define-enum PlParserResult
+ (in-module "Totem")
+ (c-name "TotemPlParserResult")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
+@@ -10,10 +26,12 @@
+ '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
+ '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
+ '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
++ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
++ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
+ )
+ )
+
+-(define-enum ParserType
++(define-enum PlParserType
+ (in-module "Totem")
+ (c-name "TotemPlParserType")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
+@@ -21,47 +39,60 @@
+ '("pls" "TOTEM_PL_PARSER_PLS")
+ '("m3u" "TOTEM_PL_PARSER_M3U")
+ '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
++ '("xspf" "TOTEM_PL_PARSER_XSPF")
++ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
+ )
+ )
+
+-(define-enum ParserError
++(define-enum PlParserError
+ (in-module "Totem")
+ (c-name "TotemPlParserError")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
+ (values
+- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
+- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
++ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
++ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
+ )
+ )
+
+
+ ;; From totem-pl-parser.h
+
+-(define-object Parser
+- (in-module "PlaylistParser")
+- (parent "GObject")
+- (c-name "TotemPlParser")
+- (gtype-id "TOTEM_TYPE_PL_PARSER")
+-)
+-
+-(define-function totem_pl_parser_error_quark
++(define-function error_quark
+ (c-name "totem_pl_parser_error_quark")
+ (return-type "GQuark")
+ )
+
+-(define-function totem_pl_parser_get_type
++(define-function get_type
+ (c-name "totem_pl_parser_get_type")
+ (return-type "GType")
+ )
+
+-(define-method write
++(define-function parse_duration
++ (c-name "totem_pl_parser_parse_duration")
++ (return-type "gint64")
++ (parameters
++ '("const-char*" "duration")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function parse_date
++ (c-name "totem_pl_parser_parse_date")
++ (return-type "guint64")
++ (parameters
++ '("const-char*" "date_str")
++ '("gboolean" "debug")
++ )
++)
++
++(define-method save
+ (of-object "TotemPlParser")
+- (c-name "totem_pl_parser_write")
++ (c-name "totem_pl_parser_save")
+ (return-type "gboolean")
+ (parameters
+- '("GtkTreeModel*" "model")
+- '("TotemPlParserIterFunc" "func")
+- '("const-char*" "output")
++ '("TotemPlPlaylist*" "playlist")
++ '("GFile*" "dest")
++ '("const-gchar*" "title")
+ '("TotemPlParserType" "type")
+ '("GError**" "error")
+ )
+@@ -76,20 +107,243 @@
+ )
+ )
+
++(define-method add_ignored_mimetype
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_add_ignored_mimetype")
++ (return-type "none")
++ (parameters
++ '("const-char*" "mimetype")
++ )
++)
++
+ (define-method parse
+ (of-object "TotemPlParser")
+ (c-name "totem_pl_parser_parse")
+ (return-type "TotemPlParserResult")
+ (parameters
+- '("const-char*" "url")
++ '("const-char*" "uri")
+ '("gboolean" "fallback")
+ )
+ )
+
+-(define-function totem_pl_parser_new
++(define-method parse_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-method parse_finish
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_finish")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("GAsyncResult*" "async_result")
++ '("GError**" "error")
++ )
++)
++
++(define-method parse_with_base
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ )
++)
++
++(define-method parse_with_base_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-function new
+ (c-name "totem_pl_parser_new")
+ (is-constructor-of "TotemPlParser")
+ (return-type "TotemPlParser*")
+ )
+
++(define-function metadata_get_type
++ (c-name "totem_pl_parser_metadata_get_type")
++ (return-type "GType")
++)
++
++
++
++;; From totem-pl-parser-mini.h
++
++(define-function can_parse_from_data
++ (c-name "totem_pl_parser_can_parse_from_data")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "data")
++ '("gsize" "len")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function can_parse_from_filename
++ (c-name "totem_pl_parser_can_parse_from_filename")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "filename")
++ '("gboolean" "debug")
++ )
++)
++
++
++
++;; From totem-pl-playlist.h
++
++(define-function totem_pl_playlist_get_type
++ (c-name "totem_pl_playlist_get_type")
++ (return-type "GType")
++)
++
++(define-function totem_pl_playlist_new
++ (c-name "totem_pl_playlist_new")
++ (is-constructor-of "TotemPlPlaylist")
++ (return-type "TotemPlPlaylist*")
++)
++
++(define-method size
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_size")
++ (return-type "guint")
++)
++
++(define-method prepend
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_prepend")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method append
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_append")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method insert
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_insert")
++ (return-type "none")
++ (parameters
++ '("gint" "position")
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_first
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_first")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_next
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_next")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_prev
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_prev")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method get_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method get_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method get
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
++(define-method set_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method set_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method set
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
+
+diff --git a/totem/plparser.override b/totem/plparser.override
+index 3cbe2fb..48e1853 100644
+--- a/totem/plparser.override
++++ b/totem/plparser.override
+@@ -5,7 +5,7 @@ headers
+ #include "pygobject.h"
+ #include "totem-pl-parser.h"
+ #include "totem-pl-parser-builtins.h"
+-#include <gtk/gtk.h>
++#include "totem-pl-parser-mini.h"
+ #include <glib.h>
+
+ #include "config.h"
+@@ -14,108 +14,8 @@ headers
+ modulename totem.plparser
+ %%
+ import gobject.GObject as PyGObject_Type
+-import gtk.TreeModel as PyGtkTreeModel_Type
+ %%
+ ignore-glob
+ *_get_type
+ *_error_quark
+-%%
+-override totem_pl_parser_write kwargs
+-
+-typedef struct {
+- PyObject *func;
+- PyObject *data;
+- gboolean has_error;
+-} PyPlParserIterFuncData;
+-
+-static void
+-_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
+- gboolean *custom_title, gpointer user_data)
+-{
+- PyObject *args = NULL;
+- PyObject *result = NULL;
+- char *tmp_uri = NULL, *tmp_title = NULL;
+- PyPlParserIterFuncData *data = user_data;
+- PyObject *py_custom_title = NULL;
+-
+- if (data->has_error)
+- return;
+-
+- if (data->data)
+- args = Py_BuildValue ("(NNO)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
+- data->data);
+- else
+- args = Py_BuildValue ("(NN)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
+- result = PyEval_CallObject (data->func, args);
+- Py_DECREF (args);
+-
+- if (result == NULL) {
+- data->has_error = TRUE;
+- return;
+- }
+- /* ?! */
+- /* PyObject_Print (result, stdout, 0); */
+-
+- if (PyString_Check (result)) {
+- tmp_uri = PyString_AsString (result);
+- if (tmp_uri == NULL) {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one"
+- " string or a tuple of two strings.");
+- data->has_error = TRUE;
+- }
+- } else if (!PyTuple_Check (result) ||
+- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
+- {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one "
+- "string or a tuple of two strings,"
+- " or two strings and a boolean.");
+- data->has_error = TRUE;
+- }
+-
+- /* g_strdup handles NULL case for us */
+- *uri = g_strdup (tmp_uri);
+- *title = g_strdup (tmp_title);
+- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
+-
+- Py_DECREF (result);
+-}
+
+-static PyObject *
+-_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
+- PyGObject *model;
+- char *output;
+- TotemPlParserType type;
+- GError *error = NULL;
+- PyPlParserIterFuncData data = {0, };
+-
+- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
+- kwlist, &PyGtkTreeModel_Type, &model,
+- &data.func, &output, &type, &data.data))
+- return NULL;
+- /* verify arguments' integrity */
+- if (!PyCallable_Check (data.func)) {
+- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
+- return NULL;
+- }
+- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
+- GTK_TREE_MODEL(model->obj),
+- _pl_parser_iter_func,
+- output,type, &data, &error))
+- {
+- /* return an GError */
+- pyg_error_check(&error);
+- return NULL;
+- }
+- if (data.has_error)
+- return NULL;
+- Py_INCREF(Py_None);
+- return Py_None;
+-}
+--
+1.6.6.1
+
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0497f98..c05420a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -330,6 +330,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Mar 04 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-8
+- add missing patch
+
* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
- Add patch to fix build
commit 9deb833d90d19ef3de2842a036adc1428e0556c6
Author: Colin Walters <walters(a)fedoraproject.org>
Date: Thu Mar 4 14:30:19 2010 +0000
- Add patch to fix build
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6776e6e..0497f98 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,11 +29,13 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 6%{?dist}
+Release: 7%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+#VCS: git://git.gnome.org/gnome-python-desktop
+Patch1: Bug-608331-totem-pl-parser-doesn-t-build-with-latest-totem-pl-parser.patch
Source: http://ftp.gnome.org/pub/GNOME/sources/gnome-python-desktop/2.29/gnome-py...
### Dependencies ###
@@ -235,6 +237,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch1 -p1
%build
autoreconf -f -i
@@ -327,6 +330,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Mar 01 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-7
+- Add patch to fix build
+
* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
- rebuilt
commit e367016d4332cbc9cc5e22f52a72d82a9ac8fc28
Author: Colin Walters <walters(a)fedoraproject.org>
Date: Wed Feb 24 18:25:14 2010 +0000
- rebuilt
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2002e37..6776e6e 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -327,6 +327,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 24 2010 Colin Walters <walters(a)verbum.org> - 2.29.1-6
+- rebuilt
+
* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
- Rebuild against new totem-pl-parser.
commit 23cb0460c4177a385861077c74732c40fd69fd73
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Thu Jan 28 01:38:41 2010 +0000
- Rebuild against new totem-pl-parser.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9219018..2002e37 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -327,6 +327,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jan 27 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-5.fc13
+- Rebuild against new totem-pl-parser.
+
* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
- Rebuild against new gnome-desktop.
commit 9fd86d8862905276aae52dc99a4661ec785a32eb
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Fri Jan 22 23:24:10 2010 +0000
- Rebuild against new gnome-desktop.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e705484..9219018 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -327,6 +327,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jan 22 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-4.fc13
+- Rebuild against new gnome-desktop.
+
* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
- Fix rpmlint warnings.
commit 7aef48340dc63d075cbecb22a307040178158658
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Thu Jan 14 20:57:24 2010 +0000
- Fix rpmlint warnings.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6855831..e705484 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -81,7 +81,7 @@ License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
# applets from GNOME 1.4 are no longer supported - we only have 1 panel
-Obsoletes: pygnome-applet
+Obsoletes: pygnome-applet <= 1.4.2
Requires: gnome-python2-bonobo
Requires: gnome-python2-gnome
@@ -315,15 +315,21 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/totem
%files -n gnome-python2-rsvg
+%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/rsvg.so
%files -n gnome-python2-gnomedesktop
+%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomedesktop
%files -n gnome-python2-gnomekeyring
+%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Jan 14 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-3.fc13
+- Fix rpmlint warnings.
+
* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
- Provide a complete URI for the Source field.
commit afd8b3a318ac4637445eb730777581fb0dc70b2d
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Fri Jan 8 17:57:36 2010 +0000
- Provide a complete URI for the Source field.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c2533c8..6855831 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,12 +29,12 @@
Name: gnome-python2-desktop
Version: 2.29.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-Source: gnome-python-desktop-%{version}.tar.bz2
+Source: http://ftp.gnome.org/pub/GNOME/sources/gnome-python-desktop/2.29/gnome-py...
### Dependencies ###
@@ -324,6 +324,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jan 08 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-2.fc13
+- Provide a complete URI for the Source field.
+
* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
- Update to 2.29.1
- Remove patch for GNOME bug #603231 (fixed upstream).
commit b237c6a93a2de9a62e5f981b09bc3e8ea80340a4
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jan 4 16:45:02 2010 +0000
- Update to 2.29.1
- Remove patch for GNOME bug #603231 (fixed upstream).
diff --git a/.cvsignore b/.cvsignore
index c81401b..3e64a1e 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.28.0.tar.bz2
+gnome-python-desktop-2.29.1.tar.bz2
diff --git a/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch b/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
deleted file mode 100644
index ab1f6bd..0000000
--- a/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -up gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs.fix-brasero-bindings gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs
---- gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs.fix-brasero-bindings 2009-09-01 12:38:52.000000000 -0400
-+++ gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs 2010-01-04 09:16:40.501493272 -0500
-@@ -337,19 +337,6 @@
- )
- )
-
--(define-enum TrackDataType
-- (in-module "Brasero")
-- (c-name "BraseroTrackDataType")
-- (values
-- '("none" "BRASERO_TRACK_TYPE_NONE")
-- '("stream" "BRASERO_TRACK_TYPE_STREAM")
-- '("data" "BRASERO_TRACK_TYPE_DATA")
-- '("image" "BRASERO_TRACK_TYPE_IMAGE")
-- '("disc" "BRASERO_TRACK_TYPE_DISC")
-- )
--)
--
--
- ;; From brasero-blank-dialog.h
-
- (define-function brasero_blank_dialog_get_type
-@@ -1487,15 +1474,6 @@
- )
- )
-
--(define-method get_track_type
-- (of-object "BraseroTrack")
-- (c-name "brasero_track_get_track_type")
-- (return-type "BraseroTrackDataType")
-- (parameters
-- '("BraseroTrackType*" "type")
-- )
--)
--
- (define-method get_status
- (of-object "BraseroTrack")
- (c-name "brasero_track_get_status")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index a825cf8..c2533c8 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.28.0
+# Last updated for version 2.29.1
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -12,7 +12,8 @@
%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
-%define brasero_version 0.9.0
+# Version not necessary for libnautilus_burn
+%define brasero_version 2.29
%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
%define metacity_version 2.21.5
@@ -22,24 +23,19 @@
%define totem_version 1.4.0
%define eds_version 1.4.0
%define bug_buddy_version 2.16.0
-%define evince_version 2.25
+%define evince_version 2.29
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.28.0
-Release: 3%{?dist}
+Version: 2.29.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
-### Patches ###
-
-# GNOME bug #603231
-Patch1: gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
-
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -239,7 +235,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch1 -p1 -b .fix-brasero-bindings
%build
autoreconf -f -i
@@ -329,6 +324,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.29.1-1.fc13
+- Update to 2.29.1
+- Remove patch for GNOME bug #603231 (fixed upstream).
+
* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
diff --git a/sources b/sources
index 06d69d2..893dd63 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d97bb3d8e1adc00505be060fbc832f44 gnome-python-desktop-2.28.0.tar.bz2
+22bb3b93c9d209d6ad23ca56e1d507bc gnome-python-desktop-2.29.1.tar.bz2
commit e383db99e5cc8ba598041071954aa6fb375c5780
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jan 4 14:23:05 2010 +0000
- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
diff --git a/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch b/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
new file mode 100644
index 0000000..ab1f6bd
--- /dev/null
+++ b/gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
@@ -0,0 +1,39 @@
+diff -up gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs.fix-brasero-bindings gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs
+--- gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs.fix-brasero-bindings 2009-09-01 12:38:52.000000000 -0400
++++ gnome-python-desktop-2.28.0/braseroburn/brasero_burn.defs 2010-01-04 09:16:40.501493272 -0500
+@@ -337,19 +337,6 @@
+ )
+ )
+
+-(define-enum TrackDataType
+- (in-module "Brasero")
+- (c-name "BraseroTrackDataType")
+- (values
+- '("none" "BRASERO_TRACK_TYPE_NONE")
+- '("stream" "BRASERO_TRACK_TYPE_STREAM")
+- '("data" "BRASERO_TRACK_TYPE_DATA")
+- '("image" "BRASERO_TRACK_TYPE_IMAGE")
+- '("disc" "BRASERO_TRACK_TYPE_DISC")
+- )
+-)
+-
+-
+ ;; From brasero-blank-dialog.h
+
+ (define-function brasero_blank_dialog_get_type
+@@ -1487,15 +1474,6 @@
+ )
+ )
+
+-(define-method get_track_type
+- (of-object "BraseroTrack")
+- (c-name "brasero_track_get_track_type")
+- (return-type "BraseroTrackDataType")
+- (parameters
+- '("BraseroTrackType*" "type")
+- )
+-)
+-
+ (define-method get_status
+ (of-object "BraseroTrack")
+ (c-name "brasero_track_get_status")
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6f81c34..a825cf8 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,13 +28,18 @@
Name: gnome-python2-desktop
Version: 2.28.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
+### Patches ###
+
+# GNOME bug #603231
+Patch1: gnome-python-desktop-2.28.0-fix-brasero-bindings.patch
+
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -234,6 +239,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch1 -p1 -b .fix-brasero-bindings
%build
autoreconf -f -i
@@ -323,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jan 04 2010 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-3.fc13
+- Add patch for GNOME bug #603231 (BraseroTrackDataType is now private).
+
* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
- Rebuild for new evince
commit 589eb63facda04a10d6ebfc5240a6e1f4ddb7ec8
Author: Bastien Nocera <hadess(a)fedoraproject.org>
Date: Thu Dec 3 14:06:41 2009 +0000
- Rebuild for new evince
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f017f7b..6f81c34 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.28.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -323,6 +323,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Dec 03 2009 Bastien Nocera <bnocera(a)redhat.com> 2.28.0-2
+- Rebuild for new evince
+
* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
- Update to 2.28.0
commit a243d80bd57870bdb1a51db17c1999aeb1612a8b
Author: Bill Nottingham <notting(a)fedoraproject.org>
Date: Wed Nov 25 23:19:38 2009 +0000
Fix typo that causes a failure to update the common directory. (releng
#2781)
diff --git a/Makefile b/Makefile
index 0d02d27..af59907 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
# Makefile for source rpm: gnome-python2-desktop
-# $Id: Makefile,v 1.1 2006/02/06 21:27:57 johnp Exp $
+# $Id: Makefile,v 1.2 2007/10/15 18:49:07 notting Exp $
NAME := gnome-python2-desktop
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
commit 26cae7109621da4660069a3833e2fdf31d09c3cf
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 21 16:54:52 2009 +0000
- Update to 2.28.0
diff --git a/.cvsignore b/.cvsignore
index c127020..c81401b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.27.3.tar.bz2
+gnome-python-desktop-2.28.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0ec4c48..f017f7b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.27.1
+# Last updated for version 2.28.0
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -27,7 +27,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.27.3
+Version: 2.28.0
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -323,6 +323,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Sep 21 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.28.0-1.fc12
+- Update to 2.28.0
+
* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
- Update to 2.27.3
diff --git a/sources b/sources
index 6d455cd..06d69d2 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8f727b090818327f92fe7b50704339c0 gnome-python-desktop-2.27.3.tar.bz2
+d97bb3d8e1adc00505be060fbc832f44 gnome-python-desktop-2.28.0.tar.bz2
commit 4666fc52118c648cb3a673164d4232965920ad29
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Sep 2 04:16:29 2009 +0000
- Update to 2.27.3
diff --git a/.cvsignore b/.cvsignore
index 3cab627..c127020 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.27.2.tar.bz2
+gnome-python-desktop-2.27.3.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0a3e3d5..0ec4c48 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,8 +27,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.27.2
-Release: 3%{?dist}
+Version: 2.27.3
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -323,6 +323,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Sep 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.3-1.fc12
+- Update to 2.27.3
+
* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
- Disable nautilus-cd-burner bindings. Package is dead.
diff --git a/sources b/sources
index e49ff86..6d455cd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-3e1da41c3223687e812c0b1bd1f0ed55 gnome-python-desktop-2.27.2.tar.bz2
+8f727b090818327f92fe7b50704339c0 gnome-python-desktop-2.27.3.tar.bz2
commit e7203e38c7b4f8aaba5a4bd902c0bf036c8403da
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Aug 2 12:30:47 2009 +0000
Fix typo
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 951fa06..0a3e3d5 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -67,7 +67,7 @@ BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, libtool
%ifnarch s390 s390x
-BuildRequires: gnome-media-devel ?= %{gnome_media_version}
+BuildRequires: gnome-media-devel >= %{gnome_media_version}
%endif
%description
commit 063bd1662c0d124f31e7eed0d2b83529f3ff985e
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Aug 2 12:30:04 2009 +0000
Removed one too many BRs...
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index a4e94fc..951fa06 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -12,7 +12,6 @@
%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
-%define nautilus_cd_burner_version 2.15.3
%define brasero_version 0.9.0
%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
@@ -67,6 +66,9 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, libtool
+%ifnarch s390 s390x
+BuildRequires: gnome-media-devel ?= %{gnome_media_version}
+%endif
%description
The gnome-python-desktop package contains the source packages for additional
commit 861b4a710db4d523f18e426ceb7409d18b0acf45
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Aug 2 12:08:27 2009 +0000
- Disable nautilus-cd-burner bindings. Package is dead.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b764421..a4e94fc 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -67,10 +67,6 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
BuildRequires: autoconf, libtool
-%ifnarch s390 s390x
-BuildRequires: gnome-media-devel >= %{gnome_media_version}
-BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
-%endif
%description
The gnome-python-desktop package contains the source packages for additional
@@ -179,18 +175,6 @@ Requires: libgtop2 >= %{libgtop_version}
This module contains a wrapper that allows the use of libgtop via
Python.
-%ifnarch s390 s390x
-%package -n gnome-python2-nautilus-cd-burner
-Summary: Python bindings for interacting with nautilus-cd-burner
-License: GPLv2+
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-
-%description -n gnome-python2-nautilus-cd-burner
-This module contains a wrapper that allows the use of nautilus-cd-burner
-via Python.
-%endif
-
%package -n gnome-python2-metacity
Summary: Python bindings for interacting with metacity
License: GPLv2
@@ -316,14 +300,6 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gtop.so
-%ifnarch s390 s390x
-%files -n gnome-python2-nautilus-cd-burner
-%defattr(-,root,root,-)
-%{python_sitearch}/gtk-2.0/nautilusburn.so
-%defattr(644,root,root,755)
-%doc ../gnome-python-desktop-%{version}/examples/nautilusburn/*
-%endif
-
%files -n gnome-python2-metacity
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/metacity.so
@@ -346,7 +322,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
-- Rebuild against newer libnautilus-burn.
+- Disable nautilus-cd-burner bindings. Package is dead.
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
commit bc36894cd3d0f84b35e8adf5b8f92227fd4390bd
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Aug 2 11:37:05 2009 +0000
- Rebuild against newer libnautilus-burn.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index d993181..b764421 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.27.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -345,6 +345,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Aug 02 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-3.fc12
+- Rebuild against newer libnautilus-burn.
+
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
commit c22c1a209a6b1f1e592a95b8b6eb2300818604b3
Author: Jesse Keating <jkeating(a)fedoraproject.org>
Date: Sat Jul 25 00:45:01 2009 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 54b47cd..d993181 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.27.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -345,6 +345,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.27.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
- Update to 2.27.2
commit 6dab53c549ae10d1e508fd89d463f8836b055880
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Jul 15 02:17:42 2009 +0000
Fix file list.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index dade9d2..54b47cd 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -278,6 +278,7 @@ rm -rf $RPM_BUILD_ROOT
%files -n gnome-python2-brasero
%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/braseroburn.so
%{python_sitearch}/gtk-2.0/braseromedia.so
%files -n gnome-python2-bugbuddy
commit ae736280fa51c2fd7024c7d00f6ab9d82b318bfc
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Jul 15 02:04:12 2009 +0000
- Update to 2.27.2
diff --git a/.cvsignore b/.cvsignore
index 1a52a42..3cab627 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.27.1.tar.bz2
+gnome-python-desktop-2.27.2.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 75005d6..dade9d2 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,8 +28,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.27.1
-Release: 2%{?dist}
+Version: 2.27.2
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -344,6 +344,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jul 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.2-1.fc12
+- Update to 2.27.2
+
* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
- Change gnome-python2-evince to depend on evince-libs
diff --git a/sources b/sources
index e8d3f32..e49ff86 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-da0c8ec5a63da4233c99e10568f3a9a0 gnome-python-desktop-2.27.1.tar.bz2
+3e1da41c3223687e812c0b1bd1f0ed55 gnome-python-desktop-2.27.2.tar.bz2
commit eccabab95de2275da2c3093de978e6cda8315eb9
Author: Peter Robinson <pbrobinson(a)fedoraproject.org>
Date: Tue Jun 2 08:17:03 2009 +0000
- Change gnome-python2-evince to depend on evince-libs
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b57b1c7..75005d6 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -29,7 +29,7 @@
Name: gnome-python2-desktop
Version: 2.27.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -115,7 +115,7 @@ Summary: Python bindings for interacting with evince
License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: evince >= %{evince_version}
+Requires: evince-libs >= %{evince_version}
%description -n gnome-python2-evince
This module contains a wrapper that allows the use of evince via Python.
@@ -344,6 +344,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jun 02 2009 Peter Robinson <pbrobinson(a)gmail.com> - 2.27.1-2.fc12
+- Change gnome-python2-evince to depend on evince-libs
+
* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
- Update to 2.27.1
- New subpackage: gnome-python2-brasero
commit d2c1f228de587c3180ac993e225a293b8bceb155
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun May 3 18:28:01 2009 +0000
- Update to 2.27.1
- New subpackage: gnome-python2-brasero
diff --git a/.cvsignore b/.cvsignore
index 1edd202..1a52a42 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.26.0.tar.bz2
+gnome-python-desktop-2.27.1.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9af2800..b57b1c7 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.25.1
+# Last updated for version 2.27.1
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -13,6 +13,7 @@
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
%define nautilus_cd_burner_version 2.15.3
+%define brasero_version 0.9.0
%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
%define metacity_version 2.21.5
@@ -27,8 +28,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.26.0
-Release: 3%{?dist}
+Version: 2.27.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -41,6 +42,7 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
+BuildRequires: brasero-devel >= %{brasero_version}
BuildRequires: bug-buddy >= %{bug_buddy_version}
BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
@@ -88,6 +90,16 @@ Requires: gnome-python2-gnome
This module contains a wrapper that allows GNOME Panel applets to be
written in Python.
+%package -n gnome-python2-brasero
+Summary: Python bindings for interacting with brasero
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: brasero-libs >= %{brasero_version}
+
+%description -n gnome-python2-brasero
+This module contains a wrapper that allows the use of brasero via Python.
+
%package -n gnome-python2-bugbuddy
Summary: Python bindings for interacting with bug-buddy
Group: Development/Languages
@@ -264,6 +276,10 @@ rm -rf $RPM_BUILD_ROOT
%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
%{python_sitearch}/gtk-2.0/gnomeapplet.so
+%files -n gnome-python2-brasero
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/braseromedia.so
+
%files -n gnome-python2-bugbuddy
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/bugbuddy.py*
@@ -328,6 +344,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun May 03 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.27.1-1.fc12
+- Update to 2.27.1
+- New subpackage: gnome-python2-brasero
+
* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
- Removed cd-burner subpackage Require on nautilus-cd-burn
diff --git a/sources b/sources
index 1b8f3a6..e8d3f32 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-fbcf4ef5ec4a8c4eec4d390c5889c80f gnome-python-desktop-2.26.0.tar.bz2
+da0c8ec5a63da4233c99e10568f3a9a0 gnome-python-desktop-2.27.1.tar.bz2
commit 64a4b6e0c14df012bab0d1501e1ea51a25faf189
Author: Denis Leroy <denis(a)fedoraproject.org>
Date: Fri Apr 24 07:59:41 2009 +0000
Removed cd-burner subpackage Require on nautilus-cd-burn
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 667c960..9af2800 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -173,7 +173,6 @@ Summary: Python bindings for interacting with nautilus-cd-burner
License: GPLv2+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: nautilus-cd-burner-libs >= %{nautilus_cd_burner_version}
%description -n gnome-python2-nautilus-cd-burner
This module contains a wrapper that allows the use of nautilus-cd-burner
@@ -330,7 +329,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
-- Fixed cd-burner subpackage Require to use libs package
+- Removed cd-burner subpackage Require on nautilus-cd-burn
* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
- Rebuild against newer libnautilus-burn.
commit 4a0b038b65aee1251e042ae5c3384faa6ac42839
Author: Denis Leroy <denis(a)fedoraproject.org>
Date: Fri Apr 24 07:51:17 2009 +0000
Fixed cd-burner subpackage Require to use libs package
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e0ba002..667c960 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.26.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -173,7 +173,7 @@ Summary: Python bindings for interacting with nautilus-cd-burner
License: GPLv2+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: nautilus-cd-burner >= %{nautilus_cd_burner_version}
+Requires: nautilus-cd-burner-libs >= %{nautilus_cd_burner_version}
%description -n gnome-python2-nautilus-cd-burner
This module contains a wrapper that allows the use of nautilus-cd-burner
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Apr 24 2009 Denis Leroy <denis(a)poolshark.org> - 2.26.0-3
+- Fixed cd-burner subpackage Require to use libs package
+
* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
- Rebuild against newer libnautilus-burn.
commit 1e86c547f57f3708b1d05a05e23924462a152ff8
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Apr 22 04:03:24 2009 +0000
- Rebuild against newer libnautilus-burn.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 7b18b59..e0ba002 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.26.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Apr 22 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-2.fc11
+- Rebuild against newer libnautilus-burn.
+
* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
- Update to 2.26.0
commit 988af103eebe2f3115aff575924d3fd404267223
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Mar 14 22:22:37 2009 +0000
- Update to 2.26.0
diff --git a/.cvsignore b/.cvsignore
index c18f89f..1edd202 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.25.91.tar.bz2
+gnome-python-desktop-2.26.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 3adc494..7b18b59 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,8 +27,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.25.91
-Release: 3%{?dist}
+Version: 2.26.0
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Mar 14 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.26.0-1.fc11
+- Update to 2.26.0
+
* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
diff --git a/sources b/sources
index 1c6e814..1b8f3a6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-203336345e3d00b49fd4897ee0489c6d gnome-python-desktop-2.25.91.tar.bz2
+fbcf4ef5ec4a8c4eec4d390c5889c80f gnome-python-desktop-2.26.0.tar.bz2
commit 6a5b0d54cb3f7fa69648651f89fbbbaa86431947
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Fri Mar 13 12:58:12 2009 +0000
- Evince subpackage should depend on evince, not evince-devel (RH bug
#490112).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 050d744..3adc494 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.25.91
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -103,7 +103,7 @@ Summary: Python bindings for interacting with evince
License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: evince-devel >= %{evince_version}
+Requires: evince >= %{evince_version}
%description -n gnome-python2-evince
This module contains a wrapper that allows the use of evince via Python.
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Mar 13 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-3.fc11
+- Evince subpackage should depend on evince, not evince-devel (RH bug #490112).
+
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
commit 8d5298b220bc008283bfc883e9094d1d049d93e7
Author: Jesse Keating <jkeating(a)fedoraproject.org>
Date: Tue Feb 24 23:18:06 2009 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 64fc386..050d744 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,7 +28,7 @@
Name: gnome-python2-desktop
Version: 2.25.91
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 2.25.91-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
- Update to 2.25.91
commit 3980af5ba659c672e6b2691de30ab2d414a09d56
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Feb 16 00:30:41 2009 +0000
- Update to 2.25.91
diff --git a/.cvsignore b/.cvsignore
index ff42ad9..c18f89f 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.25.90.tar.bz2
+gnome-python-desktop-2.25.91.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 501e394..64fc386 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -27,8 +27,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.25.90
-Release: 2%{?dist}
+Version: 2.25.91
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -329,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Feb 15 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.91-1.fc11
+- Update to 2.25.91
+
* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
- New subpackage: gnome-python2-evince
diff --git a/sources b/sources
index 95fa22d..1c6e814 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-9bc794079fb4dd02f4d0651ff04bbace gnome-python-desktop-2.25.90.tar.bz2
+203336345e3d00b49fd4897ee0489c6d gnome-python-desktop-2.25.91.tar.bz2
commit b09abfb7edcf5e346c34d27e152c05a59f9e44be
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Feb 4 22:01:57 2009 +0000
- New subpackage: gnome-python2-evince
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 0909406..501e394 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -22,12 +22,13 @@
%define totem_version 1.4.0
%define eds_version 1.4.0
%define bug_buddy_version 2.16.0
+%define evince_version 2.25
### Abstract ###
Name: gnome-python2-desktop
Version: 2.25.90
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -41,6 +42,7 @@ Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
BuildRequires: bug-buddy >= %{bug_buddy_version}
+BuildRequires: evince-devel >= %{evince_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: GConf2-devel >= %{gconf2_version}
@@ -96,6 +98,16 @@ Requires: bug-buddy >= %{bug_buddy_version}
This module contains a wrapper that allows the use of bug-buddy via
Python.
+%package -n gnome-python2-evince
+Summary: Python bindings for interacting with evince
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: evince-devel >= %{evince_version}
+
+%description -n gnome-python2-evince
+This module contains a wrapper that allows the use of evince via Python.
+
%package -n gnome-python2-evolution
Summary: Python bindings for interacting with evolution-data-server
License: LGPLv2
@@ -257,6 +269,10 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/bugbuddy.py*
+%files -n gnome-python2-evince
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/evince.so
+
%files -n gnome-python2-evolution
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/evolution/
@@ -313,6 +329,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 04 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-2.fc11
+- New subpackage: gnome-python2-evince
+
* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
- Update to 2.25.90
commit 294de179a98c79d0a94aa67e7f8bee3a1b123c2b
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Feb 2 01:07:44 2009 +0000
- Update to 2.25.90
diff --git a/.cvsignore b/.cvsignore
index 2184f84..ff42ad9 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.25.1.tar.bz2
+gnome-python-desktop-2.25.90.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 8c874e5..0909406 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.25.1
+Version: 2.25.90
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -313,6 +313,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Feb 01 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.90-1.fc11
+- Update to 2.25.90
+
* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
- Update to 2.25.1
- Remove patch for GNOME bug #564525 (fixed upstream).
diff --git a/sources b/sources
index 53f930c..95fa22d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-213fa232fbf3a64e2afd4c38ad72e2b3 gnome-python-desktop-2.25.1.tar.bz2
+9bc794079fb4dd02f4d0651ff04bbace gnome-python-desktop-2.25.90.tar.bz2
commit da6220d5cb48912f2ea4fa969805f532c368072d
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jan 19 13:56:45 2009 +0000
- Update to 2.25.1
- Remove patch for GNOME bug #564525 (fixed upstream).
diff --git a/.cvsignore b/.cvsignore
index 456089b..2184f84 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.24.1.tar.bz2
+gnome-python-desktop-2.25.1.tar.bz2
diff --git a/gnome-python-desktop-2.24.1-missing-libgnomeui.patch b/gnome-python-desktop-2.24.1-missing-libgnomeui.patch
deleted file mode 100644
index f0a48ad..0000000
--- a/gnome-python-desktop-2.24.1-missing-libgnomeui.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-diff -up gnome-python-desktop-2.24.1/configure.ac.missing-libgnomeui gnome-python-desktop-2.24.1/configure.ac
---- gnome-python-desktop-2.24.1/configure.ac.missing-libgnomeui 2008-12-19 10:16:26.000000000 -0500
-+++ gnome-python-desktop-2.24.1/configure.ac 2008-12-19 22:07:53.000000000 -0500
-@@ -153,7 +153,8 @@ dnl should we build the gnome.applet mod
- AC_ARG_BINDING([applet],[YES],[gnome.applet])
- if $build_applet; then
- PKG_CHECK_MODULES(LIBPANELAPPLET, [libpanelapplet-2.0 >= libpanelapplet_required_version
-- gnome-python-2.0 >= gnome_python_required_version],
-+ gnome-python-2.0 >= gnome_python_required_version
-+ libgnomeui-2.0],
- build_applet=true,
- build_applet=false)
- fi
-diff -up gnome-python-desktop-2.24.1/configure.missing-libgnomeui gnome-python-desktop-2.24.1/configure
---- gnome-python-desktop-2.24.1/configure.missing-libgnomeui 2008-12-19 22:08:10.000000000 -0500
-+++ gnome-python-desktop-2.24.1/configure 2008-12-19 22:09:44.000000000 -0500
-@@ -21551,14 +21551,17 @@ if test -n "$LIBPANELAPPLET_CFLAGS"; the
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0\"") >&5
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0") 2>&5
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_LIBPANELAPPLET_CFLAGS=`$PKG_CONFIG --cflags "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0" 2>/dev/null`
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0" 2>/dev/null`
- else
- pkg_failed=yes
- fi
-@@ -21570,14 +21573,17 @@ if test -n "$LIBPANELAPPLET_LIBS"; then
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0\"") >&5
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0") 2>&5
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_LIBPANELAPPLET_LIBS=`$PKG_CONFIG --libs "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0" 2>/dev/null`
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0" 2>/dev/null`
- else
- pkg_failed=yes
- fi
-@@ -21596,10 +21602,12 @@ else
- fi
- if test $_pkg_short_errors_supported = yes; then
- LIBPANELAPPLET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0" 2>&1`
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0" 2>&1`
- else
- LIBPANELAPPLET_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpanelapplet-2.0 >= 2.13.4
-- gnome-python-2.0 >= 2.10.0" 2>&1`
-+ gnome-python-2.0 >= 2.10.0
-+ libgnomeui-2.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$LIBPANELAPPLET_PKG_ERRORS" >&5
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f13afe7..8c874e5 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.24.0
+# Last updated for version 2.25.1
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -8,36 +8,32 @@
%define gtk_version 2.4.0
%define gnome_python_version 2.10.0
%define gnome_panel_version 2.13.4
+# Version not necessary for libgnomeprintui
%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
%define nautilus_cd_burner_version 2.15.3
%define gnome_media_version 2.10.0
-%define gconf2_version 2.10.0
+%define gconf2_version 2.10.0
%define metacity_version 2.21.5
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
%define gnome_desktop_version 2.10.0
%define totem_version 1.4.0
-%define eds_version 1.4.0
+%define eds_version 1.4.0
%define bug_buddy_version 2.16.0
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.24.1
-Release: 2%{?dist}
+Version: 2.25.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
-### Patches ###
-
-# GNOME bug #564525
-Patch1: gnome-python-desktop-2.24.1-missing-libgnomeui.patch
-
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -229,7 +225,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch1 -p1 -b .missing-libgnomeui
%build
autoreconf -f -i
@@ -318,6 +313,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jan 19 2009 Matthew Barnes <mbarnes(a)redhat.com> - 2.25.1-1.fc11
+- Update to 2.25.1
+- Remove patch for GNOME bug #564525 (fixed upstream).
+
* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
- make build
diff --git a/sources b/sources
index d031c83..53f930c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-3eac6b859bff98148b021c9d11224ca5 gnome-python-desktop-2.24.1.tar.bz2
+213fa232fbf3a64e2afd4c38ad72e2b3 gnome-python-desktop-2.25.1.tar.bz2
commit 20a2528bd67fb8b5e05e2f5eb643d727f592152b
Author: Caolan McNamara <caolanm(a)fedoraproject.org>
Date: Tue Dec 23 13:20:03 2008 +0000
make it build
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 60b91f5..f13afe7 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -66,6 +66,7 @@ BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
+BuildRequires: autoconf, libtool
%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
@@ -231,6 +232,7 @@ via Python.
%patch1 -p1 -b .missing-libgnomeui
%build
+autoreconf -f -i
%configure --enable-metacity
make
@@ -316,6 +318,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Dec 23 2008 Caoln McNamara <caolanm(a)redhat.com> - 2.24.1-2.fc11
+- make build
+
* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
- Update to 2.24.1
- Add patch for GNOME bug #564525 (build failure).
commit 5c23119e3e9d775673d468d0d24b4bc920edc3cb
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Dec 20 03:28:38 2008 +0000
Commit the stupid patch.
diff --git a/gnome-python-desktop-2.24.1-missing-libgnomeui.patch b/gnome-python-desktop-2.24.1-missing-libgnomeui.patch
new file mode 100644
index 0000000..f0a48ad
--- /dev/null
+++ b/gnome-python-desktop-2.24.1-missing-libgnomeui.patch
@@ -0,0 +1,73 @@
+diff -up gnome-python-desktop-2.24.1/configure.ac.missing-libgnomeui gnome-python-desktop-2.24.1/configure.ac
+--- gnome-python-desktop-2.24.1/configure.ac.missing-libgnomeui 2008-12-19 10:16:26.000000000 -0500
++++ gnome-python-desktop-2.24.1/configure.ac 2008-12-19 22:07:53.000000000 -0500
+@@ -153,7 +153,8 @@ dnl should we build the gnome.applet mod
+ AC_ARG_BINDING([applet],[YES],[gnome.applet])
+ if $build_applet; then
+ PKG_CHECK_MODULES(LIBPANELAPPLET, [libpanelapplet-2.0 >= libpanelapplet_required_version
+- gnome-python-2.0 >= gnome_python_required_version],
++ gnome-python-2.0 >= gnome_python_required_version
++ libgnomeui-2.0],
+ build_applet=true,
+ build_applet=false)
+ fi
+diff -up gnome-python-desktop-2.24.1/configure.missing-libgnomeui gnome-python-desktop-2.24.1/configure
+--- gnome-python-desktop-2.24.1/configure.missing-libgnomeui 2008-12-19 22:08:10.000000000 -0500
++++ gnome-python-desktop-2.24.1/configure 2008-12-19 22:09:44.000000000 -0500
+@@ -21551,14 +21551,17 @@ if test -n "$LIBPANELAPPLET_CFLAGS"; the
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0\"") >&5
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0") 2>&5
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBPANELAPPLET_CFLAGS=`$PKG_CONFIG --cflags "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0" 2>/dev/null`
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -21570,14 +21573,17 @@ if test -n "$LIBPANELAPPLET_LIBS"; then
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0\"") >&5
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0") 2>&5
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBPANELAPPLET_LIBS=`$PKG_CONFIG --libs "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0" 2>/dev/null`
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -21596,10 +21602,12 @@ else
+ fi
+ if test $_pkg_short_errors_supported = yes; then
+ LIBPANELAPPLET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0" 2>&1`
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0" 2>&1`
+ else
+ LIBPANELAPPLET_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpanelapplet-2.0 >= 2.13.4
+- gnome-python-2.0 >= 2.10.0" 2>&1`
++ gnome-python-2.0 >= 2.10.0
++ libgnomeui-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LIBPANELAPPLET_PKG_ERRORS" >&5
commit 1c74878e3104c7847837a072756aad94324801ab
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Dec 20 03:19:01 2008 +0000
- Update to 2.24.1
- Add patch for GNOME bug #564525 (build failure).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index bf807f8..60b91f5 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -33,6 +33,11 @@ Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
+### Patches ###
+
+# GNOME bug #564525
+Patch1: gnome-python-desktop-2.24.1-missing-libgnomeui.patch
+
### Dependencies ###
Requires: gnome-python2-canvas >= %{gnome_python_version}
@@ -223,6 +228,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch1 -p1 -b .missing-libgnomeui
%build
%configure --enable-metacity
@@ -312,6 +318,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
- Update to 2.24.1
+- Add patch for GNOME bug #564525 (build failure).
* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
- Rebuild for new libgnome-desktop
commit 4e57c68f5b12d54d037871fae5bcae22ca1352d8
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Dec 20 01:52:53 2008 +0000
Trying to fix a build failure.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2428f8b..bf807f8 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -52,6 +52,7 @@ BuildRequires: gnome-python2-devel >= %{gnome_python_version}
BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
+BuildRequires: libgnomeui-devel
BuildRequires: libgnomeprintui22-devel
BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
@@ -77,6 +78,7 @@ Requires: %{name} = %{version}-%{release}
# applets from GNOME 1.4 are no longer supported - we only have 1 panel
Obsoletes: pygnome-applet
Requires: gnome-python2-bonobo
+Requires: gnome-python2-gnome
%description -n gnome-python2-applet
This module contains a wrapper that allows GNOME Panel applets to be
commit d5c13bf666536e5ba36b0abc4c4876e83283e295
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Dec 20 00:01:39 2008 +0000
- Update to 2.24.1
diff --git a/.cvsignore b/.cvsignore
index 58218b8..456089b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.24.0.tar.bz2
+gnome-python-desktop-2.24.1.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 42cb507..2428f8b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -25,8 +25,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.24.0
-Release: 6%{?dist}
+Version: 2.24.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -308,6 +308,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Dec 19 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.1-1.fc11
+- Update to 2.24.1
+
* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
- Rebuild for new libgnome-desktop
diff --git a/sources b/sources
index beb7a16..d031c83 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-a6689e581fc2e67937593033be7007f9 gnome-python-desktop-2.24.0.tar.bz2
+3eac6b859bff98148b021c9d11224ca5 gnome-python-desktop-2.24.1.tar.bz2
commit 69d9a5a77eb1ac3baefd741a002b162c1a922bf2
Author: Bastien Nocera <hadess(a)fedoraproject.org>
Date: Wed Dec 17 10:27:25 2008 +0000
- Rebuild for new libgnome-desktop
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index adb3656..42cb507 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -308,6 +308,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Dec 17 2008 - Bastien Nocera <bnocera(a)redhat.com> - 2.24.0-6
+- Rebuild for new libgnome-desktop
+
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
- Rebuild for Python 2.6
commit 29d65dbf1117280f5d88ba9c2569014a9c19879a
Author: Ignacio Vazquez-Abrams <ivazquez(a)fedoraproject.org>
Date: Sat Nov 29 16:37:07 2008 +0000
Rebuild for Python 2.6
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b67d77c..adb3656 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -308,6 +308,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm(a)gmail.com> - 2.24.0-5
+- Rebuild for Python 2.6
+
* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
- Update subpackage requirements, since gnome-python2 no longer drags in
the world.
commit 382300ef544a65178049e4995221b8dc06b2c0af
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Fri Nov 14 22:34:36 2008 +0000
- Update subpackage requirements, since gnome-python2 no longer drags in
the world.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f111f1c..b67d77c 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -46,7 +46,10 @@ BuildRequires: GConf2-devel >= %{gconf2_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
+BuildRequires: gnome-python2-bonobo >= %{gnome_python_version}
+BuildRequires: gnome-python2-canvas >= %{gnome_python_version}
BuildRequires: gnome-python2-devel >= %{gnome_python_version}
+BuildRequires: gnome-python2-gconf >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
BuildRequires: libgnomeprintui22-devel
@@ -73,6 +76,7 @@ Group: Development/Languages
Requires: %{name} = %{version}-%{release}
# applets from GNOME 1.4 are no longer supported - we only have 1 panel
Obsoletes: pygnome-applet
+Requires: gnome-python2-bonobo
%description -n gnome-python2-applet
This module contains a wrapper that allows GNOME Panel applets to be
@@ -108,6 +112,7 @@ Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: libgnomeprint22
Requires: libgnomeprintui22
+Requires: gnome-python2-canvas
%description -n gnome-python2-gnomeprint
This module contains a wrapper that allows the use of libgnomeprint via
@@ -176,6 +181,7 @@ License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: totem-pl-parser >= %{totem_version}
+Requires: gnome-python2-gconf
%description -n gnome-python2-totem
This module contains a wrapper that allows the use of totem
@@ -302,6 +308,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Fri Nov 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-4.fc11
+- Update subpackage requirements, since gnome-python2 no longer drags in
+ the world.
+
* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
- Rebuild
commit 3dae01d37473b9713af510b0d36bc9e17c52b372
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Fri Nov 14 03:26:39 2008 +0000
Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 854a83c..f111f1c 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Nov 13 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.24.0-3
+- Rebuild
+
* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
- Change gnome-python2 requirement to gnome-python2-canvas.
commit a28dbbad72985ecaaa09f510b7dd0a8fffd59d61
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 22 02:18:21 2008 +0000
- Change gnome-python2 requirement to gnome-python2-canvas.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 8bad925..854a83c 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.24.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-2.fc10
+- Change gnome-python2 requirement to gnome-python2-canvas.
+
* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
- Update to 2.24.0
commit 33d1127234e2883c715219792f8011830a7ddf3d
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 22 02:09:48 2008 +0000
- Update to 2.24.0
diff --git a/.cvsignore b/.cvsignore
index 7c29f47..58218b8 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.23.1.tar.bz2
+gnome-python-desktop-2.24.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 50e7fd3..8bad925 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -35,7 +35,7 @@ Source: gnome-python-desktop-%{version}.tar.bz2
### Dependencies ###
-Requires: gnome-python2 >= %{gnome_python_version}
+Requires: gnome-python2-canvas >= %{gnome_python_version}
### Build Dependencies ###
diff --git a/sources b/sources
index cabe1d0..beb7a16 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-815174cde8eb1be3d0924f7b8a04c7ee gnome-python-desktop-2.23.1.tar.bz2
+a6689e581fc2e67937593033be7007f9 gnome-python-desktop-2.24.0.tar.bz2
commit f278f51f236eb8c08cb12e12ae382ebfb554436e
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 22 01:51:03 2008 +0000
- Update to 2.24.0
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 506fdaf..50e7fd3 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.23.1
+# Last updated for version 2.24.0
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -25,7 +25,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.23.1
+Version: 2.24.0
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Sep 21 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.24.0-1.fc10
+- Update to 2.24.0
+
* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
- Update to 2.23.1
- Update version requirements.
commit f5428abba3922591e2bcec249e0da0701b4d8ff2
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 1 01:03:54 2008 +0000
- Update to 2.23.1
- Update version requirements.
diff --git a/.cvsignore b/.cvsignore
index f4b838b..7c29f47 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.23.0.tar.bz2
+gnome-python-desktop-2.23.1.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index ba5263e..506fdaf 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.22.0
+# Last updated for version 2.23.1
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -14,7 +14,7 @@
%define nautilus_cd_burner_version 2.15.3
%define gnome_media_version 2.10.0
%define gconf2_version 2.10.0
-%define metacity_version 2.19.8
+%define metacity_version 2.21.5
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
%define gnome_desktop_version 2.10.0
@@ -25,7 +25,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.23.0
+Version: 2.23.1
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -302,8 +302,12 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Aug 31 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.1-1.fc10
+- Update to 2.23.1
+- Update version requirements.
+
* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
-- Update to 2.23.0.
+- Update to 2.23.0
* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
- Don't drag in devel packages when installing gnome-python2-evolution
diff --git a/sources b/sources
index e4b0999..cabe1d0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d8f8e61d99402e8b0a82d3c8d6e873be gnome-python-desktop-2.23.0.tar.bz2
+815174cde8eb1be3d0924f7b8a04c7ee gnome-python-desktop-2.23.1.tar.bz2
commit 5b4d128ec423e4583bb29249477d53bcc611b90f
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jun 16 17:52:04 2008 +0000
Commit sources
diff --git a/.cvsignore b/.cvsignore
index 3be9549..f4b838b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.22.0.tar.bz2
+gnome-python-desktop-2.23.0.tar.bz2
diff --git a/sources b/sources
index 7ab2d7a..e4b0999 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-504877a973f6abc0788283232cd703cb gnome-python-desktop-2.22.0.tar.bz2
+d8f8e61d99402e8b0a82d3c8d6e873be gnome-python-desktop-2.23.0.tar.bz2
commit 4881f466dfba880c7a48b0b407d93e3cc8aaf060
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jun 16 17:41:57 2008 +0000
- Update to 2.23.0.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index d97e6d1..ba5263e 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -25,8 +25,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.22.0
-Release: 6%{?dist}
+Version: 2.23.0
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jun 16 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.23.0-1.fc10
+- Update to 2.23.0.
+
* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
- Don't drag in devel packages when installing gnome-python2-evolution
(RH bug #450932).
commit 6d8e40f2f4bb3ccea715a53d00fc92490c849a90
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Wed Jun 11 20:52:58 2008 +0000
- Don't drag in devel packages when installing gnome-python2-evolution (RH
bug #450932).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 2af01ec..d97e6d1 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.22.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -93,7 +93,7 @@ Summary: Python bindings for interacting with evolution-data-server
License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: evolution-data-server-devel >= %{eds_version}
+Requires: evolution-data-server >= %{eds_version}
Provides: evolution-python = %{version}-%{release}
Obsoletes: evolution-python <= 0.0.4-3
@@ -302,6 +302,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jun 11 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-6.fc10
+- Don't drag in devel packages when installing gnome-python2-evolution
+ (RH bug #450932).
+
* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
- Rebuild
commit 48556ab4d7c47cae70db2c70caeaec028805f0ef
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Jun 4 22:14:44 2008 +0000
Rebuld
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 08c9bec..2af01ec 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.22.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Jun 4 2008 Matthias Clasen <mclasen(a)redhat.com> - 2.22.0-5
+- Rebuild
+
* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
- Rebuild against newer libedataserver and libtotem-plparser.
commit 2a26fc615c5044b8f2bb5cedd532d4e76c6d5d1f
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Tue May 13 15:10:40 2008 +0000
- Rebuild against newer libedataserver and libtotem-plparser.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9c705ea..08c9bec 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.22.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -302,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue May 13 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-4.fc10
+- Rebuild against newer libedataserver and libtotem-plparser.
+
* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
commit 1055541a992b097c3bf1f378367fb40802e823af
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Tue Apr 29 17:35:49 2008 +0000
Did the Provides incorrectly.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index ffd182d..9c705ea 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -94,8 +94,8 @@ License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: evolution-data-server-devel >= %{eds_version}
+Provides: evolution-python = %{version}-%{release}
Obsoletes: evolution-python <= 0.0.4-3
-Provides: evolution-python > 0.0.4-3
%description -n gnome-python2-evolution
This module contains a wrapper that allows the use of evolution-data-server
commit 10de16ab4c2e9f49973b7dd7d77f58579192457a
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Tue Apr 29 17:21:25 2008 +0000
- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 3927011..ffd182d 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.22.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -94,6 +94,8 @@ License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: evolution-data-server-devel >= %{eds_version}
+Obsoletes: evolution-python <= 0.0.4-3
+Provides: evolution-python > 0.0.4-3
%description -n gnome-python2-evolution
This module contains a wrapper that allows the use of evolution-data-server
@@ -300,6 +302,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Apr 29 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-3.fc10
+- gnome-python2-evolution obsoletes evolution-python (RH bug #444263).
+
* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
commit b55754599175df8b221d015f4bcd3b2f516e24a1
Author: Christopher Aillon <caillon(a)fedoraproject.org>
Date: Sat Mar 15 23:31:57 2008 +0000
- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e30c2e3..3927011 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -26,7 +26,7 @@
Name: gnome-python2-desktop
Version: 2.22.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -57,7 +57,7 @@ BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
-%ifnarch s390 s390x ppc ppc64
+%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
%endif
@@ -144,7 +144,7 @@ Requires: libgtop2 >= %{libgtop_version}
This module contains a wrapper that allows the use of libgtop via
Python.
-%ifnarch s390 s390x ppc ppc64
+%ifnarch s390 s390x
%package -n gnome-python2-nautilus-cd-burner
Summary: Python bindings for interacting with nautilus-cd-burner
License: GPLv2+
@@ -271,7 +271,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gtop.so
-%ifnarch s390 s390x ppc ppc64
+%ifnarch s390 s390x
%files -n gnome-python2-nautilus-cd-burner
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/nautilusburn.so
@@ -285,7 +285,7 @@ rm -rf $RPM_BUILD_ROOT
%files -n gnome-python2-totem
%defattr(-,root,root,-)
-%ifnarch s390 s390x ppc ppc64
+%ifnarch s390 s390x
%{python_sitearch}/gtk-2.0/mediaprofiles.so
%endif
%{python_sitearch}/gtk-2.0/totem
@@ -300,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Mar 15 2008 Christopher Aillon <caillon(a)redhat.com> - 2.22.0-2
+- Bring gnome-python2-nautilus-cd-burner back to ppc and ppc64
+
* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
- Update to 2.22.0
- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
commit a25c97713dd4be79349eb26f1b271219bf22581e
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Mar 10 05:32:42 2008 +0000
Try again.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 7c6b18b..e30c2e3 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -144,7 +144,7 @@ Requires: libgtop2 >= %{libgtop_version}
This module contains a wrapper that allows the use of libgtop via
Python.
-%ifnarch s390 s390x
+%ifnarch s390 s390x ppc ppc64
%package -n gnome-python2-nautilus-cd-burner
Summary: Python bindings for interacting with nautilus-cd-burner
License: GPLv2+
@@ -271,7 +271,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gtop.so
-%ifnarch s390 s390x
+%ifnarch s390 s390x ppc ppc64
%files -n gnome-python2-nautilus-cd-burner
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/nautilusburn.so
@@ -285,7 +285,7 @@ rm -rf $RPM_BUILD_ROOT
%files -n gnome-python2-totem
%defattr(-,root,root,-)
-%ifnarch s390 s390x
+%ifnarch s390 s390x ppc ppc64
%{python_sitearch}/gtk-2.0/mediaprofiles.so
%endif
%{python_sitearch}/gtk-2.0/totem
commit fba1fc6b5cf5b8e4a34da0df6dff867c5de6f4aa
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Mar 10 05:03:19 2008 +0000
- Update to 2.22.0
- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 4b5320a..7c6b18b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -57,7 +57,7 @@ BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-pl-parser-devel >= %{totem_version}
-%ifnarch s390 s390x
+%ifnarch s390 s390x ppc ppc64
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
%endif
@@ -302,6 +302,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
- Update to 2.22.0
+- Exclude gnome-python2-nautilus-cd-burner from ppc and ppc64.
* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
- Update to 2.21.3
commit 0faa4f052ec022b71681e31fa6d8a89d840b3f39
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Mar 10 02:52:48 2008 +0000
- Update to 2.22.0
diff --git a/.cvsignore b/.cvsignore
index e47818d..3be9549 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.21.3.tar.bz2
+gnome-python-desktop-2.22.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 95e9bf7..4b5320a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,6 +1,6 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-# Last updated for version 2.19.1
+# Last updated for version 2.22.0
# The order here corresponds to that in configure.ac,
# for easier comparison. Please do not alphabetize.
%define pygtk_version 2.10.3
@@ -13,18 +13,19 @@
%define libgtop_version 2.13.0
%define nautilus_cd_burner_version 2.15.3
%define gnome_media_version 2.10.0
+%define gconf2_version 2.10.0
%define metacity_version 2.19.8
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
%define gnome_desktop_version 2.10.0
%define totem_version 1.4.0
-%define bug_buddy_version 2.16.0
%define eds_version 1.4.0
+%define bug_buddy_version 2.16.0
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.21.3
+Version: 2.22.0
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -41,6 +42,7 @@ Requires: gnome-python2 >= %{gnome_python_version}
BuildRequires: bug-buddy >= %{bug_buddy_version}
BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
+BuildRequires: GConf2-devel >= %{gconf2_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
@@ -298,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Mar 09 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.22.0-1.fc9
+- Update to 2.22.0
+
* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
- Update to 2.21.3
diff --git a/sources b/sources
index e9dc234..7ab2d7a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f6f10bde245a2e333422dee253b3260a gnome-python-desktop-2.21.3.tar.bz2
+504877a973f6abc0788283232cd703cb gnome-python-desktop-2.22.0.tar.bz2
commit 2f0e44196ee73e609b320f1d430bf102d8fb05e6
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sat Feb 23 22:12:55 2008 +0000
- Update to 2.21.3
diff --git a/.cvsignore b/.cvsignore
index 25bbef9..e47818d 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.21.2.tar.bz2
+gnome-python-desktop-2.21.3.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 4baf379..95e9bf7 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,8 +24,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.21.2
-Release: 2%{?dist}
+Version: 2.21.3
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -298,6 +298,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Feb 23 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.3-1.fc9
+- Update to 2.21.3
+
* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
- Rebuild with GCC 4.3
diff --git a/sources b/sources
index d02378d..e9dc234 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-06b981b56f963b94e99b65dc7d645b3c gnome-python-desktop-2.21.2.tar.bz2
+f6f10bde245a2e333422dee253b3260a gnome-python-desktop-2.21.3.tar.bz2
commit 4ae06fff953ee850ed2c5bd5d8f00de02332eaeb
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Feb 17 16:13:58 2008 +0000
- Rebuild with GCC 4.3
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 4440e1a..4baf379 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -25,7 +25,7 @@
Name: gnome-python2-desktop
Version: 2.21.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -298,6 +298,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Feb 17 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-2.fc9
+- Rebuild with GCC 4.3
+
* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
- Update to 2.21.2
commit 481ac802c6ae49efa51e53ba9a98a3ad1fb9e3a6
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Tue Jan 15 02:04:32 2008 +0000
- Update to 2.21.2
diff --git a/.cvsignore b/.cvsignore
index 112748a..25bbef9 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.21.1.tar.bz2
+gnome-python-desktop-2.21.2.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index dd85855..4440e1a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,7 +24,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.21.1
+Version: 2.21.2
Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
@@ -298,6 +298,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jan 14 2008 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.2-1.fc9
+- Update to 2.21.2
+
* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
- Update to 2.21.1
- New subpackage: gnome-python2-evolution
diff --git a/sources b/sources
index 304a8bd..d02378d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-2a4296e37fc9f975c265608d56ced800 gnome-python-desktop-2.21.1.tar.bz2
+06b981b56f963b94e99b65dc7d645b3c gnome-python-desktop-2.21.2.tar.bz2
commit 2940738b379353a3b1f3d3e1257f56ea78653ded
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Dec 17 15:46:35 2007 +0000
- Update to 2.21.1
- New subpackage: gnome-python2-evolution
- Change totem-devel BR to totem-pl-parser-devel.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index dfec294..dd85855 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -54,7 +54,7 @@ BuildRequires: libwnck-devel >= %{libwnck_version}
BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
-BuildRequires: totem-devel >= %{totem_version}
+BuildRequires: totem-pl-parser-devel >= %{totem_version}
%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
@@ -171,7 +171,7 @@ Summary: Python bindings for interacting with totem
License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
-Requires: totem >= %{totem_version}
+Requires: totem-pl-parser >= %{totem_version}
%description -n gnome-python2-totem
This module contains a wrapper that allows the use of totem
@@ -301,6 +301,7 @@ rm -rf $RPM_BUILD_ROOT
* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
- Update to 2.21.1
- New subpackage: gnome-python2-evolution
+- Change totem-devel BR to totem-pl-parser-devel.
* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
- Rebuild against newer libtotem-plparser.so.
commit 353b7b664cfc772fb0c999620dd0f11957786853
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Dec 16 18:18:26 2007 +0000
- Update to 2.21.1
- New subpackage: gnome-python2-evolution
diff --git a/.cvsignore b/.cvsignore
index 772838b..112748a 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.20.0.tar.bz2
+gnome-python-desktop-2.21.1.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 50c6ec5..dfec294 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -19,12 +19,13 @@
%define gnome_desktop_version 2.10.0
%define totem_version 1.4.0
%define bug_buddy_version 2.16.0
+%define eds_version 1.4.0
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.20.0
-Release: 2%{?dist}
+Version: 2.21.1
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -38,6 +39,7 @@ Requires: gnome-python2 >= %{gnome_python_version}
### Build Dependencies ###
BuildRequires: bug-buddy >= %{bug_buddy_version}
+BuildRequires: evolution-data-server-devel >= %{eds_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
@@ -84,6 +86,17 @@ Requires: bug-buddy >= %{bug_buddy_version}
This module contains a wrapper that allows the use of bug-buddy via
Python.
+%package -n gnome-python2-evolution
+Summary: Python bindings for interacting with evolution-data-server
+License: LGPLv2
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: evolution-data-server-devel >= %{eds_version}
+
+%description -n gnome-python2-evolution
+This module contains a wrapper that allows the use of evolution-data-server
+via Python.
+
%package -n gnome-python2-gnomeprint
Summary: Python bindings for interacting with libgnomeprint
License: LGPLv2
@@ -229,6 +242,10 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/bugbuddy.py*
+%files -n gnome-python2-evolution
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/evolution/
+
%files -n gnome-python2-gnomeprint
%defattr(-,root,root,-)
%{python_sitearch}/gtk-2.0/gnomeprint/
@@ -281,6 +298,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Dec 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.21.1-1.fc9
+- Update to 2.21.1
+- New subpackage: gnome-python2-evolution
+
* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
- Rebuild against newer libtotem-plparser.so.
diff --git a/sources b/sources
index adbd4e4..304a8bd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-02b177f488091d27bf0648ec4660d8f7 gnome-python-desktop-2.20.0.tar.bz2
+2a4296e37fc9f975c265608d56ced800 gnome-python-desktop-2.21.1.tar.bz2
commit 721a6a36f346c1aa11a718e1e41b9c1ce0a33d90
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Nov 12 11:28:49 2007 +0000
- Rebuild against newer libtotem-plparser.so.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f90f31c..50c6ec5 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,7 +24,7 @@
Name: gnome-python2-desktop
Version: 2.20.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -281,6 +281,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Nov 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-2.fc9
+- Rebuild against newer libtotem-plparser.so.
+
* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
- Update to 2.20.0
commit 22ded5a8534a76b7c079995a242d7a892b14ceaf
Author: Bill Nottingham <notting(a)fedoraproject.org>
Date: Mon Oct 15 18:49:07 2007 +0000
makefile update to properly grab makefile.common
diff --git a/Makefile b/Makefile
index e66d688..0d02d27 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,21 @@
# Makefile for source rpm: gnome-python2-desktop
-# $Id$
+# $Id: Makefile,v 1.1 2006/02/06 21:27:57 johnp Exp $
NAME := gnome-python2-desktop
SPECFILE = $(firstword $(wildcard *.spec))
-include ../common/Makefile.common
+define find-makefile-common
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+endef
+
+MAKEFILE_COMMON := $(shell $(find-makefile-common))
+
+ifeq ($(MAKEFILE_COMMON),)
+# attempt a checkout
+define checkout-makefile-common
+test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
+endef
+
+MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
+endif
+
+include $(MAKEFILE_COMMON)
commit 3b2a9b872b9d88083ff9e5cd509e0a2432c9872a
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Sep 17 00:30:25 2007 +0000
- Update to 2.20.0
diff --git a/.cvsignore b/.cvsignore
index 757b870..772838b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.19.2.tar.bz2
+gnome-python-desktop-2.20.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f6048f4..f90f31c 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -23,8 +23,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.19.2
-Release: 4%{?dist}
+Version: 2.20.0
+Release: 1%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -281,6 +281,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Sep 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.20.0-1.fc8
+- Update to 2.20.0
+
* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
- Rebuild for selinux ppc32 issue.
diff --git a/sources b/sources
index c31cdfc..adbd4e4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-721c44d315bd76f003c0325323d89913 gnome-python-desktop-2.19.2.tar.bz2
+02b177f488091d27bf0648ec4660d8f7 gnome-python-desktop-2.20.0.tar.bz2
commit 6fbbbb06764e98ab20f830f92e062756e1cd7418
Author: Jesse Keating <jkeating(a)fedoraproject.org>
Date: Wed Aug 29 04:53:52 2007 +0000
- Rebuild for selinux ppc32 issue.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index c45f381..f6048f4 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,7 +24,7 @@
Name: gnome-python2-desktop
Version: 2.19.2
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -281,6 +281,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2.19.2-4
+- Rebuild for selinux ppc32 issue.
+
* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
- Rebuild
commit 8d1c50d22af0e0a54f7f13bf3e70279cf37bdf6d
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Thu Aug 16 16:05:27 2007 +0000
- Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index a9bf485..c45f381 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,7 +24,7 @@
Name: gnome-python2-desktop
Version: 2.19.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -281,6 +281,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Thu Aug 16 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-3.fc8
+- Rebuild
+
* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
- Update license fields
commit a3f8e9b4922dca51fd93628d952f6e52f482f21f
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Aug 7 14:12:13 2007 +0000
Update license information
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index ab04c8b..a9bf485 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -24,8 +24,8 @@
Name: gnome-python2-desktop
Version: 2.19.2
-Release: 1%{?dist}
-License: GPL/LGPL
+Release: 2%{?dist}
+License: GPLv2+
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@@ -64,6 +64,7 @@ Python bindings for GNOME. It should be used together with gnome-python.
%package -n gnome-python2-applet
Summary: Python bindings for GNOME Panel applets.
+License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
# applets from GNOME 1.4 are no longer supported - we only have 1 panel
@@ -85,6 +86,7 @@ Python.
%package -n gnome-python2-gnomeprint
Summary: Python bindings for interacting with libgnomeprint
+License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: libgnomeprint22
@@ -96,6 +98,7 @@ Python.
%package -n gnome-python2-gtksourceview
Summary: Python bindings for interacting with the gtksourceview library
+License: GPLv2+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: gtksourceview >= %{gtksourceview_version}
@@ -107,6 +110,7 @@ Python.
%package -n gnome-python2-libwnck
Summary: Python bindings for interacting with libwnck
+License: LGPLv2
Group: Development/Languages
Requires: libwnck >= %{libwnck_version}
@@ -116,6 +120,7 @@ Python.
%package -n gnome-python2-libgtop2
Summary: Python bindings for interacting with libgtop
+License: GPLv2+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: libgtop2 >= %{libgtop_version}
@@ -127,6 +132,7 @@ Python.
%ifnarch s390 s390x
%package -n gnome-python2-nautilus-cd-burner
Summary: Python bindings for interacting with nautilus-cd-burner
+License: GPLv2+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: nautilus-cd-burner >= %{nautilus_cd_burner_version}
@@ -138,6 +144,7 @@ via Python.
%package -n gnome-python2-metacity
Summary: Python bindings for interacting with metacity
+License: GPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: metacity >= %{metacity_version}
@@ -148,6 +155,7 @@ via Python.
%package -n gnome-python2-totem
Summary: Python bindings for interacting with totem
+License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: totem >= %{totem_version}
@@ -158,6 +166,7 @@ via Python.
%package -n gnome-python2-rsvg
Summary: Python bindings for interacting with librsvg
+License: LGPLv2
Group: Development/Languages
Requires: librsvg2 >= %{librsvg2_version}
@@ -167,6 +176,7 @@ via Python.
%package -n gnome-python2-gnomedesktop
Summary: Python bindings for interacting with gnome-desktop
+License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: gnome-desktop >= %{gnome_desktop_version}
@@ -177,6 +187,7 @@ via Python.
%package -n gnome-python2-gnomekeyring
Summary: Python bindings for interacting with gnome-keyring
+License: LGPLv2
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: gnome-keyring >= %{gnome_keyring_version}
@@ -205,7 +216,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
-%doc AUTHORS ChangeLog NEWS
+%doc AUTHORS NEWS README COPYING COPYING.GPL COPYING.LGPL
%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
%{_datadir}/pygtk
@@ -270,6 +281,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Aug 7 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.2-2
+- Update license fields
+
* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
- Update to 2.19.2
commit b907182e5350abd8aa910b5afe82d79298052f28
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Tue Jul 31 03:57:23 2007 +0000
- Update to 2.19.2
diff --git a/.cvsignore b/.cvsignore
index 8ec6efa..757b870 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.19.1.tar.bz2
+gnome-python-desktop-2.19.2.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 83d949c..ab04c8b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -23,8 +23,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.19.1
-Release: 2%{?dist}
+Version: 2.19.2
+Release: 1%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -270,6 +270,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jul 30 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.2-1.fc8
+- Update to 2.19.2
+
* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
- Rebuild against gtksourceview
diff --git a/sources b/sources
index 1db8b80..c31cdfc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-4ea5da4a7150fc7680acc9905f56c250 gnome-python-desktop-2.19.1.tar.bz2
+721c44d315bd76f003c0325323d89913 gnome-python-desktop-2.19.2.tar.bz2
commit 357edb615883f281b66926907fec74b407194553
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Jul 11 01:42:48 2007 +0000
rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 980e03b..83d949c 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -8,7 +8,7 @@
%define gtk_version 2.4.0
%define gnome_python_version 2.10.0
%define gnome_panel_version 2.13.4
-%define gtksourceview_version 1.1.90
+%define gtksourceview_version 1:1.8.5-2
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
%define nautilus_cd_burner_version 2.15.3
@@ -24,7 +24,7 @@
Name: gnome-python2-desktop
Version: 2.19.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -270,6 +270,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jul 10 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.19.1-2
+- Rebuild against gtksourceview
+
* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
- Update to 2.19.1
- Update versions of required packages.
commit b60f333d774fa6a611b0f0d9510440a1c3446710
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Jul 8 04:07:58 2007 +0000
Fix a build break.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 7fc0326..980e03b 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -7,10 +7,12 @@
%define glib_version 2.6.0
%define gtk_version 2.4.0
%define gnome_python_version 2.10.0
+%define gnome_panel_version 2.13.4
%define gtksourceview_version 1.1.90
%define libwnck_version 2.19.3
%define libgtop_version 2.13.0
%define nautilus_cd_burner_version 2.15.3
+%define gnome_media_version 2.10.0
%define metacity_version 2.19.8
%define librsvg2_version 2.13.93
%define gnome_keyring_version 0.5.0
@@ -39,6 +41,7 @@ BuildRequires: bug-buddy >= %{bug_buddy_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
+BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
BuildRequires: gnome-python2-devel >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
@@ -51,6 +54,7 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-devel >= %{totem_version}
%ifnarch s390 s390x
+BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
%endif
commit a16ae1fd61e632e632422ceb7a92d5bacb2a09a0
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Jul 8 02:45:06 2007 +0000
- Update to 2.19.1
- Update versions of required packages.
- Remove patch for GNOME bug #428697 (fixed upstream).
diff --git a/.cvsignore b/.cvsignore
index db01e53..8ec6efa 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.18.0.tar.bz2
+gnome-python-desktop-2.19.1.tar.bz2
diff --git a/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch b/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
deleted file mode 100644
index 2622335..0000000
--- a/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- gnome-python-desktop-2.18.0/metacity/metacity.defs.adapt-to-api-change 2007-03-12 12:03:21.000000000 -0400
-+++ gnome-python-desktop-2.18.0/metacity/metacity.defs 2007-06-03 21:21:51.000000000 -0400
-@@ -131,16 +131,18 @@
- )
- )
-
--(define-enum ActionDoubleClickTitlebar
-+(define-enum ActionTitlebar
- (in-module "Meta")
-- (c-name "MetaActionDoubleClickTitlebar")
-+ (c-name "MetaActionTitlebar")
- ; (gtype-id "META_TYPE_ACTION_TITLEBAR")
- (values
-- '("toggle-shade" "META_ACTION_DOUBLE_CLICK_TITLEBAR_TOGGLE_SHADE")
-- '("toggle-maximize" "META_ACTION_DOUBLE_CLICK_TITLEBAR_TOGGLE_MAXIMIZE")
-- '("minimize" "META_ACTION_DOUBLE_CLICK_TITLEBAR_MINIMIZE")
-- '("none" "META_ACTION_DOUBLE_CLICK_TITLEBAR_NONE")
-- '("last" "META_ACTION_DOUBLE_CLICK_TITLEBAR_LAST")
-+ '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
-+ '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
-+ '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
-+ '("none" "META_ACTION_TITLEBAR_NONE")
-+ '("lower" "META_ACTION_TITLEBAR_LOWER")
-+ '("menu" "META_ACTION_TITLEBAR_MENU")
-+ '("last" "META_ACTION_TITLEBAR_LAST")
- )
- )
-
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 931fb1a..7fc0326 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -1,38 +1,34 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-%define bug_buddy_version 2.16.0
-%define glib_version 2.6.0
-%define gnome_desktop_version 2.10.0
-%define gnome_keyring_version 0.5.0
-%define gnome_media_version 2.12.0
-%define gnome_panel_version 2.2.0
-%define gnome_python_version 2.10.0
-%define gtk_version 2.4.0
-%define gtksourceview_version 1.1.90
-%define libgtop_version 2.13.0
-%define librsvg2_version 2.13.93
-%define libwnck_version 2.15.5
-%define metacity_version 2.17.8
-%define nautilus_cd_burner_version 2.15.3
-%define pygtk_version 2.10.3
-%define totem_version 1.4.0
+# Last updated for version 2.19.1
+# The order here corresponds to that in configure.ac,
+# for easier comparison. Please do not alphabetize.
+%define pygtk_version 2.10.3
+%define glib_version 2.6.0
+%define gtk_version 2.4.0
+%define gnome_python_version 2.10.0
+%define gtksourceview_version 1.1.90
+%define libwnck_version 2.19.3
+%define libgtop_version 2.13.0
+%define nautilus_cd_burner_version 2.15.3
+%define metacity_version 2.19.8
+%define librsvg2_version 2.13.93
+%define gnome_keyring_version 0.5.0
+%define gnome_desktop_version 2.10.0
+%define totem_version 1.4.0
+%define bug_buddy_version 2.16.0
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.18.0
-Release: 4%{?dist}
+Version: 2.19.1
+Release: 1%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
-### Patches ###
-
-# GNOME bug #428697
-Patch1: gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
-
### Dependencies ###
Requires: gnome-python2 >= %{gnome_python_version}
@@ -43,7 +39,6 @@ BuildRequires: bug-buddy >= %{bug_buddy_version}
BuildRequires: glib2-devel >= %{glib_version}
BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
-BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
BuildRequires: gnome-python2-devel >= %{gnome_python_version}
BuildRequires: gtk2-devel >= %{gtk_version}
BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
@@ -56,7 +51,6 @@ BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-devel >= %{totem_version}
%ifnarch s390 s390x
-BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
%endif
@@ -189,7 +183,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch1 -p1 -b .adapt-to-api-change
%build
%configure --enable-metacity
@@ -273,6 +266,11 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sat Jul 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.19.1-1
+- Update to 2.19.1
+- Update versions of required packages.
+- Remove patch for GNOME bug #428697 (fixed upstream).
+
* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
- Rebuild again
diff --git a/sources b/sources
index ede7b10..1db8b80 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ce1b1c095a69c2656177570a2939fabb gnome-python-desktop-2.18.0.tar.bz2
+4ea5da4a7150fc7680acc9905f56c250 gnome-python-desktop-2.19.1.tar.bz2
commit c99f070772d804c93a7fdb9a8b9712d64d9d4322
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Jun 6 03:35:04 2007 +0000
Rebuild again
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index ff11736..931fb1a 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.18.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -273,6 +273,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Tue Jun 5 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-4
+- Rebuild again
+
* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
- Rebuild against new libwnck
commit a538ddfbde4d009c8fe11ae92518c6e33f51f31d
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Jun 5 03:33:02 2007 +0000
Rebuild
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 38719e1..ff11736 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.18.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -273,6 +273,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Jun 4 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.18.0-3
+- Rebuild against new libwnck
+
* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
- Require metacity-devel, not metacity, for building.
- Add patch for GNOME bug #428697 (adapt to API change).
commit 4fc4ab1143213c3a6ecdea6efbca46910080408f
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jun 4 01:28:21 2007 +0000
- Forgot to add patch to cvs.
diff --git a/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch b/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
new file mode 100644
index 0000000..2622335
--- /dev/null
+++ b/gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
@@ -0,0 +1,28 @@
+--- gnome-python-desktop-2.18.0/metacity/metacity.defs.adapt-to-api-change 2007-03-12 12:03:21.000000000 -0400
++++ gnome-python-desktop-2.18.0/metacity/metacity.defs 2007-06-03 21:21:51.000000000 -0400
+@@ -131,16 +131,18 @@
+ )
+ )
+
+-(define-enum ActionDoubleClickTitlebar
++(define-enum ActionTitlebar
+ (in-module "Meta")
+- (c-name "MetaActionDoubleClickTitlebar")
++ (c-name "MetaActionTitlebar")
+ ; (gtype-id "META_TYPE_ACTION_TITLEBAR")
+ (values
+- '("toggle-shade" "META_ACTION_DOUBLE_CLICK_TITLEBAR_TOGGLE_SHADE")
+- '("toggle-maximize" "META_ACTION_DOUBLE_CLICK_TITLEBAR_TOGGLE_MAXIMIZE")
+- '("minimize" "META_ACTION_DOUBLE_CLICK_TITLEBAR_MINIMIZE")
+- '("none" "META_ACTION_DOUBLE_CLICK_TITLEBAR_NONE")
+- '("last" "META_ACTION_DOUBLE_CLICK_TITLEBAR_LAST")
++ '("toggle-shade" "META_ACTION_TITLEBAR_TOGGLE_SHADE")
++ '("toggle-maximize" "META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE")
++ '("minimize" "META_ACTION_TITLEBAR_MINIMIZE")
++ '("none" "META_ACTION_TITLEBAR_NONE")
++ '("lower" "META_ACTION_TITLEBAR_LOWER")
++ '("menu" "META_ACTION_TITLEBAR_MENU")
++ '("last" "META_ACTION_TITLEBAR_LAST")
+ )
+ )
+
commit 6ca8bd8163480c7c934bbb6f74310a7154010d89
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jun 4 01:25:39 2007 +0000
- Require metacity-devel, not metacity, for building.
- Add patch for GNOME bug #428697 (adapt to API change).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 53b9bb2..38719e1 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -28,6 +28,11 @@ Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
+### Patches ###
+
+# GNOME bug #428697
+Patch1: gnome-python2-desktop-2.18.0-adapt-to-api-change.patch
+
### Dependencies ###
Requires: gnome-python2 >= %{gnome_python_version}
@@ -184,6 +189,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch1 -p1 -b .adapt-to-api-change
%build
%configure --enable-metacity
@@ -269,6 +275,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
- Require metacity-devel, not metacity, for building.
+- Add patch for GNOME bug #428697 (adapt to API change).
* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
- Update to 2.18.0
commit 3819602191b81f106ce834eb16b90185c7b6606c
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jun 4 00:18:17 2007 +0000
- Require metacity-devel, not metacity, for building.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index b87c8dc..53b9bb2 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -46,7 +46,7 @@ BuildRequires: libgnomeprintui22-devel
BuildRequires: libgtop2-devel >= %{libgtop_version}
BuildRequires: librsvg2-devel >= %{librsvg2_version}
BuildRequires: libwnck-devel >= %{libwnck_version}
-BuildRequires: metacity >= %{metacity_version}
+BuildRequires: metacity-devel >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-devel >= %{totem_version}
@@ -268,7 +268,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
-- Rebuild against newer libtotem-plparser.so.1.
+- Require metacity-devel, not metacity, for building.
* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
- Update to 2.18.0
commit 7618b4407b091dfc634218259cf249a1f5562966
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Jun 3 16:58:07 2007 +0000
- Rebuild against newer libtotem-plparser.so.1.
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e7a8e57..b87c8dc 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,7 +21,7 @@
Name: gnome-python2-desktop
Version: 2.18.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -267,6 +267,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Sun Jun 03 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-2.fc8
+- Rebuild against newer libtotem-plparser.so.1.
+
* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
- Update to 2.18.0
commit 5e697dc73ff0d0e90ca89a4a0427a8dee320a216
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Mar 12 19:59:47 2007 +0000
- Update to 2.18.0
diff --git a/.cvsignore b/.cvsignore
index 3721f68..db01e53 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.17.93.tar.bz2
+gnome-python-desktop-2.18.0.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index f9693f0..e7a8e57 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -20,7 +20,7 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.17.93
+Version: 2.18.0
Release: 1%{?dist}
License: GPL/LGPL
Group: Development/Languages
@@ -28,8 +28,6 @@ Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
-### Patches ###
-
### Dependencies ###
Requires: gnome-python2 >= %{gnome_python_version}
@@ -269,9 +267,16 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Mar 12 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.18.0-1.fc7
+- Update to 2.18.0
+
* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
- Update to 2.17.93
+* Sun Feb 25 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.92-1.fc7
+- Update to 2.17.92
+- Remove patch for GNOME bug #401760 (fixed upstream).
+
* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
- Add patch for GNOME bug #401760 (plparser fails to build).
diff --git a/sources b/sources
index 0bcc075..ede7b10 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1b3d44ab604d0460ab55bcfc48c6ae46 gnome-python-desktop-2.17.93.tar.bz2
+ce1b1c095a69c2656177570a2939fabb gnome-python-desktop-2.18.0.tar.bz2
commit d534e8701eb59b541b66bf355a79e368c664a329
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Feb 28 06:01:03 2007 +0000
fix BRs
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index e3a9485..f9693f0 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -12,7 +12,7 @@
%define libgtop_version 2.13.0
%define librsvg2_version 2.13.93
%define libwnck_version 2.15.5
-%define metacity_version 2.17.0
+%define metacity_version 2.17.8
%define nautilus_cd_burner_version 2.15.3
%define pygtk_version 2.10.3
%define totem_version 1.4.0
commit a08ba9bb761fca5555ef854bdb4515e991cd040d
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Feb 28 05:51:34 2007 +0000
drop obsolete patch
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 6aaa8d6..e3a9485 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -30,9 +30,6 @@ Source: gnome-python-desktop-%{version}.tar.bz2
### Patches ###
-# GNOME bug #401760
-Patch1: gnome-python-desktop-2.17.3-fix-plparser.patch
-
### Dependencies ###
Requires: gnome-python2 >= %{gnome_python_version}
@@ -189,7 +186,6 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
-%patch1 -p1 -b .fix-plparser
%build
%configure --enable-metacity
commit 1aac59f37c6c844142963580d5b5046c9dff7a34
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Wed Feb 28 05:43:17 2007 +0000
2.17.93
diff --git a/.cvsignore b/.cvsignore
index 257cadf..3721f68 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.17.3.tar.bz2
+gnome-python-desktop-2.17.93.tar.bz2
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 3c307f0..6aaa8d6 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -20,8 +20,8 @@
### Abstract ###
Name: gnome-python2-desktop
-Version: 2.17.3
-Release: 3%{?dist}
+Version: 2.17.93
+Release: 1%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
@@ -192,7 +192,7 @@ via Python.
%patch1 -p1 -b .fix-plparser
%build
-%configure
+%configure --enable-metacity
make
%install
@@ -273,6 +273,9 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Wed Feb 28 2007 Matthias Clasen <mclasen(a)redhat.com> - 2.17.93-1
+- Update to 2.17.93
+
* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
- Add patch for GNOME bug #401760 (plparser fails to build).
diff --git a/sources b/sources
index 0276adf..0bcc075 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-79d65dc99025a2d8640d19975ea455a6 gnome-python-desktop-2.17.3.tar.bz2
+1b3d44ab604d0460ab55bcfc48c6ae46 gnome-python-desktop-2.17.93.tar.bz2
commit d991dc26e3e20349cb997037763be96d9c00c75f
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Feb 5 17:03:53 2007 +0000
- Add patch for GNOME bug #401760 (plparser fails to build).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 3455a41..3c307f0 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -21,13 +21,18 @@
Name: gnome-python2-desktop
Version: 2.17.3
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPL/LGPL
Group: Development/Languages
Summary: The sources for additional PyGNOME Python extension modules
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Source: gnome-python-desktop-%{version}.tar.bz2
+### Patches ###
+
+# GNOME bug #401760
+Patch1: gnome-python-desktop-2.17.3-fix-plparser.patch
+
### Dependencies ###
Requires: gnome-python2 >= %{gnome_python_version}
@@ -50,7 +55,6 @@ BuildRequires: metacity >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-devel >= %{totem_version}
-BuildRequires: totem-plparser >= %{totem_version}
%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
@@ -185,6 +189,7 @@ via Python.
%prep
%setup -q -n gnome-python-desktop-%{version}
+%patch1 -p1 -b .fix-plparser
%build
%configure
@@ -268,8 +273,10 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitearch}/gtk-2.0/gnomekeyring.so
%changelog
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-3.fc7
+- Add patch for GNOME bug #401760 (plparser fails to build).
+
* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
-- Add missing BuildRequires: totem-plparser.
- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
commit f868794fdcb6ed435aa366fe6899f86f9d677404
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Feb 5 15:40:21 2007 +0000
- Add missing BuildRequires: totem-plparser.
- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
index 9f9aa23..3455a41 100644
--- a/gnome-python2-desktop.spec
+++ b/gnome-python2-desktop.spec
@@ -50,6 +50,7 @@ BuildRequires: metacity >= %{metacity_version}
BuildRequires: pygtk2-devel >= %{pygtk_version}
BuildRequires: python-devel
BuildRequires: totem-devel >= %{totem_version}
+BuildRequires: totem-plparser >= %{totem_version}
%ifnarch s390 s390x
BuildRequires: gnome-media-devel >= %{gnome_media_version}
BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
@@ -268,6 +269,7 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
+- Add missing BuildRequires: totem-plparser.
- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
commit 7a716554e0fe85531fa38325701ffa1e68b9a8ae
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Feb 5 15:24:30 2007 +0000
- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
diff --git a/gnome-python2-desktop.spec b/gnome-python2-desktop.spec
new file mode 100644
index 0000000..9f9aa23
--- /dev/null
+++ b/gnome-python2-desktop.spec
@@ -0,0 +1,336 @@
+%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+
+%define bug_buddy_version 2.16.0
+%define glib_version 2.6.0
+%define gnome_desktop_version 2.10.0
+%define gnome_keyring_version 0.5.0
+%define gnome_media_version 2.12.0
+%define gnome_panel_version 2.2.0
+%define gnome_python_version 2.10.0
+%define gtk_version 2.4.0
+%define gtksourceview_version 1.1.90
+%define libgtop_version 2.13.0
+%define librsvg2_version 2.13.93
+%define libwnck_version 2.15.5
+%define metacity_version 2.17.0
+%define nautilus_cd_burner_version 2.15.3
+%define pygtk_version 2.10.3
+%define totem_version 1.4.0
+
+### Abstract ###
+
+Name: gnome-python2-desktop
+Version: 2.17.3
+Release: 2%{?dist}
+License: GPL/LGPL
+Group: Development/Languages
+Summary: The sources for additional PyGNOME Python extension modules
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+Source: gnome-python-desktop-%{version}.tar.bz2
+
+### Dependencies ###
+
+Requires: gnome-python2 >= %{gnome_python_version}
+
+### Build Dependencies ###
+
+BuildRequires: bug-buddy >= %{bug_buddy_version}
+BuildRequires: glib2-devel >= %{glib_version}
+BuildRequires: gnome-desktop-devel >= %{gnome_desktop_version}
+BuildRequires: gnome-keyring-devel >= %{gnome_keyring_version}
+BuildRequires: gnome-panel-devel >= %{gnome_panel_version}
+BuildRequires: gnome-python2-devel >= %{gnome_python_version}
+BuildRequires: gtk2-devel >= %{gtk_version}
+BuildRequires: gtksourceview-devel >= %{gtksourceview_version}
+BuildRequires: libgnomeprintui22-devel
+BuildRequires: libgtop2-devel >= %{libgtop_version}
+BuildRequires: librsvg2-devel >= %{librsvg2_version}
+BuildRequires: libwnck-devel >= %{libwnck_version}
+BuildRequires: metacity >= %{metacity_version}
+BuildRequires: pygtk2-devel >= %{pygtk_version}
+BuildRequires: python-devel
+BuildRequires: totem-devel >= %{totem_version}
+%ifnarch s390 s390x
+BuildRequires: gnome-media-devel >= %{gnome_media_version}
+BuildRequires: nautilus-cd-burner-devel >= %{nautilus_cd_burner_version}
+%endif
+
+%description
+The gnome-python-desktop package contains the source packages for additional
+Python bindings for GNOME. It should be used together with gnome-python.
+
+%package -n gnome-python2-applet
+Summary: Python bindings for GNOME Panel applets.
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+# applets from GNOME 1.4 are no longer supported - we only have 1 panel
+Obsoletes: pygnome-applet
+
+%description -n gnome-python2-applet
+This module contains a wrapper that allows GNOME Panel applets to be
+written in Python.
+
+%package -n gnome-python2-bugbuddy
+Summary: Python bindings for interacting with bug-buddy
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: bug-buddy >= %{bug_buddy_version}
+
+%description -n gnome-python2-bugbuddy
+This module contains a wrapper that allows the use of bug-buddy via
+Python.
+
+%package -n gnome-python2-gnomeprint
+Summary: Python bindings for interacting with libgnomeprint
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: libgnomeprint22
+Requires: libgnomeprintui22
+
+%description -n gnome-python2-gnomeprint
+This module contains a wrapper that allows the use of libgnomeprint via
+Python.
+
+%package -n gnome-python2-gtksourceview
+Summary: Python bindings for interacting with the gtksourceview library
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: gtksourceview >= %{gtksourceview_version}
+Requires: gnome-python2-gnomeprint
+
+%description -n gnome-python2-gtksourceview
+This module contains a wrapper that allows the use of gtksourceview via
+Python.
+
+%package -n gnome-python2-libwnck
+Summary: Python bindings for interacting with libwnck
+Group: Development/Languages
+Requires: libwnck >= %{libwnck_version}
+
+%description -n gnome-python2-libwnck
+This module contains a wrapper that allows the use of libwnck via
+Python.
+
+%package -n gnome-python2-libgtop2
+Summary: Python bindings for interacting with libgtop
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: libgtop2 >= %{libgtop_version}
+
+%description -n gnome-python2-libgtop2
+This module contains a wrapper that allows the use of libgtop via
+Python.
+
+%ifnarch s390 s390x
+%package -n gnome-python2-nautilus-cd-burner
+Summary: Python bindings for interacting with nautilus-cd-burner
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: nautilus-cd-burner >= %{nautilus_cd_burner_version}
+
+%description -n gnome-python2-nautilus-cd-burner
+This module contains a wrapper that allows the use of nautilus-cd-burner
+via Python.
+%endif
+
+%package -n gnome-python2-metacity
+Summary: Python bindings for interacting with metacity
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: metacity >= %{metacity_version}
+
+%description -n gnome-python2-metacity
+This module contains a wrapper that allows the use of metacity
+via Python.
+
+%package -n gnome-python2-totem
+Summary: Python bindings for interacting with totem
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: totem >= %{totem_version}
+
+%description -n gnome-python2-totem
+This module contains a wrapper that allows the use of totem
+via Python.
+
+%package -n gnome-python2-rsvg
+Summary: Python bindings for interacting with librsvg
+Group: Development/Languages
+Requires: librsvg2 >= %{librsvg2_version}
+
+%description -n gnome-python2-rsvg
+This module contains a wrapper that allows the use of librsvg
+via Python.
+
+%package -n gnome-python2-gnomedesktop
+Summary: Python bindings for interacting with gnome-desktop
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-desktop >= %{gnome_desktop_version}
+
+%description -n gnome-python2-gnomedesktop
+This module contains a wrapper that allows the use of gnome-desktop
+via Python.
+
+%package -n gnome-python2-gnomekeyring
+Summary: Python bindings for interacting with gnome-keyring
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: gnome-keyring >= %{gnome_keyring_version}
+
+%description -n gnome-python2-gnomekeyring
+This module contains a wrapper that allows the use of gnome-keyring
+via Python.
+
+%prep
+%setup -q -n gnome-python-desktop-%{version}
+
+%build
+%configure
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+find $RPM_BUILD_ROOT -name '*.la' -exec rm {} \;
+
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/gksu
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS ChangeLog NEWS
+%{_libdir}/pkgconfig/gnome-python-desktop-2.0.pc
+%{_datadir}/pygtk
+
+%files -n gnome-python2-applet
+%defattr(-,root,root,-)
+%dir %{python_sitearch}/gtk-2.0/gnome/applet.*
+%{python_sitearch}/gtk-2.0/gnomeapplet.so
+
+%files -n gnome-python2-bugbuddy
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/bugbuddy.py*
+
+%files -n gnome-python2-gnomeprint
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gnomeprint/
+%{_datadir}/gtk-doc/html/pygnomeprint
+%{_datadir}/gtk-doc/html/pygnomeprintui
+%defattr(644,root,root,755)
+%doc ../gnome-python-desktop-%{version}/examples/gnomeprint/*
+
+%files -n gnome-python2-gtksourceview
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gtksourceview.so
+%{_datadir}/gtk-doc/html/pygtksourceview
+%defattr(644,root,root,755)
+%doc ../gnome-python-desktop-%{version}/examples/gtksourceview/*
+
+%files -n gnome-python2-libwnck
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/wnck.so
+
+%files -n gnome-python2-libgtop2
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/gtop.so
+
+%ifnarch s390 s390x
+%files -n gnome-python2-nautilus-cd-burner
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/nautilusburn.so
+%defattr(644,root,root,755)
+%doc ../gnome-python-desktop-%{version}/examples/nautilusburn/*
+%endif
+
+%files -n gnome-python2-metacity
+%defattr(-,root,root,-)
+%{python_sitearch}/gtk-2.0/metacity.so
+
+%files -n gnome-python2-totem
+%defattr(-,root,root,-)
+%ifnarch s390 s390x
+%{python_sitearch}/gtk-2.0/mediaprofiles.so
+%endif
+%{python_sitearch}/gtk-2.0/totem
+
+%files -n gnome-python2-rsvg
+%{python_sitearch}/gtk-2.0/rsvg.so
+
+%files -n gnome-python2-gnomedesktop
+%{python_sitearch}/gtk-2.0/gnomedesktop
+
+%files -n gnome-python2-gnomekeyring
+%{python_sitearch}/gtk-2.0/gnomekeyring.so
+
+%changelog
+* Mon Feb 05 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-2.fc7
+- Rename spec file to gnome-python2-desktop.spec (RH bug #225832).
+
+* Mon Jan 08 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.3-1
+- Update to 2.17.3
+
+* Sun Jan 07 2007 Matthew Barnes <mbarnes(a)redhat.com> - 2.17.2-1
+- Update to 2.17.2
+- New gnome-python2-bugbuddy subpackage.
+- Update version requirements to match configure.ac.
+- Use python_sitearch macro for installing libraries.
+
+* Thu Dec 7 2006 Jeremy Katz <katzj(a)redhat.com> - 2.17.1-2
+- rebuild for python 2.5
+- BR gnome-python2-devel
+
+* Sat Oct 21 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.17.1-1
+- Update to 2.17.1
+
+* Tue Sep 5 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6
+- Update to 2.16.0
+
+* Tue Aug 22 2006 Dan Williams <dcbw(a)redhat.com> - 2.15.90-2.fc6
+- Remove unecessary dependencies on gnome-python2-desktop from
+ -libwnck and -rsvg subpackages (OLPC)
+
+* Fri Aug 4 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.90-1.fc6
+- Update to 2.15.90
+
+* Thu Jul 20 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-2
+- Rebuild against dbus
+
+* Thu Jul 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.4-1
+- Update to 2.15.4
+
+* Wed Jul 12 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4.1
+- rebuild
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-4
+- Create gnomekeyring subpackage
+- block out the nautilus-cd stuff
+
+* Thu Jun 15 2006 Jesse Keating <jkeating(a)redhat.com> - 2.15.3-2
+- Bump for new nautilus-cd-burner
+
+* Tue Jun 13 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.3-1
+- Update to 2.15.3
+
+* Tue May 30 2006 Matthias Clasen <mclasen(a)redhat.com> - 2.15.2-1
+- Update to 2.15.2
+- Add subpackages gnome-python2-rsvg and gnome-python2-gnomedesktop
+
+* Wed May 24 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.14.0-2
+- Add pygtk2 BR
+
+* Mon Mar 13 2006 Ray Strode <rstrode(a)redhat.de> 2.14.0-1
+- Update to 2.14.0
+
+* Tue Feb 28 2006 Karsten Hopp <karsten(a)redhat.de> 2.13.3-2
+- Buildrequires: python-devel
+
+* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 2.13.3-1.1
+- bump again for double-long bug on ppc(64)
+
+* Mon Feb 6 2006 John (J5) Palmieri <johnp(a)redhat.com> - 2.13.3-1
+- Initial build.
+
commit 6aef4efaa550f147938249a3bbb8257dd525c1f5
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Mon Jan 8 19:27:03 2007 +0000
- Update to 2.17.3
diff --git a/.cvsignore b/.cvsignore
index 799b642..257cadf 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.17.2.tar.bz2
+gnome-python-desktop-2.17.3.tar.bz2
diff --git a/sources b/sources
index a1d9911..0276adf 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-3c6fa24860ae4604b118f59cd48adccf gnome-python-desktop-2.17.2.tar.bz2
+79d65dc99025a2d8640d19975ea455a6 gnome-python-desktop-2.17.3.tar.bz2
commit fc5d2de2795643340b47fc8d0a9fc6138ec13213
Author: Matthew Barnes <mbarnes(a)fedoraproject.org>
Date: Sun Jan 7 23:55:07 2007 +0000
- Update to 2.17.2
- New gnome-python2-bugbuddy subpackage.
- Update version requirements to match configure.ac.
- Use python_sitearch macro for installing libraries.
diff --git a/.cvsignore b/.cvsignore
index 9593c40..799b642 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.17.1.tar.bz2
+gnome-python-desktop-2.17.2.tar.bz2
diff --git a/sources b/sources
index baaf482..a1d9911 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ad8cef1adbda96790e86c78b9c0f8e3b gnome-python-desktop-2.17.1.tar.bz2
+3c6fa24860ae4604b118f59cd48adccf gnome-python-desktop-2.17.2.tar.bz2
commit 6030f2ff58c1f0f35d62a8b00056ab76440d6398
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Sun Oct 22 00:55:03 2006 +0000
2.17.1
diff --git a/.cvsignore b/.cvsignore
index 4ceeab9..9593c40 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.16.0.tar.bz2
+gnome-python-desktop-2.17.1.tar.bz2
diff --git a/sources b/sources
index a127d5a..baaf482 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ea79fe3e6a65d8380539a9ef6eed963f gnome-python-desktop-2.16.0.tar.bz2
+ad8cef1adbda96790e86c78b9c0f8e3b gnome-python-desktop-2.17.1.tar.bz2
commit 7bdc012b51116f2d8834718768fa713b5e5529ce
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Sep 5 05:32:22 2006 +0000
2.16.0
diff --git a/.cvsignore b/.cvsignore
index 3fd4966..4ceeab9 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.15.90.tar.bz2
+gnome-python-desktop-2.16.0.tar.bz2
diff --git a/sources b/sources
index 85e0bb1..a127d5a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ddff73b70371c93f49df460d072db948 gnome-python-desktop-2.15.90.tar.bz2
+ea79fe3e6a65d8380539a9ef6eed963f gnome-python-desktop-2.16.0.tar.bz2
commit e05e04e865bd0f5045ac58014dae1799ef80c303
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Fri Aug 4 19:35:13 2006 +0000
2.15.90
diff --git a/.cvsignore b/.cvsignore
index 463981a..3fd4966 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.15.4.tar.bz2
+gnome-python-desktop-2.15.90.tar.bz2
diff --git a/sources b/sources
index 9291c9c..85e0bb1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-83dd68a0cec2f32966660a6b9abbef08 gnome-python-desktop-2.15.4.tar.bz2
+ddff73b70371c93f49df460d072db948 gnome-python-desktop-2.15.90.tar.bz2
commit e2ccd685b520e5cf62c2f273a792746581924139
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Thu Jul 13 04:37:07 2006 +0000
2.15.4
diff --git a/.cvsignore b/.cvsignore
index cfbd578..463981a 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.15.3.tar.bz2
+gnome-python-desktop-2.15.4.tar.bz2
diff --git a/sources b/sources
index b138f57..9291c9c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-02274896fb2e1bd9ca57989fc02832d0 gnome-python-desktop-2.15.3.tar.bz2
+83dd68a0cec2f32966660a6b9abbef08 gnome-python-desktop-2.15.4.tar.bz2
commit ba1a78a58edd93392274d2cdfbb07347fe3f3a46
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue Jun 13 14:05:17 2006 +0000
2.15.3
diff --git a/.cvsignore b/.cvsignore
index 1768480..cfbd578 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.15.2.tar.bz2
+gnome-python-desktop-2.15.3.tar.bz2
diff --git a/sources b/sources
index 80620c4..b138f57 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-e4fa976f2bff29e8333a5ff581673bfe gnome-python-desktop-2.15.2.tar.bz2
+02274896fb2e1bd9ca57989fc02832d0 gnome-python-desktop-2.15.3.tar.bz2
commit 1c09ff8c844a2066d8ab0d56f45975bf97b367c1
Author: Matthias Clasen <mclasen(a)fedoraproject.org>
Date: Tue May 30 20:08:10 2006 +0000
2.15.2
diff --git a/.cvsignore b/.cvsignore
index b018713..1768480 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.14.0.tar.bz2
+gnome-python-desktop-2.15.2.tar.bz2
diff --git a/sources b/sources
index 7e636f0..80620c4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d3f9c2d213b7d486ca7bd87dd106ca69 gnome-python-desktop-2.14.0.tar.bz2
+e4fa976f2bff29e8333a5ff581673bfe gnome-python-desktop-2.15.2.tar.bz2
commit e822c873359e0d9fd35742d83e60dc220458891e
Author: Ray Strode <rstrode(a)fedoraproject.org>
Date: Mon Mar 13 15:54:08 2006 +0000
- Update to 2.14.0
diff --git a/.cvsignore b/.cvsignore
index 7d70183..b018713 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-python-desktop-2.13.3.tar.bz2
+gnome-python-desktop-2.14.0.tar.bz2
diff --git a/sources b/sources
index af81de5..7e636f0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-98118c8d5ad5480768fa52d4497cf3e3 gnome-python-desktop-2.13.3.tar.bz2
+d3f9c2d213b7d486ca7bd87dd106ca69 gnome-python-desktop-2.14.0.tar.bz2
commit ac21e339997751aac20ef72c11e4fd9572c9a5f8
Author: John (J5) Palmieri <johnp(a)fedoraproject.org>
Date: Mon Feb 6 21:28:17 2006 +0000
auto-import gnome-python2-desktop-2.13.3-1 on branch devel from
gnome-python2-desktop-2.13.3-1.src.rpm
diff --git a/.cvsignore b/.cvsignore
index e69de29..7d70183 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -0,0 +1 @@
+gnome-python-desktop-2.13.3.tar.bz2
diff --git a/sources b/sources
index e69de29..af81de5 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+98118c8d5ad5480768fa52d4497cf3e3 gnome-python-desktop-2.13.3.tar.bz2
4 years, 8 months
Architecture specific change in rpms/mpich.git
by githook-noreply@fedoraproject.org
The package rpms/mpich.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/mpich.git/commit/?id=dd07517692e0....
Change:
-%ifarch ppc
Thanks.
Full change:
============
commit dd07517692e054037bb76b423475a9873ce70078
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 16:15:11 2019 +0200
Revert "Revert "Drop ignoring of tests on ppc64""
This reverts commit bef8b43abc72131a3d46862035125c42c7fa7eaa.
It turns out that the test was flakey, and %ifarch didnt' make any difference
on ppc64.
diff --git a/mpich.spec b/mpich.spec
index 84a25dd..61a5087 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -186,10 +186,7 @@ install -pDm0644 %{SOURCE3} %{buildroot}%{python3_sitearch}/%{name}.pth
find %{buildroot} -type f -name "*.la" -delete
%check
-make check VERBOSE=1 \
-%ifarch ppc
-|| : # https://github.com/pmodels/mpich/issues/3949
-%endif
+make check VERBOSE=1
%ldconfig_scriptlets
4 years, 8 months
Architecture specific change in rpms/mpich.git
by githook-noreply@fedoraproject.org
The package rpms/mpich.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/mpich.git/commit/?id=bef8b43abc72....
Change:
+%ifarch ppc
Thanks.
Full change:
============
commit bef8b43abc72131a3d46862035125c42c7fa7eaa
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 13:30:56 2019 +0200
Revert "Drop ignoring of tests on ppc64"
This reverts commit 82946641ed6873fa6b91e60df1cc1f86c58b495b.
The tests are still broken in rawhide, they only pass in F31 ;(
diff --git a/mpich.spec b/mpich.spec
index 61a5087..84a25dd 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -186,7 +186,10 @@ install -pDm0644 %{SOURCE3} %{buildroot}%{python3_sitearch}/%{name}.pth
find %{buildroot} -type f -name "*.la" -delete
%check
-make check VERBOSE=1
+make check VERBOSE=1 \
+%ifarch ppc
+|| : # https://github.com/pmodels/mpich/issues/3949
+%endif
%ldconfig_scriptlets
4 years, 8 months
Architecture specific change in rpms/mpich.git
by githook-noreply@fedoraproject.org
The package rpms/mpich.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/mpich.git/commit/?id=82946641ed68...
https://src.fedoraproject.org/cgit/rpms/mpich.git/commit/?id=3b497cff602f....
Change:
-%ifarch ppc
+%ifarch %{arm}
Thanks.
Full change:
============
commit 82946641ed6873fa6b91e60df1cc1f86c58b495b
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 13:06:55 2019 +0200
Drop ignoring of tests on ppc64
They seem to pass now.
diff --git a/mpich.spec b/mpich.spec
index 84a25dd..61a5087 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -186,10 +186,7 @@ install -pDm0644 %{SOURCE3} %{buildroot}%{python3_sitearch}/%{name}.pth
find %{buildroot} -type f -name "*.la" -delete
%check
-make check VERBOSE=1 \
-%ifarch ppc
-|| : # https://github.com/pmodels/mpich/issues/3949
-%endif
+make check VERBOSE=1
%ldconfig_scriptlets
commit 3b497cff602f88dd1664ba31a34504d40da44156
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 13:04:49 2019 +0200
Add workaround to fix build on arm
diff --git a/0001-Drop-real128.patch b/0001-Drop-real128.patch
new file mode 100644
index 0000000..355bd87
--- /dev/null
+++ b/0001-Drop-real128.patch
@@ -0,0 +1,74 @@
+From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?=
+ <zbyszek(a)arm03-packager01.cloud.fedoraproject.org>
+Date: Wed, 28 Aug 2019 10:57:55 +0000
+Subject: [PATCH] Drop real128
+
+https://github.com/pmodels/mpich/issues/4005
+---
+ .../fortran/use_mpi_f08/mpi_f08_types.f90 | 24 -------------------
+ 1 file changed, 24 deletions(-)
+
+diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
+index f8b0fa811..46bdf6972 100644
+--- a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
++++ b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
+@@ -248,10 +248,8 @@ interface MPI_Sizeof
+ module procedure MPI_Sizeof_xint64
+ module procedure MPI_Sizeof_xreal32
+ module procedure MPI_Sizeof_xreal64
+- module procedure MPI_Sizeof_xreal128
+ module procedure MPI_Sizeof_xcomplex32
+ module procedure MPI_Sizeof_xcomplex64
+- module procedure MPI_Sizeof_xcomplex128
+ end interface
+
+ private :: MPI_Sizeof_character
+@@ -263,10 +261,8 @@ private :: MPI_Sizeof_xint32
+ private :: MPI_Sizeof_xint64
+ private :: MPI_Sizeof_xreal32
+ private :: MPI_Sizeof_xreal64
+-private :: MPI_Sizeof_xreal128
+ private :: MPI_Sizeof_xcomplex32
+ private :: MPI_Sizeof_xcomplex64
+-private :: MPI_Sizeof_xcomplex128
+
+ contains
+
+@@ -350,16 +346,6 @@ subroutine MPI_Sizeof_xreal64 (x, size, ierror)
+ ierror = 0
+ end subroutine MPI_Sizeof_xreal64
+
+-subroutine MPI_Sizeof_xreal128 (x, size, ierror)
+- use,intrinsic :: iso_fortran_env, only: real128
+- real(real128),dimension(..) :: x
+- integer, intent(out) :: size
+- integer, optional, intent(out) :: ierror
+-
+- size = storage_size(x)/8
+- ierror = 0
+-end subroutine MPI_Sizeof_xreal128
+-
+ subroutine MPI_Sizeof_xcomplex32 (x, size, ierror)
+ use,intrinsic :: iso_fortran_env, only: real32
+ complex(real32),dimension(..) :: x
+@@ -380,16 +366,6 @@ subroutine MPI_Sizeof_xcomplex64 (x, size, ierror)
+ ierror = 0
+ end subroutine MPI_Sizeof_xcomplex64
+
+-subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
+- use,intrinsic :: iso_fortran_env, only: real128
+- complex(real128),dimension(..) :: x
+- integer, intent(out) :: size
+- integer, optional, intent(out) :: ierror
+-
+- size = storage_size(x)/8
+- ierror = 0
+-end subroutine MPI_Sizeof_xcomplex128
+-
+ subroutine MPI_Status_f2f08(f_status, f08_status, ierror)
+ integer, intent(in) :: f_status(MPI_STATUS_SIZE)
+ type(MPI_Status), intent(out) :: f08_status
+--
+2.21.0
+
diff --git a/mpich.spec b/mpich.spec
index 9d0f7d7..84a25dd 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -10,6 +10,7 @@ Source1: mpich.macros
Source2: mpich.pth.py2
Source3: mpich.pth.py3
Patch0: mpich-modules.patch
+Patch1: 0001-Drop-real128.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -103,7 +104,13 @@ Requires: python(abi) = %{python3_version}
mpich support for Python 3.
%prep
-%autosetup -p1
+%setup
+
+%patch0 -p1
+
+%ifarch %{arm}
+%patch1 -p1
+%endif
%build
CONFIGURE_OPTS=(
4 years, 8 months
Architecture specific change in rpms/mpich.git
by githook-noreply@fedoraproject.org
The package rpms/mpich.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/mpich.git/commit/?id=82946641ed68...
https://src.fedoraproject.org/cgit/rpms/mpich.git/commit/?id=3b497cff602f....
Change:
-%ifarch ppc
+%ifarch %{arm}
Thanks.
Full change:
============
commit 82946641ed6873fa6b91e60df1cc1f86c58b495b
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 13:06:55 2019 +0200
Drop ignoring of tests on ppc64
They seem to pass now.
diff --git a/mpich.spec b/mpich.spec
index 84a25dd..61a5087 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -186,10 +186,7 @@ install -pDm0644 %{SOURCE3} %{buildroot}%{python3_sitearch}/%{name}.pth
find %{buildroot} -type f -name "*.la" -delete
%check
-make check VERBOSE=1 \
-%ifarch ppc
-|| : # https://github.com/pmodels/mpich/issues/3949
-%endif
+make check VERBOSE=1
%ldconfig_scriptlets
commit 3b497cff602f88dd1664ba31a34504d40da44156
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed Aug 28 13:04:49 2019 +0200
Add workaround to fix build on arm
diff --git a/0001-Drop-real128.patch b/0001-Drop-real128.patch
new file mode 100644
index 0000000..355bd87
--- /dev/null
+++ b/0001-Drop-real128.patch
@@ -0,0 +1,74 @@
+From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?=
+ <zbyszek(a)arm03-packager01.cloud.fedoraproject.org>
+Date: Wed, 28 Aug 2019 10:57:55 +0000
+Subject: [PATCH] Drop real128
+
+https://github.com/pmodels/mpich/issues/4005
+---
+ .../fortran/use_mpi_f08/mpi_f08_types.f90 | 24 -------------------
+ 1 file changed, 24 deletions(-)
+
+diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
+index f8b0fa811..46bdf6972 100644
+--- a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
++++ b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
+@@ -248,10 +248,8 @@ interface MPI_Sizeof
+ module procedure MPI_Sizeof_xint64
+ module procedure MPI_Sizeof_xreal32
+ module procedure MPI_Sizeof_xreal64
+- module procedure MPI_Sizeof_xreal128
+ module procedure MPI_Sizeof_xcomplex32
+ module procedure MPI_Sizeof_xcomplex64
+- module procedure MPI_Sizeof_xcomplex128
+ end interface
+
+ private :: MPI_Sizeof_character
+@@ -263,10 +261,8 @@ private :: MPI_Sizeof_xint32
+ private :: MPI_Sizeof_xint64
+ private :: MPI_Sizeof_xreal32
+ private :: MPI_Sizeof_xreal64
+-private :: MPI_Sizeof_xreal128
+ private :: MPI_Sizeof_xcomplex32
+ private :: MPI_Sizeof_xcomplex64
+-private :: MPI_Sizeof_xcomplex128
+
+ contains
+
+@@ -350,16 +346,6 @@ subroutine MPI_Sizeof_xreal64 (x, size, ierror)
+ ierror = 0
+ end subroutine MPI_Sizeof_xreal64
+
+-subroutine MPI_Sizeof_xreal128 (x, size, ierror)
+- use,intrinsic :: iso_fortran_env, only: real128
+- real(real128),dimension(..) :: x
+- integer, intent(out) :: size
+- integer, optional, intent(out) :: ierror
+-
+- size = storage_size(x)/8
+- ierror = 0
+-end subroutine MPI_Sizeof_xreal128
+-
+ subroutine MPI_Sizeof_xcomplex32 (x, size, ierror)
+ use,intrinsic :: iso_fortran_env, only: real32
+ complex(real32),dimension(..) :: x
+@@ -380,16 +366,6 @@ subroutine MPI_Sizeof_xcomplex64 (x, size, ierror)
+ ierror = 0
+ end subroutine MPI_Sizeof_xcomplex64
+
+-subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
+- use,intrinsic :: iso_fortran_env, only: real128
+- complex(real128),dimension(..) :: x
+- integer, intent(out) :: size
+- integer, optional, intent(out) :: ierror
+-
+- size = storage_size(x)/8
+- ierror = 0
+-end subroutine MPI_Sizeof_xcomplex128
+-
+ subroutine MPI_Status_f2f08(f_status, f08_status, ierror)
+ integer, intent(in) :: f_status(MPI_STATUS_SIZE)
+ type(MPI_Status), intent(out) :: f08_status
+--
+2.21.0
+
diff --git a/mpich.spec b/mpich.spec
index 9d0f7d7..84a25dd 100644
--- a/mpich.spec
+++ b/mpich.spec
@@ -10,6 +10,7 @@ Source1: mpich.macros
Source2: mpich.pth.py2
Source3: mpich.pth.py3
Patch0: mpich-modules.patch
+Patch1: 0001-Drop-real128.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -103,7 +104,13 @@ Requires: python(abi) = %{python3_version}
mpich support for Python 3.
%prep
-%autosetup -p1
+%setup
+
+%patch0 -p1
+
+%ifarch %{arm}
+%patch1 -p1
+%endif
%build
CONFIGURE_OPTS=(
4 years, 8 months
Architecture specific change in rpms/python37.git
by githook-noreply@fedoraproject.org
The package rpms/python37.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/python37.git/commit/?id=a64e7f7e9...
https://src.fedoraproject.org/cgit/rpms/python37.git/commit/?id=ec5f432a6...
https://src.fedoraproject.org/cgit/rpms/python37.git/commit/?id=9a2e4be58...
https://src.fedoraproject.org/cgit/rpms/python37.git/commit/?id=cb1167a87...
https://src.fedoraproject.org/cgit/rpms/python37.git/commit/?id=0577b92f7...
https://src.fedoraproject.org/cgit/rpms/python37.git/commit/?id=fb9702fb7....
Change:
+%ifarch %{valgrind_arches}
-%ifarch %{power64}
-%ifarch aarch64
+%ifnarch s390 %{mips} riscv64
+%ifarch %{valgrind_arches}
-%ifarch aarch64
Thanks.
Full change:
============
commit b2919af668911674e845e6509d09e9cda4471068
Merge: 490fd61 0577b92
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 28 12:07:33 2019 +0200
Merge https://src.fedoraproject.org/rpms/python3/pull-request/131
commit 0577b92f75f4ca268e6b80a73e133cd34721cbb1
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 21 15:52:19 2019 +0200
Make flat
diff --git a/python3.rpmlintrc b/python3.rpmlintrc
deleted file mode 100644
index e1e2cbe..0000000
--- a/python3.rpmlintrc
+++ /dev/null
@@ -1,78 +0,0 @@
-# KNOWN BUGS:
-# https://bugzilla.redhat.com/show_bug.cgi?id=1489816
-addFilter(r'crypto-policy-non-compliance-openssl')
-
-
-# TESTS:
-addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
-
-
-# OTHER DELIBERATES:
-# chroot function
-addFilter(r'missing-call-to-chdir-with-chroot')
-
-# intentionally unversioned and selfobsoleted
-addFilter(r'unversioned-explicit-obsoletes python')
-addFilter(r'self-obsoletion python3\d obsoletes python3\d')
-
-# intentionally hardcoded
-addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})')
-
-# intentional for our pythonXY package
-addFilter(r'python3\d\.[^:]+: (E|W): devel-file-in-non-devel-package')
-
-# we have non binary stuff, python files
-addFilter(r'only-non-binary-in-usr-lib')
-
-# some devel files that are deliberately needed
-addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
-addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d/distutils/tests/xxmodule\.c')
-
-
-# SORRY, NOT SORRY:
-# manual pages
-addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix|msgfmt|pygettext)')
-addFilter(r'no-manual-page-for-binary python3.*-config$')
-addFilter(r'no-manual-page-for-binary python3.\dd?m$')
-
-# missing documentation from subpackages
-addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')
-
-# platform python is obsoleted, but not provided
-addFilter(r'obsolete-not-provided platform-python')
-
-
-# RPMLINT IMPERFECTIONS
-# https://github.com/rpm-software-management/rpmlint/issues/123
-addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3393')
-# https://github.com/rpm-software-management/rpmlint/pull/133
-addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3394')
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=1550562
-# https://github.com/rpm-software-management/rpmlint/issues/128
-addFilter(r'python-bytecode-inconsistent-mtime .* 1970')
-
-# debugsource
-addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')
-
-# debuginfo
-addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')
-
-# this is OK for F28+
-addFilter(r'library-without-ldconfig-post')
-
-# debug package contains devel and non-devel files
-addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package')
-
-# this goes to other subpackage, hence not actually dangling, the read error is bogus
-addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
-addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
-
-# we need this macro to evaluate, even if the line starts with #
-addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
-
-# Python modules don't need to be linked against libc
-addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')
-
-# SPELLING ERRORS
-addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
diff --git a/python3.spec b/python3.spec
deleted file mode 100644
index 7910dd3..0000000
--- a/python3.spec
+++ /dev/null
@@ -1,2780 +0,0 @@
-# ==================
-# Top-level metadata
-# ==================
-
-%global pybasever 3.7
-
-# pybasever without the dot:
-%global pyshortver 37
-
-Name: python3
-Summary: Interpreter of the Python programming language
-URL: https://www.python.org/
-
-# WARNING When rebasing to a new Python version,
-# remember to update the python3-docs package as well
-%global general_version %{pybasever}.4
-#global prerel ...
-%global upstream_version %{general_version}%{?prerel}
-Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 5%{?dist}
-License: Python
-
-
-# ==================================
-# Conditionals 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"
-
-
-# Flat package, i.e. python36, python37, python38 for tox etc.
-# warning: changes some other defaults
-# in Fedora, never turn this on for the python3 package
-# and always keep it on for python37 etc.
-# WARNING: This does not change the package name and summary above
-%bcond_with flatpackage
-
-# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
-# Uses upstream bundled prebuilt wheels otherwise
-%bcond_without rpmwheels
-
-# Expensive optimizations (mainly, profile-guided optimizations)
-%ifarch %{ix86} x86_64
-%bcond_without optimizations
-%else
-# On some architectures, the optimized build takes tens of hours, possibly
-# longer than Koji's 24-hour timeout. Disable optimizations here.
-%bcond_with optimizations
-%endif
-
-# Run the test suite in %%check
-%bcond_without tests
-
-# Extra build for debugging the interpreter or C-API extensions
-# (the -debug subpackages)
-%if %{with flatpackage}
-%bcond_with debug_build
-%else
-%bcond_without debug_build
-%endif
-
-# Support for the GDB debugger
-%bcond_without gdb_hooks
-
-# The dbm.gnu module (key-value database)
-%bcond_without gdbm
-
-# Main interpreter loop optimization
-%bcond_without computed_gotos
-
-# Support for the Valgrind debugger/profiler
-%ifarch %{valgrind_arches}
-%bcond_without valgrind
-%else
-%bcond_with valgrind
-%endif
-
-
-# Notes from bootstraping Python 3.7:
-# https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython
-
-
-# =====================
-# General global macros
-# =====================
-
-%global pylibdir %{_libdir}/python%{pybasever}
-%global dynload_dir %{pylibdir}/lib-dynload
-
-# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
-# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/
-%global ABIFLAGS_optimized m
-%global ABIFLAGS_debug dm
-
-%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
-%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
-
-%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
-%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
-
-# All bytecode files are in a __pycache__ subdirectory, with a name
-# reflecting the version of the bytecode.
-# See PEP 3147: http://www.python.org/dev/peps/pep-3147/
-# For example,
-# foo/bar.py
-# has bytecode at:
-# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
-# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
-# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
-%global bytecode_suffixes .cpython-%{pyshortver}*.pyc
-
-# 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%{LDVERSION_optimized}.so.%{py_SOVERSION}
-%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
-
-# Disable automatic bytecompilation. The python3 binary is not yet be
-# available in /usr/bin when Python is built. Also, the bytecompilation fails
-# on files that test invalid syntax.
-%undefine py_auto_byte_compile
-
-# Don't let RPM set SOURCE_DATE_EPOCH based on the latest %%changelog date
-# It breaks tests with: can't find '__main__' module in .../test_zip.zip
-# Reported at https://bugs.python.org/issue34022
-# Tracked at https://bugzilla.redhat.com/show_bug.cgi?id=1724753
-%global source_date_epoch_from_changelog 0
-
-# For multilib support, files that are different between 32- and 64-bit arches
-# need different filenames. Use "64" or "32" according to the word size.
-# Currently, the best way to determine an architecture's word size happens to
-# be checking %%{_lib}.
-%if "%{_lib}" == "lib64"
-%global wordsize 64
-%else
-%global wordsize 32
-%endif
-
-
-# =======================
-# Build-time requirements
-# =======================
-
-# (keep this list alphabetized)
-
-BuildRequires: autoconf
-BuildRequires: bluez-libs-devel
-BuildRequires: bzip2
-BuildRequires: bzip2-devel
-BuildRequires: desktop-file-utils
-BuildRequires: expat-devel
-
-BuildRequires: findutils
-BuildRequires: gcc-c++
-%if %{with gdbm}
-BuildRequires: gdbm-devel
-%endif
-BuildRequires: glibc-all-langpacks
-BuildRequires: glibc-devel
-BuildRequires: gmp-devel
-BuildRequires: libappstream-glib
-BuildRequires: libffi-devel
-BuildRequires: libnsl2-devel
-BuildRequires: libtirpc-devel
-BuildRequires: libGL-devel
-BuildRequires: libuuid-devel
-BuildRequires: libX11-devel
-BuildRequires: ncurses-devel
-
-BuildRequires: openssl-devel
-BuildRequires: pkgconfig
-BuildRequires: readline-devel
-BuildRequires: redhat-rpm-config >= 127
-BuildRequires: sqlite-devel
-BuildRequires: gdb
-
-BuildRequires: tar
-BuildRequires: tcl-devel
-BuildRequires: tix-devel
-BuildRequires: tk-devel
-
-%if %{with valgrind}
-BuildRequires: valgrind-devel
-%endif
-
-BuildRequires: xz-devel
-BuildRequires: zlib-devel
-
-BuildRequires: /usr/bin/dtrace
-
-# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
-BuildRequires: /usr/sbin/ifconfig
-
-# For %%python_provide
-BuildRequires: python-rpm-macros
-
-%if %{with rpmwheels}
-BuildRequires: python-setuptools-wheel
-BuildRequires: python-pip-wheel
-%endif
-
-
-# =======================
-# Source code and patches
-# =======================
-
-Source: https://www.python.org/ftp/python/%{general_version}/Python-%{upstream_ve...
-
-# A simple script to check timestamps of bytecode files
-# Run in check section with Python that is currently being built
-# Originally written by bkabrda
-Source8: check-pyc-timestamps.py
-
-# Desktop menu entry for idle3
-Source10: idle3.desktop
-
-# AppData file for idle3
-Source11: idle3.appdata.xml
-
-# 00001 #
-# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
-# Was Patch0 in ivazquez' python3000 specfile:
-Patch1: 00001-rpath.patch
-
-# 00102 #
-# Change the various install paths to use /usr/lib64/ instead or /usr/lib
-# Only used when "%%{_lib}" == "lib64"
-# Not yet sent upstream.
-Patch102: 00102-lib64.patch
-
-# 00111 #
-# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
-# a libpythonMAJOR.MINOR.a
-# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
-# Downstream only: not appropriate for upstream
-Patch111: 00111-no-static-lib.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
-# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
-Patch155: 00155-avoid-ctypes-thunks.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)
-# The new macros/functions within gcmodule.c are hidden to avoid exposing
-# them within the extension API.
-# Sent upstream: http://bugs.python.org/issue9263
-# See https://bugzilla.redhat.com/show_bug.cgi?id=614680
-Patch170: 00170-gc-assertions.patch
-
-# 00178 #
-# Don't duplicate various FLAGS in sysconfig values
-# http://bugs.python.org/issue17679
-# Does not affect python2 AFAICS (different sysconfig values initialization)
-Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
-
-# 00189 #
-# Instead of bundled wheels, use our RPM packaged wheels from
-# /usr/share/python-wheels
-Patch189: 00189-use-rpm-wheels.patch
-
-# 00205 #
-# LIBPL variable in makefile takes LIBPL from configure.ac
-# but the LIBPL variable defined there doesn't respect libdir macro
-Patch205: 00205-make-libpl-respect-lib64.patch
-
-# 00251
-# Set values of prefix and exec_prefix in distutils install command
-# to /usr/local if executable is /usr/bin/python* and RPM build
-# is not detected to make pip and distutils install into separate location
-# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
-Patch251: 00251-change-user-install-location.patch
-
-# 00274 #
-# Upstream uses Debian-style architecture naming. Change to match Fedora.
-Patch274: 00274-fix-arch-names.patch
-
-# 00316 #
-# We remove the exe files from distutil's bdist_wininst
-# So we mark the command as unsupported - and the tests are skipped
-Patch316: 00316-mark-bdist_wininst-unsupported.patch
-
-# 00328 #
-# Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
-# See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comm...
-Patch328: 00328-pyc-timestamp-invalidation-mode.patch
-
-# (New patches go here ^^^)
-#
-# When adding new patches to "python" 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
-
-
-# ==========================================
-# Descriptions, and metadata for subpackages
-# ==========================================
-
-# People might want to dnf install pythonX.Y instead of pythonXY;
-# we enable this in both flat and nonflat package.
-Provides: python%{pybasever} = %{version}-%{release}
-
-%if %{without flatpackage}
-
-# Packages with Python modules in standard locations automatically
-# depend on python(abi). Provide that here.
-Provides: python(abi) = %{pybasever}
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-# In order to support multiple Python interpreters for development purposes,
-# packages with the naming scheme flatpackage (e.g. python35) exist for
-# non-default versions of Python 3.
-# For consistency, and to keep the upgrade path clean, we Provide/Obsolete
-# these names here.
-Provides: python%{pyshortver} = %{version}-%{release}
-# Note that using Obsoletes without package version is not standard practice.
-# Here we assert that *any* version of the system's default interpreter is
-# preferable to an "extra" interpreter. For example, python3-3.6.1 will
-# replace python36-3.6.2.
-Obsoletes: python%{pyshortver}
-
-# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
-# https://fedoraproject.org/wiki/Changes/Python_means_Python3
-# We recommend /usr/bin/python so users get it by default
-# Versioned recommends are problematic, and we know that the package requires
-# python3 back with fixed version, so we just use the path here:
-Recommends: %{_bindir}/python
-
-# In Fedora 31, /usr/bin/pydoc was moved here from Python 2.
-# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3",
-# but file provides aren't versioned and the file moved across packages.
-# Instead, we rely on the conflict in python3-libs.
-
-# 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: python3-setuptools
-Recommends: python3-pip
-
-# This prevents ALL subpackages built from this spec to require
-# /usr/bin/python3*. Granularity per subpackage is impossible.
-# It's intended for the libs package not to drag in the interpreter, see
-# https://bugzilla.redhat.com/show_bug.cgi?id=1547131
-# All others require %%{name} anyway.
-%global __requires_exclude ^/usr/bin/python3
-
-
-# The description used both for the SRPM and the main `python3` subpackage:
-%description
-Python is an accessible, high-level, dynamically typed, interpreted programming
-language, designed with an emphasis on code readability.
-It includes an extensive standard library, and has a vast ecosystem of
-third-party libraries.
-
-The %{name} package provides the "python3" executable: the reference
-interpreter for the Python language, version 3.
-The majority of its standard library is provided in the %{name}-libs package,
-which should be installed automatically along with %{name}.
-The remaining parts of the Python standard library are broken out into the
-%{name}-tkinter and %{name}-test packages, which may need to be installed
-separately.
-
-Documentation for Python is provided in the %{name}-docs package.
-
-Packages containing additional libraries for Python are generally named with
-the "%{name}-" prefix.
-
-
-# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
-# https://fedoraproject.org/wiki/Changes/Python_means_Python3
-%package -n python-unversioned-command
-Summary: The "python" command that runs Python 3
-BuildArch: noarch
-
-# In theory this could require any python3 version
-Requires: python3 == %{version}-%{release}
-# But since we want to provide versioned python, we require exact version
-Provides: python = %{version}-%{release}
-# This also save us an explicit conflict for older python3 builds
-
-%description -n python-unversioned-command
-This package contains /usr/bin/python - the "python" command that runs Python 3.
-
-
-%package libs
-Summary: Python runtime libraries
-
-%if %{with rpmwheels}
-Requires: python-setuptools-wheel
-Requires: python-pip-wheel
-%else
-Provides: bundled(python3-pip) = 19.0.3
-Provides: bundled(python3-setuptools) = 40.8.0
-%endif
-
-%{?python_provide:%python_provide python3-libs}
-
-# There are files in the standard library that have python shebang.
-# We've filtered the automatic requirement out so libs are installable without
-# the main package. This however makes it pulled in by default.
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
-Recommends: %{name}%{?_isa} = %{version}-%{release}
-
-# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
-# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the
-# "unversioned" provides were moved from python2 to python3.
-# So, newer python3 packages need to conflict with old Python 2 builds that
-# still provided unversioned Python.
-# Since all python packages, new and old, have versioned requires on
-# python?-libs, we do it here:
-Conflicts: python-libs < 3
-# (We explicitly conflict with python-libs and not python2-libs, so only the
-# old Python 2 builds that still provided unversioned Python are handled.)
-
-
-%description libs
-This package contains runtime libraries for use by Python:
-- the majority of the Python standard library
-- a dynamically linked library for use by applications that embed Python as
- a scripting language, and by the main "python3" executable
-
-
-%package devel
-Summary: Libraries and header files needed for Python development
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-BuildRequires: python-rpm-macros
-
-# The RPM related dependencies bring nothing to a non-RPM Python developer
-# But we want them when packages BuildRequire python3-devel
-Requires: (python-rpm-macros if rpm-build)
-Requires: (python3-rpm-macros if rpm-build)
-Requires: (python3-rpm-generators if rpm-build)
-
-# 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=1623914
-# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
-Requires: (python3-setuptools if rpm-build)
-
-%{?python_provide:%python_provide python3-devel}
-
-Provides: %{name}-2to3 = %{version}-%{release}
-Provides: 2to3 = %{version}-%{release}
-
-Conflicts: %{name} < %{version}-%{release}
-
-# In Fedora 31, several "unversioned" files were moved here from Python 2:
-# pygettext.py, msgfmt.py, python-config, python.pc
-Conflicts: python-devel < 3
-
-%description devel
-This package contains the header files and configuration needed to compile
-Python extension modules (typically written in C or C++), to embed Python
-into other programs, and to make binary distributions for Python libraries.
-
-It also contains the necessary macros to build RPM packages with Python modules
-and 2to3 tool, an automatic source converter from Python 2.X.
-
-
-%package idle
-Summary: A basic graphical development environment for Python
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tkinter = %{version}-%{release}
-
-Provides: idle3 = %{version}-%{release}
-Provides: idle = %{version}-%{release}
-
-Provides: %{name}-tools = %{version}-%{release}
-Provides: %{name}-tools%{?_isa} = %{version}-%{release}
-Obsoletes: %{name}-tools < %{version}-%{release}
-
-# In Fedora 31, /usr/bin/idle was moved here from Python 2.
-Conflicts: python-tools < 3
-
-%{?python_provide:%python_provide python3-idle}
-
-%description idle
-IDLE is Pythons Integrated Development and Learning Environment.
-
-IDLE has the following features: Python shell window (interactive
-interpreter) with colorizing of code input, output, and error messages;
-multi-window text editor with multiple undo, Python colorizing,
-smart indent, call tips, auto completion, and other features;
-search within any window, replace within editor windows, and
-search through multiple files (grep); debugger with persistent
-breakpoints, stepping, and viewing of global and local namespaces;
-configuration, browsers, and other dialogs.
-
-
-%package tkinter
-Summary: A GUI toolkit for Python
-Requires: %{name} = %{version}-%{release}
-
-%{?python_provide:%python_provide python3-tkinter}
-
-%description tkinter
-The Tkinter (Tk interface) library is a graphical user interface toolkit for
-the Python programming language.
-
-
-%package test
-Summary: The self-test suite for the main python3 package
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%{?python_provide:%python_provide python3-test}
-
-%description test
-The self-test suite for the Python interpreter.
-
-This is only useful to test Python itself. For testing general Python code,
-you should use the unittest module from %{name}-libs, or a library such as
-%{name}-pytest or %{name}-nose.
-
-
-%if %{with debug_build}
-%package debug
-Summary: Debug version of the Python runtime
-
-# 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: %{name}-tkinter%{?_isa} = %{version}-%{release}
-Requires: %{name}-idle%{?_isa} = %{version}-%{release}
-
-# In Fedora 31, /usr/bin/python-debug was moved here from Python 2.
-Conflicts: python-debug < 3
-
-%{?python_provide:%python_provide python3-debug}
-
-%description debug
-python3-debug provides a version of the Python 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 build,
-but is useful for tracking down reference-counting issues and other bugs.
-
-The bytecode format is unchanged, so that .pyc files are compatible between
-this and the standard version of Python, but the debugging features mean that
-C/C++ extension modules are ABI-incompatible and must be built for each version
-separately.
-
-The debug build shares installation directories with the standard Python
-runtime, so that .py and .pyc files can be shared.
-Compiled extension modules use a special ABI flag ("d") in the filename,
-so extensions for both versions can co-exist in the same directory.
-%endif # with debug_build
-
-%else # with flatpackage
-
-# We'll not provide this, on purpose
-# No package in Fedora shall ever depend on flatpackage via this
-%global __requires_exclude ^python\\(abi\\) = 3\\..$
-%global __provides_exclude ^python\\(abi\\) = 3\\..$
-
-%if %{with rpmwheels}
-Requires: python-setuptools-wheel
-Requires: python-pip-wheel
-%else
-Provides: bundled(python3-pip) = 19.0.3
-Provides: bundled(python3-setuptools) = 40.8.0
-%endif
-
-# The description for the flat package
-%description
-Python %{pybasever} package for developers.
-
-This package exists to allow developers to test their code against a newer
-version of Python. This is not a full Python stack and if you wish to run
-your applications with Python %{pybasever}, update your Fedora to a newer
-version once Python %{pybasever} is stable.
-
-%endif # with flatpackage
-
-# ======================================================
-# The prep phase of the build:
-# ======================================================
-
-%prep
-%setup -q -n Python-%{upstream_version}
-# Remove all exe files to ensure we are not shipping prebuilt binaries
-# note that those are only used to create Microsoft Windows installers
-# and that functionality is broken on Linux anyway
-find -name '*.exe' -print -delete
-
-# Remove bundled libraries to ensure that we're using the system copy.
-rm -r Modules/expat
-
-#
-# Apply patches:
-#
-%patch1 -p1
-
-%if "%{_lib}" == "lib64"
-%patch102 -p1
-%endif
-%patch111 -p1
-%patch155 -p1
-%patch170 -p1
-%patch178 -p1
-
-%if %{with rpmwheels}
-%patch189 -p1
-rm Lib/ensurepip/_bundled/*.whl
-%endif
-
-%patch205 -p1
-%patch251 -p1
-%patch274 -p1
-%patch316 -p1
-%patch328 -p1
-
-
-# Remove files that should be generated by the build
-# (This is after patching, so that we can use patches directly from upstream)
-rm configure pyconfig.h.in
-
-
-# ======================================================
-# Configuring and building the code:
-# ======================================================
-
-%build
-
-# Regenerate the configure script and pyconfig.h.in
-autoconf
-autoheader
-
-# Remember the current directory (which has sources and the configure script),
-# so we can refer to it after we "cd" elsewhere.
-topdir=$(pwd)
-
-# Get proper option names from bconds
-%if %{with computed_gotos}
-%global computed_gotos_flag yes
-%else
-%global computed_gotos_flag no
-%endif
-
-%if %{with optimizations}
-%global optimizations_flag "--enable-optimizations"
-%else
-%global optimizations_flag "--disable-optimizations"
-%endif
-
-# Set common compiler/linker flags
-# We utilize the %%extension_...flags macros here so users building C/C++
-# extensions with our python won't get all the compiler/linker flags used
-# in Fedora RPMs.
-# Standard library built here will still use the %%build_...flags,
-# Fedora packages utilizing %%py3_build will use them as well
-# https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
-export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
-export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
-export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv"
-export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"
-export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
-export LINKCC="gcc"
-export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
-export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)"
-export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)"
-
-# We can build several different configurations of Python: regular and debug.
-# Define a common function that does one build:
-BuildPython() {
- ConfName=$1
- ExtraConfigArgs=$2
- MoreCFlags=$3
-
- # Each build is done in its own directory
- ConfDir=build/$ConfName
- echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
- mkdir -p $ConfDir
- pushd $ConfDir
-
- # Normally, %%configure looks for the "configure" script in the current
- # directory.
- # Since we changed directories, we need to tell %%configure where to look.
- %global _configure $topdir/configure
-
-%configure \
- --enable-ipv6 \
- --enable-shared \
- --with-computed-gotos=%{computed_gotos_flag} \
- --with-dbmliborder=gdbm:ndbm:bdb \
- --with-system-expat \
- --with-system-ffi \
- --enable-loadable-sqlite-extensions \
- --with-dtrace \
- --with-lto \
- --with-ssl-default-suites=openssl \
-%if %{with valgrind}
- --with-valgrind \
-%endif
- $ExtraConfigArgs \
- %{nil}
-
- # Invoke the build
- make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
-
- popd
- echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
-}
-
-# Call the above to build each configuration.
-
-%if %{with debug_build}
-BuildPython debug \
- "--without-ensurepip --with-pydebug" \
- "-Og"
-%endif # with debug_build
-
-BuildPython optimized \
- "--without-ensurepip %{optimizations_flag}" \
- ""
-
-# ======================================================
-# Installing the built code:
-# ======================================================
-
-%install
-
-# As in %%build, remember the current directory
-topdir=$(pwd)
-
-# We install a collection of hooks for gdb that make it easier to debug
-# executables linked against libpython3* (such as /usr/bin/python3 itself)
-#
-# These hooks are implemented in Python itself (though they are for the version
-# of python that gdb is linked with)
-#
-# gdb-archer looks for them in the same path as the ELF file or its .debug
-# file, with a -gdb.py suffix.
-# We put them next to the debug file, because ldconfig would complain if
-# it found non-library files directly in /usr/lib/
-# (see https://bugzilla.redhat.com/show_bug.cgi?id=562980)
-#
-# We'll put these files in the debuginfo package by installing them to e.g.:
-# /usr/lib/debug/usr/lib/libpython3.2.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
-
-%if %{with gdb_hooks}
-DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
-mkdir -p %{buildroot}$DirHoldingGdbPy
-%endif # with gdb_hooks
-
-# Multilib support for pyconfig.h
-# 32- and 64-bit versions of pyconfig.h are different. For multilib support
-# (making it possible to install 32- and 64-bit versions simultaneously),
-# we need to install them under different filenames, and to make the common
-# "pyconfig.h" include the right file based on architecture.
-# See https://bugzilla.redhat.com/show_bug.cgi?id=192747
-# Filanames are defined here:
-%global _pyconfig32_h pyconfig-32.h
-%global _pyconfig64_h pyconfig-64.h
-%global _pyconfig_h pyconfig-%{wordsize}.h
-
-# Use a common function to do an install for all our configurations:
-InstallPython() {
-
- ConfName=$1
- PyInstSoName=$2
- MoreCFlags=$3
- LDVersion=$4
-
- # Switch to the directory with this configuration's built files
- ConfDir=build/$ConfName
- echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
- mkdir -p $ConfDir
- pushd $ConfDir
-
- make \
- DESTDIR=%{buildroot} \
- INSTALL="install -p" \
- EXTRA_CFLAGS="$MoreCFlags" \
- install
-
- popd
-
-%if %{with gdb_hooks}
- # See comment on $DirHoldingGdbPy above
- PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
- cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
-%endif # with gdb_hooks
-
- # Rename the -devel script that differs on different arches to arch specific name
- mv %{buildroot}%{_bindir}/python${LDVersion}-{,`uname -m`-}config
- echo -e '#!/bin/sh\nexec `dirname $0`/python'${LDVersion}'-`uname -m`-config "$@"' > \
- %{buildroot}%{_bindir}/python${LDVersion}-config
- echo '[ $? -eq 127 ] && echo "Could not find python'${LDVersion}'-`uname -m`-config. Look around to see available arches." >&2' >> \
- %{buildroot}%{_bindir}/python${LDVersion}-config
- chmod +x %{buildroot}%{_bindir}/python${LDVersion}-config
-
- # Make python3-devel multilib-ready
- mv %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h \
- %{buildroot}%{_includedir}/python${LDVersion}/%{_pyconfig_h}
- cat > %{buildroot}%{_includedir}/python${LDVersion}/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
-
- echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
-}
-
-# Install the "debug" build first; any common files will be overridden with
-# later builds
-%if %{with debug_build}
-InstallPython debug \
- %{py_INSTSONAME_debug} \
- -O0 \
- %{LDVERSION_debug}
-%endif # with debug_build
-
-# Now the optimized build:
-InstallPython optimized \
- %{py_INSTSONAME_optimized} \
- "" \
- %{LDVERSION_optimized}
-
-# Install directories for additional packages
-install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
-%if "%{_lib}" == "lib64"
-# The 64-bit version needs to create "site-packages" in /usr/lib/ (for
-# pure-Python modules) as well as in /usr/lib64/ (for packages with extension
-# modules).
-# Note that rpmlint will complain about hardcoded library path;
-# this is intentional.
-install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
-%endif
-
-%if %{without flatpackage}
-# add idle3 to menu
-install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
-install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
-install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/idle3.png
-desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
-
-# Install and validate appdata file
-mkdir -p %{buildroot}%{_metainfodir}
-cp -a %{SOURCE11} %{buildroot}%{_metainfodir}
-appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/idle3.appdata.xml
-%endif
-
-# Make sure distutils looks at the right pyconfig.h file
-# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
-# 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 (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
-#
-# 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
-
-# Install pathfix.py to bindir
-# See https://github.com/fedora-python/python-rpm-porting/issues/24
-cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
-
-# Install i18n tools to bindir
-# They are also in python2, so we version them
-# https://bugzilla.redhat.com/show_bug.cgi?id=1571474
-for tool in pygettext msgfmt; do
- cp -p Tools/i18n/${tool}.py %{buildroot}%{_bindir}/${tool}%{pybasever}.py
- ln -s ${tool}%{pybasever}.py %{buildroot}%{_bindir}/${tool}3.py
-done
-
-# Switch all shebangs to refer to the specific Python version.
-# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
-# so handle files named using other naming scheme separately.
-LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
- Tools/scripts/pathfix.py \
- -i "%{_bindir}/python%{pybasever}" -pn \
- %{buildroot} \
- %{buildroot}%{_bindir}/*%{pybasever}.py \
- %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
-
-# Remove tests for python3-tools which was removed in
-# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
-rm -rf %{buildroot}%{pylibdir}/test/test_tools
-
-# Remove shebang lines from .py files that aren't executable, and
-# remove executability from .py files that don't have a shebang line:
-find %{buildroot} -name \*.py \
- \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
- -print -exec sed -i '1d' {} \; \) -o \( \
- -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
- -exec chmod a-x {} \; \) \)
-
-# Get rid of DOS batch files:
-find %{buildroot} -name \*.bat -exec rm {} \;
-
-# Get rid of backup files:
-find %{buildroot}/ -name "*~" -exec rm -f {} \;
-find . -name "*~" -exec rm -f {} \;
-
-# Do bytecompilation with the newly installed interpreter.
-# This is similar to the script in macros.pybytecompile
-# 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} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
-
-# Since we have pathfix.py in bindir, this is created, but we don't want it
-rm -rf %{buildroot}%{_bindir}/__pycache__
-
-# Fixup permissions for shared libraries from non-standard 555 to standard 755:
-find %{buildroot} -perm 555 -exec chmod 755 {} \;
-
-# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
-# avoid the user having to know the precise version and ABI flags.
-# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
-%if %{with debug_build} && %{without flatpackage}
-ln -s \
- %{_bindir}/python%{LDVERSION_debug} \
- %{buildroot}%{_bindir}/python3-debug
-%endif
-
-# There's 2to3-X.X executable and 2to3 soft link to it.
-# No reason to have both, so keep only 2to3 as an executable.
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
-mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
-
-# make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241
-ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1
-
-%if %{with flatpackage}
-# Remove stuff that would conflict with python3 package
-rm %{buildroot}%{_bindir}/python3
-rm %{buildroot}%{_bindir}/pydoc3
-rm %{buildroot}%{_bindir}/pathfix.py
-rm %{buildroot}%{_bindir}/pygettext3.py
-rm %{buildroot}%{_bindir}/msgfmt3.py
-rm %{buildroot}%{_bindir}/idle3
-rm %{buildroot}%{_bindir}/python3-*
-rm %{buildroot}%{_bindir}/pyvenv
-rm %{buildroot}%{_bindir}/2to3
-rm %{buildroot}%{_libdir}/libpython3.so
-rm %{buildroot}%{_mandir}/man1/python3.1*
-rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
-%else
-# Link the unversioned stuff
-# https://fedoraproject.org/wiki/Changes/Python_means_Python3
-ln -s ./python3 %{buildroot}%{_bindir}/python
-ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc
-ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py
-ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py
-ln -s ./idle3 %{buildroot}%{_bindir}/idle
-ln -s ./python3-config %{buildroot}%{_bindir}/python-config
-ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1
-ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc
-%if %{with debug_build}
-ln -s ./python3-debug %{buildroot}%{_bindir}/python-debug
-%endif
-%endif
-
-
-# ======================================================
-# Checks for packaging issues
-# ======================================================
-
-%check
-
-# first of all, check timestamps of bytecode files
-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} %{SOURCE8}
-
-# Ensure that the curses module was linked against libncursesw.so, rather than
-# libncurses.so
-# See https://bugzilla.redhat.com/show_bug.cgi?id=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
- *.%{SOABI_debug})
- ldd $Module | grep %{py_INSTSONAME_optimized} &&
- (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
-
- ;;
- *.%{SOABI_optimized})
- ldd $Module | grep %{py_INSTSONAME_debug} &&
- (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
- ;;
- esac
-done
-
-
-# ======================================================
-# Running the upstream test suite
-# ======================================================
-
-topdir=$(pwd)
-CheckPython() {
- ConfName=$1
- ConfDir=$(pwd)/build/$ConfName
-
- 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.
-
- # Show some info, helpful for debugging test failures
- LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo
-
- # Run the upstream test suite
- # test_gdb skipped on armv7hl:
- # https://bugzilla.redhat.com/show_bug.cgi?id=1196181
- # test_gdb skipped on s390x:
- # https://bugzilla.redhat.com/show_bug.cgi?id=1678277
- LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
- -wW --slowest -j0 \
- -x test_distutils \
- -x test_bdist_rpm \
- %ifarch %{arm} s390x
- -x test_gdb \
- %endif
- %ifarch %{mips64}
- -x test_ctypes \
- %endif
-
- echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
-
-}
-
-%if %{with tests}
-
-# Check each of the configurations:
-%if %{with debug_build}
-CheckPython debug
-%endif # with debug_build
-CheckPython optimized
-
-%endif # with tests
-
-
-%files
-%doc README.rst
-
-%if %{without flatpackage}
-%{_bindir}/pydoc*
-%{_bindir}/python3
-%{_bindir}/pyvenv
-%else
-%{_bindir}/pydoc%{pybasever}
-%endif
-
-%{_bindir}/python%{pybasever}
-%{_bindir}/python%{pybasever}m
-%{_bindir}/pyvenv-%{pybasever}
-%{_mandir}/*/*3*
-
-
-%if %{without flatpackage}
-%files -n python-unversioned-command
-%{_bindir}/python
-%{_mandir}/*/python.1*
-
-%files libs
-%doc README.rst
-%endif
-
-%dir %{pylibdir}
-%dir %{dynload_dir}
-
-%license %{pylibdir}/LICENSE.txt
-
-%{pylibdir}/lib2to3
-%if %{without flatpackage}
-%exclude %{pylibdir}/lib2to3/tests
-%endif
-
-%dir %{pylibdir}/unittest/
-%dir %{pylibdir}/unittest/__pycache__/
-%{pylibdir}/unittest/*.py
-%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/asyncio/
-%dir %{pylibdir}/asyncio/__pycache__/
-%{pylibdir}/asyncio/*.py
-%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/venv/
-%dir %{pylibdir}/venv/__pycache__/
-%{pylibdir}/venv/*.py
-%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/venv/scripts
-
-%{pylibdir}/wsgiref
-%{pylibdir}/xmlrpc
-
-%dir %{pylibdir}/ensurepip/
-%dir %{pylibdir}/ensurepip/__pycache__/
-%{pylibdir}/ensurepip/*.py
-%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
-
-%if %{with rpmwheels}
-%exclude %{pylibdir}/ensurepip/_bundled
-%else
-%dir %{pylibdir}/ensurepip/_bundled
-%{pylibdir}/ensurepip/_bundled/*.whl
-%endif
-
-%dir %{pylibdir}/concurrent/
-%dir %{pylibdir}/concurrent/__pycache__/
-%{pylibdir}/concurrent/*.py
-%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/concurrent/futures/
-%dir %{pylibdir}/concurrent/futures/__pycache__/
-%{pylibdir}/concurrent/futures/*.py
-%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/pydoc_data
-
-%{dynload_dir}/_blake2.%{SOABI_optimized}.so
-%{dynload_dir}/_md5.%{SOABI_optimized}.so
-%{dynload_dir}/_sha1.%{SOABI_optimized}.so
-%{dynload_dir}/_sha256.%{SOABI_optimized}.so
-%{dynload_dir}/_sha3.%{SOABI_optimized}.so
-%{dynload_dir}/_sha512.%{SOABI_optimized}.so
-
-%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
-%{dynload_dir}/_bisect.%{SOABI_optimized}.so
-%{dynload_dir}/_bz2.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
-%{dynload_dir}/_contextvars.%{SOABI_optimized}.so
-%{dynload_dir}/_crypt.%{SOABI_optimized}.so
-%{dynload_dir}/_csv.%{SOABI_optimized}.so
-%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
-%{dynload_dir}/_curses.%{SOABI_optimized}.so
-%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
-%{dynload_dir}/_dbm.%{SOABI_optimized}.so
-%{dynload_dir}/_decimal.%{SOABI_optimized}.so
-%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
-%if %{with gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
-%{dynload_dir}/_heapq.%{SOABI_optimized}.so
-%{dynload_dir}/_json.%{SOABI_optimized}.so
-%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
-%{dynload_dir}/_lzma.%{SOABI_optimized}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
-%{dynload_dir}/_opcode.%{SOABI_optimized}.so
-%{dynload_dir}/_pickle.%{SOABI_optimized}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
-%{dynload_dir}/_queue.%{SOABI_optimized}.so
-%{dynload_dir}/_random.%{SOABI_optimized}.so
-%{dynload_dir}/_socket.%{SOABI_optimized}.so
-%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
-%{dynload_dir}/_ssl.%{SOABI_optimized}.so
-%{dynload_dir}/_struct.%{SOABI_optimized}.so
-%{dynload_dir}/array.%{SOABI_optimized}.so
-%{dynload_dir}/audioop.%{SOABI_optimized}.so
-%{dynload_dir}/binascii.%{SOABI_optimized}.so
-%{dynload_dir}/cmath.%{SOABI_optimized}.so
-%{dynload_dir}/_datetime.%{SOABI_optimized}.so
-%{dynload_dir}/fcntl.%{SOABI_optimized}.so
-%{dynload_dir}/grp.%{SOABI_optimized}.so
-%{dynload_dir}/math.%{SOABI_optimized}.so
-%{dynload_dir}/mmap.%{SOABI_optimized}.so
-%{dynload_dir}/nis.%{SOABI_optimized}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
-%{dynload_dir}/parser.%{SOABI_optimized}.so
-%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
-%{dynload_dir}/readline.%{SOABI_optimized}.so
-%{dynload_dir}/resource.%{SOABI_optimized}.so
-%{dynload_dir}/select.%{SOABI_optimized}.so
-%{dynload_dir}/spwd.%{SOABI_optimized}.so
-%{dynload_dir}/syslog.%{SOABI_optimized}.so
-%{dynload_dir}/termios.%{SOABI_optimized}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
-%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
-%{dynload_dir}/_uuid.%{SOABI_optimized}.so
-%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
-%{dynload_dir}/zlib.%{SOABI_optimized}.so
-
-%dir %{pylibdir}/site-packages/
-%dir %{pylibdir}/site-packages/__pycache__/
-%{pylibdir}/site-packages/README.txt
-%{pylibdir}/*.py
-%dir %{pylibdir}/__pycache__/
-%{pylibdir}/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/collections/
-%dir %{pylibdir}/collections/__pycache__/
-%{pylibdir}/collections/*.py
-%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/ctypes/
-%dir %{pylibdir}/ctypes/__pycache__/
-%{pylibdir}/ctypes/*.py
-%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/ctypes/macholib
-
-%{pylibdir}/curses
-
-%dir %{pylibdir}/dbm/
-%dir %{pylibdir}/dbm/__pycache__/
-%{pylibdir}/dbm/*.py
-%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/distutils/
-%dir %{pylibdir}/distutils/__pycache__/
-%{pylibdir}/distutils/*.py
-%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/distutils/README
-%{pylibdir}/distutils/command
-
-%dir %{pylibdir}/email/
-%dir %{pylibdir}/email/__pycache__/
-%{pylibdir}/email/*.py
-%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/email/mime
-%doc %{pylibdir}/email/architecture.rst
-
-%{pylibdir}/encodings
-
-%{pylibdir}/html
-%{pylibdir}/http
-
-%dir %{pylibdir}/importlib/
-%dir %{pylibdir}/importlib/__pycache__/
-%{pylibdir}/importlib/*.py
-%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/json/
-%dir %{pylibdir}/json/__pycache__/
-%{pylibdir}/json/*.py
-%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/logging
-%{pylibdir}/multiprocessing
-
-%dir %{pylibdir}/sqlite3/
-%dir %{pylibdir}/sqlite3/__pycache__/
-%{pylibdir}/sqlite3/*.py
-%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
-
-%if %{without flatpackage}
-%exclude %{pylibdir}/turtle.py
-%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-%endif
-
-%{pylibdir}/urllib
-%{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
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
-%endif
-
-# "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):
-%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
-%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
-%dir %{_includedir}/python%{LDVERSION_optimized}/
-%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
-
-%{_libdir}/%{py_INSTSONAME_optimized}
-%if %{without flatpackage}
-%{_libdir}/libpython3.so
-%endif
-
-
-%if %{without flatpackage}
-%files devel
-%{_bindir}/2to3
-%endif
-
-%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
-%if %{without flatpackage}
-%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
-%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
-%endif
-%{_includedir}/python%{LDVERSION_optimized}/*.h
-%{_includedir}/python%{LDVERSION_optimized}/internal/
-%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
-
-%if %{without flatpackage}
-%{_bindir}/python3-config
-%{_bindir}/python-config
-%{_libdir}/pkgconfig/python3.pc
-%{_libdir}/pkgconfig/python.pc
-%{_bindir}/pathfix.py
-%{_bindir}/pygettext3.py
-%{_bindir}/pygettext.py
-%{_bindir}/msgfmt3.py
-%{_bindir}/msgfmt.py
-%endif
-
-%{_bindir}/pygettext%{pybasever}.py
-%{_bindir}/msgfmt%{pybasever}.py
-
-%{_bindir}/python%{pybasever}-config
-%{_bindir}/python%{LDVERSION_optimized}-config
-%{_bindir}/python%{LDVERSION_optimized}-*-config
-%{_libdir}/libpython%{LDVERSION_optimized}.so
-%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
-%{_libdir}/pkgconfig/python-%{pybasever}.pc
-
-
-%if %{without flatpackage}
-%files idle
-
-%{_bindir}/idle*
-%else
-%{_bindir}/idle%{pybasever}
-%endif
-
-%{pylibdir}/idlelib
-
-%if %{without flatpackage}
-%{_metainfodir}/idle3.appdata.xml
-%{_datadir}/applications/idle3.desktop
-%{_datadir}/icons/hicolor/*/apps/idle3.*
-%endif
-
-%if %{without flatpackage}
-%files tkinter
-%endif
-
-%{pylibdir}/tkinter
-%if %{without flatpackage}
-%exclude %{pylibdir}/tkinter/test
-%endif
-%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
-%{pylibdir}/turtle.py
-%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-%dir %{pylibdir}/turtledemo
-%{pylibdir}/turtledemo/*.py
-%{pylibdir}/turtledemo/*.cfg
-%dir %{pylibdir}/turtledemo/__pycache__/
-%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
-
-
-%if %{without flatpackage}
-%files test
-%endif
-
-%{pylibdir}/ctypes/test
-%{pylibdir}/distutils/tests
-%{pylibdir}/sqlite3/test
-%{pylibdir}/test
-%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
-%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
-%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
-%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so
-%{pylibdir}/lib2to3/tests
-%{pylibdir}/tkinter/test
-%{pylibdir}/unittest/test
-
-# 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}
-%if %{without flatpackage}
-%files debug
-%{_bindir}/python3-debug
-%{_bindir}/python-debug
-%endif
-
-# Analog of the core subpackage's files:
-%{_bindir}/python%{LDVERSION_debug}
-
-# Analog of the -libs subpackage's files:
-# ...with debug builds of the built-in "extension" modules:
-
-%{dynload_dir}/_blake2.%{SOABI_debug}.so
-%{dynload_dir}/_md5.%{SOABI_debug}.so
-%{dynload_dir}/_sha1.%{SOABI_debug}.so
-%{dynload_dir}/_sha256.%{SOABI_debug}.so
-%{dynload_dir}/_sha3.%{SOABI_debug}.so
-%{dynload_dir}/_sha512.%{SOABI_debug}.so
-
-%{dynload_dir}/_asyncio.%{SOABI_debug}.so
-%{dynload_dir}/_bisect.%{SOABI_debug}.so
-%{dynload_dir}/_bz2.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
-%{dynload_dir}/_contextvars.%{SOABI_debug}.so
-%{dynload_dir}/_crypt.%{SOABI_debug}.so
-%{dynload_dir}/_csv.%{SOABI_debug}.so
-%{dynload_dir}/_ctypes.%{SOABI_debug}.so
-%{dynload_dir}/_curses.%{SOABI_debug}.so
-%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
-%{dynload_dir}/_dbm.%{SOABI_debug}.so
-%{dynload_dir}/_decimal.%{SOABI_debug}.so
-%{dynload_dir}/_elementtree.%{SOABI_debug}.so
-%if %{with gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_debug}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_debug}.so
-%{dynload_dir}/_heapq.%{SOABI_debug}.so
-%{dynload_dir}/_json.%{SOABI_debug}.so
-%{dynload_dir}/_lsprof.%{SOABI_debug}.so
-%{dynload_dir}/_lzma.%{SOABI_debug}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
-%{dynload_dir}/_opcode.%{SOABI_debug}.so
-%{dynload_dir}/_pickle.%{SOABI_debug}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
-%{dynload_dir}/_queue.%{SOABI_debug}.so
-%{dynload_dir}/_random.%{SOABI_debug}.so
-%{dynload_dir}/_socket.%{SOABI_debug}.so
-%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
-%{dynload_dir}/_ssl.%{SOABI_debug}.so
-%{dynload_dir}/_struct.%{SOABI_debug}.so
-%{dynload_dir}/array.%{SOABI_debug}.so
-%{dynload_dir}/audioop.%{SOABI_debug}.so
-%{dynload_dir}/binascii.%{SOABI_debug}.so
-%{dynload_dir}/cmath.%{SOABI_debug}.so
-%{dynload_dir}/_datetime.%{SOABI_debug}.so
-%{dynload_dir}/fcntl.%{SOABI_debug}.so
-%{dynload_dir}/grp.%{SOABI_debug}.so
-%{dynload_dir}/math.%{SOABI_debug}.so
-%{dynload_dir}/mmap.%{SOABI_debug}.so
-%{dynload_dir}/nis.%{SOABI_debug}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
-%{dynload_dir}/parser.%{SOABI_debug}.so
-%{dynload_dir}/pyexpat.%{SOABI_debug}.so
-%{dynload_dir}/readline.%{SOABI_debug}.so
-%{dynload_dir}/resource.%{SOABI_debug}.so
-%{dynload_dir}/select.%{SOABI_debug}.so
-%{dynload_dir}/spwd.%{SOABI_debug}.so
-%{dynload_dir}/syslog.%{SOABI_debug}.so
-%{dynload_dir}/termios.%{SOABI_debug}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
-%{dynload_dir}/unicodedata.%{SOABI_debug}.so
-%{dynload_dir}/_uuid.%{SOABI_debug}.so
-%{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so
-%{dynload_dir}/zlib.%{SOABI_debug}.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}
-
-# Analog of the -devel subpackage's files:
-%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
-%{_includedir}/python%{LDVERSION_debug}
-%{_bindir}/python%{LDVERSION_debug}-config
-%{_bindir}/python%{LDVERSION_debug}-*-config
-%{_libdir}/libpython%{LDVERSION_debug}.so
-%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
-%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
-
-# Analog of the -tools subpackage's files:
-# None for now; we could build precanned versions that have the appropriate
-# shebang if needed
-
-# Analog of the tkinter subpackage's files:
-%{dynload_dir}/_tkinter.%{SOABI_debug}.so
-
-# Analog of the -test subpackage's files:
-%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
-%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
-%{dynload_dir}/_testcapi.%{SOABI_debug}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
-
-%endif # with debug_build
-
-# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
-# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
-#
-# The /usr/lib/rpm/redhat/macros defines %%__debug_package 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 https://bugzilla.redhat.com/show_bug.cgi?id=1476593
-%undefine _debuginfo_subpackages
-
-# ======================================================
-# Finally, the changelog:
-# ======================================================
-
-%changelog
-* Sun Aug 11 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-5
-- Conditionalize python3-devel runtime dependencies on RPM packages and setuptools
-
-* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.4-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Mon Jul 15 2019 Lumr Balhar <lbalhar(a)redhat.com> - 3.7.4-3
-- Move test.support module to python3-test subpackage
- https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
-- Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
-
-* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-2
-- 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
-
-* Tue Jul 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-1
-- Update to 3.7.4
-
-* Tue Jul 02 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc2-1
-- Update to 3.7.4rc2
-
-* Tue Jun 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc1-1
-- Update to 3.7.4rc1
-
-* Tue May 07 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 3.7.3-3
-- Fix handling of pre-normalization characters in urlsplit
-- Disallow control chars in http URLs (#1695572, #1700684, #1688169, #1706851)
-
-* Wed Apr 17 2019 Patrik Kopkan <pkopkan(a)redhat.com> - 3.7.3-2
-- Makes man python3.7m show python3.7 man pages (#1612241)
-
-* Wed Mar 27 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3-1
-- Update to 3.7.3
-
-* Thu Mar 21 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3~rc1-1
-- Update to 3.7.3rc1
-
-* Thu Mar 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-8
-- Security fix for CVE-2019-9636 (#1688543, #1688546)
-
-* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.2-7
-- Rebuild for readline 8.0
-
-* Tue Feb 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-6
-- Reduced default build flags used to build extension modules
- https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
-
-* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.2-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Wed Jan 16 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-4
-- Security fix for CVE-2019-5010 (#1666519, #1666522)
-
-* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.7.2-3
-- Rebuilt for libcrypt.so.2 (#1666033)
-
-* Fri Jan 04 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-2
-- No longer revert upstream commit 3b699932e5ac3e7
-- This was a dirty workaround for (#1644936)
-
-* Tue Dec 25 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-1
-- Update to 3.7.2
-
-* Fri Dec 07 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-5
-- Make sure we don't ship any exe files (not needed an prebuilt)
-
-* Wed Nov 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-4
-- Make sure the entire test.support module is in python3-libs (#1651245)
-
-* Tue Nov 06 2018 Victor Stinner <vstinner(a)redhat.com> - 3.7.1-3
-- Verify the value of '-s' when execute the CLI of cProfile (rhbz#1160640)
-
-* Sun Nov 04 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-2
-- Temporarily revert upstream commit 3b699932e5ac3e7
-- This is dirty workaround for (#1644936)
-
-* Mon Oct 22 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-1
-- Update to 3.7.1
-
-* Thu Sep 27 2018 Petr Viktorin <pviktori(a)redhat.com> - 3.7.0-10
-- Compile the debug build with -Og rather than -O0
-
-* Thu Aug 30 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-9
-- Require python3-setuptools from python3-devel to prevent packaging errors (#1623914)
-
-* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-8
-- Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel
-Resolves: rhbz#1571474
-
-* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-7
-- Backport TLS 1.3 related fixes to fix FTBFS
-Resolves: rhbz#1609291
-
-* Wed Aug 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-6
-- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch
-
-* Fri Aug 10 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-5
-- Fix wrong requirement on gdbm
-
-* Fri Jul 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-4
-- Allow to call Py_Main() after Py_Initialize()
-Resolves: rhbz#1595421
-
-* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Thu Jul 12 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-2
-- Rebuild for new gdbm
-
-* Wed Jun 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-1
-- Update to 3.7.0 final
-
-* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.21.rc1
-- Finish bootstrapping, enable rewheel, tests, optimizations
-
-* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
-- Update to 3.7.0rc1
-- Bootstrap, disable rewheel, tests, optimizations
-
-* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
-- Fix multiprocessing regression on newer glibcs
-- Enable test_multiprocessing_fork(server) and _spawn again
-Resolves: rhbz#1569933
-
-* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-3
-- Skip test_multiprocessing_fork(server) and _spawn for now
-
-* Wed Apr 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-2
-- Add flatpackage conditionals
-
-* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
-- Update to 3.6.5
-
-* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
-- Fix broken macro invocation and broken building of C Python extensions
-Resolves: rhbz#1560103
-
-* Fri Mar 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-19
-- Add -n option for pathfix.py
-Resolves: rhbz#1546990
-
-* Thu Mar 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-18
-- Fix the py_byte_compile macro to work on Python 2
-- Remove the pybytecompile macro file from the flat package
-Resolves: rhbz#1484993
-
-* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-17
-- Do not send IP addresses in SNI TLS extension
-
-* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 3.6.4-16
-- Rebuild with new LDFLAGS from redhat-rpm-config
-
-* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-15
-- Filter out automatic /usr/bin/python3.X requirement,
- recommend the main package from libs instead
-Resolves: rhbz#1547131
-
-* Thu Feb 15 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.4-14
-- Remove the python3-tools package (#rhbz 1312030)
-- Move /usr/bin/2to3 to python3-devel
-- Move /usr/bin/idle and idlelib to python3-idle
-- Provide python3-tools from python3-idle
-
-* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-13
-- Escape macros in %%changelog
-
-* Fri Feb 02 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.4-12
-- Remove sys.executable check from change-user-install-location patch
-Resolves: rhbz#1532287
-
-* Thu Feb 01 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-11
-- Define TLS cipher suite on build time.
-
-* Wed Jan 31 2018 Tomas Orsava <torsava(a)redhat.com> - 3.6.4-10
-- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation
- of the F28 mass rebuild
-- Re-enable these tests after the mass rebuild when they can be properly
- addressed
-
-* Tue Jan 23 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-9
-- Restore the PyExc_RecursionErrorInst public symbol
-
-* Tue Jan 23 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-8
-- Add patch to explicitly link _ctypes module with -ldl (#1537489)
-- Refactored patch for libxcrypt
-- Re-enable strict symbol checks in the link editor
-
-* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
-- Add patch for libxcrypt
-- Disable strict symbol checks in the link editor
-
-* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
-- Rebuilt for switch to libxcrypt
-
-* Fri Jan 19 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-5
-- Fix localeconv() encoding for LC_NUMERIC
-
-* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-4
-- R: gdbm-devel R: gdbm for python3-libs
-
-* Wed Jan 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-3
-- Require large enough gdbm (fixup for previous bump)
-
-* Tue Jan 16 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-2
-- Rebuild for reverted gdbm 1.13 on Fedora 27
-
-* Mon Jan 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-1
-- Update to version 3.6.4
-
-* Fri Jan 12 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-5
-- Fix the compilation of the nis module.
-
-* Tue Nov 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-4
-- Raise the release of platform-python obsoletes for better maintainability
-
-* Wed Nov 15 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-3
-- Obsolete platform-python and it's subpackages
-
-* Mon Oct 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-2
-- Fix memory corruption due to allocator mix
-Resolves: rhbz#1498207
-
-* Fri Oct 06 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-1
-- Update to Python 3.6.3
-
-* Fri Sep 29 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-19
-- Move pathfix.py to bindir, https://github.com/fedora-python/python-rpm-porting/issues/24
-- Make the -devel package require redhat-rpm-config
-Resolves: rhbz#1496757
-
-* Wed Sep 13 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-18
-- Fix /usr/bin/env dependency from python3-tools
-Resolves: rhbz#1482118
-
-* Wed Sep 06 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-17
-- Include `-g` in the flags sent to the linker (LDFLAGS)
-Resolves: rhbz#1483222
-
-* Tue Sep 05 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-16
-- Specfile cleanup
-- Make the main description also applicable to the SRPM
-- Add audiotest.au to the test package
-
-* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-15
-- Remove %%{pylibdir}/Tools/scripts/2to3
-
-* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-14
-- Expat >= 2.1.0 is everywhere, remove explicit requires
-- Conditionalize systemtap-devel BuildRequires
-- For consistency, require /usr/sbin/ifconfig instead of net-tools
-
-* Mon Aug 28 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-13
-- Rename patch files to be consistent
-- Run autotools to generate the configure script before building
-- Merge lib64 patches (104 into 102)
-- Skip test_bdist_rpm using test config rather than a patch (removes patch 137)
-- Remove patches 157 and 186, which had test changes left over after upstreaming
-- Remove patch 188, a temporary workaround for hashlib tests
-- Merge patches 180, 206, 243, 5001 (architecture naming) into new patch 274
-- Move python2-tools conflicts to tools subpackage (it was wrongly in tkinter)
-
-* Mon Aug 28 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-12
-- Use python3 style of calling super() without arguments in rpath
- patch to prevent recursion in UnixCCompiler subclasses
-Resolves: rhbz#1458122
-
-* Mon Aug 21 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-11
-- Add bcond for --without optimizations
-- Reword package descriptions
-- Remove Group declarations
-- Skip failing test_float_with_comma
-
-* Mon Aug 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-10
-- Remove system-python, see https://fedoraproject.org/wiki/Changes/Platform_Python_Stack
-
-* Wed Aug 16 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-9
-- Use bconds for configuring the build
-- Reorganize the initial sections
-
-* Wed Aug 16 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-8
-- Have /usr/bin/2to3 (rhbz#1111275)
-- Provide 2to3 and idle3, list them in summary and description (rhbz#1076401)
-
-* Fri Aug 11 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-7
-- Revert "Add --executable option to install.py command"
- This enhancement is currently not needed and it can possibly
- collide with `pip --editable`option
-
-* Mon Aug 07 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-6
-- Fix the "urllib FTP protocol stream injection" vulnerability
-Resolves: rhbz#1478916
-
-* Tue Aug 01 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.2-5
-- Dropped BuildRequires on db4-devel which was useful for Python 2 (module
- bsddb), however, no longer needod for Python 3
-- Tested building Python 3 with and without the dependency, all tests pass and
- filelists of resulting RPMs are identical
-
-* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 3.6.2-4
-- Do not generate debuginfo subpackages (#1476593)
-- Rebuild with binutils fix for ppc64le (#1475636)
-
-* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.2-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Tue Jul 25 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-2
-- Make test_asyncio to not depend on the current SIGHUP signal handler.
-
-* Tue Jul 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-1
-- Update to Python 3.6.2
-
-* Tue Jun 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-10
-- Update to the latest upstream implementation of PEP 538
-
-* Mon Jun 26 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.1-9
-- Make pip and distutils in user environment install into separate location
-
-* Fri Jun 23 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-8
-- Fix test_alpn_protocols from test_ssl
-- Do not require rebundled setuptools dependencies
-
-* Tue May 16 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-7
-- Added a dependency to the devel subpackage on python3-rpm-generators which
- have been excised out of rpm-build
-- Updated notes on bootstrapping Python on top of this specfile accordingly
-- Involves: rhbz#1410631, rhbz#1444925
-
-* Tue May 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-6
-- Enable profile guided optimizations for x86_64 and i686 architectures
-- Update to a newer implementation of PEP 538
-- Update description to reflect that Python 3 is now the default Python
-
-* Fri May 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-5
-- Update PEP 538 to the latest upstream implementation
-
-* Tue Apr 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-4
-- Enable link time optimizations
-- Move windows executables to the devel subpackage (rhbz#1426257)
-
-* Thu Apr 13 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-3
-- Rename python3.Xdm-config script from -debug to be arch specific
-Resolves: rhbz#1179073
-
-* Wed Apr 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-2
-- Install the Makefile in its proper location (rhbz#1438219)
-
-* Wed Mar 22 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.1-1
-- Update to version 3.6.1 final
-
-* Tue Mar 21 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-0.2.rc1
-- Fix syntax error in %%py_byte_compile macro (rhbz#1433569)
-
-* Thu Mar 16 2017 Iryna Shcherbina <ishcherb(a)redaht.com> - 3.6.1-0.1.rc1
-- Update to Python 3.6.1 release candidate 1
-- Add patch 264 to skip a known test failure on aarch64
-
-* Fri Mar 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-21
-- Use proper command line parsing in _testembed
-- Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale
- https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale
-
-* Mon Feb 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-20
-- Add desktop entry and appdata.xml file for IDLE 3 (rhbz#1392049)
-
-* Fri Feb 24 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-19
-- Revert "Set values of prefix and exec_prefix to /usr/local for
- /usr/bin/python* executables..." to prevent build failures
- of packages using alternate build tools
-
-* Tue Feb 21 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-18
-- Set values of prefix and exec_prefix to /usr/local for
- /usr/bin/python* executables
-- Use new %%_module_build macro
-
-* Fri Feb 17 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-13
-- Add --executable option to install.py command
-
-* Wed Feb 15 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-12
-- BuildRequire the new dependencies of setuptools when rewheel mode is enabled
-in order for the virtualenvs to work properly
-
-* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.0-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Wed Feb 01 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 3.6.0-10
-- Add missing %%license macro
-
-* Thu Jan 26 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-9
-- Modify the runtime dependency of python3-libs on system-python-libs again,
- because previous attempt didn't work properly with dnf resolving mechanism
-
-* Wed Jan 25 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-8
-- Modify the runtime dependency of python3-libs on system-python-libs to use
- just the version and release number, but not the dist tag due to Modularity
-
-* Mon Jan 16 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-7
-- Fix error check, so that Random.seed actually uses OS randomness (rhbz#1412275)
-- Skip test_aead_aes_gcm during rpmbuild
-
-* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 3.6.0-6
-- Rebuild for readline 7.x
-
-* Tue Jan 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-5
-- Require glibc >= 2.24.90-26 for system-python-libs (rhbz#1410644)
-
-* Mon Jan 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-4
-- Define HAVE_LONG_LONG as 1 for backwards compatibility
-
-* Thu Jan 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.0-3
-- Don't blow up on EL7 kernel (random generator) (rhbz#1410175)
-
-* Tue Dec 27 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-1
-- Update to Python 3.6.0 final
-
-* Fri Dec 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.6.rc1
-- Enable rewheel
-
-* Wed Dec 07 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.5.rc1
-- Update to Python 3.6.0 release candidate 1
-
-* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.4.b4
-- Update to Python 3.6.0 beta 4
-
-* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-7
-- Set to work with pip version 9.0.1
-
-* Wed Oct 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-6
-- Use proper patch numbering and base upstream branch for
-porting ssl and hashlib modules to OpenSSL 1.1.0
-- Drop hashlib patch for now
-- Add riscv64 arch to 64bit and no-valgrind arches
-
-* Tue Oct 11 2016 Tom Mrz <tmraz(a)redhat.com> - 3.5.2-5
-- Make it build with OpenSSL-1.1.0 based on upstream patch
-
-* Wed Sep 14 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-4
-- Obsolete and Provide python35 package
-
-* Mon Sep 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-3
-- Update %%py_byte_compile macro
-- Remove unused configure flags (rhbz#1374357)
-
-* Fri Sep 09 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-2
-- Updated .pyc 'bytecompilation with the newly installed interpreter' to also
- recompile optimized .pyc files
-- Removed .pyo 'bytecompilation with the newly installed interpreter', as .pyo
- files are no more
-- Resolves rhbz#1373635
-
-* Mon Aug 15 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-1
-- Rebased to version 3.5.2
-- Set to work with pip version 8.1.2
-- Removed patches 207, 237, 241 as fixes are already contained in Python 3.5.2
-- Removed arch or environment specific patches 194, 196, 203, and 208
- as test builds indicate they are no longer needed
-- Updated patches 102, 146, and 242 to work with the new Python codebase
-- Removed patches 200, 201, 5000 which weren't even being applied
-
-* Tue Aug 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-15
-- Fix for CVE-2016-1000110 HTTPoxy attack
-- SPEC file cleanup
-
-* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 3.5.1-14
-- Build properly on MIPS
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.5.1-13
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-12
-- Refactor patch for properly fixing CVE-2016-5636
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-11
-- Fix test_pyexpat failure with Expat version of 2.2.0
-
-* Fri Jul 08 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-10
-- Move xml module to system-python-libs
-
-* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.1-9
-- 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#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
-- Fixed upstream: https://hg.python.org/cpython/rev/d590114c2394
-
-* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-8
-- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
-
-* Fri Mar 04 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-7
-- Move distutils to system-python-libs
-
-* Wed Feb 24 2016 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-6
-- Provide python3-enum34
-
-* Fri Feb 19 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-5
-- Provide System Python packages and macros
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Wed Jan 13 2016 Orion Poplwski <orion(a)cora.nwra.com> - 3.5.1-2
-- Drop python3 macros, require python/python3-rpm-macros
-
-* Mon Dec 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-1
-- Update to 3.5.1
-- Removed patch 199 and 207 (upstream)
-
-* Sun Nov 15 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-5
-- Remove versioned libpython from devel package
-
-* Fri Nov 13 2015 Than Ngo <than(a)redhat.com> 3.5.0-4
-- add correct arch for ppc64/ppc64le to fix build failure
-
-* Wed Nov 11 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-3
-- Hide the private _Py_atomic_xxx symbols from public header
-
-* Wed Oct 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-2
-- Rebuild with wheel set to 1
-
-* Tue Sep 15 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.5.0-1
-- Update to 3.5.0
-
-* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 3.4.3-4
-- python3-devel: Require python-macros for version independant macros such as
- python_provide. See fpc#281 and fpc#534.
-
-* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.3-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-4
-- Use 1024bit DH key in test_ssl
-- Use -O0 when compiling -debug build
-- Update pip version variable to the version we actually ship
-
-* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-3
-- Make relocating Python by changing _prefix actually work
-Resolves: rhbz#1231801
-
-* Mon May 4 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.3-2
-- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
-
-* Thu Mar 12 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-1
-- Updated to 3.4.3
-- BuildPython now accepts additional build options
-- Temporarily disabled test_gdb on arm (rhbz#1196181)
-
-* Wed Feb 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-7
-- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
- (http://bugs.python.org/issue23433)
-
-* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 3.4.2-6
-- 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> - 3.4.2-5
-- Own systemtap dirs (#710733)
-
-* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 3.4.2-4
-- build with valgrind on ppc64le
-- disable test_gdb on s390(x) until rhbz#1181034 is resolved
-
-* Tue Dec 16 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-3
-- New patches: 170 (gc asserts), 200 (gettext headers),
- 201 (gdbm memory leak)
-
-* Thu Dec 11 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-2
-- OpenSSL disabled SSLv3 in SSLv23 method
-
-* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-1
-- Update to 3.4.2
-- Refreshed patches: 156 (gdb autoload)
-- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
-
-* Mon Nov 03 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-16
-- Fix CVE-2014-4650 - CGIHTTPServer URL handling
-Resolves: rhbz#1113529
-
-* Sun Sep 07 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-15
-- exclude test_gdb on ppc* (rhbz#1132488)
-
-* Thu Aug 21 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-14
-- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sun Jun 8 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.1-12
-- aarch64 has valgrind, just list those that don't support it
-
-* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Wed Jun 04 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-10
-- bump release and rebuild to link with the correct tcl/tk libs on ppcle
-
-* Tue Jun 03 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-9
-- Change paths to bundled projects in rewheel patch
-
-* Fri May 30 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-8
-- In config script, use uname -m to write the arch
-
-* Thu May 29 2014 Dan Hork <dan[at]danny.cz> - 3.4.1-7
-- update the arch list where valgrind exists - %%power64 includes also
- ppc64le which is not supported yet
-
-* Thu May 29 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-6
-- Forward arguments to the arch specific config script
-Resolves: rhbz#1102683
-
-* Wed May 28 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-5
-- Rename python3.Xm-config script to arch specific.
-Resolves: rhbz#1091815
-
-* Tue May 27 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.1-4
-- Use python3-*, not python-* runtime requires on setuptools and pip
-- rebuild for tcl-8.6
-
-* Tue May 27 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-3
-- Update the rewheel module
-
-* Mon May 26 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-2
-- Fix multilib dependencies.
-Resolves: rhbz#1091815
-
-* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-1
-- Update to Python 3.4.1
-
-* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-8
-- Fix test_gdb failure on ppc64le
-Resolves: rhbz#1095355
-
-* Thu May 22 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.0-7
-- Add macro %%python3_version_nodots
-
-* Sun May 18 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-6
-- Disable test_faulthandler, test_gdb on aarch64
-Resolves: rhbz#1045193
-
-* Fri May 16 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-5
-- Don't add Werror=declaration-after-statement for extension
- modules through setup.py (PyBT#21121)
-
-* Mon May 12 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-4
-- Add setuptools and pip to Requires
-
-* Tue Apr 29 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-3
-- Point __os_install_post to correct brp-* files
-
-* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-2
-- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
-
-* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-1
-- Update to Python 3.4 final
-- Add patch adding the rewheel module
-- Merge patches from master
-
-* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b2
-- Update to Python 3.4 beta 2.
-- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
-- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
-
-* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b1
-- Update to Python 3.4 beta 1.
-- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
-ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
-157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
-- Removed patch 00187 (remove pthread atfork; upstreamed)
-
-* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.a4
-- Update to Python 3.4 alpha 4.
-- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
-114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
-test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
-157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
-from py_compile)
-- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
-Koji), 142 (the mock issue that caused this is fixed)
-- Added patch 187 (remove thread atfork) - will be in next version
-- Refreshed script for checking pyc and pyo timestamps with new ignored files.
-- The fips patch is disabled for now until upstream makes a final decision
-what to do with sha3 implementation for 3.4.0.
-
-* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-7
-- Bytecompile all *.py files properly during build (rhbz#1023607)
-
-* Fri Aug 23 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 3.3.2-6
-- Added fix for CVE-2013-4238 (rhbz#996399)
-
-* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-5
-- fix up indentation in arm patch
-
-* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-4
-- disable a test that fails on arm
-- enable valgrind support on arm arches
-
-* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-3
-- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
-
-* Mon May 20 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-2
-- Add patch for CVE-2013-2099 (rhbz#963261).
-
-* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-1
-- Updated to Python 3.3.2.
-- Refreshed patches: 153 (gdb test noise)
-- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
-test threads)
-- Synced patch numbers with python.spec.
-
-* Thu May 9 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.1-4
-- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
-
-* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-3
-- Add patch that enables building on ppc64p7 (replace the sed, so that
-we get consistent with python2 spec and it's more obvious that we're doing it.
-
-* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-2
-- Add fix for gdb tests failing on arm, rhbz#951802.
-
-* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-1
-- Updated to Python 3.3.1.
-- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
-153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
-keeping few more downstream tests)
-- Removed patches: 3 (audiotest.au made it to upstream tarball)
-- Removed workaround for http://bugs.python.org/issue14774, discussed in
-http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
-
-* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-10
-- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
-
-* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-9
-- renumber patches to keep them in sync with python.spec
-
-* Fri Mar 15 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-8
-- Fix error in platform.platform() when non-ascii byte strings are decoded to
- unicode (rhbz#922149)
-
-* Thu Mar 14 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-7
-- Fix up shared library extension (rhbz#889784)
-
-* Thu Mar 07 2013 Karsten Hopp <karsten(a)redhat.com> 3.3.0-6
-- add ppc64p7 build target, optimized for Power7
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-5
-- add workaround for ENOPROTOOPT seen running selftests in Koji
-(rhbz#913732)
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-4
-- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
-
-* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-3
-- add aarch64 (rhbz#909783)
-
-* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-2
-- add BR on bluez-libs-devel (rhbz#879720)
-
-* Sat Sep 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-1
-- 3.3.0rc3 -> 3.3.0; drop alphatag
-
-* Mon Sep 24 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.6.rc3
-- 3.3.0rc2 -> 3.3.0rc3
-
-* Mon Sep 10 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.5.rc2
-- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
-
-* Mon Aug 27 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.4.rc1
-- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
-
-* Mon Aug 13 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.3.b2
-- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
-134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
-correctly when LANG=C (patch 55); importlib.test was moved to
-test.test_importlib upstream
-
-* Mon Aug 13 2012 Karsten Hopp <karsten(a)redhat.com> 3.3.0-0.2.b1
-- disable some failing checks on PPC* (rhbz#846849)
-
-* Fri Aug 3 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
-- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
-- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
-patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
-configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
-"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
-for stdlib (upstream issues 10645 and 12218); email/test moved to
-test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
-_decimal and _lzma modules; make collections modules explicit in payload again
-(upstream issue 11085); add _testbuffer module to tests subpackage (added in
-upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
-workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
-distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
-_lzma module); skip some tests within test_socket (patch 163)
-
-* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2.3-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Fri Jul 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
-
-* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-10
-- use macro for power64 (rhbz#834653)
-
-* Mon Jun 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-9
-- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
-
-* Wed May 30 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.2.3-8
-- fix tapset for debug build
-
-* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-7
-- 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> - 3.2.3-6
-- renumber autotools patch from 300 to 5000
-- specfile cleanups
-
-* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-5
-- fix test_gdb.py (patch 156; rhbz#817072)
-
-* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.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)
-
-* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-3
-- add explicit version requirements on expat to avoid linkage problems with
-XML_SetHashSalt
-
-* Thu Apr 12 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-2
-- fix test_gdb (patch 153)
-
-* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-1
-- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
-values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
-
-* Thu Feb 9 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-13
-- use newly installed python for byte compiling (now for real)
-
-* Sun Feb 5 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-12
-- use newly installed python for byte compiling (#787498)
-
-* Wed Jan 4 2012 Ville Skytt <ville.skytta(a)iki.fi> - 3.2.2-11
-- Build with $RPM_LD_FLAGS (#756863).
-- Use xz-compressed source tarball.
-
-* Wed Dec 07 2011 Karsten Hopp <karsten(a)redhat.com> 3.2.2-10
-- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
-
-* Mon Oct 17 2011 Rex Dieter <rdieter(a)fedoraproject.org> - 3.2.2-9
-- python3-devel missing autogenerated pkgconfig() provides (#746751)
-
-* Mon Oct 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-8
-- cherrypick fix for distutils not using __pycache__ when byte-compiling
-files (rhbz#722578)
-
-* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-7
-- re-enable gdbm (patch 148; rhbz#742242)
-
-* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-6
-- add a sys._debugmallocstats() function (patch 147)
-
-* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-5
-- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
-_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
-
-* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-4
-- disable gdbm module to prepare for gdbm soname bump
-
-* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-3
-- renumber and rename patches for consistency with python.spec (8 to 55, 106
-to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
-
-* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-2
-- 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 106, 133-142 sparsely, moving
-patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
-
-* Tue Sep 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-1
-- 3.2.2
-
-* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-7
-- run selftests with "--verbose"
-- disable parts of test_io on ppc (rhbz#732998)
-
-* Wed Aug 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-6
-- use "--findleaks --verbose3" when running test suite
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-5
-- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
-ppc to avoid aliasing violations (patch 130; rhbz#698726)
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-4
-- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
-
-* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-3
-- add %%python3_version to the rpm macros (rhbz#719082)
-
-* Mon Jul 11 2011 Dennis Gilmore <dennis(a)ausil.us> - 3.2.1-2
-- disable some tests on sparc arches
-
-* Mon Jul 11 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-1
-- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
-of static library build (due to Modules/_testembed; patch 6), autotool
-intermediates (patch 300)
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-5
-- use the gdb hooks from the upstream tarball, rather than keeping our own copy
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-4
-- don't run test_openpty and test_pty in %%check
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-3
-- cleanup of BuildRequires; add comment headings to specfile sections
-
-* Tue Apr 19 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-2
-- fix the libpython.stp systemtap tapset (rhbz#697730)
-
-* Mon Feb 21 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-1
-- 3.2
-- drop alphatag
-- regenerate autotool patch
-
-* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.13.rc3
-- add a /usr/bin/python3-debug symlink within the debug subpackage
-
-* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.12.rc3
-- 3.2rc3
-- regenerate autotool patch
-
-* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2-0.11.rc2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Mon Jan 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.10.rc2
-- 3.2rc2
-
-* Mon Jan 17 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.9.rc1
-- 3.2rc1
-- rework patch 6 (static lib removal)
-- remove upstreamed patch 130 (ppc debug build)
-- regenerate patch 300 (autotool intermediates)
-- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
-- added libpython3.so and 2to3-3.2
-
-* Wed Jan 5 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.8.b2
-- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
-error with dynamic annotations (when configured using --with-valgrind)
-- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
-
-* Tue Jan 4 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.7.b2
-- add --with-valgrind to configuration (on architectures that support this)
-
-* Wed Dec 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.6.b2
-- work around test_subprocess failure seen in koji (patch 129)
-
-* Tue Dec 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.b2
-- 3.2b2
-- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
-patch 8 (systemtap), patch 102 (lib64)
-- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
-patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
-fixed upstream)
-- regenerate patch 300 (autotool intermediates)
-- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
-patch 128)
-- stop using runtest.sh in %%check (dropped by upstream), replacing with
-regrtest; fixup list of failing tests
-- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
-- rework manifests of shared libraries to use "SOABI_" macros, reflecting
-PEP 3149
-- drop itertools, operator and _collections modules from the manifests as py3k
-commit r84058 moved these inside libpython; json/tests moved to test/json_tests
-- move turtle code into the tkinter subpackage
-
-* Wed Nov 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.a1
-- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
-
-* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.4.a1
-- move most of the content of the core package to the libs subpackage, given
-that the libs aren't meaningfully usable without the standard libraries
-
-* Wed Sep 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.3.a1
-- Move test.support to core package (rhbz#596258)
-- Add various missing __pycache__ directories to payload
-
-* Sun Aug 22 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.2-0.2.a1
-- Add __pycache__ directory for site-packages
-
-* Sun Aug 22 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2-0.1.a1
-- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
-- make find-provides-without-python-sonames.sh 64bit aware
-
-* Sat Aug 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.0.a1
-- 3.2a1; add alphatag
-- rework %%files in the light of PEP 3147 (__pycache__)
-- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
-better job of things, and the %%files explicitly lists our modules (r82746
-appears to break the old way of doing things). This leads to various modules
-changing from "foomodule.so" to "foo.so". It also leads to the optimized build
-dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
-_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
-testing/devel purposes)
-- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
-- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
-plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
-- add machinery for rebuilding "configure" and friends, using the correct
-version of autoconf (patch 300)
-- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
-- "modulator" was removed upstream
-- drop "-b" from patch applications affecting .py files to avoid littering the
-installation tree
-
-* Thu Aug 19 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.1.2-13
-- Turn on computed-gotos.
-- Fix for parallel make and graminit.c
-
-* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-12
-- rebuild
-
-* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-11
-- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
-a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
-
-* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-10
-- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
-- reformat whitespace in audioop.c (patch 106)
-- CVE-2010-1634: fix various integer overflow checks in the audioop
-module (patch 107)
-- CVE-2010-2089: further checks within the audioop module (patch 108)
-- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
-
-* Thu May 27 2010 Dan Hork <dan[at]danny.cz> - 3.1.2-9
-- reading the timestamp counter is available only on some arches (see Python/ceval.c)
-
-* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-8
-- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
-(patch 105)
-
-* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-7
-- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
-(patch 104); enable them and the WITH_TSC option within the debug build
-
-* Mon May 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-6
-- build and install two different configurations of Python 3: debug and
-standard, packaging the debug build in a new "python3-debug" subpackage
-(patch 103)
-
-* Tue Apr 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-5
-- exclude test_http_cookies when running selftests, due to hang seen on
-http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
-11 hours)
-- update python-gdb.py from v5 to py3k version submitted upstream
-
-* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-4
-- update python-gdb.py from v4 to v5 (improving performance and stability,
-adding commands)
-
-* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-3
-- 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> - 3.1.2-2
-- refresh gdb hooks to v3 (reworking how they are packaged)
-
-* Sun Mar 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-1
-- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
-- drop upstreamed patch 2 (.pyc permissions handling)
-- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
-- drop upstreamed patch 200 (path-fixing script)
-
-* Sat Mar 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-28
-- fix typo in libpython.stp (rhbz:575336)
-
-* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-27
-- add pyfuntop.stp example (source 7)
-- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
-consistency with python.spec
-
-* Mon Feb 15 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.1.1-26
-- rebuild for new package of redhat-rpm-config (rhbz:564527)
-- use 'install -p' when running 'make install'
-
-* Fri Feb 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-25
-- split configure options into multiple lines for easy of editing
-- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
-tapset defining "python.function.entry" and "python.function.return" to make
-the markers easy to use (dmalcolm; source 5), and an example of using the
-tapset to the docs (dmalcolm; source 6) (rhbz:545179)
-
-* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-24
-- 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> - 3.1.1-23
-- add gdb hooks for easier debugging (Source 4)
-
-* Thu Jan 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-22
-- update python-3.1.1-config.patch to remove downstream customization of build
-of pyexpat and elementtree modules
-- add patch adapted from upstream (patch 7) to add support for building against
-system expat; add --with-system-expat to "configure" invocation
-- remove embedded copies of expat and zlib from source tree during "prep"
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-21
-- introduce %%{dynload_dir} macro
-- 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
-- introduce a macros.pybytecompile source file, to help with packaging python3
-modules (Source3; written by Toshio)
-- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
-plans
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-20
-- change python-3.1.1-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> - 3.1.1-19
-- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
-builds for setting up the python3 copy of the source tree)
-
-* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-18
-- move lib2to3 from -tools subpackage to main package (bug 556667)
-
-* Sun Jan 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-17
-- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
-
-* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-16
-- 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
-
-* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-15
-- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
-docs, rather than the 2.6 build
-
-* Wed Jan 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-14
-- replace references to /usr with %%{_prefix}; replace references to
-/usr/include with %%{_includedir} (Toshio)
-
-* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-13
-- fix permission on find-provides-without-python-sonames.sh from 775 to 755
-
-* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-12
-- remove build-time requirements on tix and tk, since we already have
-build-time requirements on the -devel subpackages for each of these (Thomas
-Spura)
-- replace usage of %%define with %%global (Thomas Spura)
-- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
-longer be necessary
-- move various test files from the "tools"/"tkinter" subpackages to the "test"
-subpackage
-
-* Thu Jan 7 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-11
-- add %%check section (thanks to Thomas Spura)
-- update patch 4 to use correct shebang line
-- get rid of stray patch file from buildroot
-
-* Tue Nov 17 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> - 3.1.1-10
-- switched a few instances of "find |xargs" to "find -exec" for consistency.
-- made the description of __os_install_post more accurate.
-
-* Wed Nov 4 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-9
-- add macros.python3 to the -devel subpackage, containing common macros for use
-when packaging python3 modules
-
-* Tue Nov 3 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-8
-- add a provides of "python(abi)" (see bug 532118)
-- fix issues identified by a.badger in package review (bug 526126, comment 39):
- - use "3" thoughout metadata, rather than "3.*"
- - remove conditional around "pkg-config openssl"
- - use standard cleanup of RPM_BUILD_ROOT
- - replace hardcoded references to /usr with _prefix macro
- - stop removing egg-info files
- - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
-up shebang lines
- - stop attempting to remove no-longer-present .cvsignore files
- - move the post/postun sections above the "files" sections
-
-* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-7
-- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
-flag is used by default in the upstream code
-- "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)
-
-* Tue Oct 27 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-6
-- reword description, based on suggestion by amcnabb
-- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
-- fix the test_tk and test_ttk_* selftests (patch 5)
-- fix up the specfile's handling of shebang/perms to avoid corrupting
-test_httpservers.py (sed command suggested by amcnabb)
-
-* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-5
-- fixup importlib/_bootstrap.py so that it correctly handles being unable to
-open .pyc files for writing (patch 2, upstream issue 7187)
-- actually apply the rpath patch (patch 1)
-
-* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-4
-- update patch0's setup of the crypt module to link it against libcrypt
-- update patch0 to comment "datetimemodule" back out, so that it is built
-using setup.py (see Setup, option 3), thus linking it statically against
-timemodule.c and thus avoiding a run-time "undefined symbol:
-_PyTime_DoubleToTimet" failure on "import datetime"
-
-* Wed Oct 21 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-3
-- remove executable flag from various files that shouldn't have it
-- fix end-of-line encodings
-- fix a character encoding
-
-* Tue Oct 20 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-2
-- disable invocation of brp-python-bytecompile in postprocessing, since
-it would be with the wrong version of python (adapted from ivazquez'
-python3000 specfile)
-- use a custom implementation of __find_provides in order to filter out bogus
-provides lines for the various .so modules
-- fixup distutils/unixccompiler.py to remove standard library path from rpath
-(patch 1, was Patch0 in ivazquez' python3000 specfile)
-- split out libraries into a -libs subpackage
-- update summaries and descriptions, basing content on ivazquez' specfile
-- fixup executable permissions on .py, .xpm and .xbm files, based on work in
-ivazquez's specfile
-- get rid of DOS batch files
-- fixup permissions for shared libraries from non-standard 555 to standard 755
-- move /usr/bin/python*-config to the -devel subpackage
-- mark various directories as being documentation
-
-* Thu Sep 24 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> 3.1.1-1
-- Initial package for Python 3.
-
diff --git a/python37.rpmlintrc b/python37.rpmlintrc
new file mode 100644
index 0000000..e1e2cbe
--- /dev/null
+++ b/python37.rpmlintrc
@@ -0,0 +1,78 @@
+# KNOWN BUGS:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1489816
+addFilter(r'crypto-policy-non-compliance-openssl')
+
+
+# TESTS:
+addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
+
+
+# OTHER DELIBERATES:
+# chroot function
+addFilter(r'missing-call-to-chdir-with-chroot')
+
+# intentionally unversioned and selfobsoleted
+addFilter(r'unversioned-explicit-obsoletes python')
+addFilter(r'self-obsoletion python3\d obsoletes python3\d')
+
+# intentionally hardcoded
+addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})')
+
+# intentional for our pythonXY package
+addFilter(r'python3\d\.[^:]+: (E|W): devel-file-in-non-devel-package')
+
+# we have non binary stuff, python files
+addFilter(r'only-non-binary-in-usr-lib')
+
+# some devel files that are deliberately needed
+addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
+addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d/distutils/tests/xxmodule\.c')
+
+
+# SORRY, NOT SORRY:
+# manual pages
+addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix|msgfmt|pygettext)')
+addFilter(r'no-manual-page-for-binary python3.*-config$')
+addFilter(r'no-manual-page-for-binary python3.\dd?m$')
+
+# missing documentation from subpackages
+addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')
+
+# platform python is obsoleted, but not provided
+addFilter(r'obsolete-not-provided platform-python')
+
+
+# RPMLINT IMPERFECTIONS
+# https://github.com/rpm-software-management/rpmlint/issues/123
+addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3393')
+# https://github.com/rpm-software-management/rpmlint/pull/133
+addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3394')
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1550562
+# https://github.com/rpm-software-management/rpmlint/issues/128
+addFilter(r'python-bytecode-inconsistent-mtime .* 1970')
+
+# debugsource
+addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')
+
+# debuginfo
+addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')
+
+# this is OK for F28+
+addFilter(r'library-without-ldconfig-post')
+
+# debug package contains devel and non-devel files
+addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package')
+
+# this goes to other subpackage, hence not actually dangling, the read error is bogus
+addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
+addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
+
+# we need this macro to evaluate, even if the line starts with #
+addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
+
+# Python modules don't need to be linked against libc
+addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')
+
+# SPELLING ERRORS
+addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
diff --git a/python37.spec b/python37.spec
new file mode 100644
index 0000000..db32e6e
--- /dev/null
+++ b/python37.spec
@@ -0,0 +1,2780 @@
+# ==================
+# Top-level metadata
+# ==================
+
+%global pybasever 3.7
+
+# pybasever without the dot:
+%global pyshortver 37
+
+Name: python%{pyshortver}
+Summary: Version %{pybasever} of the Python interpreter
+URL: https://www.python.org/
+
+# WARNING When rebasing to a new Python version,
+# remember to update the python3-docs package as well
+%global general_version %{pybasever}.4
+#global prerel ...
+%global upstream_version %{general_version}%{?prerel}
+Version: %{general_version}%{?prerel:~%{prerel}}
+Release: 5%{?dist}
+License: Python
+
+
+# ==================================
+# Conditionals 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"
+
+
+# Flat package, i.e. python36, python37, python38 for tox etc.
+# warning: changes some other defaults
+# in Fedora, never turn this on for the python3 package
+# and always keep it on for python37 etc.
+# WARNING: This does not change the package name and summary above
+%bcond_without flatpackage
+
+# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
+# Uses upstream bundled prebuilt wheels otherwise
+%bcond_without rpmwheels
+
+# Expensive optimizations (mainly, profile-guided optimizations)
+%ifarch %{ix86} x86_64
+%bcond_without optimizations
+%else
+# On some architectures, the optimized build takes tens of hours, possibly
+# longer than Koji's 24-hour timeout. Disable optimizations here.
+%bcond_with optimizations
+%endif
+
+# Run the test suite in %%check
+%bcond_without tests
+
+# Extra build for debugging the interpreter or C-API extensions
+# (the -debug subpackages)
+%if %{with flatpackage}
+%bcond_with debug_build
+%else
+%bcond_without debug_build
+%endif
+
+# Support for the GDB debugger
+%bcond_without gdb_hooks
+
+# The dbm.gnu module (key-value database)
+%bcond_without gdbm
+
+# Main interpreter loop optimization
+%bcond_without computed_gotos
+
+# Support for the Valgrind debugger/profiler
+%ifarch %{valgrind_arches}
+%bcond_without valgrind
+%else
+%bcond_with valgrind
+%endif
+
+
+# Notes from bootstraping Python 3.7:
+# https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython
+
+
+# =====================
+# General global macros
+# =====================
+
+%global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
+# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+# All bytecode files are in a __pycache__ subdirectory, with a name
+# reflecting the version of the bytecode.
+# See PEP 3147: http://www.python.org/dev/peps/pep-3147/
+# For example,
+# foo/bar.py
+# has bytecode at:
+# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
+%global bytecode_suffixes .cpython-%{pyshortver}*.pyc
+
+# 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%{LDVERSION_optimized}.so.%{py_SOVERSION}
+%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
+
+# Disable automatic bytecompilation. The python3 binary is not yet be
+# available in /usr/bin when Python is built. Also, the bytecompilation fails
+# on files that test invalid syntax.
+%undefine py_auto_byte_compile
+
+# Don't let RPM set SOURCE_DATE_EPOCH based on the latest %%changelog date
+# It breaks tests with: can't find '__main__' module in .../test_zip.zip
+# Reported at https://bugs.python.org/issue34022
+# Tracked at https://bugzilla.redhat.com/show_bug.cgi?id=1724753
+%global source_date_epoch_from_changelog 0
+
+# For multilib support, files that are different between 32- and 64-bit arches
+# need different filenames. Use "64" or "32" according to the word size.
+# Currently, the best way to determine an architecture's word size happens to
+# be checking %%{_lib}.
+%if "%{_lib}" == "lib64"
+%global wordsize 64
+%else
+%global wordsize 32
+%endif
+
+
+# =======================
+# Build-time requirements
+# =======================
+
+# (keep this list alphabetized)
+
+BuildRequires: autoconf
+BuildRequires: bluez-libs-devel
+BuildRequires: bzip2
+BuildRequires: bzip2-devel
+BuildRequires: desktop-file-utils
+BuildRequires: expat-devel
+
+BuildRequires: findutils
+BuildRequires: gcc-c++
+%if %{with gdbm}
+BuildRequires: gdbm-devel
+%endif
+BuildRequires: glibc-all-langpacks
+BuildRequires: glibc-devel
+BuildRequires: gmp-devel
+BuildRequires: libappstream-glib
+BuildRequires: libffi-devel
+BuildRequires: libnsl2-devel
+BuildRequires: libtirpc-devel
+BuildRequires: libGL-devel
+BuildRequires: libuuid-devel
+BuildRequires: libX11-devel
+BuildRequires: ncurses-devel
+
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: redhat-rpm-config >= 127
+BuildRequires: sqlite-devel
+BuildRequires: gdb
+
+BuildRequires: tar
+BuildRequires: tcl-devel
+BuildRequires: tix-devel
+BuildRequires: tk-devel
+
+%if %{with valgrind}
+BuildRequires: valgrind-devel
+%endif
+
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+BuildRequires: /usr/bin/dtrace
+
+# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
+BuildRequires: /usr/sbin/ifconfig
+
+# For %%python_provide
+BuildRequires: python-rpm-macros
+
+%if %{with rpmwheels}
+BuildRequires: python-setuptools-wheel
+BuildRequires: python-pip-wheel
+%endif
+
+
+# =======================
+# Source code and patches
+# =======================
+
+Source: https://www.python.org/ftp/python/%{general_version}/Python-%{upstream_ve...
+
+# A simple script to check timestamps of bytecode files
+# Run in check section with Python that is currently being built
+# Originally written by bkabrda
+Source8: check-pyc-timestamps.py
+
+# Desktop menu entry for idle3
+Source10: idle3.desktop
+
+# AppData file for idle3
+Source11: idle3.appdata.xml
+
+# 00001 #
+# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
+# Was Patch0 in ivazquez' python3000 specfile:
+Patch1: 00001-rpath.patch
+
+# 00102 #
+# Change the various install paths to use /usr/lib64/ instead or /usr/lib
+# Only used when "%%{_lib}" == "lib64"
+# Not yet sent upstream.
+Patch102: 00102-lib64.patch
+
+# 00111 #
+# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
+# a libpythonMAJOR.MINOR.a
+# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
+# Downstream only: not appropriate for upstream
+Patch111: 00111-no-static-lib.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
+# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
+Patch155: 00155-avoid-ctypes-thunks.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)
+# The new macros/functions within gcmodule.c are hidden to avoid exposing
+# them within the extension API.
+# Sent upstream: http://bugs.python.org/issue9263
+# See https://bugzilla.redhat.com/show_bug.cgi?id=614680
+Patch170: 00170-gc-assertions.patch
+
+# 00178 #
+# Don't duplicate various FLAGS in sysconfig values
+# http://bugs.python.org/issue17679
+# Does not affect python2 AFAICS (different sysconfig values initialization)
+Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
+
+# 00189 #
+# Instead of bundled wheels, use our RPM packaged wheels from
+# /usr/share/python-wheels
+Patch189: 00189-use-rpm-wheels.patch
+
+# 00205 #
+# LIBPL variable in makefile takes LIBPL from configure.ac
+# but the LIBPL variable defined there doesn't respect libdir macro
+Patch205: 00205-make-libpl-respect-lib64.patch
+
+# 00251
+# Set values of prefix and exec_prefix in distutils install command
+# to /usr/local if executable is /usr/bin/python* and RPM build
+# is not detected to make pip and distutils install into separate location
+# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
+Patch251: 00251-change-user-install-location.patch
+
+# 00274 #
+# Upstream uses Debian-style architecture naming. Change to match Fedora.
+Patch274: 00274-fix-arch-names.patch
+
+# 00316 #
+# We remove the exe files from distutil's bdist_wininst
+# So we mark the command as unsupported - and the tests are skipped
+Patch316: 00316-mark-bdist_wininst-unsupported.patch
+
+# 00328 #
+# Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
+# See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comm...
+Patch328: 00328-pyc-timestamp-invalidation-mode.patch
+
+# (New patches go here ^^^)
+#
+# When adding new patches to "python" 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
+
+
+# ==========================================
+# Descriptions, and metadata for subpackages
+# ==========================================
+
+# People might want to dnf install pythonX.Y instead of pythonXY;
+# we enable this in both flat and nonflat package.
+Provides: python%{pybasever} = %{version}-%{release}
+
+%if %{without flatpackage}
+
+# Packages with Python modules in standard locations automatically
+# depend on python(abi). Provide that here.
+Provides: python(abi) = %{pybasever}
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+# In order to support multiple Python interpreters for development purposes,
+# packages with the naming scheme flatpackage (e.g. python35) exist for
+# non-default versions of Python 3.
+# For consistency, and to keep the upgrade path clean, we Provide/Obsolete
+# these names here.
+Provides: python%{pyshortver} = %{version}-%{release}
+# Note that using Obsoletes without package version is not standard practice.
+# Here we assert that *any* version of the system's default interpreter is
+# preferable to an "extra" interpreter. For example, python3-3.6.1 will
+# replace python36-3.6.2.
+Obsoletes: python%{pyshortver}
+
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+# We recommend /usr/bin/python so users get it by default
+# Versioned recommends are problematic, and we know that the package requires
+# python3 back with fixed version, so we just use the path here:
+Recommends: %{_bindir}/python
+
+# In Fedora 31, /usr/bin/pydoc was moved here from Python 2.
+# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3",
+# but file provides aren't versioned and the file moved across packages.
+# Instead, we rely on the conflict in python3-libs.
+
+# 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: python3-setuptools
+Recommends: python3-pip
+
+# This prevents ALL subpackages built from this spec to require
+# /usr/bin/python3*. Granularity per subpackage is impossible.
+# It's intended for the libs package not to drag in the interpreter, see
+# https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+# All others require %%{name} anyway.
+%global __requires_exclude ^/usr/bin/python3
+
+
+# The description used both for the SRPM and the main `python3` subpackage:
+%description
+Python is an accessible, high-level, dynamically typed, interpreted programming
+language, designed with an emphasis on code readability.
+It includes an extensive standard library, and has a vast ecosystem of
+third-party libraries.
+
+The %{name} package provides the "python3" executable: the reference
+interpreter for the Python language, version 3.
+The majority of its standard library is provided in the %{name}-libs package,
+which should be installed automatically along with %{name}.
+The remaining parts of the Python standard library are broken out into the
+%{name}-tkinter and %{name}-test packages, which may need to be installed
+separately.
+
+Documentation for Python is provided in the %{name}-docs package.
+
+Packages containing additional libraries for Python are generally named with
+the "%{name}-" prefix.
+
+
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+%package -n python-unversioned-command
+Summary: The "python" command that runs Python 3
+BuildArch: noarch
+
+# In theory this could require any python3 version
+Requires: python3 == %{version}-%{release}
+# But since we want to provide versioned python, we require exact version
+Provides: python = %{version}-%{release}
+# This also save us an explicit conflict for older python3 builds
+
+%description -n python-unversioned-command
+This package contains /usr/bin/python - the "python" command that runs Python 3.
+
+
+%package libs
+Summary: Python runtime libraries
+
+%if %{with rpmwheels}
+Requires: python-setuptools-wheel
+Requires: python-pip-wheel
+%else
+Provides: bundled(python3-pip) = 19.0.3
+Provides: bundled(python3-setuptools) = 40.8.0
+%endif
+
+%{?python_provide:%python_provide python3-libs}
+
+# There are files in the standard library that have python shebang.
+# We've filtered the automatic requirement out so libs are installable without
+# the main package. This however makes it pulled in by default.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+Recommends: %{name}%{?_isa} = %{version}-%{release}
+
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the
+# "unversioned" provides were moved from python2 to python3.
+# So, newer python3 packages need to conflict with old Python 2 builds that
+# still provided unversioned Python.
+# Since all python packages, new and old, have versioned requires on
+# python?-libs, we do it here:
+Conflicts: python-libs < 3
+# (We explicitly conflict with python-libs and not python2-libs, so only the
+# old Python 2 builds that still provided unversioned Python are handled.)
+
+
+%description libs
+This package contains runtime libraries for use by Python:
+- the majority of the Python standard library
+- a dynamically linked library for use by applications that embed Python as
+ a scripting language, and by the main "python3" executable
+
+
+%package devel
+Summary: Libraries and header files needed for Python development
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: python-rpm-macros
+
+# The RPM related dependencies bring nothing to a non-RPM Python developer
+# But we want them when packages BuildRequire python3-devel
+Requires: (python-rpm-macros if rpm-build)
+Requires: (python3-rpm-macros if rpm-build)
+Requires: (python3-rpm-generators if rpm-build)
+
+# 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=1623914
+# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
+Requires: (python3-setuptools if rpm-build)
+
+%{?python_provide:%python_provide python3-devel}
+
+Provides: %{name}-2to3 = %{version}-%{release}
+Provides: 2to3 = %{version}-%{release}
+
+Conflicts: %{name} < %{version}-%{release}
+
+# In Fedora 31, several "unversioned" files were moved here from Python 2:
+# pygettext.py, msgfmt.py, python-config, python.pc
+Conflicts: python-devel < 3
+
+%description devel
+This package contains the header files and configuration needed to compile
+Python extension modules (typically written in C or C++), to embed Python
+into other programs, and to make binary distributions for Python libraries.
+
+It also contains the necessary macros to build RPM packages with Python modules
+and 2to3 tool, an automatic source converter from Python 2.X.
+
+
+%package idle
+Summary: A basic graphical development environment for Python
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tkinter = %{version}-%{release}
+
+Provides: idle3 = %{version}-%{release}
+Provides: idle = %{version}-%{release}
+
+Provides: %{name}-tools = %{version}-%{release}
+Provides: %{name}-tools%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-tools < %{version}-%{release}
+
+# In Fedora 31, /usr/bin/idle was moved here from Python 2.
+Conflicts: python-tools < 3
+
+%{?python_provide:%python_provide python3-idle}
+
+%description idle
+IDLE is Pythons Integrated Development and Learning Environment.
+
+IDLE has the following features: Python shell window (interactive
+interpreter) with colorizing of code input, output, and error messages;
+multi-window text editor with multiple undo, Python colorizing,
+smart indent, call tips, auto completion, and other features;
+search within any window, replace within editor windows, and
+search through multiple files (grep); debugger with persistent
+breakpoints, stepping, and viewing of global and local namespaces;
+configuration, browsers, and other dialogs.
+
+
+%package tkinter
+Summary: A GUI toolkit for Python
+Requires: %{name} = %{version}-%{release}
+
+%{?python_provide:%python_provide python3-tkinter}
+
+%description tkinter
+The Tkinter (Tk interface) library is a graphical user interface toolkit for
+the Python programming language.
+
+
+%package test
+Summary: The self-test suite for the main python3 package
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+%{?python_provide:%python_provide python3-test}
+
+%description test
+The self-test suite for the Python interpreter.
+
+This is only useful to test Python itself. For testing general Python code,
+you should use the unittest module from %{name}-libs, or a library such as
+%{name}-pytest or %{name}-nose.
+
+
+%if %{with debug_build}
+%package debug
+Summary: Debug version of the Python runtime
+
+# 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: %{name}-tkinter%{?_isa} = %{version}-%{release}
+Requires: %{name}-idle%{?_isa} = %{version}-%{release}
+
+# In Fedora 31, /usr/bin/python-debug was moved here from Python 2.
+Conflicts: python-debug < 3
+
+%{?python_provide:%python_provide python3-debug}
+
+%description debug
+python3-debug provides a version of the Python 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 build,
+but is useful for tracking down reference-counting issues and other bugs.
+
+The bytecode format is unchanged, so that .pyc files are compatible between
+this and the standard version of Python, but the debugging features mean that
+C/C++ extension modules are ABI-incompatible and must be built for each version
+separately.
+
+The debug build shares installation directories with the standard Python
+runtime, so that .py and .pyc files can be shared.
+Compiled extension modules use a special ABI flag ("d") in the filename,
+so extensions for both versions can co-exist in the same directory.
+%endif # with debug_build
+
+%else # with flatpackage
+
+# We'll not provide this, on purpose
+# No package in Fedora shall ever depend on flatpackage via this
+%global __requires_exclude ^python\\(abi\\) = 3\\..$
+%global __provides_exclude ^python\\(abi\\) = 3\\..$
+
+%if %{with rpmwheels}
+Requires: python-setuptools-wheel
+Requires: python-pip-wheel
+%else
+Provides: bundled(python3-pip) = 19.0.3
+Provides: bundled(python3-setuptools) = 40.8.0
+%endif
+
+# The description for the flat package
+%description
+Python %{pybasever} package for developers.
+
+This package exists to allow developers to test their code against an older
+version of Python. This is not a full Python stack and if you wish to run
+your applications with Python %{pybasever}, see other distributions
+that support it, such as an older Fedora release.
+
+%endif # with flatpackage
+
+# ======================================================
+# The prep phase of the build:
+# ======================================================
+
+%prep
+%setup -q -n Python-%{upstream_version}
+# Remove all exe files to ensure we are not shipping prebuilt binaries
+# note that those are only used to create Microsoft Windows installers
+# and that functionality is broken on Linux anyway
+find -name '*.exe' -print -delete
+
+# Remove bundled libraries to ensure that we're using the system copy.
+rm -r Modules/expat
+
+#
+# Apply patches:
+#
+%patch1 -p1
+
+%if "%{_lib}" == "lib64"
+%patch102 -p1
+%endif
+%patch111 -p1
+%patch155 -p1
+%patch170 -p1
+%patch178 -p1
+
+%if %{with rpmwheels}
+%patch189 -p1
+rm Lib/ensurepip/_bundled/*.whl
+%endif
+
+%patch205 -p1
+%patch251 -p1
+%patch274 -p1
+%patch316 -p1
+%patch328 -p1
+
+
+# Remove files that should be generated by the build
+# (This is after patching, so that we can use patches directly from upstream)
+rm configure pyconfig.h.in
+
+
+# ======================================================
+# Configuring and building the code:
+# ======================================================
+
+%build
+
+# Regenerate the configure script and pyconfig.h.in
+autoconf
+autoheader
+
+# Remember the current directory (which has sources and the configure script),
+# so we can refer to it after we "cd" elsewhere.
+topdir=$(pwd)
+
+# Get proper option names from bconds
+%if %{with computed_gotos}
+%global computed_gotos_flag yes
+%else
+%global computed_gotos_flag no
+%endif
+
+%if %{with optimizations}
+%global optimizations_flag "--enable-optimizations"
+%else
+%global optimizations_flag "--disable-optimizations"
+%endif
+
+# Set common compiler/linker flags
+# We utilize the %%extension_...flags macros here so users building C/C++
+# extensions with our python won't get all the compiler/linker flags used
+# in Fedora RPMs.
+# Standard library built here will still use the %%build_...flags,
+# Fedora packages utilizing %%py3_build will use them as well
+# https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
+export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"
+export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export LINKCC="gcc"
+export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
+export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)"
+export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)"
+
+# We can build several different configurations of Python: regular and debug.
+# Define a common function that does one build:
+BuildPython() {
+ ConfName=$1
+ ExtraConfigArgs=$2
+ MoreCFlags=$3
+
+ # Each build is done in its own directory
+ ConfDir=build/$ConfName
+ echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ # Normally, %%configure looks for the "configure" script in the current
+ # directory.
+ # Since we changed directories, we need to tell %%configure where to look.
+ %global _configure $topdir/configure
+
+%configure \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos=%{computed_gotos_flag} \
+ --with-dbmliborder=gdbm:ndbm:bdb \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-loadable-sqlite-extensions \
+ --with-dtrace \
+ --with-lto \
+ --with-ssl-default-suites=openssl \
+%if %{with valgrind}
+ --with-valgrind \
+%endif
+ $ExtraConfigArgs \
+ %{nil}
+
+ # Invoke the build
+ make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
+
+ popd
+ echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Call the above to build each configuration.
+
+%if %{with debug_build}
+BuildPython debug \
+ "--without-ensurepip --with-pydebug" \
+ "-Og"
+%endif # with debug_build
+
+BuildPython optimized \
+ "--without-ensurepip %{optimizations_flag}" \
+ ""
+
+# ======================================================
+# Installing the built code:
+# ======================================================
+
+%install
+
+# As in %%build, remember the current directory
+topdir=$(pwd)
+
+# We install a collection of hooks for gdb that make it easier to debug
+# executables linked against libpython3* (such as /usr/bin/python3 itself)
+#
+# These hooks are implemented in Python itself (though they are for the version
+# of python that gdb is linked with)
+#
+# gdb-archer looks for them in the same path as the ELF file or its .debug
+# file, with a -gdb.py suffix.
+# We put them next to the debug file, because ldconfig would complain if
+# it found non-library files directly in /usr/lib/
+# (see https://bugzilla.redhat.com/show_bug.cgi?id=562980)
+#
+# We'll put these files in the debuginfo package by installing them to e.g.:
+# /usr/lib/debug/usr/lib/libpython3.2.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
+
+%if %{with gdb_hooks}
+DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
+mkdir -p %{buildroot}$DirHoldingGdbPy
+%endif # with gdb_hooks
+
+# Multilib support for pyconfig.h
+# 32- and 64-bit versions of pyconfig.h are different. For multilib support
+# (making it possible to install 32- and 64-bit versions simultaneously),
+# we need to install them under different filenames, and to make the common
+# "pyconfig.h" include the right file based on architecture.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=192747
+# Filanames are defined here:
+%global _pyconfig32_h pyconfig-32.h
+%global _pyconfig64_h pyconfig-64.h
+%global _pyconfig_h pyconfig-%{wordsize}.h
+
+# Use a common function to do an install for all our configurations:
+InstallPython() {
+
+ ConfName=$1
+ PyInstSoName=$2
+ MoreCFlags=$3
+ LDVersion=$4
+
+ # Switch to the directory with this configuration's built files
+ ConfDir=build/$ConfName
+ echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ make \
+ DESTDIR=%{buildroot} \
+ INSTALL="install -p" \
+ EXTRA_CFLAGS="$MoreCFlags" \
+ install
+
+ popd
+
+%if %{with gdb_hooks}
+ # See comment on $DirHoldingGdbPy above
+ PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
+ cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
+%endif # with gdb_hooks
+
+ # Rename the -devel script that differs on different arches to arch specific name
+ mv %{buildroot}%{_bindir}/python${LDVersion}-{,`uname -m`-}config
+ echo -e '#!/bin/sh\nexec `dirname $0`/python'${LDVersion}'-`uname -m`-config "$@"' > \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ echo '[ $? -eq 127 ] && echo "Could not find python'${LDVersion}'-`uname -m`-config. Look around to see available arches." >&2' >> \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ chmod +x %{buildroot}%{_bindir}/python${LDVersion}-config
+
+ # Make python3-devel multilib-ready
+ mv %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h \
+ %{buildroot}%{_includedir}/python${LDVersion}/%{_pyconfig_h}
+ cat > %{buildroot}%{_includedir}/python${LDVersion}/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
+
+ echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Install the "debug" build first; any common files will be overridden with
+# later builds
+%if %{with debug_build}
+InstallPython debug \
+ %{py_INSTSONAME_debug} \
+ -O0 \
+ %{LDVERSION_debug}
+%endif # with debug_build
+
+# Now the optimized build:
+InstallPython optimized \
+ %{py_INSTSONAME_optimized} \
+ "" \
+ %{LDVERSION_optimized}
+
+# Install directories for additional packages
+install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
+%if "%{_lib}" == "lib64"
+# The 64-bit version needs to create "site-packages" in /usr/lib/ (for
+# pure-Python modules) as well as in /usr/lib64/ (for packages with extension
+# modules).
+# Note that rpmlint will complain about hardcoded library path;
+# this is intentional.
+install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
+%endif
+
+%if %{without flatpackage}
+# add idle3 to menu
+install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/idle3.png
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
+
+# Install and validate appdata file
+mkdir -p %{buildroot}%{_metainfodir}
+cp -a %{SOURCE11} %{buildroot}%{_metainfodir}
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/idle3.appdata.xml
+%endif
+
+# Make sure distutils looks at the right pyconfig.h file
+# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
+# 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 (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
+#
+# 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
+
+# Install pathfix.py to bindir
+# See https://github.com/fedora-python/python-rpm-porting/issues/24
+cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+
+# Install i18n tools to bindir
+# They are also in python2, so we version them
+# https://bugzilla.redhat.com/show_bug.cgi?id=1571474
+for tool in pygettext msgfmt; do
+ cp -p Tools/i18n/${tool}.py %{buildroot}%{_bindir}/${tool}%{pybasever}.py
+ ln -s ${tool}%{pybasever}.py %{buildroot}%{_bindir}/${tool}3.py
+done
+
+# Switch all shebangs to refer to the specific Python version.
+# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
+# so handle files named using other naming scheme separately.
+LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
+ Tools/scripts/pathfix.py \
+ -i "%{_bindir}/python%{pybasever}" -pn \
+ %{buildroot} \
+ %{buildroot}%{_bindir}/*%{pybasever}.py \
+ %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
+
+# Remove tests for python3-tools which was removed in
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+rm -rf %{buildroot}%{pylibdir}/test/test_tools
+
+# Remove shebang lines from .py files that aren't executable, and
+# remove executability from .py files that don't have a shebang line:
+find %{buildroot} -name \*.py \
+ \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
+ -print -exec sed -i '1d' {} \; \) -o \( \
+ -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
+ -exec chmod a-x {} \; \) \)
+
+# Get rid of DOS batch files:
+find %{buildroot} -name \*.bat -exec rm {} \;
+
+# Get rid of backup files:
+find %{buildroot}/ -name "*~" -exec rm -f {} \;
+find . -name "*~" -exec rm -f {} \;
+
+# Do bytecompilation with the newly installed interpreter.
+# This is similar to the script in macros.pybytecompile
+# 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} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
+
+# Since we have pathfix.py in bindir, this is created, but we don't want it
+rm -rf %{buildroot}%{_bindir}/__pycache__
+
+# Fixup permissions for shared libraries from non-standard 555 to standard 755:
+find %{buildroot} -perm 555 -exec chmod 755 {} \;
+
+# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
+# avoid the user having to know the precise version and ABI flags.
+# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
+%if %{with debug_build} && %{without flatpackage}
+ln -s \
+ %{_bindir}/python%{LDVERSION_debug} \
+ %{buildroot}%{_bindir}/python3-debug
+%endif
+
+# There's 2to3-X.X executable and 2to3 soft link to it.
+# No reason to have both, so keep only 2to3 as an executable.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
+mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
+
+# make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241
+ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1
+
+%if %{with flatpackage}
+# Remove stuff that would conflict with python3 package
+rm %{buildroot}%{_bindir}/python3
+rm %{buildroot}%{_bindir}/pydoc3
+rm %{buildroot}%{_bindir}/pathfix.py
+rm %{buildroot}%{_bindir}/pygettext3.py
+rm %{buildroot}%{_bindir}/msgfmt3.py
+rm %{buildroot}%{_bindir}/idle3
+rm %{buildroot}%{_bindir}/python3-*
+rm %{buildroot}%{_bindir}/pyvenv
+rm %{buildroot}%{_bindir}/2to3
+rm %{buildroot}%{_libdir}/libpython3.so
+rm %{buildroot}%{_mandir}/man1/python3.1*
+rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+%else
+# Link the unversioned stuff
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+ln -s ./python3 %{buildroot}%{_bindir}/python
+ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc
+ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py
+ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py
+ln -s ./idle3 %{buildroot}%{_bindir}/idle
+ln -s ./python3-config %{buildroot}%{_bindir}/python-config
+ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1
+ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc
+%if %{with debug_build}
+ln -s ./python3-debug %{buildroot}%{_bindir}/python-debug
+%endif
+%endif
+
+
+# ======================================================
+# Checks for packaging issues
+# ======================================================
+
+%check
+
+# first of all, check timestamps of bytecode files
+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} %{SOURCE8}
+
+# Ensure that the curses module was linked against libncursesw.so, rather than
+# libncurses.so
+# See https://bugzilla.redhat.com/show_bug.cgi?id=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
+ *.%{SOABI_debug})
+ ldd $Module | grep %{py_INSTSONAME_optimized} &&
+ (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
+
+ ;;
+ *.%{SOABI_optimized})
+ ldd $Module | grep %{py_INSTSONAME_debug} &&
+ (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
+ ;;
+ esac
+done
+
+
+# ======================================================
+# Running the upstream test suite
+# ======================================================
+
+topdir=$(pwd)
+CheckPython() {
+ ConfName=$1
+ ConfDir=$(pwd)/build/$ConfName
+
+ 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.
+
+ # Show some info, helpful for debugging test failures
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo
+
+ # Run the upstream test suite
+ # test_gdb skipped on armv7hl:
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1196181
+ # test_gdb skipped on s390x:
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1678277
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
+ -wW --slowest -j0 \
+ -x test_distutils \
+ -x test_bdist_rpm \
+ %ifarch %{arm} s390x
+ -x test_gdb \
+ %endif
+ %ifarch %{mips64}
+ -x test_ctypes \
+ %endif
+
+ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+}
+
+%if %{with tests}
+
+# Check each of the configurations:
+%if %{with debug_build}
+CheckPython debug
+%endif # with debug_build
+CheckPython optimized
+
+%endif # with tests
+
+
+%files
+%doc README.rst
+
+%if %{without flatpackage}
+%{_bindir}/pydoc*
+%{_bindir}/python3
+%{_bindir}/pyvenv
+%else
+%{_bindir}/pydoc%{pybasever}
+%endif
+
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
+%{_bindir}/pyvenv-%{pybasever}
+%{_mandir}/*/*3*
+
+
+%if %{without flatpackage}
+%files -n python-unversioned-command
+%{_bindir}/python
+%{_mandir}/*/python.1*
+
+%files libs
+%doc README.rst
+%endif
+
+%dir %{pylibdir}
+%dir %{dynload_dir}
+
+%license %{pylibdir}/LICENSE.txt
+
+%{pylibdir}/lib2to3
+%if %{without flatpackage}
+%exclude %{pylibdir}/lib2to3/tests
+%endif
+
+%dir %{pylibdir}/unittest/
+%dir %{pylibdir}/unittest/__pycache__/
+%{pylibdir}/unittest/*.py
+%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/asyncio/
+%dir %{pylibdir}/asyncio/__pycache__/
+%{pylibdir}/asyncio/*.py
+%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/venv/
+%dir %{pylibdir}/venv/__pycache__/
+%{pylibdir}/venv/*.py
+%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/venv/scripts
+
+%{pylibdir}/wsgiref
+%{pylibdir}/xmlrpc
+
+%dir %{pylibdir}/ensurepip/
+%dir %{pylibdir}/ensurepip/__pycache__/
+%{pylibdir}/ensurepip/*.py
+%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+
+%if %{with rpmwheels}
+%exclude %{pylibdir}/ensurepip/_bundled
+%else
+%dir %{pylibdir}/ensurepip/_bundled
+%{pylibdir}/ensurepip/_bundled/*.whl
+%endif
+
+%dir %{pylibdir}/concurrent/
+%dir %{pylibdir}/concurrent/__pycache__/
+%{pylibdir}/concurrent/*.py
+%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/futures/
+%dir %{pylibdir}/concurrent/futures/__pycache__/
+%{pylibdir}/concurrent/futures/*.py
+%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/pydoc_data
+
+%{dynload_dir}/_blake2.%{SOABI_optimized}.so
+%{dynload_dir}/_md5.%{SOABI_optimized}.so
+%{dynload_dir}/_sha1.%{SOABI_optimized}.so
+%{dynload_dir}/_sha256.%{SOABI_optimized}.so
+%{dynload_dir}/_sha3.%{SOABI_optimized}.so
+%{dynload_dir}/_sha512.%{SOABI_optimized}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
+%{dynload_dir}/_bisect.%{SOABI_optimized}.so
+%{dynload_dir}/_bz2.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
+%{dynload_dir}/_contextvars.%{SOABI_optimized}.so
+%{dynload_dir}/_crypt.%{SOABI_optimized}.so
+%{dynload_dir}/_csv.%{SOABI_optimized}.so
+%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
+%{dynload_dir}/_curses.%{SOABI_optimized}.so
+%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
+%{dynload_dir}/_dbm.%{SOABI_optimized}.so
+%{dynload_dir}/_decimal.%{SOABI_optimized}.so
+%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
+%{dynload_dir}/_heapq.%{SOABI_optimized}.so
+%{dynload_dir}/_json.%{SOABI_optimized}.so
+%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
+%{dynload_dir}/_lzma.%{SOABI_optimized}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
+%{dynload_dir}/_opcode.%{SOABI_optimized}.so
+%{dynload_dir}/_pickle.%{SOABI_optimized}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
+%{dynload_dir}/_queue.%{SOABI_optimized}.so
+%{dynload_dir}/_random.%{SOABI_optimized}.so
+%{dynload_dir}/_socket.%{SOABI_optimized}.so
+%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
+%{dynload_dir}/_ssl.%{SOABI_optimized}.so
+%{dynload_dir}/_struct.%{SOABI_optimized}.so
+%{dynload_dir}/array.%{SOABI_optimized}.so
+%{dynload_dir}/audioop.%{SOABI_optimized}.so
+%{dynload_dir}/binascii.%{SOABI_optimized}.so
+%{dynload_dir}/cmath.%{SOABI_optimized}.so
+%{dynload_dir}/_datetime.%{SOABI_optimized}.so
+%{dynload_dir}/fcntl.%{SOABI_optimized}.so
+%{dynload_dir}/grp.%{SOABI_optimized}.so
+%{dynload_dir}/math.%{SOABI_optimized}.so
+%{dynload_dir}/mmap.%{SOABI_optimized}.so
+%{dynload_dir}/nis.%{SOABI_optimized}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
+%{dynload_dir}/parser.%{SOABI_optimized}.so
+%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
+%{dynload_dir}/readline.%{SOABI_optimized}.so
+%{dynload_dir}/resource.%{SOABI_optimized}.so
+%{dynload_dir}/select.%{SOABI_optimized}.so
+%{dynload_dir}/spwd.%{SOABI_optimized}.so
+%{dynload_dir}/syslog.%{SOABI_optimized}.so
+%{dynload_dir}/termios.%{SOABI_optimized}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
+%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
+%{dynload_dir}/_uuid.%{SOABI_optimized}.so
+%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
+%{dynload_dir}/zlib.%{SOABI_optimized}.so
+
+%dir %{pylibdir}/site-packages/
+%dir %{pylibdir}/site-packages/__pycache__/
+%{pylibdir}/site-packages/README.txt
+%{pylibdir}/*.py
+%dir %{pylibdir}/__pycache__/
+%{pylibdir}/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/collections/
+%dir %{pylibdir}/collections/__pycache__/
+%{pylibdir}/collections/*.py
+%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/ctypes/
+%dir %{pylibdir}/ctypes/__pycache__/
+%{pylibdir}/ctypes/*.py
+%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/ctypes/macholib
+
+%{pylibdir}/curses
+
+%dir %{pylibdir}/dbm/
+%dir %{pylibdir}/dbm/__pycache__/
+%{pylibdir}/dbm/*.py
+%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/distutils/
+%dir %{pylibdir}/distutils/__pycache__/
+%{pylibdir}/distutils/*.py
+%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/distutils/README
+%{pylibdir}/distutils/command
+
+%dir %{pylibdir}/email/
+%dir %{pylibdir}/email/__pycache__/
+%{pylibdir}/email/*.py
+%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/email/mime
+%doc %{pylibdir}/email/architecture.rst
+
+%{pylibdir}/encodings
+
+%{pylibdir}/html
+%{pylibdir}/http
+
+%dir %{pylibdir}/importlib/
+%dir %{pylibdir}/importlib/__pycache__/
+%{pylibdir}/importlib/*.py
+%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/json/
+%dir %{pylibdir}/json/__pycache__/
+%{pylibdir}/json/*.py
+%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/logging
+%{pylibdir}/multiprocessing
+
+%dir %{pylibdir}/sqlite3/
+%dir %{pylibdir}/sqlite3/__pycache__/
+%{pylibdir}/sqlite3/*.py
+%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
+%exclude %{pylibdir}/turtle.py
+%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%endif
+
+%{pylibdir}/urllib
+%{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
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
+%endif
+
+# "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):
+%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%dir %{_includedir}/python%{LDVERSION_optimized}/
+%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+
+%{_libdir}/%{py_INSTSONAME_optimized}
+%if %{without flatpackage}
+%{_libdir}/libpython3.so
+%endif
+
+
+%if %{without flatpackage}
+%files devel
+%{_bindir}/2to3
+%endif
+
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
+%if %{without flatpackage}
+%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%endif
+%{_includedir}/python%{LDVERSION_optimized}/*.h
+%{_includedir}/python%{LDVERSION_optimized}/internal/
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+
+%if %{without flatpackage}
+%{_bindir}/python3-config
+%{_bindir}/python-config
+%{_libdir}/pkgconfig/python3.pc
+%{_libdir}/pkgconfig/python.pc
+%{_bindir}/pathfix.py
+%{_bindir}/pygettext3.py
+%{_bindir}/pygettext.py
+%{_bindir}/msgfmt3.py
+%{_bindir}/msgfmt.py
+%endif
+
+%{_bindir}/pygettext%{pybasever}.py
+%{_bindir}/msgfmt%{pybasever}.py
+
+%{_bindir}/python%{pybasever}-config
+%{_bindir}/python%{LDVERSION_optimized}-config
+%{_bindir}/python%{LDVERSION_optimized}-*-config
+%{_libdir}/libpython%{LDVERSION_optimized}.so
+%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
+%{_libdir}/pkgconfig/python-%{pybasever}.pc
+
+
+%if %{without flatpackage}
+%files idle
+
+%{_bindir}/idle*
+%else
+%{_bindir}/idle%{pybasever}
+%endif
+
+%{pylibdir}/idlelib
+
+%if %{without flatpackage}
+%{_metainfodir}/idle3.appdata.xml
+%{_datadir}/applications/idle3.desktop
+%{_datadir}/icons/hicolor/*/apps/idle3.*
+%endif
+
+%if %{without flatpackage}
+%files tkinter
+%endif
+
+%{pylibdir}/tkinter
+%if %{without flatpackage}
+%exclude %{pylibdir}/tkinter/test
+%endif
+%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
+%{pylibdir}/turtle.py
+%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%dir %{pylibdir}/turtledemo
+%{pylibdir}/turtledemo/*.py
+%{pylibdir}/turtledemo/*.cfg
+%dir %{pylibdir}/turtledemo/__pycache__/
+%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+
+
+%if %{without flatpackage}
+%files test
+%endif
+
+%{pylibdir}/ctypes/test
+%{pylibdir}/distutils/tests
+%{pylibdir}/sqlite3/test
+%{pylibdir}/test
+%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
+%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
+%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
+%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so
+%{pylibdir}/lib2to3/tests
+%{pylibdir}/tkinter/test
+%{pylibdir}/unittest/test
+
+# 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}
+%if %{without flatpackage}
+%files debug
+%{_bindir}/python3-debug
+%{_bindir}/python-debug
+%endif
+
+# Analog of the core subpackage's files:
+%{_bindir}/python%{LDVERSION_debug}
+
+# Analog of the -libs subpackage's files:
+# ...with debug builds of the built-in "extension" modules:
+
+%{dynload_dir}/_blake2.%{SOABI_debug}.so
+%{dynload_dir}/_md5.%{SOABI_debug}.so
+%{dynload_dir}/_sha1.%{SOABI_debug}.so
+%{dynload_dir}/_sha256.%{SOABI_debug}.so
+%{dynload_dir}/_sha3.%{SOABI_debug}.so
+%{dynload_dir}/_sha512.%{SOABI_debug}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_debug}.so
+%{dynload_dir}/_bisect.%{SOABI_debug}.so
+%{dynload_dir}/_bz2.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
+%{dynload_dir}/_contextvars.%{SOABI_debug}.so
+%{dynload_dir}/_crypt.%{SOABI_debug}.so
+%{dynload_dir}/_csv.%{SOABI_debug}.so
+%{dynload_dir}/_ctypes.%{SOABI_debug}.so
+%{dynload_dir}/_curses.%{SOABI_debug}.so
+%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
+%{dynload_dir}/_dbm.%{SOABI_debug}.so
+%{dynload_dir}/_decimal.%{SOABI_debug}.so
+%{dynload_dir}/_elementtree.%{SOABI_debug}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_debug}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_debug}.so
+%{dynload_dir}/_heapq.%{SOABI_debug}.so
+%{dynload_dir}/_json.%{SOABI_debug}.so
+%{dynload_dir}/_lsprof.%{SOABI_debug}.so
+%{dynload_dir}/_lzma.%{SOABI_debug}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
+%{dynload_dir}/_opcode.%{SOABI_debug}.so
+%{dynload_dir}/_pickle.%{SOABI_debug}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
+%{dynload_dir}/_queue.%{SOABI_debug}.so
+%{dynload_dir}/_random.%{SOABI_debug}.so
+%{dynload_dir}/_socket.%{SOABI_debug}.so
+%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
+%{dynload_dir}/_ssl.%{SOABI_debug}.so
+%{dynload_dir}/_struct.%{SOABI_debug}.so
+%{dynload_dir}/array.%{SOABI_debug}.so
+%{dynload_dir}/audioop.%{SOABI_debug}.so
+%{dynload_dir}/binascii.%{SOABI_debug}.so
+%{dynload_dir}/cmath.%{SOABI_debug}.so
+%{dynload_dir}/_datetime.%{SOABI_debug}.so
+%{dynload_dir}/fcntl.%{SOABI_debug}.so
+%{dynload_dir}/grp.%{SOABI_debug}.so
+%{dynload_dir}/math.%{SOABI_debug}.so
+%{dynload_dir}/mmap.%{SOABI_debug}.so
+%{dynload_dir}/nis.%{SOABI_debug}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
+%{dynload_dir}/parser.%{SOABI_debug}.so
+%{dynload_dir}/pyexpat.%{SOABI_debug}.so
+%{dynload_dir}/readline.%{SOABI_debug}.so
+%{dynload_dir}/resource.%{SOABI_debug}.so
+%{dynload_dir}/select.%{SOABI_debug}.so
+%{dynload_dir}/spwd.%{SOABI_debug}.so
+%{dynload_dir}/syslog.%{SOABI_debug}.so
+%{dynload_dir}/termios.%{SOABI_debug}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
+%{dynload_dir}/unicodedata.%{SOABI_debug}.so
+%{dynload_dir}/_uuid.%{SOABI_debug}.so
+%{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so
+%{dynload_dir}/zlib.%{SOABI_debug}.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}
+
+# Analog of the -devel subpackage's files:
+%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
+%{_includedir}/python%{LDVERSION_debug}
+%{_bindir}/python%{LDVERSION_debug}-config
+%{_bindir}/python%{LDVERSION_debug}-*-config
+%{_libdir}/libpython%{LDVERSION_debug}.so
+%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
+%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
+
+# Analog of the -tools subpackage's files:
+# None for now; we could build precanned versions that have the appropriate
+# shebang if needed
+
+# Analog of the tkinter subpackage's files:
+%{dynload_dir}/_tkinter.%{SOABI_debug}.so
+
+# Analog of the -test subpackage's files:
+%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
+%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
+%{dynload_dir}/_testcapi.%{SOABI_debug}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
+
+%endif # with debug_build
+
+# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
+# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
+#
+# The /usr/lib/rpm/redhat/macros defines %%__debug_package 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 https://bugzilla.redhat.com/show_bug.cgi?id=1476593
+%undefine _debuginfo_subpackages
+
+# ======================================================
+# Finally, the changelog:
+# ======================================================
+
+%changelog
+* Sun Aug 11 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-5
+- Conditionalize python3-devel runtime dependencies on RPM packages and setuptools
+
+* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.4-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Mon Jul 15 2019 Lumr Balhar <lbalhar(a)redhat.com> - 3.7.4-3
+- Move test.support module to python3-test subpackage
+ https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
+- Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
+
+* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-2
+- 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
+
+* Tue Jul 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-1
+- Update to 3.7.4
+
+* Tue Jul 02 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc2-1
+- Update to 3.7.4rc2
+
+* Tue Jun 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc1-1
+- Update to 3.7.4rc1
+
+* Tue May 07 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 3.7.3-3
+- Fix handling of pre-normalization characters in urlsplit
+- Disallow control chars in http URLs (#1695572, #1700684, #1688169, #1706851)
+
+* Wed Apr 17 2019 Patrik Kopkan <pkopkan(a)redhat.com> - 3.7.3-2
+- Makes man python3.7m show python3.7 man pages (#1612241)
+
+* Wed Mar 27 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3-1
+- Update to 3.7.3
+
+* Thu Mar 21 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3~rc1-1
+- Update to 3.7.3rc1
+
+* Thu Mar 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-8
+- Security fix for CVE-2019-9636 (#1688543, #1688546)
+
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.2-7
+- Rebuild for readline 8.0
+
+* Tue Feb 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-6
+- Reduced default build flags used to build extension modules
+ https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
+
+* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Wed Jan 16 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-4
+- Security fix for CVE-2019-5010 (#1666519, #1666522)
+
+* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.7.2-3
+- Rebuilt for libcrypt.so.2 (#1666033)
+
+* Fri Jan 04 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-2
+- No longer revert upstream commit 3b699932e5ac3e7
+- This was a dirty workaround for (#1644936)
+
+* Tue Dec 25 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-1
+- Update to 3.7.2
+
+* Fri Dec 07 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-5
+- Make sure we don't ship any exe files (not needed an prebuilt)
+
+* Wed Nov 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-4
+- Make sure the entire test.support module is in python3-libs (#1651245)
+
+* Tue Nov 06 2018 Victor Stinner <vstinner(a)redhat.com> - 3.7.1-3
+- Verify the value of '-s' when execute the CLI of cProfile (rhbz#1160640)
+
+* Sun Nov 04 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-2
+- Temporarily revert upstream commit 3b699932e5ac3e7
+- This is dirty workaround for (#1644936)
+
+* Mon Oct 22 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-1
+- Update to 3.7.1
+
+* Thu Sep 27 2018 Petr Viktorin <pviktori(a)redhat.com> - 3.7.0-10
+- Compile the debug build with -Og rather than -O0
+
+* Thu Aug 30 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-9
+- Require python3-setuptools from python3-devel to prevent packaging errors (#1623914)
+
+* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-8
+- Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel
+Resolves: rhbz#1571474
+
+* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-7
+- Backport TLS 1.3 related fixes to fix FTBFS
+Resolves: rhbz#1609291
+
+* Wed Aug 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-6
+- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch
+
+* Fri Aug 10 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-5
+- Fix wrong requirement on gdbm
+
+* Fri Jul 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-4
+- Allow to call Py_Main() after Py_Initialize()
+Resolves: rhbz#1595421
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Jul 12 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-2
+- Rebuild for new gdbm
+
+* Wed Jun 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-1
+- Update to 3.7.0 final
+
+* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.21.rc1
+- Finish bootstrapping, enable rewheel, tests, optimizations
+
+* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
+- Update to 3.7.0rc1
+- Bootstrap, disable rewheel, tests, optimizations
+
+* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
+- Fix multiprocessing regression on newer glibcs
+- Enable test_multiprocessing_fork(server) and _spawn again
+Resolves: rhbz#1569933
+
+* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-3
+- Skip test_multiprocessing_fork(server) and _spawn for now
+
+* Wed Apr 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-2
+- Add flatpackage conditionals
+
+* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
+- Update to 3.6.5
+
+* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
+- Fix broken macro invocation and broken building of C Python extensions
+Resolves: rhbz#1560103
+
+* Fri Mar 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-19
+- Add -n option for pathfix.py
+Resolves: rhbz#1546990
+
+* Thu Mar 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-18
+- Fix the py_byte_compile macro to work on Python 2
+- Remove the pybytecompile macro file from the flat package
+Resolves: rhbz#1484993
+
+* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-17
+- Do not send IP addresses in SNI TLS extension
+
+* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 3.6.4-16
+- Rebuild with new LDFLAGS from redhat-rpm-config
+
+* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-15
+- Filter out automatic /usr/bin/python3.X requirement,
+ recommend the main package from libs instead
+Resolves: rhbz#1547131
+
+* Thu Feb 15 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.4-14
+- Remove the python3-tools package (#rhbz 1312030)
+- Move /usr/bin/2to3 to python3-devel
+- Move /usr/bin/idle and idlelib to python3-idle
+- Provide python3-tools from python3-idle
+
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-13
+- Escape macros in %%changelog
+
+* Fri Feb 02 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.4-12
+- Remove sys.executable check from change-user-install-location patch
+Resolves: rhbz#1532287
+
+* Thu Feb 01 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-11
+- Define TLS cipher suite on build time.
+
+* Wed Jan 31 2018 Tomas Orsava <torsava(a)redhat.com> - 3.6.4-10
+- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation
+ of the F28 mass rebuild
+- Re-enable these tests after the mass rebuild when they can be properly
+ addressed
+
+* Tue Jan 23 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-9
+- Restore the PyExc_RecursionErrorInst public symbol
+
+* Tue Jan 23 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-8
+- Add patch to explicitly link _ctypes module with -ldl (#1537489)
+- Refactored patch for libxcrypt
+- Re-enable strict symbol checks in the link editor
+
+* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
+- Add patch for libxcrypt
+- Disable strict symbol checks in the link editor
+
+* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
+- Rebuilt for switch to libxcrypt
+
+* Fri Jan 19 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-5
+- Fix localeconv() encoding for LC_NUMERIC
+
+* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-4
+- R: gdbm-devel R: gdbm for python3-libs
+
+* Wed Jan 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-3
+- Require large enough gdbm (fixup for previous bump)
+
+* Tue Jan 16 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-2
+- Rebuild for reverted gdbm 1.13 on Fedora 27
+
+* Mon Jan 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-1
+- Update to version 3.6.4
+
+* Fri Jan 12 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-5
+- Fix the compilation of the nis module.
+
+* Tue Nov 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-4
+- Raise the release of platform-python obsoletes for better maintainability
+
+* Wed Nov 15 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-3
+- Obsolete platform-python and it's subpackages
+
+* Mon Oct 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-2
+- Fix memory corruption due to allocator mix
+Resolves: rhbz#1498207
+
+* Fri Oct 06 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-1
+- Update to Python 3.6.3
+
+* Fri Sep 29 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-19
+- Move pathfix.py to bindir, https://github.com/fedora-python/python-rpm-porting/issues/24
+- Make the -devel package require redhat-rpm-config
+Resolves: rhbz#1496757
+
+* Wed Sep 13 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-18
+- Fix /usr/bin/env dependency from python3-tools
+Resolves: rhbz#1482118
+
+* Wed Sep 06 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-17
+- Include `-g` in the flags sent to the linker (LDFLAGS)
+Resolves: rhbz#1483222
+
+* Tue Sep 05 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-16
+- Specfile cleanup
+- Make the main description also applicable to the SRPM
+- Add audiotest.au to the test package
+
+* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-15
+- Remove %%{pylibdir}/Tools/scripts/2to3
+
+* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-14
+- Expat >= 2.1.0 is everywhere, remove explicit requires
+- Conditionalize systemtap-devel BuildRequires
+- For consistency, require /usr/sbin/ifconfig instead of net-tools
+
+* Mon Aug 28 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-13
+- Rename patch files to be consistent
+- Run autotools to generate the configure script before building
+- Merge lib64 patches (104 into 102)
+- Skip test_bdist_rpm using test config rather than a patch (removes patch 137)
+- Remove patches 157 and 186, which had test changes left over after upstreaming
+- Remove patch 188, a temporary workaround for hashlib tests
+- Merge patches 180, 206, 243, 5001 (architecture naming) into new patch 274
+- Move python2-tools conflicts to tools subpackage (it was wrongly in tkinter)
+
+* Mon Aug 28 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-12
+- Use python3 style of calling super() without arguments in rpath
+ patch to prevent recursion in UnixCCompiler subclasses
+Resolves: rhbz#1458122
+
+* Mon Aug 21 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-11
+- Add bcond for --without optimizations
+- Reword package descriptions
+- Remove Group declarations
+- Skip failing test_float_with_comma
+
+* Mon Aug 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-10
+- Remove system-python, see https://fedoraproject.org/wiki/Changes/Platform_Python_Stack
+
+* Wed Aug 16 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-9
+- Use bconds for configuring the build
+- Reorganize the initial sections
+
+* Wed Aug 16 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-8
+- Have /usr/bin/2to3 (rhbz#1111275)
+- Provide 2to3 and idle3, list them in summary and description (rhbz#1076401)
+
+* Fri Aug 11 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-7
+- Revert "Add --executable option to install.py command"
+ This enhancement is currently not needed and it can possibly
+ collide with `pip --editable`option
+
+* Mon Aug 07 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-6
+- Fix the "urllib FTP protocol stream injection" vulnerability
+Resolves: rhbz#1478916
+
+* Tue Aug 01 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.2-5
+- Dropped BuildRequires on db4-devel which was useful for Python 2 (module
+ bsddb), however, no longer needod for Python 3
+- Tested building Python 3 with and without the dependency, all tests pass and
+ filelists of resulting RPMs are identical
+
+* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 3.6.2-4
+- Do not generate debuginfo subpackages (#1476593)
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Jul 25 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-2
+- Make test_asyncio to not depend on the current SIGHUP signal handler.
+
+* Tue Jul 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-1
+- Update to Python 3.6.2
+
+* Tue Jun 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-10
+- Update to the latest upstream implementation of PEP 538
+
+* Mon Jun 26 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.1-9
+- Make pip and distutils in user environment install into separate location
+
+* Fri Jun 23 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-8
+- Fix test_alpn_protocols from test_ssl
+- Do not require rebundled setuptools dependencies
+
+* Tue May 16 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-7
+- Added a dependency to the devel subpackage on python3-rpm-generators which
+ have been excised out of rpm-build
+- Updated notes on bootstrapping Python on top of this specfile accordingly
+- Involves: rhbz#1410631, rhbz#1444925
+
+* Tue May 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-6
+- Enable profile guided optimizations for x86_64 and i686 architectures
+- Update to a newer implementation of PEP 538
+- Update description to reflect that Python 3 is now the default Python
+
+* Fri May 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-5
+- Update PEP 538 to the latest upstream implementation
+
+* Tue Apr 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-4
+- Enable link time optimizations
+- Move windows executables to the devel subpackage (rhbz#1426257)
+
+* Thu Apr 13 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-3
+- Rename python3.Xdm-config script from -debug to be arch specific
+Resolves: rhbz#1179073
+
+* Wed Apr 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-2
+- Install the Makefile in its proper location (rhbz#1438219)
+
+* Wed Mar 22 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.1-1
+- Update to version 3.6.1 final
+
+* Tue Mar 21 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-0.2.rc1
+- Fix syntax error in %%py_byte_compile macro (rhbz#1433569)
+
+* Thu Mar 16 2017 Iryna Shcherbina <ishcherb(a)redaht.com> - 3.6.1-0.1.rc1
+- Update to Python 3.6.1 release candidate 1
+- Add patch 264 to skip a known test failure on aarch64
+
+* Fri Mar 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-21
+- Use proper command line parsing in _testembed
+- Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale
+ https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale
+
+* Mon Feb 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-20
+- Add desktop entry and appdata.xml file for IDLE 3 (rhbz#1392049)
+
+* Fri Feb 24 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-19
+- Revert "Set values of prefix and exec_prefix to /usr/local for
+ /usr/bin/python* executables..." to prevent build failures
+ of packages using alternate build tools
+
+* Tue Feb 21 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-18
+- Set values of prefix and exec_prefix to /usr/local for
+ /usr/bin/python* executables
+- Use new %%_module_build macro
+
+* Fri Feb 17 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-13
+- Add --executable option to install.py command
+
+* Wed Feb 15 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-12
+- BuildRequire the new dependencies of setuptools when rewheel mode is enabled
+in order for the virtualenvs to work properly
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.0-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed Feb 01 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 3.6.0-10
+- Add missing %%license macro
+
+* Thu Jan 26 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-9
+- Modify the runtime dependency of python3-libs on system-python-libs again,
+ because previous attempt didn't work properly with dnf resolving mechanism
+
+* Wed Jan 25 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-8
+- Modify the runtime dependency of python3-libs on system-python-libs to use
+ just the version and release number, but not the dist tag due to Modularity
+
+* Mon Jan 16 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-7
+- Fix error check, so that Random.seed actually uses OS randomness (rhbz#1412275)
+- Skip test_aead_aes_gcm during rpmbuild
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 3.6.0-6
+- Rebuild for readline 7.x
+
+* Tue Jan 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-5
+- Require glibc >= 2.24.90-26 for system-python-libs (rhbz#1410644)
+
+* Mon Jan 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-4
+- Define HAVE_LONG_LONG as 1 for backwards compatibility
+
+* Thu Jan 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.0-3
+- Don't blow up on EL7 kernel (random generator) (rhbz#1410175)
+
+* Tue Dec 27 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-1
+- Update to Python 3.6.0 final
+
+* Fri Dec 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.6.rc1
+- Enable rewheel
+
+* Wed Dec 07 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.5.rc1
+- Update to Python 3.6.0 release candidate 1
+
+* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.4.b4
+- Update to Python 3.6.0 beta 4
+
+* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-7
+- Set to work with pip version 9.0.1
+
+* Wed Oct 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-6
+- Use proper patch numbering and base upstream branch for
+porting ssl and hashlib modules to OpenSSL 1.1.0
+- Drop hashlib patch for now
+- Add riscv64 arch to 64bit and no-valgrind arches
+
+* Tue Oct 11 2016 Tom Mrz <tmraz(a)redhat.com> - 3.5.2-5
+- Make it build with OpenSSL-1.1.0 based on upstream patch
+
+* Wed Sep 14 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-4
+- Obsolete and Provide python35 package
+
+* Mon Sep 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-3
+- Update %%py_byte_compile macro
+- Remove unused configure flags (rhbz#1374357)
+
+* Fri Sep 09 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-2
+- Updated .pyc 'bytecompilation with the newly installed interpreter' to also
+ recompile optimized .pyc files
+- Removed .pyo 'bytecompilation with the newly installed interpreter', as .pyo
+ files are no more
+- Resolves rhbz#1373635
+
+* Mon Aug 15 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-1
+- Rebased to version 3.5.2
+- Set to work with pip version 8.1.2
+- Removed patches 207, 237, 241 as fixes are already contained in Python 3.5.2
+- Removed arch or environment specific patches 194, 196, 203, and 208
+ as test builds indicate they are no longer needed
+- Updated patches 102, 146, and 242 to work with the new Python codebase
+- Removed patches 200, 201, 5000 which weren't even being applied
+
+* Tue Aug 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-15
+- Fix for CVE-2016-1000110 HTTPoxy attack
+- SPEC file cleanup
+
+* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 3.5.1-14
+- Build properly on MIPS
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.5.1-13
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-12
+- Refactor patch for properly fixing CVE-2016-5636
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-11
+- Fix test_pyexpat failure with Expat version of 2.2.0
+
+* Fri Jul 08 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-10
+- Move xml module to system-python-libs
+
+* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.1-9
+- 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#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+- Fixed upstream: https://hg.python.org/cpython/rev/d590114c2394
+
+* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-8
+- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
+
+* Fri Mar 04 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-7
+- Move distutils to system-python-libs
+
+* Wed Feb 24 2016 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-6
+- Provide python3-enum34
+
+* Fri Feb 19 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-5
+- Provide System Python packages and macros
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 13 2016 Orion Poplwski <orion(a)cora.nwra.com> - 3.5.1-2
+- Drop python3 macros, require python/python3-rpm-macros
+
+* Mon Dec 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-1
+- Update to 3.5.1
+- Removed patch 199 and 207 (upstream)
+
+* Sun Nov 15 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-5
+- Remove versioned libpython from devel package
+
+* Fri Nov 13 2015 Than Ngo <than(a)redhat.com> 3.5.0-4
+- add correct arch for ppc64/ppc64le to fix build failure
+
+* Wed Nov 11 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-3
+- Hide the private _Py_atomic_xxx symbols from public header
+
+* Wed Oct 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-2
+- Rebuild with wheel set to 1
+
+* Tue Sep 15 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.5.0-1
+- Update to 3.5.0
+
+* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 3.4.3-4
+- python3-devel: Require python-macros for version independant macros such as
+ python_provide. See fpc#281 and fpc#534.
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-4
+- Use 1024bit DH key in test_ssl
+- Use -O0 when compiling -debug build
+- Update pip version variable to the version we actually ship
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-3
+- Make relocating Python by changing _prefix actually work
+Resolves: rhbz#1231801
+
+* Mon May 4 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.3-2
+- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
+
+* Thu Mar 12 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-1
+- Updated to 3.4.3
+- BuildPython now accepts additional build options
+- Temporarily disabled test_gdb on arm (rhbz#1196181)
+
+* Wed Feb 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-7
+- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
+ (http://bugs.python.org/issue23433)
+
+* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 3.4.2-6
+- 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> - 3.4.2-5
+- Own systemtap dirs (#710733)
+
+* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 3.4.2-4
+- build with valgrind on ppc64le
+- disable test_gdb on s390(x) until rhbz#1181034 is resolved
+
+* Tue Dec 16 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-3
+- New patches: 170 (gc asserts), 200 (gettext headers),
+ 201 (gdbm memory leak)
+
+* Thu Dec 11 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-2
+- OpenSSL disabled SSLv3 in SSLv23 method
+
+* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-1
+- Update to 3.4.2
+- Refreshed patches: 156 (gdb autoload)
+- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
+
+* Mon Nov 03 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-16
+- Fix CVE-2014-4650 - CGIHTTPServer URL handling
+Resolves: rhbz#1113529
+
+* Sun Sep 07 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-15
+- exclude test_gdb on ppc* (rhbz#1132488)
+
+* Thu Aug 21 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-14
+- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
+
+* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sun Jun 8 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.1-12
+- aarch64 has valgrind, just list those that don't support it
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed Jun 04 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-10
+- bump release and rebuild to link with the correct tcl/tk libs on ppcle
+
+* Tue Jun 03 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-9
+- Change paths to bundled projects in rewheel patch
+
+* Fri May 30 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-8
+- In config script, use uname -m to write the arch
+
+* Thu May 29 2014 Dan Hork <dan[at]danny.cz> - 3.4.1-7
+- update the arch list where valgrind exists - %%power64 includes also
+ ppc64le which is not supported yet
+
+* Thu May 29 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-6
+- Forward arguments to the arch specific config script
+Resolves: rhbz#1102683
+
+* Wed May 28 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-5
+- Rename python3.Xm-config script to arch specific.
+Resolves: rhbz#1091815
+
+* Tue May 27 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.1-4
+- Use python3-*, not python-* runtime requires on setuptools and pip
+- rebuild for tcl-8.6
+
+* Tue May 27 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-3
+- Update the rewheel module
+
+* Mon May 26 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-2
+- Fix multilib dependencies.
+Resolves: rhbz#1091815
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-1
+- Update to Python 3.4.1
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-8
+- Fix test_gdb failure on ppc64le
+Resolves: rhbz#1095355
+
+* Thu May 22 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.0-7
+- Add macro %%python3_version_nodots
+
+* Sun May 18 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-6
+- Disable test_faulthandler, test_gdb on aarch64
+Resolves: rhbz#1045193
+
+* Fri May 16 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-5
+- Don't add Werror=declaration-after-statement for extension
+ modules through setup.py (PyBT#21121)
+
+* Mon May 12 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-4
+- Add setuptools and pip to Requires
+
+* Tue Apr 29 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-3
+- Point __os_install_post to correct brp-* files
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-2
+- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-1
+- Update to Python 3.4 final
+- Add patch adding the rewheel module
+- Merge patches from master
+
+* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b2
+- Update to Python 3.4 beta 2.
+- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
+- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
+
+* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b1
+- Update to Python 3.4 beta 1.
+- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
+ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
+- Removed patch 00187 (remove pthread atfork; upstreamed)
+
+* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.a4
+- Update to Python 3.4 alpha 4.
+- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
+114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
+test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
+from py_compile)
+- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
+Koji), 142 (the mock issue that caused this is fixed)
+- Added patch 187 (remove thread atfork) - will be in next version
+- Refreshed script for checking pyc and pyo timestamps with new ignored files.
+- The fips patch is disabled for now until upstream makes a final decision
+what to do with sha3 implementation for 3.4.0.
+
+* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-7
+- Bytecompile all *.py files properly during build (rhbz#1023607)
+
+* Fri Aug 23 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 3.3.2-6
+- Added fix for CVE-2013-4238 (rhbz#996399)
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-5
+- fix up indentation in arm patch
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-4
+- disable a test that fails on arm
+- enable valgrind support on arm arches
+
+* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-3
+- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
+
+* Mon May 20 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-2
+- Add patch for CVE-2013-2099 (rhbz#963261).
+
+* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-1
+- Updated to Python 3.3.2.
+- Refreshed patches: 153 (gdb test noise)
+- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
+test threads)
+- Synced patch numbers with python.spec.
+
+* Thu May 9 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.1-4
+- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
+
+* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-3
+- Add patch that enables building on ppc64p7 (replace the sed, so that
+we get consistent with python2 spec and it's more obvious that we're doing it.
+
+* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-2
+- Add fix for gdb tests failing on arm, rhbz#951802.
+
+* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-1
+- Updated to Python 3.3.1.
+- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
+153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
+keeping few more downstream tests)
+- Removed patches: 3 (audiotest.au made it to upstream tarball)
+- Removed workaround for http://bugs.python.org/issue14774, discussed in
+http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-10
+- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-9
+- renumber patches to keep them in sync with python.spec
+
+* Fri Mar 15 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-8
+- Fix error in platform.platform() when non-ascii byte strings are decoded to
+ unicode (rhbz#922149)
+
+* Thu Mar 14 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-7
+- Fix up shared library extension (rhbz#889784)
+
+* Thu Mar 07 2013 Karsten Hopp <karsten(a)redhat.com> 3.3.0-6
+- add ppc64p7 build target, optimized for Power7
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-5
+- add workaround for ENOPROTOOPT seen running selftests in Koji
+(rhbz#913732)
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-4
+- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
+
+* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-3
+- add aarch64 (rhbz#909783)
+
+* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-2
+- add BR on bluez-libs-devel (rhbz#879720)
+
+* Sat Sep 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-1
+- 3.3.0rc3 -> 3.3.0; drop alphatag
+
+* Mon Sep 24 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.6.rc3
+- 3.3.0rc2 -> 3.3.0rc3
+
+* Mon Sep 10 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.5.rc2
+- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
+
+* Mon Aug 27 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.4.rc1
+- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
+
+* Mon Aug 13 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.3.b2
+- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
+134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
+correctly when LANG=C (patch 55); importlib.test was moved to
+test.test_importlib upstream
+
+* Mon Aug 13 2012 Karsten Hopp <karsten(a)redhat.com> 3.3.0-0.2.b1
+- disable some failing checks on PPC* (rhbz#846849)
+
+* Fri Aug 3 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
+- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
+patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
+configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
+"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
+for stdlib (upstream issues 10645 and 12218); email/test moved to
+test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
+_decimal and _lzma modules; make collections modules explicit in payload again
+(upstream issue 11085); add _testbuffer module to tests subpackage (added in
+upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
+workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
+distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
+_lzma module); skip some tests within test_socket (patch 163)
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2.3-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jul 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+
+* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-10
+- use macro for power64 (rhbz#834653)
+
+* Mon Jun 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-9
+- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
+
+* Wed May 30 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.2.3-8
+- fix tapset for debug build
+
+* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-7
+- 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> - 3.2.3-6
+- renumber autotools patch from 300 to 5000
+- specfile cleanups
+
+* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-5
+- fix test_gdb.py (patch 156; rhbz#817072)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.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)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-3
+- add explicit version requirements on expat to avoid linkage problems with
+XML_SetHashSalt
+
+* Thu Apr 12 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-2
+- fix test_gdb (patch 153)
+
+* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-1
+- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
+values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
+
+* Thu Feb 9 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-13
+- use newly installed python for byte compiling (now for real)
+
+* Sun Feb 5 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-12
+- use newly installed python for byte compiling (#787498)
+
+* Wed Jan 4 2012 Ville Skytt <ville.skytta(a)iki.fi> - 3.2.2-11
+- Build with $RPM_LD_FLAGS (#756863).
+- Use xz-compressed source tarball.
+
+* Wed Dec 07 2011 Karsten Hopp <karsten(a)redhat.com> 3.2.2-10
+- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
+
+* Mon Oct 17 2011 Rex Dieter <rdieter(a)fedoraproject.org> - 3.2.2-9
+- python3-devel missing autogenerated pkgconfig() provides (#746751)
+
+* Mon Oct 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-8
+- cherrypick fix for distutils not using __pycache__ when byte-compiling
+files (rhbz#722578)
+
+* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-7
+- re-enable gdbm (patch 148; rhbz#742242)
+
+* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-6
+- add a sys._debugmallocstats() function (patch 147)
+
+* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-5
+- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
+_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
+
+* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-4
+- disable gdbm module to prepare for gdbm soname bump
+
+* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-3
+- renumber and rename patches for consistency with python.spec (8 to 55, 106
+to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
+
+* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-2
+- 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 106, 133-142 sparsely, moving
+patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
+
+* Tue Sep 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-1
+- 3.2.2
+
+* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-7
+- run selftests with "--verbose"
+- disable parts of test_io on ppc (rhbz#732998)
+
+* Wed Aug 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-6
+- use "--findleaks --verbose3" when running test suite
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-5
+- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
+ppc to avoid aliasing violations (patch 130; rhbz#698726)
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-4
+- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
+
+* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-3
+- add %%python3_version to the rpm macros (rhbz#719082)
+
+* Mon Jul 11 2011 Dennis Gilmore <dennis(a)ausil.us> - 3.2.1-2
+- disable some tests on sparc arches
+
+* Mon Jul 11 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-1
+- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
+of static library build (due to Modules/_testembed; patch 6), autotool
+intermediates (patch 300)
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-5
+- use the gdb hooks from the upstream tarball, rather than keeping our own copy
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-4
+- don't run test_openpty and test_pty in %%check
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-3
+- cleanup of BuildRequires; add comment headings to specfile sections
+
+* Tue Apr 19 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-2
+- fix the libpython.stp systemtap tapset (rhbz#697730)
+
+* Mon Feb 21 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-1
+- 3.2
+- drop alphatag
+- regenerate autotool patch
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.13.rc3
+- add a /usr/bin/python3-debug symlink within the debug subpackage
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.12.rc3
+- 3.2rc3
+- regenerate autotool patch
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2-0.11.rc2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.10.rc2
+- 3.2rc2
+
+* Mon Jan 17 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.9.rc1
+- 3.2rc1
+- rework patch 6 (static lib removal)
+- remove upstreamed patch 130 (ppc debug build)
+- regenerate patch 300 (autotool intermediates)
+- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
+- added libpython3.so and 2to3-3.2
+
+* Wed Jan 5 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.8.b2
+- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
+error with dynamic annotations (when configured using --with-valgrind)
+- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
+
+* Tue Jan 4 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.7.b2
+- add --with-valgrind to configuration (on architectures that support this)
+
+* Wed Dec 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.6.b2
+- work around test_subprocess failure seen in koji (patch 129)
+
+* Tue Dec 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.b2
+- 3.2b2
+- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
+patch 8 (systemtap), patch 102 (lib64)
+- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
+patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
+fixed upstream)
+- regenerate patch 300 (autotool intermediates)
+- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
+patch 128)
+- stop using runtest.sh in %%check (dropped by upstream), replacing with
+regrtest; fixup list of failing tests
+- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
+- rework manifests of shared libraries to use "SOABI_" macros, reflecting
+PEP 3149
+- drop itertools, operator and _collections modules from the manifests as py3k
+commit r84058 moved these inside libpython; json/tests moved to test/json_tests
+- move turtle code into the tkinter subpackage
+
+* Wed Nov 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.a1
+- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
+
+* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.4.a1
+- move most of the content of the core package to the libs subpackage, given
+that the libs aren't meaningfully usable without the standard libraries
+
+* Wed Sep 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.3.a1
+- Move test.support to core package (rhbz#596258)
+- Add various missing __pycache__ directories to payload
+
+* Sun Aug 22 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.2-0.2.a1
+- Add __pycache__ directory for site-packages
+
+* Sun Aug 22 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2-0.1.a1
+- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
+- make find-provides-without-python-sonames.sh 64bit aware
+
+* Sat Aug 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.0.a1
+- 3.2a1; add alphatag
+- rework %%files in the light of PEP 3147 (__pycache__)
+- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
+better job of things, and the %%files explicitly lists our modules (r82746
+appears to break the old way of doing things). This leads to various modules
+changing from "foomodule.so" to "foo.so". It also leads to the optimized build
+dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
+_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
+testing/devel purposes)
+- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
+- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
+plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
+- add machinery for rebuilding "configure" and friends, using the correct
+version of autoconf (patch 300)
+- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
+- "modulator" was removed upstream
+- drop "-b" from patch applications affecting .py files to avoid littering the
+installation tree
+
+* Thu Aug 19 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.1.2-13
+- Turn on computed-gotos.
+- Fix for parallel make and graminit.c
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-12
+- rebuild
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-11
+- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
+a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
+
+* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-10
+- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
+- reformat whitespace in audioop.c (patch 106)
+- CVE-2010-1634: fix various integer overflow checks in the audioop
+module (patch 107)
+- CVE-2010-2089: further checks within the audioop module (patch 108)
+- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
+
+* Thu May 27 2010 Dan Hork <dan[at]danny.cz> - 3.1.2-9
+- reading the timestamp counter is available only on some arches (see Python/ceval.c)
+
+* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-8
+- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
+(patch 105)
+
+* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-7
+- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
+(patch 104); enable them and the WITH_TSC option within the debug build
+
+* Mon May 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-6
+- build and install two different configurations of Python 3: debug and
+standard, packaging the debug build in a new "python3-debug" subpackage
+(patch 103)
+
+* Tue Apr 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-5
+- exclude test_http_cookies when running selftests, due to hang seen on
+http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
+11 hours)
+- update python-gdb.py from v5 to py3k version submitted upstream
+
+* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-4
+- update python-gdb.py from v4 to v5 (improving performance and stability,
+adding commands)
+
+* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-3
+- 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> - 3.1.2-2
+- refresh gdb hooks to v3 (reworking how they are packaged)
+
+* Sun Mar 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-1
+- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
+- drop upstreamed patch 2 (.pyc permissions handling)
+- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
+- drop upstreamed patch 200 (path-fixing script)
+
+* Sat Mar 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-28
+- fix typo in libpython.stp (rhbz:575336)
+
+* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-27
+- add pyfuntop.stp example (source 7)
+- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
+consistency with python.spec
+
+* Mon Feb 15 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.1.1-26
+- rebuild for new package of redhat-rpm-config (rhbz:564527)
+- use 'install -p' when running 'make install'
+
+* Fri Feb 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-25
+- split configure options into multiple lines for easy of editing
+- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
+tapset defining "python.function.entry" and "python.function.return" to make
+the markers easy to use (dmalcolm; source 5), and an example of using the
+tapset to the docs (dmalcolm; source 6) (rhbz:545179)
+
+* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-24
+- 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> - 3.1.1-23
+- add gdb hooks for easier debugging (Source 4)
+
+* Thu Jan 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-22
+- update python-3.1.1-config.patch to remove downstream customization of build
+of pyexpat and elementtree modules
+- add patch adapted from upstream (patch 7) to add support for building against
+system expat; add --with-system-expat to "configure" invocation
+- remove embedded copies of expat and zlib from source tree during "prep"
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-21
+- introduce %%{dynload_dir} macro
+- 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
+- introduce a macros.pybytecompile source file, to help with packaging python3
+modules (Source3; written by Toshio)
+- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
+plans
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-20
+- change python-3.1.1-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> - 3.1.1-19
+- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
+builds for setting up the python3 copy of the source tree)
+
+* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-18
+- move lib2to3 from -tools subpackage to main package (bug 556667)
+
+* Sun Jan 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-17
+- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-16
+- 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
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-15
+- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
+docs, rather than the 2.6 build
+
+* Wed Jan 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-14
+- replace references to /usr with %%{_prefix}; replace references to
+/usr/include with %%{_includedir} (Toshio)
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-13
+- fix permission on find-provides-without-python-sonames.sh from 775 to 755
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-12
+- remove build-time requirements on tix and tk, since we already have
+build-time requirements on the -devel subpackages for each of these (Thomas
+Spura)
+- replace usage of %%define with %%global (Thomas Spura)
+- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
+longer be necessary
+- move various test files from the "tools"/"tkinter" subpackages to the "test"
+subpackage
+
+* Thu Jan 7 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-11
+- add %%check section (thanks to Thomas Spura)
+- update patch 4 to use correct shebang line
+- get rid of stray patch file from buildroot
+
+* Tue Nov 17 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> - 3.1.1-10
+- switched a few instances of "find |xargs" to "find -exec" for consistency.
+- made the description of __os_install_post more accurate.
+
+* Wed Nov 4 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-9
+- add macros.python3 to the -devel subpackage, containing common macros for use
+when packaging python3 modules
+
+* Tue Nov 3 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-8
+- add a provides of "python(abi)" (see bug 532118)
+- fix issues identified by a.badger in package review (bug 526126, comment 39):
+ - use "3" thoughout metadata, rather than "3.*"
+ - remove conditional around "pkg-config openssl"
+ - use standard cleanup of RPM_BUILD_ROOT
+ - replace hardcoded references to /usr with _prefix macro
+ - stop removing egg-info files
+ - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
+up shebang lines
+ - stop attempting to remove no-longer-present .cvsignore files
+ - move the post/postun sections above the "files" sections
+
+* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-7
+- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
+flag is used by default in the upstream code
+- "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)
+
+* Tue Oct 27 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-6
+- reword description, based on suggestion by amcnabb
+- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
+- fix the test_tk and test_ttk_* selftests (patch 5)
+- fix up the specfile's handling of shebang/perms to avoid corrupting
+test_httpservers.py (sed command suggested by amcnabb)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-5
+- fixup importlib/_bootstrap.py so that it correctly handles being unable to
+open .pyc files for writing (patch 2, upstream issue 7187)
+- actually apply the rpath patch (patch 1)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-4
+- update patch0's setup of the crypt module to link it against libcrypt
+- update patch0 to comment "datetimemodule" back out, so that it is built
+using setup.py (see Setup, option 3), thus linking it statically against
+timemodule.c and thus avoiding a run-time "undefined symbol:
+_PyTime_DoubleToTimet" failure on "import datetime"
+
+* Wed Oct 21 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-3
+- remove executable flag from various files that shouldn't have it
+- fix end-of-line encodings
+- fix a character encoding
+
+* Tue Oct 20 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-2
+- disable invocation of brp-python-bytecompile in postprocessing, since
+it would be with the wrong version of python (adapted from ivazquez'
+python3000 specfile)
+- use a custom implementation of __find_provides in order to filter out bogus
+provides lines for the various .so modules
+- fixup distutils/unixccompiler.py to remove standard library path from rpath
+(patch 1, was Patch0 in ivazquez' python3000 specfile)
+- split out libraries into a -libs subpackage
+- update summaries and descriptions, basing content on ivazquez' specfile
+- fixup executable permissions on .py, .xpm and .xbm files, based on work in
+ivazquez's specfile
+- get rid of DOS batch files
+- fixup permissions for shared libraries from non-standard 555 to standard 755
+- move /usr/bin/python*-config to the -devel subpackage
+- mark various directories as being documentation
+
+* Thu Sep 24 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> 3.1.1-1
+- Initial package for Python 3.
+
diff --git a/tests/tests.yml b/tests/tests.yml
index e0d81a8..fa0fb83 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -11,18 +11,8 @@
- smoke:
dir: python/smoke
run: VERSION=3.7 ./venv.sh
- - selftest:
- dir: python/selftest
- run: VERSION=3.7 X="-x test_wsgiref" ./parallel.sh
- - debugtest:
- dir: python/selftest
- run: VERSION=3.7 PYTHON=python3-debug X="-x test_wsgiref" ./parallel.sh
required_packages:
- - gcc # for extension building in venv and selftest
- - gdb # for test_gdb
- - python3-debug # for leak testing
- - python3-devel # for extension building in venv and selftest
- - python3-tkinter # for selftest
- - python3-test # for selftest
- - python3-tox # for venv tests
+ - gcc
+ - python3-tox
+ - python37
- glibc-all-langpacks # for locale tests
commit e2599943a248bfa9705fefa287c3f434bfb2b555
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Aug 11 11:23:07 2019 +0200
Conditionalize python3-devel runtime dependencies on RPM packages and setuptools
Installing python3-devel currently brings in:
- annobin
- dwz
- efi-srpm-macros
- fpc-srpm-macros
- ghc-srpm-macros
- gnat-srpm-macros
- go-srpm-macros
- nim-srpm-macros
- ocaml-srpm-macros
- openblas-srpm-macros
- perl-srpm-macros
- python-rpm-macros
- python-srpm-macros
- python3-rpm-generators
- python3-rpm-macros
- qt5-srpm-macros
- redhat-rpm-config
- rust-srpm-macros
For somebody who needs python3-devel to build extension modules,
those are all useless, so we conditionalize it on rpm-build.
Based on the reason for setuptools dependency, we do the same here
(but note that python3 already recommends it).
diff --git a/python3.spec b/python3.spec
index 8cd0bcd..7910dd3 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -440,11 +440,12 @@ Summary: Libraries and header files needed for Python development
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
BuildRequires: python-rpm-macros
-Requires: python-rpm-macros
-Requires: python3-rpm-macros
-Requires: python3-rpm-generators
-%{?python_provide:%python_provide python3-devel}
+# The RPM related dependencies bring nothing to a non-RPM Python developer
+# But we want them when packages BuildRequire python3-devel
+Requires: (python-rpm-macros if rpm-build)
+Requires: (python3-rpm-macros if rpm-build)
+Requires: (python3-rpm-generators if rpm-build)
# This is not "API" (packages that need setuptools should still BuildRequire it)
# However some packages apparently can build both with and without setuptools
@@ -453,7 +454,9 @@ Requires: python3-rpm-generators
# installed when -devel is required.
# See https://bugzilla.redhat.com/show_bug.cgi?id=1623914
# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
-Requires: python3-setuptools
+Requires: (python3-setuptools if rpm-build)
+
+%{?python_provide:%python_provide python3-devel}
Provides: %{name}-2to3 = %{version}-%{release}
Provides: 2to3 = %{version}-%{release}
@@ -1536,6 +1539,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Aug 11 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-5
+- Conditionalize python3-devel runtime dependencies on RPM packages and setuptools
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit 5c6b2e2b5cb52d029597179d83dd656d7f74f5e8
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 26 17:22:20 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/python3.spec b/python3.spec
index 8837ec4..8cd0bcd 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -1536,6 +1536,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.4-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Mon Jul 15 2019 Lumr Balhar <lbalhar(a)redhat.com> - 3.7.4-3
- Move test.support module to python3-test subpackage
https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
commit 46d035d896ef083749360a183e52167c15a83fb9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jul 11 16:20:09 2019 +0200
Keep the LICENSE.txt file in lib/pythonX.Y dir
The license() builtin tries to read it and virtualenv tries to copy it.
See https://github.com/pypa/virtualenv/issues/1352
Up until now, the license() builtin juts felt back to:
See https://www.python.org/psf/license/
However it should output the full license text.
Virtualenv ~16.6 warns:
No LICENSE.txt / LICENSE found in source
Technically, it is probably possible to install the package without
%license files, but that would simply resort to the previous noncritical
behavior.
This fix is not critical and hence it doesn't bump release, for easier
backporting to all our Python packages.
diff --git a/python3.spec b/python3.spec
index ceec4c2..8837ec4 100644
--- a/python3.spec
+++ b/python3.spec
@@ -925,9 +925,6 @@ find %{buildroot} -name \*.bat -exec rm {} \;
find %{buildroot}/ -name "*~" -exec rm -f {} \;
find . -name "*~" -exec rm -f {} \;
-# Get rid of a stray copy of the license:
-rm %{buildroot}%{pylibdir}/LICENSE.txt
-
# Do bytecompilation with the newly installed interpreter.
# This is similar to the script in macros.pybytecompile
# compile *.pyc
@@ -1075,7 +1072,6 @@ CheckPython optimized
%files
-%license LICENSE
%doc README.rst
%if %{without flatpackage}
@@ -1098,13 +1094,14 @@ CheckPython optimized
%{_mandir}/*/python.1*
%files libs
-%license LICENSE
%doc README.rst
%endif
%dir %{pylibdir}
%dir %{dynload_dir}
+%license %{pylibdir}/LICENSE.txt
+
%{pylibdir}/lib2to3
%if %{without flatpackage}
%exclude %{pylibdir}/lib2to3/tests
commit ec995d81726dbd454e9d1cb05ea28af1219bf035
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jul 15 15:38:52 2019 +0200
Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comm...
diff --git a/00328-pyc-timestamp-invalidation-mode.patch b/00328-pyc-timestamp-invalidation-mode.patch
new file mode 100644
index 0000000..87515c4
--- /dev/null
+++ b/00328-pyc-timestamp-invalidation-mode.patch
@@ -0,0 +1,55 @@
+From 746a45acd333174c3174230833b45f537bd92889 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
+Date: Thu, 11 Jul 2019 13:44:13 +0200
+Subject: [PATCH] 00328: Restore pyc to TIMESTAMP invalidation mode as default
+ in rpmbuild
+
+Since Fedora 31, the $SOURCE_DATE_EPOCH is set in rpmbuild to the latest
+%changelog date. This makes Python default to the CHECKED_HASH pyc
+invalidation mode, bringing more reproducible builds traded for an import
+performance decrease. To avoid that, we don't default to CHECKED_HASH
+when $RPM_BUILD_ROOT is set (i.e. when we are building RPM packages).
+
+See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comm...
+---
+ Lib/py_compile.py | 3 ++-
+ Lib/test/test_py_compile.py | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Lib/py_compile.py b/Lib/py_compile.py
+index 21736896af..310bed5620 100644
+--- a/Lib/py_compile.py
++++ b/Lib/py_compile.py
+@@ -70,7 +70,8 @@ class PycInvalidationMode(enum.Enum):
+
+
+ def _get_default_invalidation_mode():
+- if os.environ.get('SOURCE_DATE_EPOCH'):
++ if (os.environ.get('SOURCE_DATE_EPOCH') and not
++ os.environ.get('RPM_BUILD_ROOT')):
+ return PycInvalidationMode.CHECKED_HASH
+ else:
+ return PycInvalidationMode.TIMESTAMP
+diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py
+index d6677ab45f..88059b127e 100644
+--- a/Lib/test/test_py_compile.py
++++ b/Lib/test/test_py_compile.py
+@@ -17,6 +17,7 @@ def without_source_date_epoch(fxn):
+ def wrapper(*args, **kwargs):
+ with support.EnvironmentVarGuard() as env:
+ env.unset('SOURCE_DATE_EPOCH')
++ env.unset('RPM_BUILD_ROOT')
+ return fxn(*args, **kwargs)
+ return wrapper
+
+@@ -27,6 +28,7 @@ def with_source_date_epoch(fxn):
+ def wrapper(*args, **kwargs):
+ with support.EnvironmentVarGuard() as env:
+ env['SOURCE_DATE_EPOCH'] = '123456789'
++ env.unset('RPM_BUILD_ROOT')
+ return fxn(*args, **kwargs)
+ return wrapper
+
+--
+2.21.0
+
diff --git a/python3.spec b/python3.spec
index 9e0a415..ceec4c2 100644
--- a/python3.spec
+++ b/python3.spec
@@ -291,6 +291,11 @@ Patch274: 00274-fix-arch-names.patch
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch
+# 00328 #
+# Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
+# See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comm...
+Patch328: 00328-pyc-timestamp-invalidation-mode.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -624,6 +629,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch316 -p1
+%patch328 -p1
# Remove files that should be generated by the build
@@ -1536,6 +1542,7 @@ CheckPython optimized
* Mon Jul 15 2019 Lumr Balhar <lbalhar(a)redhat.com> - 3.7.4-3
- Move test.support module to python3-test subpackage
https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
+- Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-2
- https://fedoraproject.org/wiki/Changes/Python_means_Python3
commit a664336af9229377cdbfd6fece47b66106aa95ff
Author: Lumir Balhar <lbalhar(a)redhat.com>
Date: Mon Jul 15 12:18:56 2019 +0200
Move test.support module to python3-test subpackage
More info: https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
diff --git a/python3.spec b/python3.spec
index 06fa6af..9e0a415 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -1135,20 +1135,6 @@ CheckPython optimized
%{pylibdir}/ensurepip/_bundled/*.whl
%endif
-# The majority of the test module lives in the test subpackage
-# However test.support is in libs - it contains stuff used when testing your code
-# https://bugzilla.redhat.com/show_bug.cgi?id=596258
-%if %{without flatpackage}
-%dir %{pylibdir}/test/
-%dir %{pylibdir}/test/__pycache__/
-%dir %{pylibdir}/test/support/
-%dir %{pylibdir}/test/support/__pycache__/
-%{pylibdir}/test/__init__.py
-%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
-%{pylibdir}/test/support/*.py
-%{pylibdir}/test/support/__pycache__/*%{bytecode_suffixes}
-%endif
-
%dir %{pylibdir}/concurrent/
%dir %{pylibdir}/concurrent/__pycache__/
%{pylibdir}/concurrent/*.py
@@ -1408,16 +1394,6 @@ CheckPython optimized
%{pylibdir}/tkinter/test
%{pylibdir}/unittest/test
-# stuff already owned by the libs subpackage
-# test requires libs, so we are safe not owning those dirs
-%if %{without flatpackage}
-%exclude %dir %{pylibdir}/test/
-%exclude %dir %{pylibdir}/test/__pycache__/
-%exclude %{pylibdir}/test/__init__.py
-%exclude %{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
-%exclude %{pylibdir}/test/support/
-%endif
-
# We don't bother splitting the debug build out into further subpackages:
# if you need it, you're probably a developer.
@@ -1557,6 +1533,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Jul 15 2019 Lumr Balhar <lbalhar(a)redhat.com> - 3.7.4-3
+- Move test.support module to python3-test subpackage
+ https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python...
+
* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-2
- https://fedoraproject.org/wiki/Changes/Python_means_Python3
- The python-unversioned-command package is no longer Python 2, but 3
commit 337d3348c9c482e71041767eb9f0bba6f52945df
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jul 12 19:03:54 2019 +0200
Python now means Python 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
diff --git a/python3.spec b/python3.spec
index f0fee2f..06fa6af 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -329,6 +329,18 @@ Provides: python%{pyshortver} = %{version}-%{release}
# replace python36-3.6.2.
Obsoletes: python%{pyshortver}
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+# We recommend /usr/bin/python so users get it by default
+# Versioned recommends are problematic, and we know that the package requires
+# python3 back with fixed version, so we just use the path here:
+Recommends: %{_bindir}/python
+
+# In Fedora 31, /usr/bin/pydoc was moved here from Python 2.
+# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3",
+# but file provides aren't versioned and the file moved across packages.
+# Instead, we rely on the conflict in python3-libs.
+
# 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.
@@ -364,6 +376,22 @@ Packages containing additional libraries for Python are generally named with
the "%{name}-" prefix.
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+%package -n python-unversioned-command
+Summary: The "python" command that runs Python 3
+BuildArch: noarch
+
+# In theory this could require any python3 version
+Requires: python3 == %{version}-%{release}
+# But since we want to provide versioned python, we require exact version
+Provides: python = %{version}-%{release}
+# This also save us an explicit conflict for older python3 builds
+
+%description -n python-unversioned-command
+This package contains /usr/bin/python - the "python" command that runs Python 3.
+
+
%package libs
Summary: Python runtime libraries
@@ -383,6 +411,18 @@ Provides: bundled(python3-setuptools) = 40.8.0
# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
Recommends: %{name}%{?_isa} = %{version}-%{release}
+# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_...
+# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the
+# "unversioned" provides were moved from python2 to python3.
+# So, newer python3 packages need to conflict with old Python 2 builds that
+# still provided unversioned Python.
+# Since all python packages, new and old, have versioned requires on
+# python?-libs, we do it here:
+Conflicts: python-libs < 3
+# (We explicitly conflict with python-libs and not python2-libs, so only the
+# old Python 2 builds that still provided unversioned Python are handled.)
+
+
%description libs
This package contains runtime libraries for use by Python:
- the majority of the Python standard library
@@ -415,6 +455,10 @@ Provides: 2to3 = %{version}-%{release}
Conflicts: %{name} < %{version}-%{release}
+# In Fedora 31, several "unversioned" files were moved here from Python 2:
+# pygettext.py, msgfmt.py, python-config, python.pc
+Conflicts: python-devel < 3
+
%description devel
This package contains the header files and configuration needed to compile
Python extension modules (typically written in C or C++), to embed Python
@@ -430,11 +474,15 @@ Requires: %{name} = %{version}-%{release}
Requires: %{name}-tkinter = %{version}-%{release}
Provides: idle3 = %{version}-%{release}
+Provides: idle = %{version}-%{release}
Provides: %{name}-tools = %{version}-%{release}
Provides: %{name}-tools%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-tools < %{version}-%{release}
+# In Fedora 31, /usr/bin/idle was moved here from Python 2.
+Conflicts: python-tools < 3
+
%{?python_provide:%python_provide python3-idle}
%description idle
@@ -490,6 +538,9 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release}
Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
Requires: %{name}-idle%{?_isa} = %{version}-%{release}
+# In Fedora 31, /usr/bin/python-debug was moved here from Python 2.
+Conflicts: python-debug < 3
+
%{?python_provide:%python_provide python3-debug}
%description debug
@@ -916,6 +967,20 @@ rm %{buildroot}%{_bindir}/2to3
rm %{buildroot}%{_libdir}/libpython3.so
rm %{buildroot}%{_mandir}/man1/python3.1*
rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+%else
+# Link the unversioned stuff
+# https://fedoraproject.org/wiki/Changes/Python_means_Python3
+ln -s ./python3 %{buildroot}%{_bindir}/python
+ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc
+ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py
+ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py
+ln -s ./idle3 %{buildroot}%{_bindir}/idle
+ln -s ./python3-config %{buildroot}%{_bindir}/python-config
+ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1
+ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc
+%if %{with debug_build}
+ln -s ./python3-debug %{buildroot}%{_bindir}/python-debug
+%endif
%endif
@@ -1018,10 +1083,14 @@ CheckPython optimized
%{_bindir}/python%{pybasever}
%{_bindir}/python%{pybasever}m
%{_bindir}/pyvenv-%{pybasever}
-%{_mandir}/*/*
+%{_mandir}/*/*3*
%if %{without flatpackage}
+%files -n python-unversioned-command
+%{_bindir}/python
+%{_mandir}/*/python.1*
+
%files libs
%license LICENSE
%doc README.rst
@@ -1267,10 +1336,14 @@ CheckPython optimized
%if %{without flatpackage}
%{_bindir}/python3-config
+%{_bindir}/python-config
%{_libdir}/pkgconfig/python3.pc
+%{_libdir}/pkgconfig/python.pc
%{_bindir}/pathfix.py
%{_bindir}/pygettext3.py
+%{_bindir}/pygettext.py
%{_bindir}/msgfmt3.py
+%{_bindir}/msgfmt.py
%endif
%{_bindir}/pygettext%{pybasever}.py
@@ -1355,6 +1428,7 @@ CheckPython optimized
%if %{without flatpackage}
%files debug
%{_bindir}/python3-debug
+%{_bindir}/python-debug
%endif
# Analog of the core subpackage's files:
@@ -1483,6 +1557,12 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Jul 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-2
+- 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
+
* Tue Jul 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-1
- Update to 3.7.4
commit 0f89ab9113a4d9c0b2c08cccd807877123fa2312
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jul 12 18:41:02 2019 +0200
Remove obsolete obsoletes
diff --git a/python3.spec b/python3.spec
index 83d47eb..f0fee2f 100644
--- a/python3.spec
+++ b/python3.spec
@@ -329,13 +329,6 @@ Provides: python%{pyshortver} = %{version}-%{release}
# replace python36-3.6.2.
Obsoletes: python%{pyshortver}
-# Shall be removed in Fedora 31
-# The release is bumped to 20, so we can do f27 platform-python updates
-# If the release in f27 ever goes >= 20, raise it here
-# If platform-python is ever reintroduced, make it higher version than this:
-%global platpyver 3.6.2-20
-Obsoletes: platform-python < %{platpyver}
-
# 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.
@@ -390,10 +383,6 @@ Provides: bundled(python3-setuptools) = 40.8.0
# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
Recommends: %{name}%{?_isa} = %{version}-%{release}
-# Shall be removed in Fedora 31
-Obsoletes: platform-python-libs < %{platpyver}
-Obsoletes: platform-python-libs-devel < %{platpyver}
-
%description libs
This package contains runtime libraries for use by Python:
- the majority of the Python standard library
@@ -426,9 +415,6 @@ Provides: 2to3 = %{version}-%{release}
Conflicts: %{name} < %{version}-%{release}
-# Shall be removed in Fedora 31
-Obsoletes: platform-python-devel < %{platpyver}
-
%description devel
This package contains the header files and configuration needed to compile
Python extension modules (typically written in C or C++), to embed Python
@@ -451,9 +437,6 @@ Obsoletes: %{name}-tools < %{version}-%{release}
%{?python_provide:%python_provide python3-idle}
-# Shall be removed in Fedora 31
-Obsoletes: platform-python-tools < %{platpyver}
-
%description idle
IDLE is Pythons Integrated Development and Learning Environment.
@@ -473,9 +456,6 @@ Requires: %{name} = %{version}-%{release}
%{?python_provide:%python_provide python3-tkinter}
-# Shall be removed in Fedora 31
-Obsoletes: platform-python-tkinter < %{platpyver}
-
%description tkinter
The Tkinter (Tk interface) library is a graphical user interface toolkit for
the Python programming language.
@@ -488,9 +468,6 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-test}
-# Shall be removed in Fedora 31
-Obsoletes: platform-python-test < %{platpyver}
-
%description test
The self-test suite for the Python interpreter.
commit f7475de5fcd1f2d3a44592c9c1392714b1a5c7bc
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jul 8 11:44:23 2019 +0200
Add %python_provide provides
This allows easier compatibility back and forth once (and if)
https://fedoraproject.org/wiki/Changes/Python_means_Python3
happens. This is not the full implementation of the change,
as the python-unversioned package still needs to be added.
This is currently a no-op as %python_provide does nothing
for python3.
diff --git a/python3.spec b/python3.spec
index cd07949..83d47eb 100644
--- a/python3.spec
+++ b/python3.spec
@@ -197,6 +197,9 @@ BuildRequires: /usr/bin/dtrace
# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
BuildRequires: /usr/sbin/ifconfig
+# For %%python_provide
+BuildRequires: python-rpm-macros
+
%if %{with rpmwheels}
BuildRequires: python-setuptools-wheel
BuildRequires: python-pip-wheel
@@ -379,6 +382,8 @@ Provides: bundled(python3-pip) = 19.0.3
Provides: bundled(python3-setuptools) = 40.8.0
%endif
+%{?python_provide:%python_provide python3-libs}
+
# There are files in the standard library that have python shebang.
# We've filtered the automatic requirement out so libs are installable without
# the main package. This however makes it pulled in by default.
@@ -405,6 +410,8 @@ Requires: python-rpm-macros
Requires: python3-rpm-macros
Requires: python3-rpm-generators
+%{?python_provide:%python_provide python3-devel}
+
# 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).
@@ -442,6 +449,8 @@ Provides: %{name}-tools = %{version}-%{release}
Provides: %{name}-tools%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-tools < %{version}-%{release}
+%{?python_provide:%python_provide python3-idle}
+
# Shall be removed in Fedora 31
Obsoletes: platform-python-tools < %{platpyver}
@@ -462,6 +471,8 @@ configuration, browsers, and other dialogs.
Summary: A GUI toolkit for Python
Requires: %{name} = %{version}-%{release}
+%{?python_provide:%python_provide python3-tkinter}
+
# Shall be removed in Fedora 31
Obsoletes: platform-python-tkinter < %{platpyver}
@@ -475,6 +486,8 @@ Summary: The self-test suite for the main python3 package
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+%{?python_provide:%python_provide python3-test}
+
# Shall be removed in Fedora 31
Obsoletes: platform-python-test < %{platpyver}
@@ -500,6 +513,8 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release}
Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
Requires: %{name}-idle%{?_isa} = %{version}-%{release}
+%{?python_provide:%python_provide python3-debug}
+
%description debug
python3-debug provides a version of the Python runtime with numerous debugging
features enabled, aimed at advanced Python users such as developers of Python
commit 663a998388bb348589ace368e9f71d4cf92b8a99
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jul 9 11:00:50 2019 +0200
Update to 3.7.4
diff --git a/python3.spec b/python3.spec
index b0e798e..cd07949 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
%global general_version %{pybasever}.4
-%global prerel rc2
+#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1491,6 +1491,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Jul 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4-1
+- Update to 3.7.4
+
* Tue Jul 02 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc2-1
- Update to 3.7.4rc2
diff --git a/sources b/sources
index afac668..dc50b76 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.4rc2.tar.xz) = ba3d75624ca0b5fa1da3131cf423c0842b552b8b41efd18fef03a17055508cfcd5e73a7a27f90b470a82336b8e27129ee7fc3231597ac142bddef9f710fbe430
+SHA512 (Python-3.7.4.tar.xz) = 71f64668c259f3ed07bd4aa239dbba6cc1b6b0a84d50bbff160664845d7986f757e4d65fca327e62a2d12ba593742ca83a22f7cb6093aff8715ec916c2ba9416
commit f585cd7ec184a899bd98801267d08630bfbccbdb
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jul 3 00:37:56 2019 +0200
Update to 3.7.4rc2
diff --git a/python3.spec b/python3.spec
index 7744d3c..b0e798e 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
%global general_version %{pybasever}.4
-%global prerel rc1
+%global prerel rc2
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1491,6 +1491,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Jul 02 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc2-1
+- Update to 3.7.4rc2
+
* Tue Jun 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc1-1
- Update to 3.7.4rc1
diff --git a/sources b/sources
index 39df067..afac668 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.4rc1.tar.xz) = a6a901de2f70d09d16e722daf5687d0c13d9244ab3a2bb2971d6240c0c680836def3d23d517d0dc20d9badcd6583e34a14d35a8818656c422664e07c3cbd5497
+SHA512 (Python-3.7.4rc2.tar.xz) = ba3d75624ca0b5fa1da3131cf423c0842b552b8b41efd18fef03a17055508cfcd5e73a7a27f90b470a82336b8e27129ee7fc3231597ac142bddef9f710fbe430
commit 3815a08388d520f7536072568053dccb93544097
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 26 12:01:44 2019 +0200
Don't skip so many tests on the CI
test_wsgiref is tracked in https://bugs.python.org/issue37411
diff --git a/tests/tests.yml b/tests/tests.yml
index 669255d..e0d81a8 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -13,10 +13,10 @@
run: VERSION=3.7 ./venv.sh
- selftest:
dir: python/selftest
- run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
+ run: VERSION=3.7 X="-x test_wsgiref" ./parallel.sh
- debugtest:
dir: python/selftest
- run: VERSION=3.7 PYTHON=python3-debug X="-x test_socket -x test_asyncgen -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
+ run: VERSION=3.7 PYTHON=python3-debug X="-x test_wsgiref" ./parallel.sh
required_packages:
- gcc # for extension building in venv and selftest
- gdb # for test_gdb
commit 9f5808cf53efafc3f76c1ed425d5b0bb7818e871
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jun 27 20:04:01 2019 +0200
Don't let RPM set SOURCE_DATE_EPOCH based on the latest %changelog date
It breaks tests with: can't find '__main__' module in .../test_zip.zip
Reported at https://bugs.python.org/issue34022
Tracked at https://bugzilla.redhat.com/show_bug.cgi?id=1724753
diff --git a/python3.spec b/python3.spec
index e05ed5d..7744d3c 100644
--- a/python3.spec
+++ b/python3.spec
@@ -126,6 +126,12 @@ License: Python
# on files that test invalid syntax.
%undefine py_auto_byte_compile
+# Don't let RPM set SOURCE_DATE_EPOCH based on the latest %%changelog date
+# It breaks tests with: can't find '__main__' module in .../test_zip.zip
+# Reported at https://bugs.python.org/issue34022
+# Tracked at https://bugzilla.redhat.com/show_bug.cgi?id=1724753
+%global source_date_epoch_from_changelog 0
+
# For multilib support, files that are different between 32- and 64-bit arches
# need different filenames. Use "64" or "32" according to the word size.
# Currently, the best way to determine an architecture's word size happens to
commit b33b4a5162e2b5873c5846dcba882f3569ab76cd
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 26 10:30:21 2019 +0200
Remove the OPENSSL_CONF=/non-existing-file workaround
The test was fixed upstream to expect different config on Fedora.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1618753
(Note that we still keep that on the CI for older Python versions.)
diff --git a/python3.spec b/python3.spec
index 4958aa6..e05ed5d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -966,12 +966,6 @@ CheckPython() {
ConfName=$1
ConfDir=$(pwd)/build/$ConfName
- # Fedora sets TLSv1 as explicit minimum version.
- # Python's test suite assumes that the minimum protocol version is set to
- # a magic marker. We workaround the test problem by setting:
- export OPENSSL_CONF=/non-existing-file
- # https://bugzilla.redhat.com/show_bug.cgi?id=1618753
-
echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
# Note that we're running the tests using the version of the code in the
commit dd5f80b1b8d7737fc9544976f26eda46e0b843bd
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jun 25 16:08:20 2019 +0200
Update to 3.7.4rc1
- reenable test_asyncio
- drop merged CVE fixes (patches 320, 324)
diff --git a/00320-fix-pre-normalization-chars-in-urlsplit.patch b/00320-fix-pre-normalization-chars-in-urlsplit.patch
deleted file mode 100644
index b8ae979..0000000
--- a/00320-fix-pre-normalization-chars-in-urlsplit.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index 0faf2bb..d0365ec 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -1011,6 +1011,12 @@ class UrlParseTestCase(unittest.TestCase):
- self.assertIn('\u2100', denorm_chars)
- self.assertIn('\uFF03', denorm_chars)
-
-+ # bpo-36742: Verify port separators are ignored when they
-+ # existed prior to decomposition
-+ urllib.parse.urlsplit('http://\u30d5\u309a:80')
-+ with self.assertRaises(ValueError):
-+ urllib.parse.urlsplit('http://\u30d5\u309a\ufe1380')
-+
- for scheme in ["http", "https", "ftp"]:
- for c in denorm_chars:
- url = "{}://netloc{}false.netloc/path".format(scheme, c)
-diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
-index 8b6c9b1..e2f7b69 100644
---- a/Lib/urllib/parse.py
-+++ b/Lib/urllib/parse.py
-@@ -402,13 +402,16 @@ def _checknetloc(netloc):
- # looking for characters like \u2100 that expand to 'a/c'
- # IDNA uses NFKC equivalence, so normalize for this check
- import unicodedata
-- netloc2 = unicodedata.normalize('NFKC', netloc)
-- if netloc == netloc2:
-+ n = netloc.rpartition('@')[2] # ignore anything to the left of '@'
-+ n = n.replace(':', '') # ignore characters already included
-+ n = n.replace('#', '') # but not the surrounding text
-+ n = n.replace('?', '')
-+ netloc2 = unicodedata.normalize('NFKC', n)
-+ if n == netloc2:
- return
-- _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
- for c in '/?#@:':
- if c in netloc2:
-- raise ValueError("netloc '" + netloc2 + "' contains invalid " +
-+ raise ValueError("netloc '" + netloc + "' contains invalid " +
- "characters under NFKC normalization")
-
- def urlsplit(url, scheme='', allow_fragments=True):
diff --git a/00324-disallow-control-chars-in-http-urls.patch b/00324-disallow-control-chars-in-http-urls.patch
deleted file mode 100644
index 9e4317a..0000000
--- a/00324-disallow-control-chars-in-http-urls.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 7e200e0763f5b71c199aaf98bd5588f291585619 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
-Date: Tue, 7 May 2019 17:28:47 +0200
-Subject: [PATCH] bpo-30458: Disallow control chars in http URLs. (GH-12755)
- (GH-13154)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Disallow control chars in http URLs in urllib.urlopen. This addresses a potential security problem for applications that do not sanity check their URLs where http request headers could be injected.
-
-Disable https related urllib tests on a build without ssl (GH-13032)
-These tests require an SSL enabled build. Skip these tests when python is built without SSL to fix test failures.
-
-Use http.client.InvalidURL instead of ValueError as the new error case's exception. (GH-13044)
-
-Backport Co-Authored-By: Miro Hronok <miro(a)hroncok.cz>
----
- Lib/http/client.py | 15 ++++++
- Lib/test/test_urllib.py | 53 +++++++++++++++++++
- Lib/test/test_xmlrpc.py | 7 ++-
- .../2019-04-10-08-53-30.bpo-30458.51E-DA.rst | 1 +
- 4 files changed, 75 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-
-diff --git a/Lib/http/client.py b/Lib/http/client.py
-index 1de151c38e..2afd452fe3 100644
---- a/Lib/http/client.py
-+++ b/Lib/http/client.py
-@@ -140,6 +140,16 @@ _MAXHEADERS = 100
- _is_legal_header_name = re.compile(rb'[^:\s][^:\r\n]*').fullmatch
- _is_illegal_header_value = re.compile(rb'\n(?![ \t])|\r(?![ \t\n])').search
-
-+# These characters are not allowed within HTTP URL paths.
-+# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
-+# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
-+# Prevents CVE-2019-9740. Includes control characters such as \r\n.
-+# We don't restrict chars above \x7f as putrequest() limits us to ASCII.
-+_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f]')
-+# Arguably only these _should_ allowed:
-+# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
-+# We are more lenient for assumed real world compatibility purposes.
-+
- # We always set the Content-Length header for these methods because some
- # servers will otherwise respond with a 411
- _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
-@@ -1101,6 +1111,11 @@ class HTTPConnection:
- self._method = method
- if not url:
- url = '/'
-+ # Prevent CVE-2019-9740.
-+ match = _contains_disallowed_url_pchar_re.search(url)
-+ if match:
-+ raise InvalidURL(f"URL can't contain control characters. {url!r} "
-+ f"(found at least {match.group()!r})")
- request = '%s %s %s' % (method, url, self._http_vsn_str)
-
- # Non-ASCII characters should have been eliminated earlier
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index 2ac73b58d8..7214492eca 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -329,6 +329,59 @@ class urlopen_HttpTests(unittest.TestCase, FakeHTTPMixin, FakeFTPMixin):
- finally:
- self.unfakehttp()
-
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_control_char_rejected(self):
-+ for char_no in list(range(0, 0x21)) + [0x7f]:
-+ char = chr(char_no)
-+ schemeless_url = f"//localhost:7777/test{char}/"
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ try:
-+ # We explicitly test urllib.request.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ escaped_char_repr = repr(char).replace('\\', r'\\')
-+ InvalidURL = http.client.InvalidURL
-+ with self.assertRaisesRegex(
-+ InvalidURL, f"contain control.*{escaped_char_repr}"):
-+ urllib.request.urlopen(f"http:{schemeless_url}")
-+ with self.assertRaisesRegex(
-+ InvalidURL, f"contain control.*{escaped_char_repr}"):
-+ urllib.request.urlopen(f"https:{schemeless_url}")
-+ # This code path quotes the URL so there is no injection.
-+ resp = urlopen(f"http:{schemeless_url}")
-+ self.assertNotIn(char, resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_newline_header_injection_rejected(self):
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
-+ schemeless_url = "//" + host + ":8080/test/?test=a"
-+ try:
-+ # We explicitly test urllib.request.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ InvalidURL = http.client.InvalidURL
-+ with self.assertRaisesRegex(
-+ InvalidURL, r"contain control.*\\r.*(found at least . .)"):
-+ urllib.request.urlopen(f"http:{schemeless_url}")
-+ with self.assertRaisesRegex(InvalidURL, r"contain control.*\\n"):
-+ urllib.request.urlopen(f"https:{schemeless_url}")
-+ # This code path quotes the URL so there is no injection.
-+ resp = urlopen(f"http:{schemeless_url}")
-+ self.assertNotIn(' ', resp.geturl())
-+ self.assertNotIn('\r', resp.geturl())
-+ self.assertNotIn('\n', resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
- def test_read_0_9(self):
- # "0.9" response accepted (but not "simple responses" without
- # a status line)
-diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
-index 32263f7f0b..0e002ec4ef 100644
---- a/Lib/test/test_xmlrpc.py
-+++ b/Lib/test/test_xmlrpc.py
-@@ -945,7 +945,12 @@ class SimpleServerTestCase(BaseServerTestCase):
- def test_partial_post(self):
- # Check that a partial POST doesn't make the server loop: issue #14001.
- conn = http.client.HTTPConnection(ADDR, PORT)
-- conn.request('POST', '/RPC2 HTTP/1.0\r\nContent-Length: 100\r\n\r\nbye')
-+ conn.send('POST /RPC2 HTTP/1.0\r\n'
-+ 'Content-Length: 100\r\n\r\n'
-+ 'bye HTTP/1.1\r\n'
-+ f'Host: {ADDR}:{PORT}\r\n'
-+ 'Accept-Encoding: identity\r\n'
-+ 'Content-Length: 0\r\n\r\n'.encode('ascii'))
- conn.close()
-
- def test_context_manager(self):
-diff --git a/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-new file mode 100644
-index 0000000000..ed8027fb4d
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-@@ -0,0 +1 @@
-+Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause an http.client.InvalidURL exception to be raised.
---
-2.21.0
-
diff --git a/python3.spec b/python3.spec
index 38c8982..4958aa6 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,11 +13,11 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-%global general_version %{pybasever}.3
-#global prerel ...
+%global general_version %{pybasever}.4
+%global prerel rc1
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 3%{?dist}
+Release: 1%{?dist}
License: Python
@@ -282,18 +282,6 @@ Patch274: 00274-fix-arch-names.patch
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch
-# 00320 #
-# Fix handling of pre-normalization characters in urlsplit()
-# This fixes a regression introduced by the fix for CVE-2019-9636
-# Fixed upstream: https://bugs.python.org/issue36742
-Patch320: 00320-fix-pre-normalization-chars-in-urlsplit.patch
-
-# 00324 #
-# Disallow control chars in http URLs
-# Security fix for CVE-2019-9740 and CVE-2019-9947
-# Fixed upstream: https://bugs.python.org/issue30458
-Patch324: 00324-disallow-control-chars-in-http-urls.patch
-
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -587,8 +575,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch316 -p1
-%patch320 -p1
-%patch324 -p1
# Remove files that should be generated by the build
@@ -999,8 +985,6 @@ CheckPython() {
# https://bugzilla.redhat.com/show_bug.cgi?id=1196181
# test_gdb skipped on s390x:
# https://bugzilla.redhat.com/show_bug.cgi?id=1678277
- # test_asyncio skipped:
- # https://bugs.python.org/issue35998
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
-wW --slowest -j0 \
-x test_distutils \
@@ -1011,7 +995,6 @@ CheckPython() {
%ifarch %{mips64}
-x test_ctypes \
%endif
- -x test_asyncio \
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1508,6 +1491,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Jun 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.4~rc1-1
+- Update to 3.7.4rc1
+
* Tue May 07 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 3.7.3-3
- Fix handling of pre-normalization characters in urlsplit
- Disallow control chars in http URLs (#1695572, #1700684, #1688169, #1706851)
diff --git a/sources b/sources
index adf7491..39df067 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.3.tar.xz) = 6d9b7c0f1764e0f655a39430a3af6f7b5e3c9b7166c042e780677a54b17ad4ca6d0d9cba262c82b1b70bba8f7c28883dad4cc0d7cc194fc7d2c1b5f4f08a763a
+SHA512 (Python-3.7.4rc1.tar.xz) = a6a901de2f70d09d16e722daf5687d0c13d9244ab3a2bb2971d6240c0c680836def3d23d517d0dc20d9badcd6583e34a14d35a8818656c422664e07c3cbd5497
diff --git a/tests/tests.yml b/tests/tests.yml
index db1eff4..669255d 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -13,10 +13,10 @@
run: VERSION=3.7 ./venv.sh
- selftest:
dir: python/selftest
- run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
+ run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
- debugtest:
dir: python/selftest
- run: VERSION=3.7 PYTHON=python3-debug X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
+ run: VERSION=3.7 PYTHON=python3-debug X="-x test_socket -x test_asyncgen -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
required_packages:
- gcc # for extension building in venv and selftest
- gdb # for test_gdb
commit 9941fbbeb98f779199c9bf43ff0a5d15ce9b8128
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jun 25 15:28:29 2019 +0200
CI: Stop running findleaks tests, but run the test suite on debug Python
diff --git a/tests/tests.yml b/tests/tests.yml
index 918d0b0..db1eff4 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -14,9 +14,9 @@
- selftest:
dir: python/selftest
run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
- - findleaks:
+ - debugtest:
dir: python/selftest
- run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./findleaks.sh
+ run: VERSION=3.7 PYTHON=python3-debug X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
required_packages:
- gcc # for extension building in venv and selftest
- gdb # for test_gdb
commit d3803a6dd6315aabaa684d77319cc25dddbee17d
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue May 7 18:03:34 2019 +0200
Security fix for CVE-2019-9740 and CVE-2019-9947
Disallow control chars in http URLs
Fixed upstream: https://bugs.python.org/issue30458
diff --git a/00324-disallow-control-chars-in-http-urls.patch b/00324-disallow-control-chars-in-http-urls.patch
new file mode 100644
index 0000000..9e4317a
--- /dev/null
+++ b/00324-disallow-control-chars-in-http-urls.patch
@@ -0,0 +1,150 @@
+From 7e200e0763f5b71c199aaf98bd5588f291585619 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
+Date: Tue, 7 May 2019 17:28:47 +0200
+Subject: [PATCH] bpo-30458: Disallow control chars in http URLs. (GH-12755)
+ (GH-13154)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Disallow control chars in http URLs in urllib.urlopen. This addresses a potential security problem for applications that do not sanity check their URLs where http request headers could be injected.
+
+Disable https related urllib tests on a build without ssl (GH-13032)
+These tests require an SSL enabled build. Skip these tests when python is built without SSL to fix test failures.
+
+Use http.client.InvalidURL instead of ValueError as the new error case's exception. (GH-13044)
+
+Backport Co-Authored-By: Miro Hronok <miro(a)hroncok.cz>
+---
+ Lib/http/client.py | 15 ++++++
+ Lib/test/test_urllib.py | 53 +++++++++++++++++++
+ Lib/test/test_xmlrpc.py | 7 ++-
+ .../2019-04-10-08-53-30.bpo-30458.51E-DA.rst | 1 +
+ 4 files changed, 75 insertions(+), 1 deletion(-)
+ create mode 100644 Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
+
+diff --git a/Lib/http/client.py b/Lib/http/client.py
+index 1de151c38e..2afd452fe3 100644
+--- a/Lib/http/client.py
++++ b/Lib/http/client.py
+@@ -140,6 +140,16 @@ _MAXHEADERS = 100
+ _is_legal_header_name = re.compile(rb'[^:\s][^:\r\n]*').fullmatch
+ _is_illegal_header_value = re.compile(rb'\n(?![ \t])|\r(?![ \t\n])').search
+
++# These characters are not allowed within HTTP URL paths.
++# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
++# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
++# Prevents CVE-2019-9740. Includes control characters such as \r\n.
++# We don't restrict chars above \x7f as putrequest() limits us to ASCII.
++_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f]')
++# Arguably only these _should_ allowed:
++# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
++# We are more lenient for assumed real world compatibility purposes.
++
+ # We always set the Content-Length header for these methods because some
+ # servers will otherwise respond with a 411
+ _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
+@@ -1101,6 +1111,11 @@ class HTTPConnection:
+ self._method = method
+ if not url:
+ url = '/'
++ # Prevent CVE-2019-9740.
++ match = _contains_disallowed_url_pchar_re.search(url)
++ if match:
++ raise InvalidURL(f"URL can't contain control characters. {url!r} "
++ f"(found at least {match.group()!r})")
+ request = '%s %s %s' % (method, url, self._http_vsn_str)
+
+ # Non-ASCII characters should have been eliminated earlier
+diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
+index 2ac73b58d8..7214492eca 100644
+--- a/Lib/test/test_urllib.py
++++ b/Lib/test/test_urllib.py
+@@ -329,6 +329,59 @@ class urlopen_HttpTests(unittest.TestCase, FakeHTTPMixin, FakeFTPMixin):
+ finally:
+ self.unfakehttp()
+
++ @unittest.skipUnless(ssl, "ssl module required")
++ def test_url_with_control_char_rejected(self):
++ for char_no in list(range(0, 0x21)) + [0x7f]:
++ char = chr(char_no)
++ schemeless_url = f"//localhost:7777/test{char}/"
++ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
++ try:
++ # We explicitly test urllib.request.urlopen() instead of the top
++ # level 'def urlopen()' function defined in this... (quite ugly)
++ # test suite. They use different url opening codepaths. Plain
++ # urlopen uses FancyURLOpener which goes via a codepath that
++ # calls urllib.parse.quote() on the URL which makes all of the
++ # above attempts at injection within the url _path_ safe.
++ escaped_char_repr = repr(char).replace('\\', r'\\')
++ InvalidURL = http.client.InvalidURL
++ with self.assertRaisesRegex(
++ InvalidURL, f"contain control.*{escaped_char_repr}"):
++ urllib.request.urlopen(f"http:{schemeless_url}")
++ with self.assertRaisesRegex(
++ InvalidURL, f"contain control.*{escaped_char_repr}"):
++ urllib.request.urlopen(f"https:{schemeless_url}")
++ # This code path quotes the URL so there is no injection.
++ resp = urlopen(f"http:{schemeless_url}")
++ self.assertNotIn(char, resp.geturl())
++ finally:
++ self.unfakehttp()
++
++ @unittest.skipUnless(ssl, "ssl module required")
++ def test_url_with_newline_header_injection_rejected(self):
++ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
++ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
++ schemeless_url = "//" + host + ":8080/test/?test=a"
++ try:
++ # We explicitly test urllib.request.urlopen() instead of the top
++ # level 'def urlopen()' function defined in this... (quite ugly)
++ # test suite. They use different url opening codepaths. Plain
++ # urlopen uses FancyURLOpener which goes via a codepath that
++ # calls urllib.parse.quote() on the URL which makes all of the
++ # above attempts at injection within the url _path_ safe.
++ InvalidURL = http.client.InvalidURL
++ with self.assertRaisesRegex(
++ InvalidURL, r"contain control.*\\r.*(found at least . .)"):
++ urllib.request.urlopen(f"http:{schemeless_url}")
++ with self.assertRaisesRegex(InvalidURL, r"contain control.*\\n"):
++ urllib.request.urlopen(f"https:{schemeless_url}")
++ # This code path quotes the URL so there is no injection.
++ resp = urlopen(f"http:{schemeless_url}")
++ self.assertNotIn(' ', resp.geturl())
++ self.assertNotIn('\r', resp.geturl())
++ self.assertNotIn('\n', resp.geturl())
++ finally:
++ self.unfakehttp()
++
+ def test_read_0_9(self):
+ # "0.9" response accepted (but not "simple responses" without
+ # a status line)
+diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
+index 32263f7f0b..0e002ec4ef 100644
+--- a/Lib/test/test_xmlrpc.py
++++ b/Lib/test/test_xmlrpc.py
+@@ -945,7 +945,12 @@ class SimpleServerTestCase(BaseServerTestCase):
+ def test_partial_post(self):
+ # Check that a partial POST doesn't make the server loop: issue #14001.
+ conn = http.client.HTTPConnection(ADDR, PORT)
+- conn.request('POST', '/RPC2 HTTP/1.0\r\nContent-Length: 100\r\n\r\nbye')
++ conn.send('POST /RPC2 HTTP/1.0\r\n'
++ 'Content-Length: 100\r\n\r\n'
++ 'bye HTTP/1.1\r\n'
++ f'Host: {ADDR}:{PORT}\r\n'
++ 'Accept-Encoding: identity\r\n'
++ 'Content-Length: 0\r\n\r\n'.encode('ascii'))
+ conn.close()
+
+ def test_context_manager(self):
+diff --git a/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
+new file mode 100644
+index 0000000000..ed8027fb4d
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
+@@ -0,0 +1 @@
++Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause an http.client.InvalidURL exception to be raised.
+--
+2.21.0
+
diff --git a/python3.spec b/python3.spec
index 0d102f7..38c8982 100644
--- a/python3.spec
+++ b/python3.spec
@@ -288,6 +288,12 @@ Patch316: 00316-mark-bdist_wininst-unsupported.patch
# Fixed upstream: https://bugs.python.org/issue36742
Patch320: 00320-fix-pre-normalization-chars-in-urlsplit.patch
+# 00324 #
+# Disallow control chars in http URLs
+# Security fix for CVE-2019-9740 and CVE-2019-9947
+# Fixed upstream: https://bugs.python.org/issue30458
+Patch324: 00324-disallow-control-chars-in-http-urls.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -582,6 +588,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch274 -p1
%patch316 -p1
%patch320 -p1
+%patch324 -p1
# Remove files that should be generated by the build
@@ -1503,6 +1510,7 @@ CheckPython optimized
%changelog
* Tue May 07 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 3.7.3-3
- Fix handling of pre-normalization characters in urlsplit
+- Disallow control chars in http URLs (#1695572, #1700684, #1688169, #1706851)
* Wed Apr 17 2019 Patrik Kopkan <pkopkan(a)redhat.com> - 3.7.3-2
- Makes man python3.7m show python3.7 man pages (#1612241)
commit 1b92cc7981c4692d681f3af8031d8f025035f575
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue May 7 12:49:35 2019 +0200
Fix handling of pre-normalization characters in urlsplit
diff --git a/00320-fix-pre-normalization-chars-in-urlsplit.patch b/00320-fix-pre-normalization-chars-in-urlsplit.patch
new file mode 100644
index 0000000..b8ae979
--- /dev/null
+++ b/00320-fix-pre-normalization-chars-in-urlsplit.patch
@@ -0,0 +1,42 @@
+diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
+index 0faf2bb..d0365ec 100644
+--- a/Lib/test/test_urlparse.py
++++ b/Lib/test/test_urlparse.py
+@@ -1011,6 +1011,12 @@ class UrlParseTestCase(unittest.TestCase):
+ self.assertIn('\u2100', denorm_chars)
+ self.assertIn('\uFF03', denorm_chars)
+
++ # bpo-36742: Verify port separators are ignored when they
++ # existed prior to decomposition
++ urllib.parse.urlsplit('http://\u30d5\u309a:80')
++ with self.assertRaises(ValueError):
++ urllib.parse.urlsplit('http://\u30d5\u309a\ufe1380')
++
+ for scheme in ["http", "https", "ftp"]:
+ for c in denorm_chars:
+ url = "{}://netloc{}false.netloc/path".format(scheme, c)
+diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
+index 8b6c9b1..e2f7b69 100644
+--- a/Lib/urllib/parse.py
++++ b/Lib/urllib/parse.py
+@@ -402,13 +402,16 @@ def _checknetloc(netloc):
+ # looking for characters like \u2100 that expand to 'a/c'
+ # IDNA uses NFKC equivalence, so normalize for this check
+ import unicodedata
+- netloc2 = unicodedata.normalize('NFKC', netloc)
+- if netloc == netloc2:
++ n = netloc.rpartition('@')[2] # ignore anything to the left of '@'
++ n = n.replace(':', '') # ignore characters already included
++ n = n.replace('#', '') # but not the surrounding text
++ n = n.replace('?', '')
++ netloc2 = unicodedata.normalize('NFKC', n)
++ if n == netloc2:
+ return
+- _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
+ for c in '/?#@:':
+ if c in netloc2:
+- raise ValueError("netloc '" + netloc2 + "' contains invalid " +
++ raise ValueError("netloc '" + netloc + "' contains invalid " +
+ "characters under NFKC normalization")
+
+ def urlsplit(url, scheme='', allow_fragments=True):
diff --git a/python3.spec b/python3.spec
index 5834635..0d102f7 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -282,6 +282,12 @@ Patch274: 00274-fix-arch-names.patch
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch
+# 00320 #
+# Fix handling of pre-normalization characters in urlsplit()
+# This fixes a regression introduced by the fix for CVE-2019-9636
+# Fixed upstream: https://bugs.python.org/issue36742
+Patch320: 00320-fix-pre-normalization-chars-in-urlsplit.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -575,6 +581,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch316 -p1
+%patch320 -p1
# Remove files that should be generated by the build
@@ -1494,6 +1501,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue May 07 2019 Charalampos Stratakis <cstratak(a)redhat.com> - 3.7.3-3
+- Fix handling of pre-normalization characters in urlsplit
+
* Wed Apr 17 2019 Patrik Kopkan <pkopkan(a)redhat.com> - 3.7.3-2
- Makes man python3.7m show python3.7 man pages (#1612241)
commit 0bee54773d0c54271e1206a3464870fb66c949c3
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Apr 24 14:25:34 2019 +0200
Fedora CI: Provision 3 GiB of RAM
diff --git a/tests/.fmf/version b/tests/.fmf/version
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/.fmf/version
@@ -0,0 +1 @@
+1
diff --git a/tests/provision.fmf b/tests/provision.fmf
new file mode 100644
index 0000000..1a4f0f0
--- /dev/null
+++ b/tests/provision.fmf
@@ -0,0 +1,4 @@
+---
+standard-inventory-qcow2:
+ qemu:
+ m: 3G # Amount of VM memory
commit 8f86cfe6965df6b9b6e3c6f9d60a95ee412ba3b3
Author: Patrik Kopkan <pkopkan(a)redhat.com>
Date: Thu Apr 18 16:40:00 2019 +0200
add symlink for python3.Xm manpages
diff --git a/python3.spec b/python3.spec
index d7e4d7d..5834635 100644
--- a/python3.spec
+++ b/python3.spec
@@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -901,6 +901,9 @@ ln -s \
# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
+# make man python3.Xm work https://bugzilla.redhat.com/show_bug.cgi?id=1612241
+ln -s ./python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python%{pybasever}m.1
+
%if %{with flatpackage}
# Remove stuff that would conflict with python3 package
rm %{buildroot}%{_bindir}/python3
@@ -1491,6 +1494,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Apr 17 2019 Patrik Kopkan <pkopkan(a)redhat.com> - 3.7.3-2
+- Makes man python3.7m show python3.7 man pages (#1612241)
+
* Wed Mar 27 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3-1
- Update to 3.7.3
commit 9733ead195a5cc26639afdabab3290f19bc3b7c8
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Mar 5 15:50:30 2019 +0100
Reenable test_posix.test_fs_holes()
Since 2012, when the test was skipped from Python 3.3.0b1 (commit
3b4dd24c42a177bd8bda0ebf127f199ef32364ef), Linux now have a good
support for punching holes in filesystems.
Only 00160-disable-test_fs_holes-in-rpm-build.patch and
00163-disable-parts-of-test_socket-in-rpm-build.patch patches used
@unittest._skipInRpmBuild @unittest._expectedFailureInRpmBuild
decorators, but these 2 patches have been removed: remove
00132-add-rpmbuild-hooks-to-unittest.patch and
WITHIN_PYTHON_RPM_BUILD environment variable as well.
diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch
deleted file mode 100644
index 77dc6ec..0000000
--- a/00132-add-rpmbuild-hooks-to-unittest.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py
---- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
-+++ Python-3.2.2/Lib/unittest/case.py 2011-09-09 06:35:16.365568382 -0400
-@@ -3,6 +3,7 @@
- import sys
- import functools
- import difflib
-+import os
- import logging
- import pprint
- import re
-@@ -101,5 +102,21 @@ def expectedFailure(func):
- raise self.test_case.failureException(msg)
-
-+# 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
-+
- class _AssertRaisesBaseContext(_BaseTestCaseContext):
-
- def __init__(self, expected, test_case, expected_regex=None):
-diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py
---- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
-+++ Python-3.2.2/Lib/unittest/__init__.py 2011-09-09 06:35:16.366568382 -0400
-@@ -57,7 +57,8 @@ __unittest = True
-
- from .result import TestResult
- from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
-- skipUnless, expectedFailure)
-+ skipUnless, expectedFailure,
-+ _skipInRpmBuild)
- from .suite import BaseTestSuite, TestSuite
- from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
- findTestCases)
diff --git a/00160-disable-test_fs_holes-in-rpm-build.patch b/00160-disable-test_fs_holes-in-rpm-build.patch
deleted file mode 100644
index 9fa91d5..0000000
--- a/00160-disable-test_fs_holes-in-rpm-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build cpython-59223da36dec/Lib/test/test_posix.py
---- cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build 2012-08-07 17:15:59.000000000 -0400
-+++ cpython-59223da36dec/Lib/test/test_posix.py 2012-08-07 17:16:53.528330330 -0400
-@@ -973,6 +973,7 @@ class PosixTester(unittest.TestCase):
- posix.RTLD_GLOBAL
- posix.RTLD_LOCAL
-
-+ @unittest._skipInRpmBuild('running kernel may not match kernel in chroot')
- @unittest.skipUnless(hasattr(os, 'SEEK_HOLE'),
- "test needs an OS that reports file holes")
- def test_fs_holes(self):
diff --git a/python3.spec b/python3.spec
index b05f15d..d7e4d7d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -232,20 +232,6 @@ Patch102: 00102-lib64.patch
# Downstream only: not appropriate for upstream
Patch111: 00111-no-static-lib.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
-
# 00155 #
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
# generating SELinux denials on "import ctypes" and "import uuid" when
@@ -253,13 +239,6 @@ Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
Patch155: 00155-avoid-ctypes-thunks.patch
-# 00160 #
-# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
-# header files in the build chroot, but may not be supported in the running
-# kernel, hence we disable this test in an rpm build.
-# Adding these was upstream issue http://bugs.python.org/issue10142
-# Not yet sent upstream
-Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
# 00170 #
# In debug builds, try to print repr() when a C-level assert fails in the
@@ -583,9 +562,7 @@ rm -r Modules/expat
%patch102 -p1
%endif
%patch111 -p1
-%patch132 -p1
%patch155 -p1
-%patch160 -p1
%patch170 -p1
%patch178 -p1
@@ -1000,17 +977,13 @@ CheckPython() {
# Show some info, helpful for debugging test failures
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo
- # 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
+ # Run the upstream test suite
# test_gdb skipped on armv7hl:
# https://bugzilla.redhat.com/show_bug.cgi?id=1196181
# test_gdb skipped on s390x:
# https://bugzilla.redhat.com/show_bug.cgi?id=1678277
# test_asyncio skipped:
# https://bugs.python.org/issue35998
- WITHIN_PYTHON_RPM_BUILD= \
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
-wW --slowest -j0 \
-x test_distutils \
commit 6caee321b2388676257cf852f5a39640686b6223
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Mar 27 01:03:17 2019 +0100
Update to 3.7.3
diff --git a/python3.spec b/python3.spec
index 66ed804..b05f15d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
%global general_version %{pybasever}.3
-%global prerel rc1
+#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1518,6 +1518,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Mar 27 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3-1
+- Update to 3.7.3
+
* Thu Mar 21 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3~rc1-1
- Update to 3.7.3rc1
diff --git a/sources b/sources
index bf35992..adf7491 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.3rc1.tar.xz) = a0266a414f5a5828587e43e95fad494be2b0ac4563faefc26ef3f36fb19abb8cfe9b845e4ffec7652ac3ce17b7f47d2b89cd2032017d0f607a9fe4a5f08c4da7
+SHA512 (Python-3.7.3.tar.xz) = 6d9b7c0f1764e0f655a39430a3af6f7b5e3c9b7166c042e780677a54b17ad4ca6d0d9cba262c82b1b70bba8f7c28883dad4cc0d7cc194fc7d2c1b5f4f08a763a
commit 45a4368c6eaa12a9b630cb4b71e9f3a6415a567d
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Mar 21 10:44:12 2019 +0100
Rebase to 3.7.3rc1
Patches merged upstream: 317, 320
Patches rebased: 189 (pip and setuptools versions only)
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
index 1afdab1..ffb80af 100644
--- a/00189-use-rpm-wheels.patch
+++ b/00189-use-rpm-wheels.patch
@@ -16,9 +16,9 @@ index 4748ba4..fc02255 100644
+_WHEEL_DIR = "/usr/share/python-wheels/"
--_SETUPTOOLS_VERSION = "40.6.2"
+-_SETUPTOOLS_VERSION = "40.8.0"
--_PIP_VERSION = "18.1"
+-_PIP_VERSION = "19.0.3"
+def _get_most_recent_wheel_version(pkg):
+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
+ suffix = "-py2.py3-none-any.whl"
diff --git a/00317-CVE-2019-5010.patch b/00317-CVE-2019-5010.patch
deleted file mode 100644
index 62e931e..0000000
--- a/00317-CVE-2019-5010.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From c660debb97f4f422255a82fef2d77804552c043a Mon Sep 17 00:00:00 2001
-From: Christian Heimes <christian(a)python.org>
-Date: Tue, 15 Jan 2019 18:16:30 +0100
-Subject: [PATCH] bpo-35746: Fix segfault in ssl's cert parser
-
-CVE-2019-5010, Fix a NULL pointer deref in ssl module. The cert parser did
-not handle CRL distribution points with empty DP or URI correctly. A
-malicious or buggy certificate can result into segfault.
-
-Signed-off-by: Christian Heimes <christian(a)python.org>
----
- Lib/test/talos-2019-0758.pem | 22 +++++++++++++++++++
- Lib/test/test_ssl.py | 22 +++++++++++++++++++
- .../2019-01-15-18-16-05.bpo-35746.nMSd0j.rst | 3 +++
- Modules/_ssl.c | 4 ++++
- 4 files changed, 51 insertions(+)
- create mode 100644 Lib/test/talos-2019-0758.pem
- create mode 100644 Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
-
-diff --git a/Lib/test/talos-2019-0758.pem b/Lib/test/talos-2019-0758.pem
-new file mode 100644
-index 000000000000..13b95a77fd8a
---- /dev/null
-+++ b/Lib/test/talos-2019-0758.pem
-@@ -0,0 +1,22 @@
-+-----BEGIN CERTIFICATE-----
-+MIIDqDCCApKgAwIBAgIBAjALBgkqhkiG9w0BAQswHzELMAkGA1UEBhMCVUsxEDAO
-+BgNVBAMTB2NvZHktY2EwHhcNMTgwNjE4MTgwMDU4WhcNMjgwNjE0MTgwMDU4WjA7
-+MQswCQYDVQQGEwJVSzEsMCoGA1UEAxMjY29kZW5vbWljb24tdm0tMi50ZXN0Lmxh
-+bC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC63fGB
-+J80A9Av1GB0bptslKRIUtJm8EeEu34HkDWbL6AJY0P8WfDtlXjlPaLqFa6sqH6ES
-+V48prSm1ZUbDSVL8R6BYVYpOlK8/48xk4pGTgRzv69gf5SGtQLwHy8UPBKgjSZoD
-+5a5k5wJXGswhKFFNqyyxqCvWmMnJWxXTt2XDCiWc4g4YAWi4O4+6SeeHVAV9rV7C
-+1wxqjzKovVe2uZOHjKEzJbbIU6JBPb6TRfMdRdYOw98n1VXDcKVgdX2DuuqjCzHP
-+WhU4Tw050M9NaK3eXp4Mh69VuiKoBGOLSOcS8reqHIU46Reg0hqeL8LIL6OhFHIF
-+j7HR6V1X6F+BfRS/AgMBAAGjgdYwgdMwCQYDVR0TBAIwADAdBgNVHQ4EFgQUOktp
-+HQjxDXXUg8prleY9jeLKeQ4wTwYDVR0jBEgwRoAUx6zgPygZ0ZErF9sPC4+5e2Io
-+UU+hI6QhMB8xCzAJBgNVBAYTAlVLMRAwDgYDVQQDEwdjb2R5LWNhggkA1QEAuwb7
-+2s0wCQYDVR0SBAIwADAuBgNVHREEJzAlgiNjb2Rlbm9taWNvbi12bS0yLnRlc3Qu
-+bGFsLmNpc2NvLmNvbTAOBgNVHQ8BAf8EBAMCBaAwCwYDVR0fBAQwAjAAMAsGCSqG
-+SIb3DQEBCwOCAQEAvqantx2yBlM11RoFiCfi+AfSblXPdrIrHvccepV4pYc/yO6p
-+t1f2dxHQb8rWH3i6cWag/EgIZx+HJQvo0rgPY1BFJsX1WnYf1/znZpkUBGbVmlJr
-+t/dW1gSkNS6sPsM0Q+7HPgEv8CPDNK5eo7vU2seE0iWOkxSyVUuiCEY9ZVGaLVit
-+p0C78nZ35Pdv4I+1cosmHl28+es1WI22rrnmdBpH8J1eY6WvUw2xuZHLeNVN0TzV
-+Q3qq53AaCWuLOD1AjESWuUCxMZTK9DPS4JKXTK8RLyDeqOvJGjsSWp3kL0y3GaQ+
-+10T1rfkKJub2+m9A9duin1fn6tHc2wSvB7m3DA==
-+-----END CERTIFICATE-----
-diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
-index 7f6b93148f45..1fc657f4d867 100644
---- a/Lib/test/test_ssl.py
-+++ b/Lib/test/test_ssl.py
-@@ -115,6 +115,7 @@ def data_file(*name):
- BADKEY = data_file("badkey.pem")
- NOKIACERT = data_file("nokia.pem")
- NULLBYTECERT = data_file("nullbytecert.pem")
-+TALOS_INVALID_CRLDP = data_file("talos-2019-0758.pem")
-
- DHFILE = data_file("ffdh3072.pem")
- BYTES_DHFILE = os.fsencode(DHFILE)
-@@ -348,6 +349,27 @@ def test_parse_cert(self):
- self.assertEqual(p['crlDistributionPoints'],
- ('http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl',))
-
-+ def test_parse_cert_CVE_2019_5010(self):
-+ p = ssl._ssl._test_decode_cert(TALOS_INVALID_CRLDP)
-+ if support.verbose:
-+ sys.stdout.write("\n" + pprint.pformat(p) + "\n")
-+ self.assertEqual(
-+ p,
-+ {
-+ 'issuer': (
-+ (('countryName', 'UK'),), (('commonName', 'cody-ca'),)),
-+ 'notAfter': 'Jun 14 18:00:58 2028 GMT',
-+ 'notBefore': 'Jun 18 18:00:58 2018 GMT',
-+ 'serialNumber': '02',
-+ 'subject': ((('countryName', 'UK'),),
-+ (('commonName',
-+ 'codenomicon-vm-2.test.lal.cisco.com'),)),
-+ 'subjectAltName': (
-+ ('DNS', 'codenomicon-vm-2.test.lal.cisco.com'),),
-+ 'version': 3
-+ }
-+ )
-+
- def test_parse_cert_CVE_2013_4238(self):
- p = ssl._ssl._test_decode_cert(NULLBYTECERT)
- if support.verbose:
-diff --git a/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
-new file mode 100644
-index 000000000000..dffe347eec84
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
-@@ -0,0 +1,3 @@
-+[CVE-2019-5010] Fix a NULL pointer deref in ssl module. The cert parser did
-+not handle CRL distribution points with empty DP or URI correctly. A
-+malicious or buggy certificate can result into segfault.
-diff --git a/Modules/_ssl.c b/Modules/_ssl.c
-index 4e3352d9e661..0e720e268d93 100644
---- a/Modules/_ssl.c
-+++ b/Modules/_ssl.c
-@@ -1515,6 +1515,10 @@ _get_crl_dp(X509 *certificate) {
- STACK_OF(GENERAL_NAME) *gns;
-
- dp = sk_DIST_POINT_value(dps, i);
-+ if (dp->distpoint == NULL) {
-+ /* Ignore empty DP value, CVE-2019-5010 */
-+ continue;
-+ }
- gns = dp->distpoint->name.fullname;
-
- for (j=0; j < sk_GENERAL_NAME_num(gns); j++) {
diff --git a/00320-CVE-2019-9636.patch b/00320-CVE-2019-9636.patch
deleted file mode 100644
index 49967d5..0000000
--- a/00320-CVE-2019-9636.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From daad2c482c91de32d8305abbccc76a5de8b3a8be Mon Sep 17 00:00:00 2001
-From: Steve Dower <steve.dower(a)microsoft.com>
-Date: Thu, 7 Mar 2019 09:08:18 -0800
-Subject: [PATCH] bpo-36216: Add check for characters in netloc that normalize
- to separators (GH-12201)
-
----
- Doc/library/urllib.parse.rst | 18 +++++++++++++++
- Lib/test/test_urlparse.py | 23 +++++++++++++++++++
- Lib/urllib/parse.py | 17 ++++++++++++++
- .../2019-03-06-09-38-40.bpo-36216.6q1m4a.rst | 3 +++
- 4 files changed, 61 insertions(+)
- create mode 100644 Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-
-diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
-index 0c8f0f607314..b565e1edd321 100644
---- a/Doc/library/urllib.parse.rst
-+++ b/Doc/library/urllib.parse.rst
-@@ -124,6 +124,11 @@ or on combining URL components into a URL string.
- Unmatched square brackets in the :attr:`netloc` attribute will raise a
- :exc:`ValueError`.
-
-+ Characters in the :attr:`netloc` attribute that decompose under NFKC
-+ normalization (as used by the IDNA encoding) into any of ``/``, ``?``,
-+ ``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is
-+ decomposed before parsing, no error will be raised.
-+
- .. versionchanged:: 3.2
- Added IPv6 URL parsing capabilities.
-
-@@ -136,6 +141,10 @@ or on combining URL components into a URL string.
- Out-of-range port numbers now raise :exc:`ValueError`, instead of
- returning :const:`None`.
-
-+ .. versionchanged:: 3.7.3
-+ Characters that affect netloc parsing under NFKC normalization will
-+ now raise :exc:`ValueError`.
-+
-
- .. function:: parse_qs(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None)
-
-@@ -257,10 +266,19 @@ or on combining URL components into a URL string.
- Unmatched square brackets in the :attr:`netloc` attribute will raise a
- :exc:`ValueError`.
-
-+ Characters in the :attr:`netloc` attribute that decompose under NFKC
-+ normalization (as used by the IDNA encoding) into any of ``/``, ``?``,
-+ ``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is
-+ decomposed before parsing, no error will be raised.
-+
- .. versionchanged:: 3.6
- Out-of-range port numbers now raise :exc:`ValueError`, instead of
- returning :const:`None`.
-
-+ .. versionchanged:: 3.7.3
-+ Characters that affect netloc parsing under NFKC normalization will
-+ now raise :exc:`ValueError`.
-+
-
- .. function:: urlunsplit(parts)
-
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index be50b47603aa..e6638aee2244 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -1,3 +1,5 @@
-+import sys
-+import unicodedata
- import unittest
- import urllib.parse
-
-@@ -984,6 +986,27 @@ def test_all(self):
- expected.append(name)
- self.assertCountEqual(urllib.parse.__all__, expected)
-
-+ def test_urlsplit_normalization(self):
-+ # Certain characters should never occur in the netloc,
-+ # including under normalization.
-+ # Ensure that ALL of them are detected and cause an error
-+ illegal_chars = '/:#?@'
-+ hex_chars = {'{:04X}'.format(ord(c)) for c in illegal_chars}
-+ denorm_chars = [
-+ c for c in map(chr, range(128, sys.maxunicode))
-+ if (hex_chars & set(unicodedata.decomposition(c).split()))
-+ and c not in illegal_chars
-+ ]
-+ # Sanity check that we found at least one such character
-+ self.assertIn('\u2100', denorm_chars)
-+ self.assertIn('\uFF03', denorm_chars)
-+
-+ for scheme in ["http", "https", "ftp"]:
-+ for c in denorm_chars:
-+ url = "{}://netloc{}false.netloc/path".format(scheme, c)
-+ with self.subTest(url=url, char='{:04X}'.format(ord(c))):
-+ with self.assertRaises(ValueError):
-+ urllib.parse.urlsplit(url)
-
- class Utility_Tests(unittest.TestCase):
- """Testcase to test the various utility functions in the urllib."""
-diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
-index f691ab74f87f..39c5d6a80824 100644
---- a/Lib/urllib/parse.py
-+++ b/Lib/urllib/parse.py
-@@ -391,6 +391,21 @@ def _splitnetloc(url, start=0):
- delim = min(delim, wdelim) # use earliest delim position
- return url[start:delim], url[delim:] # return (domain, rest)
-
-+def _checknetloc(netloc):
-+ if not netloc or netloc.isascii():
-+ return
-+ # looking for characters like \u2100 that expand to 'a/c'
-+ # IDNA uses NFKC equivalence, so normalize for this check
-+ import unicodedata
-+ netloc2 = unicodedata.normalize('NFKC', netloc)
-+ if netloc == netloc2:
-+ return
-+ _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
-+ for c in '/?#@:':
-+ if c in netloc2:
-+ raise ValueError("netloc '" + netloc2 + "' contains invalid " +
-+ "characters under NFKC normalization")
-+
- def urlsplit(url, scheme='', allow_fragments=True):
- """Parse a URL into 5 components:
- <scheme>://<netloc>/<path>?<query>#<fragment>
-@@ -419,6 +434,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult('http', netloc, url, query, fragment)
- _parse_cache[key] = v
- return _coerce_result(v)
-@@ -442,6 +458,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult(scheme, netloc, url, query, fragment)
- _parse_cache[key] = v
- return _coerce_result(v)
-diff --git a/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-new file mode 100644
-index 000000000000..5546394157f9
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-@@ -0,0 +1,3 @@
-+Changes urlsplit() to raise ValueError when the URL contains characters that
-+decompose under IDNA encoding (NFKC-normalization) into characters that
-+affect how the URL is parsed.
diff --git a/python3.spec b/python3.spec
index fa16f24..66ed804 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,11 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.2
-Release: 8%{?dist}
+%global general_version %{pybasever}.3
+%global prerel rc1
+%global upstream_version %{general_version}%{?prerel}
+Version: %{general_version}%{?prerel:~%{prerel}}
+Release: 1%{?dist}
License: Python
@@ -198,7 +201,7 @@ BuildRequires: python-pip-wheel
# Source code and patches
# =======================
-Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}....
+Source: https://www.python.org/ftp/python/%{general_version}/Python-%{upstream_ve...
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
@@ -300,16 +303,6 @@ Patch274: 00274-fix-arch-names.patch
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch
-# 00317 #
-# Security fix for CVE-2019-5010: Fix segfault in ssl's cert parser
-# Fixed upstream https://bugs.python.org/issue35746
-Patch317: 00317-CVE-2019-5010.patch
-
-# 00320 #
-# Security fix for CVE-2019-9636: Information Disclosure due to urlsplit improper NFKC normalization
-# Fixed upstream https://bugs.python.org/issue36216
-Patch320: 00320-CVE-2019-9636.patch
-
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -397,8 +390,8 @@ Summary: Python runtime libraries
Requires: python-setuptools-wheel
Requires: python-pip-wheel
%else
-Provides: bundled(python3-pip) = 18.1
-Provides: bundled(python3-setuptools) = 40.6.2
+Provides: bundled(python3-pip) = 19.0.3
+Provides: bundled(python3-setuptools) = 40.8.0
%endif
# There are files in the standard library that have python shebang.
@@ -552,8 +545,8 @@ so extensions for both versions can co-exist in the same directory.
Requires: python-setuptools-wheel
Requires: python-pip-wheel
%else
-Provides: bundled(python3-pip) = 18.1
-Provides: bundled(python3-setuptools) = 40.6.2
+Provides: bundled(python3-pip) = 19.0.3
+Provides: bundled(python3-setuptools) = 40.8.0
%endif
# The description for the flat package
@@ -572,7 +565,7 @@ version once Python %{pybasever} is stable.
# ======================================================
%prep
-%setup -q -n Python-%{version}%{?prerel}
+%setup -q -n Python-%{upstream_version}
# Remove all exe files to ensure we are not shipping prebuilt binaries
# note that those are only used to create Microsoft Windows installers
# and that functionality is broken on Linux anyway
@@ -605,8 +598,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch316 -p1
-%patch317 -p1
-%patch320 -p1
# Remove files that should be generated by the build
@@ -1527,6 +1518,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Mar 21 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.3~rc1-1
+- Update to 3.7.3rc1
+
* Thu Mar 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-8
- Security fix for CVE-2019-9636 (#1688543, #1688546)
diff --git a/sources b/sources
index 64dca46..bf35992 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.2.tar.xz) = 6cd2d6d8455558783b99d55985cd7b22d67b98f41a09b4fdd96f680a630a4e035220d2b903f8c59ed513aa5ffe6730fa947ddb55bb72ce36f0e945ef8af5d971
+SHA512 (Python-3.7.3rc1.tar.xz) = a0266a414f5a5828587e43e95fad494be2b0ac4563faefc26ef3f36fb19abb8cfe9b845e4ffec7652ac3ce17b7f47d2b89cd2032017d0f607a9fe4a5f08c4da7
commit ff4d48f430b8799c1ca174ebcc27db11bf860cc7
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Mar 5 15:35:12 2019 +0100
Reenable RecvmsgGenericStreamTests.testRecvmsgEOF()
Reenable RecvmsgGenericStreamTests.testRecvmsgEOF() of test_socket:
remove 00163-disable-parts-of-test_socket-in-rpm-build.patch.
diff --git a/00163-disable-parts-of-test_socket-in-rpm-build.patch b/00163-disable-parts-of-test_socket-in-rpm-build.patch
deleted file mode 100644
index 0e28036..0000000
--- a/00163-disable-parts-of-test_socket-in-rpm-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds Python-3.3.0b1/Lib/test/test_socket.py
---- Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds 2012-07-24 15:02:30.823355067 -0400
-+++ Python-3.3.0b1/Lib/test/test_socket.py 2012-07-24 15:08:13.021354999 -0400
-@@ -2188,6 +2188,7 @@ class RecvmsgGenericStreamTests(RecvmsgG
- # Tests which require a stream socket and can use either recvmsg()
- # or recvmsg_into().
-
-+ @unittest._skipInRpmBuild('fails intermittently when run within Koji')
- def testRecvmsgEOF(self):
- # Receive end-of-stream indicator (b"", peer socket closed).
- msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, 1024)
diff --git a/python3.spec b/python3.spec
index 6220933..fa16f24 100644
--- a/python3.spec
+++ b/python3.spec
@@ -258,12 +258,6 @@ Patch155: 00155-avoid-ctypes-thunks.patch
# Not yet sent upstream
Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
-# 00163 #
-# Some tests within test_socket fail intermittently when run inside Koji;
-# disable them using unittest._skipInRpmBuild
-# Not yet sent upstream
-Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.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
@@ -599,7 +593,6 @@ rm -r Modules/expat
%patch132 -p1
%patch155 -p1
%patch160 -p1
-%patch163 -p1
%patch170 -p1
%patch178 -p1
commit 774c3f329b0d3baf579664f173a7ab4ce9e18672
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Mar 20 12:31:21 2019 +0100
Temporarily skip test_asyncio to workaround bpo-35998
https://bugs.python.org/issue35998
diff --git a/python3.spec b/python3.spec
index e3f202b..6220933 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1024,6 +1024,8 @@ CheckPython() {
# https://bugzilla.redhat.com/show_bug.cgi?id=1196181
# test_gdb skipped on s390x:
# https://bugzilla.redhat.com/show_bug.cgi?id=1678277
+ # test_asyncio skipped:
+ # https://bugs.python.org/issue35998
WITHIN_PYTHON_RPM_BUILD= \
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
-wW --slowest -j0 \
@@ -1035,6 +1037,7 @@ CheckPython() {
%ifarch %{mips64}
-x test_ctypes \
%endif
+ -x test_asyncio \
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
commit 498b8834a091f9b3f85659f1f6a9eb620e23bda9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Mar 14 12:36:19 2019 +0100
Security fix for CVE-2019-9636 (#1688543, #1688546)
diff --git a/00320-CVE-2019-9636.patch b/00320-CVE-2019-9636.patch
new file mode 100644
index 0000000..49967d5
--- /dev/null
+++ b/00320-CVE-2019-9636.patch
@@ -0,0 +1,150 @@
+From daad2c482c91de32d8305abbccc76a5de8b3a8be Mon Sep 17 00:00:00 2001
+From: Steve Dower <steve.dower(a)microsoft.com>
+Date: Thu, 7 Mar 2019 09:08:18 -0800
+Subject: [PATCH] bpo-36216: Add check for characters in netloc that normalize
+ to separators (GH-12201)
+
+---
+ Doc/library/urllib.parse.rst | 18 +++++++++++++++
+ Lib/test/test_urlparse.py | 23 +++++++++++++++++++
+ Lib/urllib/parse.py | 17 ++++++++++++++
+ .../2019-03-06-09-38-40.bpo-36216.6q1m4a.rst | 3 +++
+ 4 files changed, 61 insertions(+)
+ create mode 100644 Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
+
+diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
+index 0c8f0f607314..b565e1edd321 100644
+--- a/Doc/library/urllib.parse.rst
++++ b/Doc/library/urllib.parse.rst
+@@ -124,6 +124,11 @@ or on combining URL components into a URL string.
+ Unmatched square brackets in the :attr:`netloc` attribute will raise a
+ :exc:`ValueError`.
+
++ Characters in the :attr:`netloc` attribute that decompose under NFKC
++ normalization (as used by the IDNA encoding) into any of ``/``, ``?``,
++ ``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is
++ decomposed before parsing, no error will be raised.
++
+ .. versionchanged:: 3.2
+ Added IPv6 URL parsing capabilities.
+
+@@ -136,6 +141,10 @@ or on combining URL components into a URL string.
+ Out-of-range port numbers now raise :exc:`ValueError`, instead of
+ returning :const:`None`.
+
++ .. versionchanged:: 3.7.3
++ Characters that affect netloc parsing under NFKC normalization will
++ now raise :exc:`ValueError`.
++
+
+ .. function:: parse_qs(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None)
+
+@@ -257,10 +266,19 @@ or on combining URL components into a URL string.
+ Unmatched square brackets in the :attr:`netloc` attribute will raise a
+ :exc:`ValueError`.
+
++ Characters in the :attr:`netloc` attribute that decompose under NFKC
++ normalization (as used by the IDNA encoding) into any of ``/``, ``?``,
++ ``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is
++ decomposed before parsing, no error will be raised.
++
+ .. versionchanged:: 3.6
+ Out-of-range port numbers now raise :exc:`ValueError`, instead of
+ returning :const:`None`.
+
++ .. versionchanged:: 3.7.3
++ Characters that affect netloc parsing under NFKC normalization will
++ now raise :exc:`ValueError`.
++
+
+ .. function:: urlunsplit(parts)
+
+diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
+index be50b47603aa..e6638aee2244 100644
+--- a/Lib/test/test_urlparse.py
++++ b/Lib/test/test_urlparse.py
+@@ -1,3 +1,5 @@
++import sys
++import unicodedata
+ import unittest
+ import urllib.parse
+
+@@ -984,6 +986,27 @@ def test_all(self):
+ expected.append(name)
+ self.assertCountEqual(urllib.parse.__all__, expected)
+
++ def test_urlsplit_normalization(self):
++ # Certain characters should never occur in the netloc,
++ # including under normalization.
++ # Ensure that ALL of them are detected and cause an error
++ illegal_chars = '/:#?@'
++ hex_chars = {'{:04X}'.format(ord(c)) for c in illegal_chars}
++ denorm_chars = [
++ c for c in map(chr, range(128, sys.maxunicode))
++ if (hex_chars & set(unicodedata.decomposition(c).split()))
++ and c not in illegal_chars
++ ]
++ # Sanity check that we found at least one such character
++ self.assertIn('\u2100', denorm_chars)
++ self.assertIn('\uFF03', denorm_chars)
++
++ for scheme in ["http", "https", "ftp"]:
++ for c in denorm_chars:
++ url = "{}://netloc{}false.netloc/path".format(scheme, c)
++ with self.subTest(url=url, char='{:04X}'.format(ord(c))):
++ with self.assertRaises(ValueError):
++ urllib.parse.urlsplit(url)
+
+ class Utility_Tests(unittest.TestCase):
+ """Testcase to test the various utility functions in the urllib."""
+diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
+index f691ab74f87f..39c5d6a80824 100644
+--- a/Lib/urllib/parse.py
++++ b/Lib/urllib/parse.py
+@@ -391,6 +391,21 @@ def _splitnetloc(url, start=0):
+ delim = min(delim, wdelim) # use earliest delim position
+ return url[start:delim], url[delim:] # return (domain, rest)
+
++def _checknetloc(netloc):
++ if not netloc or netloc.isascii():
++ return
++ # looking for characters like \u2100 that expand to 'a/c'
++ # IDNA uses NFKC equivalence, so normalize for this check
++ import unicodedata
++ netloc2 = unicodedata.normalize('NFKC', netloc)
++ if netloc == netloc2:
++ return
++ _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
++ for c in '/?#@:':
++ if c in netloc2:
++ raise ValueError("netloc '" + netloc2 + "' contains invalid " +
++ "characters under NFKC normalization")
++
+ def urlsplit(url, scheme='', allow_fragments=True):
+ """Parse a URL into 5 components:
+ <scheme>://<netloc>/<path>?<query>#<fragment>
+@@ -419,6 +434,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
+ url, fragment = url.split('#', 1)
+ if '?' in url:
+ url, query = url.split('?', 1)
++ _checknetloc(netloc)
+ v = SplitResult('http', netloc, url, query, fragment)
+ _parse_cache[key] = v
+ return _coerce_result(v)
+@@ -442,6 +458,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
+ url, fragment = url.split('#', 1)
+ if '?' in url:
+ url, query = url.split('?', 1)
++ _checknetloc(netloc)
+ v = SplitResult(scheme, netloc, url, query, fragment)
+ _parse_cache[key] = v
+ return _coerce_result(v)
+diff --git a/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
+new file mode 100644
+index 000000000000..5546394157f9
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
+@@ -0,0 +1,3 @@
++Changes urlsplit() to raise ValueError when the URL contains characters that
++decompose under IDNA encoding (NFKC-normalization) into characters that
++affect how the URL is parsed.
diff --git a/python3.spec b/python3.spec
index 766f1cd..e3f202b 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 7%{?dist}
+Release: 8%{?dist}
License: Python
@@ -311,6 +311,11 @@ Patch316: 00316-mark-bdist_wininst-unsupported.patch
# Fixed upstream https://bugs.python.org/issue35746
Patch317: 00317-CVE-2019-5010.patch
+# 00320 #
+# Security fix for CVE-2019-9636: Information Disclosure due to urlsplit improper NFKC normalization
+# Fixed upstream https://bugs.python.org/issue36216
+Patch320: 00320-CVE-2019-9636.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -608,6 +613,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch274 -p1
%patch316 -p1
%patch317 -p1
+%patch320 -p1
# Remove files that should be generated by the build
@@ -1525,6 +1531,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Mar 14 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-8
+- Security fix for CVE-2019-9636 (#1688543, #1688546)
+
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.2-7
- Rebuild for readline 8.0
commit 4b6961f25f28394da892fb090853244660420062
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Thu Jan 31 11:56:28 2019 +0100
Reenable test_gdb on most archs except arm and s390x
gdb has been fixed in Rawhide:
https://bugzilla.redhat.com/show_bug.cgi?id=1638798
https://bugzilla.redhat.com/show_bug.cgi?id=1634781
Install also gdb in selftest to no longer skip test_gdb
on the x86_64 CI.
But test_gdb is still skipped on armv7hl:
https://bugzilla.redhat.com/show_bug.cgi?id=1196181
And skipped on s390x:
https://bugzilla.redhat.com/show_bug.cgi?id=1678277
diff --git a/python3.spec b/python3.spec
index 2ee2188..766f1cd 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1014,12 +1014,18 @@ CheckPython() {
# our non-standard decorators take effect on the relevant tests:
# @unittest._skipInRpmBuild(reason)
# @unittest._expectedFailureInRpmBuild
+ # test_gdb skipped on armv7hl:
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1196181
+ # test_gdb skipped on s390x:
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1678277
WITHIN_PYTHON_RPM_BUILD= \
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
-wW --slowest -j0 \
-x test_distutils \
-x test_bdist_rpm \
+ %ifarch %{arm} s390x
-x test_gdb \
+ %endif
%ifarch %{mips64}
-x test_ctypes \
%endif
diff --git a/tests/tests.yml b/tests/tests.yml
index d26ece2..918d0b0 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -19,6 +19,7 @@
run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./findleaks.sh
required_packages:
- gcc # for extension building in venv and selftest
+ - gdb # for test_gdb
- python3-debug # for leak testing
- python3-devel # for extension building in venv and selftest
- python3-tkinter # for selftest
commit 1e30f555cf0d557d820db94961e0cbe87119ca79
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Fri Feb 15 14:55:26 2019 +0100
Reenable test_buffer on ppc64le
The test failed because of a GCC bug which has been fixed in GCC
master branch and Rawhide uses GCC 9 (master branch):
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88892
* https://bugzilla.redhat.com/show_bug.cgi?id=1540995
diff --git a/python3.spec b/python3.spec
index 99ae31d..2ee2188 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1023,9 +1023,6 @@ CheckPython() {
%ifarch %{mips64}
-x test_ctypes \
%endif
- %ifarch ppc64le
- -x test_buffer \
- %endif
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
commit 50afd5bbf5df83b27d2eec94c0dc8ed0f7cd1924
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Feb 17 09:30:52 2019 +0100
Rebuild for readline 8.0
diff --git a/python3.spec b/python3.spec
index 387e545..99ae31d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 6%{?dist}
+Release: 7%{?dist}
License: Python
@@ -1522,6 +1522,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.2-7
+- Rebuild for readline 8.0
+
* Tue Feb 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-6
- Reduced default build flags used to build extension modules
https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
commit d8428d8696e34c7a1bbf16eb4a32bef1ed78c27e
Author: Tomas Orsava <torsava(a)redhat.com>
Date: Thu Feb 14 17:37:18 2019 +0100
Fix arch names for the ppc architecture
Updated patch 00274
diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch
index c8e53c1..ee15930 100644
--- a/00274-fix-arch-names.patch
+++ b/00274-fix-arch-names.patch
@@ -1,8 +1,19 @@
+From 3b0d3a25576e74c2ac1eb25136ae811bdbdd7c6c Mon Sep 17 00:00:00 2001
+From: Tomas Orsava <torsava(a)redhat.com>
+Date: Thu, 14 Feb 2019 16:08:57 +0100
+Subject: [PATCH] Upstream uses Debian-style architecture naming. Change to
+ match Fedora / RHEL
+
+---
+ config.sub | 2 +-
+ configure.ac | 16 ++++++++--------
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
diff --git a/config.sub b/config.sub
-index ba37cf9..52a9ec6 100755
+index 40ea5df..932128b 100755
--- a/config.sub
+++ b/config.sub
-@@ -1042,7 +1042,7 @@ case $basic_machine in
+@@ -1045,7 +1045,7 @@ case $basic_machine in
;;
ppc64) basic_machine=powerpc64-unknown
;;
@@ -12,10 +23,10 @@ index ba37cf9..52a9ec6 100755
ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
diff --git a/configure.ac b/configure.ac
-index 2535969..9fb3193 100644
+index a075ce3..b7f2ee3 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -765,9 +765,9 @@ cat >> conftest.c <<EOF
+@@ -788,9 +788,9 @@ cat >> conftest.c <<EOF
alpha-linux-gnu
# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
# if defined(__ARMEL__)
@@ -27,7 +38,7 @@ index 2535969..9fb3193 100644
# endif
# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
# if defined(__ARMEL__)
-@@ -807,7 +807,7 @@ cat >> conftest.c <<EOF
+@@ -810,7 +810,7 @@ cat >> conftest.c <<EOF
# elif _MIPS_SIM == _ABIN32
mips64el-linux-gnuabin32
# elif _MIPS_SIM == _ABI64
@@ -36,7 +47,7 @@ index 2535969..9fb3193 100644
# else
# error unknown platform triplet
# endif
-@@ -817,7 +817,7 @@ cat >> conftest.c <<EOF
+@@ -820,22 +820,22 @@ cat >> conftest.c <<EOF
# elif _MIPS_SIM == _ABIN32
mips64-linux-gnuabin32
# elif _MIPS_SIM == _ABI64
@@ -45,8 +56,11 @@ index 2535969..9fb3193 100644
# else
# error unknown platform triplet
# endif
-@@ -827,9 +827,9 @@ cat >> conftest.c <<EOF
- powerpc-linux-gnuspe
+ # elif defined(__or1k__)
+ or1k-linux-gnu
+ # elif defined(__powerpc__) && defined(__SPE__)
+- powerpc-linux-gnuspe
++ ppc-linux-gnuspe
# elif defined(__powerpc64__)
# if defined(__LITTLE_ENDIAN__)
- powerpc64le-linux-gnu
@@ -56,4 +70,11 @@ index 2535969..9fb3193 100644
+ ppc64-linux-gnu
# endif
# elif defined(__powerpc__)
- powerpc-linux-gnu
+- powerpc-linux-gnu
++ ppc-linux-gnu
+ # elif defined(__s390x__)
+ s390x-linux-gnu
+ # elif defined(__s390__)
+--
+2.20.1
+
commit 8927d3f2671041d33c2682b47d238c7070474d0e
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jan 2 18:15:20 2019 +0100
Reduced default build flags used to build extension modules
Utilize extension_...flags for extension builds.
See https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
Depends on https://src.fedoraproject.org/rpms/redhat-rpm-config/c/e80fa1344a49662fec...
diff --git a/python3.spec b/python3.spec
index b910bd2..387e545 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Python
@@ -167,6 +167,7 @@ BuildRequires: ncurses-devel
BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
+BuildRequires: redhat-rpm-config >= 127
BuildRequires: sqlite-devel
BuildRequires: gdb
@@ -436,12 +437,6 @@ Requires: python3-rpm-generators
# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
Requires: python3-setuptools
-# 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
-
Provides: %{name}-2to3 = %{version}-%{release}
Provides: 2to3 = %{version}-%{release}
@@ -549,8 +544,6 @@ so extensions for both versions can co-exist in the same directory.
%else # with flatpackage
-Requires: redhat-rpm-config
-
# We'll not provide this, on purpose
# No package in Fedora shall ever depend on flatpackage via this
%global __requires_exclude ^python\\(abi\\) = 3\\..$
@@ -650,13 +643,21 @@ topdir=$(pwd)
%endif
# Set common compiler/linker flags
-export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+# We utilize the %%extension_...flags macros here so users building C/C++
+# extensions with our python won't get all the compiler/linker flags used
+# in Fedora RPMs.
+# Standard library built here will still use the %%build_...flags,
+# Fedora packages utilizing %%py3_build will use them as well
+# https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
+export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
+export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv"
export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"
-export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"
export LINKCC="gcc"
export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
-export LDFLAGS="$RPM_LD_FLAGS -g $(pkg-config --libs-only-L openssl)"
+export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)"
+export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)"
# We can build several different configurations of Python: regular and debug.
# Define a common function that does one build:
@@ -1521,6 +1522,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Feb 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-6
+- Reduced default build flags used to build extension modules
+ https://fedoraproject.org/wiki/Changes/Python_Extension_Flags
+
* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
commit a6496be3e23b39b25bc40ad3931b1956fa91c457
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Feb 6 02:25:20 2019 +0100
rpmlint: Python modules don't need to be linked against libc
They are loaded from Python and Python is already linked against libc.
See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
diff --git a/python3.rpmlintrc b/python3.rpmlintrc
index d59fe13..e1e2cbe 100644
--- a/python3.rpmlintrc
+++ b/python3.rpmlintrc
@@ -71,5 +71,8 @@ addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
# we need this macro to evaluate, even if the line starts with #
addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
+# Python modules don't need to be linked against libc
+addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')
+
# SPELLING ERRORS
addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
commit 1cdc336f35f414dc65e97b501bb0ed2aef2678cd
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Feb 2 10:18:25 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index 09908ae..b910bd2 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -1521,6 +1521,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Wed Jan 16 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-4
- Security fix for CVE-2019-5010 (#1666519, #1666522)
commit 75005c20f68f3b4ceb734e876b37009c8c3b99f3
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jan 28 12:54:13 2019 +0100
Clean old cruft, provide pythonX.Y
In diff order:
- gdbm releases in all Fedoras are long above 1:1.13
- the flat package should be called python3.7 but we are lazy to rename
- system-python is long gone, upgrade path works
- python3-enum34 is only required by 2 pkgs [0][1]
- glibc releases in all Fedoras are long above 2.24.90-26
Not removed:
- platform-python obsoletes shall be removed in Fedora 31, they were added in 28
[0] https://src.fedoraproject.org/rpms/python-qt5/pull-request/3
[1] https://src.fedoraproject.org/rpms/python-taskflow/pull-request/1
diff --git a/python3.spec b/python3.spec
index 3126463..09908ae 100644
--- a/python3.spec
+++ b/python3.spec
@@ -150,7 +150,7 @@ BuildRequires: expat-devel
BuildRequires: findutils
BuildRequires: gcc-c++
%if %{with gdbm}
-BuildRequires: gdbm-devel >= 1:1.13
+BuildRequires: gdbm-devel
%endif
BuildRequires: glibc-all-langpacks
BuildRequires: glibc-devel
@@ -324,18 +324,16 @@ Patch317: 00317-CVE-2019-5010.patch
# Descriptions, and metadata for subpackages
# ==========================================
+# People might want to dnf install pythonX.Y instead of pythonXY;
+# we enable this in both flat and nonflat package.
+Provides: python%{pybasever} = %{version}-%{release}
+
%if %{without flatpackage}
# Packages with Python modules in standard locations automatically
# depend on python(abi). Provide that here.
Provides: python(abi) = %{pybasever}
-# For backward compatibility only, remove in F29:
-Provides: system-python(abi) = %{pybasever}
-Provides: system-python = %{version}-%{release}
-Provides: system-python%{?_isa} = %{version}-%{release}
-Obsoletes: system-python < %{version}-%{release}
-
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# In order to support multiple Python interpreters for development purposes,
@@ -395,20 +393,6 @@ the "%{name}-" prefix.
%package libs
Summary: Python runtime libraries
-# The "enum" module is included in the standard library.
-# Provide an upgrade path from the external library.
-Provides: python3-enum34 = 1.0.4-5%{?dist}
-Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
-
-# Python 3 built with glibc >= 2.24.90-26 needs to require it
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1410644
-Requires: glibc%{?_isa} >= 2.24.90-26
-
-%if %{with gdbm}
-# When built with this (as guarded by the BuildRequires above), require it
-Requires: gdbm-libs%{?_isa} >= 1:1.13
-%endif
-
%if %{with rpmwheels}
Requires: python-setuptools-wheel
Requires: python-pip-wheel
@@ -423,11 +407,6 @@ Provides: bundled(python3-setuptools) = 40.6.2
# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
Recommends: %{name}%{?_isa} = %{version}-%{release}
-# For backward compatibility only, remove in F29:
-Provides: system-python-libs = %{version}-%{release}
-Provides: system-python-libs%{?_isa} = %{version}-%{release}
-Obsoletes: system-python-libs < %{version}-%{release}
-
# Shall be removed in Fedora 31
Obsoletes: platform-python-libs < %{platpyver}
Obsoletes: platform-python-libs-devel < %{platpyver}
@@ -468,16 +447,6 @@ Provides: 2to3 = %{version}-%{release}
Conflicts: %{name} < %{version}-%{release}
-# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
-# /usr/bin/2to3 was moved from python2-tools to python3-tools
-# TODO Remove in Fedora 29
-Conflicts: python2-tools < 2.7.13-17
-Conflicts: python-tools < 2.7.13-17
-# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
-# /usr/bin/2to3 was moved from python3-tools to python3-devel
-# TODO Remove in Fedora 30
-Conflicts: python3-tools < 3.7
-
# Shall be removed in Fedora 31
Obsoletes: platform-python-devel < %{platpyver}
@@ -959,13 +928,6 @@ ln -s \
%{buildroot}%{_bindir}/python3-debug
%endif
-# System Python: Link the executable to libexec
-# This is for backwards compatibility only and should be removed in Fedora 29
-%if %{without flatpackage}
-mkdir -p %{buildroot}%{_libexecdir}
-ln -s %{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
-%endif
-
# There's 2to3-X.X executable and 2to3 soft link to it.
# No reason to have both, so keep only 2to3 as an executable.
# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
@@ -1087,8 +1049,6 @@ CheckPython optimized
%{_bindir}/pydoc*
%{_bindir}/python3
%{_bindir}/pyvenv
-# Remove in Fedora 29:
-%{_libexecdir}/system-python
%else
%{_bindir}/pydoc%{pybasever}
%endif
commit 4e7015b15350c792ee08c610868d213ada26b5b9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jan 16 09:13:16 2019 +0100
Security fix for CVE-2019-5010
https://bugs.python.org/issue35746
https://bugzilla.redhat.com/show_bug.cgi?id=1666519
https://bugzilla.redhat.com/show_bug.cgi?id=1666522
diff --git a/00317-CVE-2019-5010.patch b/00317-CVE-2019-5010.patch
new file mode 100644
index 0000000..62e931e
--- /dev/null
+++ b/00317-CVE-2019-5010.patch
@@ -0,0 +1,111 @@
+From c660debb97f4f422255a82fef2d77804552c043a Mon Sep 17 00:00:00 2001
+From: Christian Heimes <christian(a)python.org>
+Date: Tue, 15 Jan 2019 18:16:30 +0100
+Subject: [PATCH] bpo-35746: Fix segfault in ssl's cert parser
+
+CVE-2019-5010, Fix a NULL pointer deref in ssl module. The cert parser did
+not handle CRL distribution points with empty DP or URI correctly. A
+malicious or buggy certificate can result into segfault.
+
+Signed-off-by: Christian Heimes <christian(a)python.org>
+---
+ Lib/test/talos-2019-0758.pem | 22 +++++++++++++++++++
+ Lib/test/test_ssl.py | 22 +++++++++++++++++++
+ .../2019-01-15-18-16-05.bpo-35746.nMSd0j.rst | 3 +++
+ Modules/_ssl.c | 4 ++++
+ 4 files changed, 51 insertions(+)
+ create mode 100644 Lib/test/talos-2019-0758.pem
+ create mode 100644 Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
+
+diff --git a/Lib/test/talos-2019-0758.pem b/Lib/test/talos-2019-0758.pem
+new file mode 100644
+index 000000000000..13b95a77fd8a
+--- /dev/null
++++ b/Lib/test/talos-2019-0758.pem
+@@ -0,0 +1,22 @@
++-----BEGIN CERTIFICATE-----
++MIIDqDCCApKgAwIBAgIBAjALBgkqhkiG9w0BAQswHzELMAkGA1UEBhMCVUsxEDAO
++BgNVBAMTB2NvZHktY2EwHhcNMTgwNjE4MTgwMDU4WhcNMjgwNjE0MTgwMDU4WjA7
++MQswCQYDVQQGEwJVSzEsMCoGA1UEAxMjY29kZW5vbWljb24tdm0tMi50ZXN0Lmxh
++bC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC63fGB
++J80A9Av1GB0bptslKRIUtJm8EeEu34HkDWbL6AJY0P8WfDtlXjlPaLqFa6sqH6ES
++V48prSm1ZUbDSVL8R6BYVYpOlK8/48xk4pGTgRzv69gf5SGtQLwHy8UPBKgjSZoD
++5a5k5wJXGswhKFFNqyyxqCvWmMnJWxXTt2XDCiWc4g4YAWi4O4+6SeeHVAV9rV7C
++1wxqjzKovVe2uZOHjKEzJbbIU6JBPb6TRfMdRdYOw98n1VXDcKVgdX2DuuqjCzHP
++WhU4Tw050M9NaK3eXp4Mh69VuiKoBGOLSOcS8reqHIU46Reg0hqeL8LIL6OhFHIF
++j7HR6V1X6F+BfRS/AgMBAAGjgdYwgdMwCQYDVR0TBAIwADAdBgNVHQ4EFgQUOktp
++HQjxDXXUg8prleY9jeLKeQ4wTwYDVR0jBEgwRoAUx6zgPygZ0ZErF9sPC4+5e2Io
++UU+hI6QhMB8xCzAJBgNVBAYTAlVLMRAwDgYDVQQDEwdjb2R5LWNhggkA1QEAuwb7
++2s0wCQYDVR0SBAIwADAuBgNVHREEJzAlgiNjb2Rlbm9taWNvbi12bS0yLnRlc3Qu
++bGFsLmNpc2NvLmNvbTAOBgNVHQ8BAf8EBAMCBaAwCwYDVR0fBAQwAjAAMAsGCSqG
++SIb3DQEBCwOCAQEAvqantx2yBlM11RoFiCfi+AfSblXPdrIrHvccepV4pYc/yO6p
++t1f2dxHQb8rWH3i6cWag/EgIZx+HJQvo0rgPY1BFJsX1WnYf1/znZpkUBGbVmlJr
++t/dW1gSkNS6sPsM0Q+7HPgEv8CPDNK5eo7vU2seE0iWOkxSyVUuiCEY9ZVGaLVit
++p0C78nZ35Pdv4I+1cosmHl28+es1WI22rrnmdBpH8J1eY6WvUw2xuZHLeNVN0TzV
++Q3qq53AaCWuLOD1AjESWuUCxMZTK9DPS4JKXTK8RLyDeqOvJGjsSWp3kL0y3GaQ+
++10T1rfkKJub2+m9A9duin1fn6tHc2wSvB7m3DA==
++-----END CERTIFICATE-----
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+index 7f6b93148f45..1fc657f4d867 100644
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -115,6 +115,7 @@ def data_file(*name):
+ BADKEY = data_file("badkey.pem")
+ NOKIACERT = data_file("nokia.pem")
+ NULLBYTECERT = data_file("nullbytecert.pem")
++TALOS_INVALID_CRLDP = data_file("talos-2019-0758.pem")
+
+ DHFILE = data_file("ffdh3072.pem")
+ BYTES_DHFILE = os.fsencode(DHFILE)
+@@ -348,6 +349,27 @@ def test_parse_cert(self):
+ self.assertEqual(p['crlDistributionPoints'],
+ ('http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl',))
+
++ def test_parse_cert_CVE_2019_5010(self):
++ p = ssl._ssl._test_decode_cert(TALOS_INVALID_CRLDP)
++ if support.verbose:
++ sys.stdout.write("\n" + pprint.pformat(p) + "\n")
++ self.assertEqual(
++ p,
++ {
++ 'issuer': (
++ (('countryName', 'UK'),), (('commonName', 'cody-ca'),)),
++ 'notAfter': 'Jun 14 18:00:58 2028 GMT',
++ 'notBefore': 'Jun 18 18:00:58 2018 GMT',
++ 'serialNumber': '02',
++ 'subject': ((('countryName', 'UK'),),
++ (('commonName',
++ 'codenomicon-vm-2.test.lal.cisco.com'),)),
++ 'subjectAltName': (
++ ('DNS', 'codenomicon-vm-2.test.lal.cisco.com'),),
++ 'version': 3
++ }
++ )
++
+ def test_parse_cert_CVE_2013_4238(self):
+ p = ssl._ssl._test_decode_cert(NULLBYTECERT)
+ if support.verbose:
+diff --git a/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
+new file mode 100644
+index 000000000000..dffe347eec84
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst
+@@ -0,0 +1,3 @@
++[CVE-2019-5010] Fix a NULL pointer deref in ssl module. The cert parser did
++not handle CRL distribution points with empty DP or URI correctly. A
++malicious or buggy certificate can result into segfault.
+diff --git a/Modules/_ssl.c b/Modules/_ssl.c
+index 4e3352d9e661..0e720e268d93 100644
+--- a/Modules/_ssl.c
++++ b/Modules/_ssl.c
+@@ -1515,6 +1515,10 @@ _get_crl_dp(X509 *certificate) {
+ STACK_OF(GENERAL_NAME) *gns;
+
+ dp = sk_DIST_POINT_value(dps, i);
++ if (dp->distpoint == NULL) {
++ /* Ignore empty DP value, CVE-2019-5010 */
++ continue;
++ }
+ gns = dp->distpoint->name.fullname;
+
+ for (j=0; j < sk_GENERAL_NAME_num(gns); j++) {
diff --git a/python3.spec b/python3.spec
index dba250b..3126463 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -305,6 +305,11 @@ Patch274: 00274-fix-arch-names.patch
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch
+# 00317 #
+# Security fix for CVE-2019-5010: Fix segfault in ssl's cert parser
+# Fixed upstream https://bugs.python.org/issue35746
+Patch317: 00317-CVE-2019-5010.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -640,6 +645,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch316 -p1
+%patch317 -p1
# Remove files that should be generated by the build
@@ -1555,6 +1561,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Jan 16 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-4
+- Security fix for CVE-2019-5010 (#1666519, #1666522)
+
* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.7.2-3
- Rebuilt for libcrypt.so.2 (#1666033)
commit 053863ab4146d8f26c0c8b7bb01015a7af29275e
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Mon Jan 14 18:53:46 2019 +0100
Rebuilt for libcrypt.so.2 (#1666033)
diff --git a/python3.spec b/python3.spec
index 6f9d923..dba250b 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -1555,6 +1555,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.7.2-3
+- Rebuilt for libcrypt.so.2 (#1666033)
+
* Fri Jan 04 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-2
- No longer revert upstream commit 3b699932e5ac3e7
- This was a dirty workaround for (#1644936)
commit 41f5904a99d5a024993b41ffcadacaa6e5a42ebf
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jan 4 23:52:11 2019 +0100
No longer revert upstream commit 3b699932e5ac3e7
This was a dirty workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1644936
diff --git a/00312-revert-bpo-6721.patch b/00312-revert-bpo-6721.patch
deleted file mode 100644
index c3350bf..0000000
--- a/00312-revert-bpo-6721.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 583bb07116505dcc73c0fc4aa3c1cf5074f3522d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
-Date: Fri, 2 Nov 2018 14:01:28 +0100
-Subject: [PATCH] Revert "bpo-6721: Hold logging locks across fork() (GH-4071)
- (#9291)"
-
-This reverts commit 3b699932e5ac3e76031bbb6d700fbea07492641d.
----
- Lib/logging/__init__.py | 50 ------------------------------
- Lib/test/test_logging.py | 67 ----------------------------------------
- 2 files changed, 117 deletions(-)
-
-diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
-index 3ad2cc38f6..53780cd600 100644
---- a/Lib/logging/__init__.py
-+++ b/Lib/logging/__init__.py
-@@ -225,55 +225,6 @@ def _releaseLock():
- if _lock:
- _lock.release()
-
--
--# Prevent a held logging lock from blocking a child from logging.
--
--if not hasattr(os, 'register_at_fork'): # Windows and friends.
-- def _register_at_fork_acquire_release(instance):
-- pass # no-op when os.register_at_fork does not exist.
--else: # The os.register_at_fork API exists
-- os.register_at_fork(before=_acquireLock,
-- after_in_child=_releaseLock,
-- after_in_parent=_releaseLock)
--
-- # A collection of instances with acquire and release methods (logging.Handler)
-- # to be called before and after fork. The weakref avoids us keeping discarded
-- # Handler instances alive forever in case an odd program creates and destroys
-- # many over its lifetime.
-- _at_fork_acquire_release_weakset = weakref.WeakSet()
--
--
-- def _register_at_fork_acquire_release(instance):
-- # We put the instance itself in a single WeakSet as we MUST have only
-- # one atomic weak ref. used by both before and after atfork calls to
-- # guarantee matched pairs of acquire and release calls.
-- _at_fork_acquire_release_weakset.add(instance)
--
--
-- def _at_fork_weak_calls(method_name):
-- for instance in _at_fork_acquire_release_weakset:
-- method = getattr(instance, method_name)
-- try:
-- method()
-- except Exception as err:
-- # Similar to what PyErr_WriteUnraisable does.
-- print("Ignoring exception from logging atfork", instance,
-- method_name, "method:", err, file=sys.stderr)
--
--
-- def _before_at_fork_weak_calls():
-- _at_fork_weak_calls('acquire')
--
--
-- def _after_at_fork_weak_calls():
-- _at_fork_weak_calls('release')
--
--
-- os.register_at_fork(before=_before_at_fork_weak_calls,
-- after_in_child=_after_at_fork_weak_calls,
-- after_in_parent=_after_at_fork_weak_calls)
--
--
- #---------------------------------------------------------------------------
- # The logging record
- #---------------------------------------------------------------------------
-@@ -844,7 +795,6 @@ class Handler(Filterer):
- Acquire a thread lock for serializing access to the underlying I/O.
- """
- self.lock = threading.RLock()
-- _register_at_fork_acquire_release(self)
-
- def acquire(self):
- """
-diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
-index 1ea2967f5b..5d5eba7357 100644
---- a/Lib/test/test_logging.py
-+++ b/Lib/test/test_logging.py
-@@ -35,7 +35,6 @@ import os
- import queue
- import random
- import re
--import signal
- import socket
- import struct
- import sys
-@@ -667,72 +666,6 @@ class HandlerTest(BaseTest):
- if os.path.exists(fn):
- os.unlink(fn)
-
-- # The implementation relies on os.register_at_fork existing, but we test
-- # based on os.fork existing because that is what users and this test use.
-- # This helps ensure that when fork exists (the important concept) that the
-- # register_at_fork mechanism is also present and used.
-- @unittest.skipIf(not hasattr(os, 'fork'), 'Test requires os.fork().')
-- def test_post_fork_child_no_deadlock(self):
-- """Ensure forked child logging locks are not held; bpo-6721."""
-- refed_h = logging.Handler()
-- refed_h.name = 'because we need at least one for this test'
-- self.assertGreater(len(logging._handlers), 0)
--
-- locks_held__ready_to_fork = threading.Event()
-- fork_happened__release_locks_and_end_thread = threading.Event()
--
-- def lock_holder_thread_fn():
-- logging._acquireLock()
-- try:
-- refed_h.acquire()
-- try:
-- # Tell the main thread to do the fork.
-- locks_held__ready_to_fork.set()
--
-- # If the deadlock bug exists, the fork will happen
-- # without dealing with the locks we hold, deadlocking
-- # the child.
--
-- # Wait for a successful fork or an unreasonable amount of
-- # time before releasing our locks. To avoid a timing based
-- # test we'd need communication from os.fork() as to when it
-- # has actually happened. Given this is a regression test
-- # for a fixed issue, potentially less reliably detecting
-- # regression via timing is acceptable for simplicity.
-- # The test will always take at least this long. :(
-- fork_happened__release_locks_and_end_thread.wait(0.5)
-- finally:
-- refed_h.release()
-- finally:
-- logging._releaseLock()
--
-- lock_holder_thread = threading.Thread(
-- target=lock_holder_thread_fn,
-- name='test_post_fork_child_no_deadlock lock holder')
-- lock_holder_thread.start()
--
-- locks_held__ready_to_fork.wait()
-- pid = os.fork()
-- if pid == 0: # Child.
-- logging.error(r'Child process did not deadlock. \o/')
-- os._exit(0)
-- else: # Parent.
-- fork_happened__release_locks_and_end_thread.set()
-- lock_holder_thread.join()
-- start_time = time.monotonic()
-- while True:
-- waited_pid, status = os.waitpid(pid, os.WNOHANG)
-- if waited_pid == pid:
-- break # child process exited.
-- if time.monotonic() - start_time > 7:
-- break # so long? implies child deadlock.
-- time.sleep(0.05)
-- if waited_pid != pid:
-- os.kill(pid, signal.SIGKILL)
-- waited_pid, status = os.waitpid(pid, 0)
-- self.fail("child process deadlocked.")
-- self.assertEqual(status, 0, msg="child process error")
--
-
- class BadStream(object):
- def write(self, data):
---
-2.19.1
-
diff --git a/python3.spec b/python3.spec
index 7a730f8..6f9d923 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -300,13 +300,6 @@ Patch251: 00251-change-user-install-location.patch
# Upstream uses Debian-style architecture naming. Change to match Fedora.
Patch274: 00274-fix-arch-names.patch
-# 00312 #
-# Revert "bpo-6721: Hold logging locks across fork() 3b699932e5ac3e7
-# This is a TEMPORARY WORKAROUND for an urgent Fedora bug
-# TODO Investigate properly and get a real fix (here or in anaconda)!
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1644936
-Patch312: 00312-revert-bpo-6721.patch
-
# 00316 #
# We remove the exe files from distutil's bdist_wininst
# So we mark the command as unsupported - and the tests are skipped
@@ -646,7 +639,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch205 -p1
%patch251 -p1
%patch274 -p1
-%patch312 -p1
%patch316 -p1
@@ -1563,6 +1555,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Jan 04 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-2
+- No longer revert upstream commit 3b699932e5ac3e7
+- This was a dirty workaround for (#1644936)
+
* Tue Dec 25 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-1
- Update to 3.7.2
commit 1385d6e65a65c4820b5778218da41e1beddb9484
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Dec 12 07:58:52 2018 +0100
Update to 3.7.2
Already upstreamed patches: 313, 315
Patches rebased: 111, 189 (new pip/setuptools versions only)
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
index 5bfff87..4cce364 100644
--- a/00111-no-static-lib.patch
+++ b/00111-no-static-lib.patch
@@ -1,17 +1,17 @@
diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 0eddd13..7ed4f3c 100644
+index 0db0dd0..bd8f769 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -565,7 +565,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
+@@ -574,7 +574,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir)
# Build the interpreter
-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
+$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+ $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
platform: $(BUILDPYTHON) pybuilddir.txt
-@@ -609,12 +609,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
+@@ -622,12 +622,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
_TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
@@ -24,16 +24,16 @@ index 0eddd13..7ed4f3c 100644
libpython$(LDVERSION).so: $(LIBRARY_OBJS)
if test $(INSTSONAME) != $(LDLIBRARY); then \
$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-@@ -702,7 +696,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
+@@ -715,7 +709,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
echo "-----------------------------------------------"; \
fi
-Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
+Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+ $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
############################################################################
-@@ -1460,17 +1454,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
+@@ -1483,17 +1477,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
else true; \
fi; \
done
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
index cc2719b..1afdab1 100644
--- a/00189-use-rpm-wheels.patch
+++ b/00189-use-rpm-wheels.patch
@@ -16,9 +16,9 @@ index 4748ba4..fc02255 100644
+_WHEEL_DIR = "/usr/share/python-wheels/"
--_SETUPTOOLS_VERSION = "39.0.1"
+-_SETUPTOOLS_VERSION = "40.6.2"
--_PIP_VERSION = "10.0.1"
+-_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"
diff --git a/00313-cprofile-sort-option.patch b/00313-cprofile-sort-option.patch
deleted file mode 100644
index fe427e5..0000000
--- a/00313-cprofile-sort-option.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-commit c36e8721f276e7cc09cecdb9c04783630f0ba82a
-Author: Victor Stinner <vstinner(a)redhat.com>
-Date: Wed Nov 7 00:34:22 2018 +0100
-
- bpo-23420: Verify the value of '-s' when execute the CLI of cProfile
-
- Verify the value for the parameter '-s' of the cProfile CLI. Patch by Robert
- Kuska.
-
- Resolves: rhbz#1160640
-
-diff --git a/Lib/cProfile.py b/Lib/cProfile.py
-index c044be8..f6e423b 100755
---- a/Lib/cProfile.py
-+++ b/Lib/cProfile.py
-@@ -124,6 +124,7 @@ def main():
- import os
- import sys
- import runpy
-+ import pstats
- from optparse import OptionParser
- usage = "cProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ..."
- parser = OptionParser(usage=usage)
-@@ -132,7 +133,8 @@ def main():
- help="Save stats to <outfile>", default=None)
- parser.add_option('-s', '--sort', dest="sort",
- help="Sort order when printing to stdout, based on pstats.Stats class",
-- default=-1)
-+ default=-1,
-+ choices=sorted(pstats.Stats.sort_arg_dict_default))
- parser.add_option('-m', dest="module", action="store_true",
- help="Profile a library module", default=False)
-
-diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py
-index 1430d22..5c4ec5b 100644
---- a/Lib/test/test_cprofile.py
-+++ b/Lib/test/test_cprofile.py
-@@ -2,6 +2,7 @@
-
- import sys
- from test.support import run_unittest, TESTFN, unlink
-+import unittest
-
- # rip off all interesting stuff from test_profile
- import cProfile
-@@ -50,8 +51,14 @@ class CProfileTest(ProfileTest):
- assert_python_ok('-m', 'cProfile', '-m', 'timeit', '-n', '1')
-
-
-+class TestCommandLine(unittest.TestCase):
-+ def test_sort(self):
-+ rc, out, err = assert_python_failure('-m', 'cProfile', '-s', 'demo')
-+ self.assertGreater(rc, 0)
-+ self.assertIn(b"option -s: invalid choice: 'demo'", err)
-+
- def test_main():
-- run_unittest(CProfileTest)
-+ run_unittest(CProfileTest, TestCommandLine)
-
- def main():
- if '-r' not in sys.argv:
diff --git a/00315-test_email-mktime.patch b/00315-test_email-mktime.patch
deleted file mode 100644
index aacdcd6..0000000
--- a/00315-test_email-mktime.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0165caf04ef9c615c8b86dd16f7c201ca7a0befa Mon Sep 17 00:00:00 2001
-From: Victor Stinner <vstinner(a)redhat.com>
-Date: Tue, 27 Nov 2018 12:40:50 +0100
-Subject: [PATCH] bpo-35317: Fix mktime() error in test_email (GH-10721)
-
-Fix mktime() overflow error in test_email: run
-test_localtime_daylight_true_dst_true() and
-test_localtime_daylight_false_dst_true() with a specific timezone.
-(cherry picked from commit cfaafda8e3e19764682abb4bd4c574accb784c42)
-
-Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
----
- Lib/test/test_email/test_utils.py | 2 ++
- .../NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst | 3 +++
- 2 files changed, 5 insertions(+)
- create mode 100644 Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
-
-diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py
-index 6dcb3bbe7aab..4e3c3f3a195f 100644
---- a/Lib/test/test_email/test_utils.py
-+++ b/Lib/test/test_email/test_utils.py
-@@ -75,6 +75,7 @@ def test_localtime_daylight_false_dst_false(self):
- t2 = utils.localtime(t1)
- self.assertEqual(t1, t2)
-
-+ @test.support.run_with_tz('Europe/Minsk')
- def test_localtime_daylight_true_dst_true(self):
- test.support.patch(self, time, 'daylight', True)
- t0 = datetime.datetime(2012, 3, 12, 1, 1)
-@@ -82,6 +83,7 @@ def test_localtime_daylight_true_dst_true(self):
- t2 = utils.localtime(t1)
- self.assertEqual(t1, t2)
-
-+ @test.support.run_with_tz('Europe/Minsk')
- def test_localtime_daylight_false_dst_true(self):
- test.support.patch(self, time, 'daylight', False)
- t0 = datetime.datetime(2012, 3, 12, 1, 1)
-diff --git a/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
-new file mode 100644
-index 000000000000..73a30f71927f
---- /dev/null
-+++ b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
-@@ -0,0 +1,3 @@
-+Fix ``mktime()`` overflow error in ``test_email``: run
-+``test_localtime_daylight_true_dst_true()`` and
-+``test_localtime_daylight_false_dst_true()`` with a specific timezone.
diff --git a/python3.spec b/python3.spec
index 2e3569c..7a730f8 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.1
-Release: 5%{?dist}
+Version: %{pybasever}.2
+Release: 1%{?dist}
License: Python
@@ -307,18 +307,6 @@ Patch274: 00274-fix-arch-names.patch
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1644936
Patch312: 00312-revert-bpo-6721.patch
-# 00313 #
-# Verify the value of '-s' when execute the CLI of cProfile
-# http://bugs.python.org/issue23420
-# https://bugzilla.redhat.com/show_bug.cgi?id=1160640
-Patch313: 00313-cprofile-sort-option.patch
-
-# 00315 #
-# Fix mktime() error in test_email
-# http://bugs.python.org/issue35317
-# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
-Patch315: 00315-test_email-mktime.patch
-
# 00316 #
# We remove the exe files from distutil's bdist_wininst
# So we mark the command as unsupported - and the tests are skipped
@@ -427,8 +415,8 @@ Requires: gdbm-libs%{?_isa} >= 1:1.13
Requires: python-setuptools-wheel
Requires: python-pip-wheel
%else
-Provides: bundled(python3-pip) = 10.0.1
-Provides: bundled(python3-setuptools) = 39.0.1
+Provides: bundled(python3-pip) = 18.1
+Provides: bundled(python3-setuptools) = 40.6.2
%endif
# There are files in the standard library that have python shebang.
@@ -605,8 +593,8 @@ Requires: redhat-rpm-config
Requires: python-setuptools-wheel
Requires: python-pip-wheel
%else
-Provides: bundled(python3-pip) = 10.0.1
-Provides: bundled(python3-setuptools) = 39.0.1
+Provides: bundled(python3-pip) = 18.1
+Provides: bundled(python3-setuptools) = 40.6.2
%endif
# The description for the flat package
@@ -659,8 +647,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch312 -p1
-%patch313 -p1
-%patch315 -p1
%patch316 -p1
@@ -1356,6 +1342,7 @@ CheckPython optimized
%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%endif
%{_includedir}/python%{LDVERSION_optimized}/*.h
+%{_includedir}/python%{LDVERSION_optimized}/internal/
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
%if %{without flatpackage}
@@ -1576,6 +1563,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Dec 25 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.2-1
+- Update to 3.7.2
+
* Fri Dec 07 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-5
- Make sure we don't ship any exe files (not needed an prebuilt)
diff --git a/sources b/sources
index 4d40818..64dca46 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.1.tar.xz) = 3eb62a0127609b14420a47442727702f396519c649625aca59883d04f4c02e5f37ba1d58ac8e93c49d14a63f17ae7909315c33fc813293dbcdb6127f39a148b0
+SHA512 (Python-3.7.2.tar.xz) = 6cd2d6d8455558783b99d55985cd7b22d67b98f41a09b4fdd96f680a630a4e035220d2b903f8c59ed513aa5ffe6730fa947ddb55bb72ce36f0e945ef8af5d971
commit 15d5b5cfc53df90ea4d499bfdc405d1ada88cc26
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Dec 20 12:46:25 2018 +0100
Mark bdist_wininst unsupported to skip the tests
See also https://src.fedoraproject.org/rpms/python3/pull-request/74
diff --git a/00316-mark-bdist_wininst-unsupported.patch b/00316-mark-bdist_wininst-unsupported.patch
new file mode 100644
index 0000000..a6a3faf
--- /dev/null
+++ b/00316-mark-bdist_wininst-unsupported.patch
@@ -0,0 +1,13 @@
+diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py
+index 0871a4f..8796b68 100644
+--- a/Lib/distutils/command/bdist_wininst.py
++++ b/Lib/distutils/command/bdist_wininst.py
+@@ -12,6 +12,8 @@ from distutils.sysconfig import get_python_version
+ from distutils import log
+
+ class bdist_wininst(Command):
++ # Marker for tests that we have the unsupported bdist_wininst
++ _unsupported = True
+
+ description = "create an executable installer for MS Windows"
+
diff --git a/python3.spec b/python3.spec
index 6ba9805..2e3569c 100644
--- a/python3.spec
+++ b/python3.spec
@@ -319,6 +319,11 @@ Patch313: 00313-cprofile-sort-option.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
Patch315: 00315-test_email-mktime.patch
+# 00316 #
+# We remove the exe files from distutil's bdist_wininst
+# So we mark the command as unsupported - and the tests are skipped
+Patch316: 00316-mark-bdist_wininst-unsupported.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -656,6 +661,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch312 -p1
%patch313 -p1
%patch315 -p1
+%patch316 -p1
# Remove files that should be generated by the build
commit 0e0fe4ff87c90aa88ad57b5456a7229c0051c0df
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Dec 18 15:41:35 2018 +0100
Remove patches fixed upstream
Remove patches:
* 00291-setup-Link-ctypes-against-dl-explicitly.patch
Fixed upstream: https://bugs.python.org/issue32647
* 00292-restore-PyExc_RecursionErrorInst-symbol.patch
Fixed upstream: https://bugs.python.org/issue30697
* 00294-define-TLS-cipher-suite-on-build-time.patch
Fixed upstream: https://bugs.python.org/issue31429
* 00301-pathfix-add-n-option-for-no-backup.patch
Fixed upstream: https://bugs.python.org/issue32885
* 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
Fixed upstream: https://bugs.python.org/issue33329
Note: the ctypes issue has been fixed differently (better fix)
upstream.
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
deleted file mode 100644
index 4bf4801..0000000
--- a/00291-setup-Link-ctypes-against-dl-explicitly.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From aae2ef0bace0e38f4ee5aaa4642aa32450a84216 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
-Date: Tue, 23 Jan 2018 14:43:43 +0100
-Subject: [PATCH] setup: Link ctypes against dl explicitly
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index c23628a2a9..9e40bb53e6 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1935,7 +1935,7 @@ class PyBuildExt(build_ext):
- self.use_system_libffi = False
- include_dirs = []
- extra_compile_args = []
-- extra_link_args = []
-+ extra_link_args = ['-ldl']
- sources = ['_ctypes/_ctypes.c',
- '_ctypes/callbacks.c',
- '_ctypes/callproc.c',
---
-2.16.1
-
diff --git a/00292-restore-PyExc_RecursionErrorInst-symbol.patch b/00292-restore-PyExc_RecursionErrorInst-symbol.patch
deleted file mode 100644
index 89671f8..0000000
--- a/00292-restore-PyExc_RecursionErrorInst-symbol.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
-index 847b50140a6..570dc3ed6fe 100644
---- a/Doc/whatsnew/3.6.rst
-+++ b/Doc/whatsnew/3.6.rst
-@@ -1852,10 +1852,10 @@ Build and C API Changes
- * The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder`
- functions will now accept :term:`path-like objects <path-like object>`.
-
--* The ``PyExc_RecursionErrorInst`` singleton that was part of the public API
-- has been removed as its members being never cleared may cause a segfault
-- during finalization of the interpreter. Contributed by Xavier de Gaye in
-- :issue:`22898` and :issue:`30697`.
-+* The ``PyExc_RecursionErrorInst`` singleton is not used anymore as its members
-+ being never cleared may cause a segfault during finalization of the
-+ interpreter. Contributed by Xavier de Gaye in :issue:`22898` and
-+ :issue:`30697`.
-
-
- Other Improvements
-diff --git a/Include/pyerrors.h b/Include/pyerrors.h
-index c28c1373f82..8c1dbc5047b 100644
---- a/Include/pyerrors.h
-+++ b/Include/pyerrors.h
-@@ -219,6 +219,8 @@ PyAPI_DATA(PyObject *) PyExc_IOError;
- PyAPI_DATA(PyObject *) PyExc_WindowsError;
- #endif
-
-+PyAPI_DATA(PyObject *) PyExc_RecursionErrorInst;
-+
- /* Predefined warning categories */
- PyAPI_DATA(PyObject *) PyExc_Warning;
- PyAPI_DATA(PyObject *) PyExc_UserWarning;
-diff --git a/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst
-new file mode 100644
-index 00000000000..28f74ad4f30
---- /dev/null
-+++ b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst
-@@ -0,0 +1 @@
-+Restore PyExc_RecursionErrorInst in 3.6
-diff --git a/Objects/exceptions.c b/Objects/exceptions.c
-index df4899372a5..271e293e325 100644
---- a/Objects/exceptions.c
-+++ b/Objects/exceptions.c
-@@ -2430,6 +2430,12 @@ SimpleExtendsException(PyExc_Warning, ResourceWarning,
-
-
-
-+/* Pre-computed RecursionError instance for when recursion depth is reached.
-+ Meant to be used when normalizing the exception for exceeding the recursion
-+ depth will cause its own infinite recursion.
-+*/
-+PyObject *PyExc_RecursionErrorInst = NULL;
-+
- #define PRE_INIT(TYPE) \
- if (!(_PyExc_ ## TYPE.tp_flags & Py_TPFLAGS_READY)) { \
- if (PyType_Ready(&_PyExc_ ## TYPE) < 0) \
-@@ -2691,11 +2697,37 @@ _PyExc_Init(PyObject *bltinmod)
- ADD_ERRNO(TimeoutError, ETIMEDOUT);
-
- preallocate_memerrors();
-+
-+ if (!PyExc_RecursionErrorInst) {
-+ PyExc_RecursionErrorInst = BaseException_new(&_PyExc_RecursionError, NULL, NULL);
-+ if (!PyExc_RecursionErrorInst)
-+ Py_FatalError("Cannot pre-allocate RecursionError instance for "
-+ "recursion errors");
-+ else {
-+ PyBaseExceptionObject *err_inst =
-+ (PyBaseExceptionObject *)PyExc_RecursionErrorInst;
-+ PyObject *args_tuple;
-+ PyObject *exc_message;
-+ exc_message = PyUnicode_FromString("maximum recursion depth exceeded");
-+ if (!exc_message)
-+ Py_FatalError("cannot allocate argument for RecursionError "
-+ "pre-allocation");
-+ args_tuple = PyTuple_Pack(1, exc_message);
-+ if (!args_tuple)
-+ Py_FatalError("cannot allocate tuple for RecursionError "
-+ "pre-allocation");
-+ Py_DECREF(exc_message);
-+ if (BaseException_init(err_inst, args_tuple, NULL))
-+ Py_FatalError("init of pre-allocated RecursionError failed");
-+ Py_DECREF(args_tuple);
-+ }
-+ }
- }
-
- void
- _PyExc_Fini(void)
- {
-+ Py_CLEAR(PyExc_RecursionErrorInst);
- free_preallocated_memerrors();
- Py_CLEAR(errnomap);
- }
-diff --git a/PC/python3.def b/PC/python3.def
-index 4fc4a6814ee..ff70718fc37 100644
---- a/PC/python3.def
-+++ b/PC/python3.def
-@@ -224,6 +224,7 @@ EXPORTS
- PyExc_PermissionError=python36.PyExc_PermissionError DATA
- PyExc_ProcessLookupError=python36.PyExc_ProcessLookupError DATA
- PyExc_RecursionError=python36.PyExc_RecursionError DATA
-+ PyExc_RecursionErrorInst=python36.PyExc_RecursionErrorInst DATA
- PyExc_ReferenceError=python36.PyExc_ReferenceError DATA
- PyExc_ResourceWarning=python36.PyExc_ResourceWarning DATA
- PyExc_RuntimeError=python36.PyExc_RuntimeError DATA
diff --git a/00294-define-TLS-cipher-suite-on-build-time.patch b/00294-define-TLS-cipher-suite-on-build-time.patch
deleted file mode 100644
index 1aa348c..0000000
--- a/00294-define-TLS-cipher-suite-on-build-time.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-diff --git a/Lib/ssl.py b/Lib/ssl.py
-index 1f3a31a..b54a684 100644
---- a/Lib/ssl.py
-+++ b/Lib/ssl.py
-@@ -116,6 +116,7 @@ except ImportError:
-
-
- from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN, HAS_TLSv1_3
-+from _ssl import _DEFAULT_CIPHERS
- from _ssl import _OPENSSL_API_VERSION
-
-
-@@ -174,48 +175,7 @@ else:
- CHANNEL_BINDING_TYPES = []
-
-
--# Disable weak or insecure ciphers by default
--# (OpenSSL's default setting is 'DEFAULT:!aNULL:!eNULL')
--# Enable a better set of ciphers by default
--# This list has been explicitly chosen to:
--# * TLS 1.3 ChaCha20 and AES-GCM cipher suites
--# * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
--# * Prefer ECDHE over DHE for better performance
--# * Prefer AEAD over CBC for better performance and security
--# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI
--# (ChaCha20 needs OpenSSL 1.1.0 or patched 1.0.2)
--# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better
--# performance and security
--# * Then Use HIGH cipher suites as a fallback
--# * Disable NULL authentication, NULL encryption, 3DES and MD5 MACs
--# for security reasons
--_DEFAULT_CIPHERS = (
-- 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:'
-- 'TLS13-AES-128-GCM-SHA256:'
-- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
-- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
-- '!aNULL:!eNULL:!MD5:!3DES'
-- )
--
--# Restricted and more secure ciphers for the server side
--# This list has been explicitly chosen to:
--# * TLS 1.3 ChaCha20 and AES-GCM cipher suites
--# * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
--# * Prefer ECDHE over DHE for better performance
--# * Prefer AEAD over CBC for better performance and security
--# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI
--# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better
--# performance and security
--# * Then Use HIGH cipher suites as a fallback
--# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, RC4, and
--# 3DES for security reasons
--_RESTRICTED_SERVER_CIPHERS = (
-- 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:'
-- 'TLS13-AES-128-GCM-SHA256:'
-- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
-- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
-- '!aNULL:!eNULL:!MD5:!DSS:!RC4:!3DES'
--)
-+_RESTRICTED_SERVER_CIPHERS = _DEFAULT_CIPHERS
-
-
- class CertificateError(ValueError):
-@@ -389,8 +349,6 @@ class SSLContext(_SSLContext):
-
- def __new__(cls, protocol=PROTOCOL_TLS, *args, **kwargs):
- self = _SSLContext.__new__(cls, protocol)
-- if protocol != _SSLv2_IF_EXISTS:
-- self.set_ciphers(_DEFAULT_CIPHERS)
- return self
-
- def __init__(self, protocol=PROTOCOL_TLS):
-@@ -505,8 +463,6 @@ def create_default_context(purpose=Purpose.SERVER_AUTH, *, cafile=None,
- # verify certs and host name in client mode
- context.verify_mode = CERT_REQUIRED
- context.check_hostname = True
-- elif purpose == Purpose.CLIENT_AUTH:
-- context.set_ciphers(_RESTRICTED_SERVER_CIPHERS)
-
- if cafile or capath or cadata:
- context.load_verify_locations(cafile, capath, cadata)
-diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
-index 54644e1..799100c 100644
---- a/Lib/test/test_ssl.py
-+++ b/Lib/test/test_ssl.py
-@@ -18,6 +18,7 @@ import asyncore
- import weakref
- import platform
- import functools
-+import sysconfig
- try:
- import ctypes
- except ImportError:
-@@ -36,7 +37,7 @@ PROTOCOLS = sorted(ssl._PROTOCOL_NAMES)
- HOST = support.HOST
- IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
- IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
--
-+PY_SSL_DEFAULT_CIPHERS = sysconfig.get_config_var('PY_SSL_DEFAULT_CIPHERS')
-
- def data_file(*name):
- return os.path.join(os.path.dirname(__file__), *name)
-@@ -889,6 +890,19 @@ class ContextTests(unittest.TestCase):
- with self.assertRaisesRegex(ssl.SSLError, "No cipher can be selected"):
- ctx.set_ciphers("^$:,;?*'dorothyx")
-
-+ @unittest.skipUnless(PY_SSL_DEFAULT_CIPHERS == 1,
-+ "Test applies only to Python default ciphers")
-+ def test_python_ciphers(self):
-+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
-+ ciphers = ctx.get_ciphers()
-+ for suite in ciphers:
-+ name = suite['name']
-+ self.assertNotIn("PSK", name)
-+ self.assertNotIn("SRP", name)
-+ self.assertNotIn("MD5", name)
-+ self.assertNotIn("RC4", name)
-+ self.assertNotIn("3DES", name)
-+
- @unittest.skipIf(ssl.OPENSSL_VERSION_INFO < (1, 0, 2, 0, 0), 'OpenSSL too old')
- def test_get_ciphers(self):
- ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
-diff --git a/Modules/_ssl.c b/Modules/_ssl.c
-index df8c6a7..e23a569 100644
---- a/Modules/_ssl.c
-+++ b/Modules/_ssl.c
-@@ -206,6 +206,31 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
-
- #endif /* OpenSSL < 1.1.0 or LibreSSL */
-
-+/* Default cipher suites */
-+#ifndef PY_SSL_DEFAULT_CIPHERS
-+#define PY_SSL_DEFAULT_CIPHERS 1
-+#endif
-+
-+#if PY_SSL_DEFAULT_CIPHERS == 0
-+ #ifndef PY_SSL_DEFAULT_CIPHER_STRING
-+ #error "Py_SSL_DEFAULT_CIPHERS 0 needs Py_SSL_DEFAULT_CIPHER_STRING"
-+ #endif
-+#elif PY_SSL_DEFAULT_CIPHERS == 1
-+/* Python custom selection of sensible ciper suites
-+ * DEFAULT: OpenSSL's default cipher list. Since 1.0.2 the list is in sensible order.
-+ * !aNULL:!eNULL: really no NULL ciphers
-+ * !MD5:!3DES:!DES:!RC4:!IDEA:!SEED: no weak or broken algorithms on old OpenSSL versions.
-+ * !aDSS: no authentication with discrete logarithm DSA algorithm
-+ * !SRP:!PSK: no secure remote password or pre-shared key authentication
-+ */
-+ #define PY_SSL_DEFAULT_CIPHER_STRING "DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK"
-+#elif PY_SSL_DEFAULT_CIPHERS == 2
-+/* Ignored in SSLContext constructor, only used to as _ssl.DEFAULT_CIPHER_STRING */
-+ #define PY_SSL_DEFAULT_CIPHER_STRING SSL_DEFAULT_CIPHER_LIST
-+#else
-+ #error "Unsupported PY_SSL_DEFAULT_CIPHERS"
-+#endif
-+
-
- enum py_ssl_error {
- /* these mirror ssl.h */
-@@ -2739,7 +2764,12 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
- /* A bare minimum cipher list without completely broken cipher suites.
- * It's far from perfect but gives users a better head start. */
- if (proto_version != PY_SSL_VERSION_SSL2) {
-- result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL:!MD5");
-+#if PY_SSL_DEFAULT_CIPHERS == 2
-+ /* stick to OpenSSL's default settings */
-+ result = 1;
-+#else
-+ result = SSL_CTX_set_cipher_list(ctx, PY_SSL_DEFAULT_CIPHER_STRING);
-+#endif
- } else {
- /* SSLv2 needs MD5 */
- result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL");
-@@ -5279,6 +5309,9 @@ PyInit__ssl(void)
- (PyObject *)&PySSLSession_Type) != 0)
- return NULL;
-
-+ PyModule_AddStringConstant(m, "_DEFAULT_CIPHERS",
-+ PY_SSL_DEFAULT_CIPHER_STRING);
-+
- PyModule_AddIntConstant(m, "SSL_ERROR_ZERO_RETURN",
- PY_SSL_ERROR_ZERO_RETURN);
- PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ",
-diff --git a/configure.ac b/configure.ac
-index 7ea62f8..4b42393 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -5555,6 +5555,42 @@ if test "$have_getrandom" = yes; then
- [Define to 1 if the getrandom() function is available])
- fi
-
-+# ssl module default cipher suite string
-+AH_TEMPLATE(PY_SSL_DEFAULT_CIPHERS,
-+ [Default cipher suites list for ssl module.
-+ 1: Python's preferred selection, 2: leave OpenSSL defaults untouched, 0: custom string])
-+AH_TEMPLATE(PY_SSL_DEFAULT_CIPHER_STRING,
-+ [Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0]
-+)
-+AC_MSG_CHECKING(for --with-ssl-default-suites)
-+AC_ARG_WITH(ssl-default-suites,
-+ AS_HELP_STRING([--with-ssl-default-suites=@<:@python|openssl|STRING@:>@],
-+ [Override default cipher suites string,
-+ python: use Python's preferred selection (default),
-+ openssl: leave OpenSSL's defaults untouched,
-+ STRING: use a custom string,
-+ PROTOCOL_SSLv2 ignores the setting]),
-+[
-+AC_MSG_RESULT($withval)
-+case "$withval" in
-+ python)
-+ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 1)
-+ ;;
-+ openssl)
-+ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 2)
-+ ;;
-+ *)
-+ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 0)
-+ AC_DEFINE_UNQUOTED(PY_SSL_DEFAULT_CIPHER_STRING, "$withval")
-+ ;;
-+esac
-+],
-+[
-+AC_MSG_RESULT(python)
-+AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 1)
-+])
-+
-+
- # generate output files
- AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh)
- AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
diff --git a/00301-pathfix-add-n-option-for-no-backup.patch b/00301-pathfix-add-n-option-for-no-backup.patch
deleted file mode 100644
index 350fe97..0000000
--- a/00301-pathfix-add-n-option-for-no-backup.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5affd5c29eb1493cb31ef3cfdde15538ac134689 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
-Date: Tue, 13 Mar 2018 10:56:43 +0100
-Subject: [PATCH] bpo-32885: Tools/scripts/pathfix.py: Add -n option for no
- backup~ (#5772)
-
-Creating backup files with ~ suffix can be undesirable in some environment,
-such as when building RPM packages. Instead of requiring the user to remove
-those files manually, option -n was added, that simply disables this feature.
-
--n was selected because 2to3 has the same option with this behavior.
----
- Misc/ACKS | 1 +
- .../2018-02-20-12-16-47.bpo-32885.dL5x7C.rst | 2 ++
- Tools/scripts/pathfix.py | 28 +++++++++++++++-------
- 3 files changed, 23 insertions(+), 8 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
-
-diff --git a/Misc/ACKS b/Misc/ACKS
-index d8179c8b03ab..d752d8a35434 100644
---- a/Misc/ACKS
-+++ b/Misc/ACKS
-@@ -687,6 +687,7 @@ Ken Howard
- Brad Howes
- Mike Hoy
- Ben Hoyt
-+Miro Hronok
- Chiu-Hsiang Hsu
- Chih-Hao Huang
- Christian Hudon
-diff --git a/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
-new file mode 100644
-index 000000000000..e003e1d84fd0
---- /dev/null
-+++ b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
-@@ -0,0 +1,2 @@
-+Add an ``-n`` flag for ``Tools/scripts/pathfix.py`` to disbale automatic
-+backup creation (files with ``~`` suffix).
-diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py
-index 562bbc737812..c5bf984306a3 100755
---- a/Tools/scripts/pathfix.py
-+++ b/Tools/scripts/pathfix.py
-@@ -7,8 +7,9 @@
- # Directories are searched recursively for files whose name looks
- # like a python module.
- # Symbolic links are always ignored (except as explicit directory
--# arguments). Of course, the original file is kept as a back-up
--# (with a "~" attached to its name).
-+# arguments).
-+# The original file is kept as a back-up (with a "~" attached to its name),
-+# -n flag can be used to disable this.
- #
- # Undoubtedly you can do this using find and sed or perl, but this is
- # a nice example of Python code that recurses down a directory tree
-@@ -31,14 +32,17 @@
-
- new_interpreter = None
- preserve_timestamps = False
-+create_backup = True
-+
-
- def main():
- global new_interpreter
- global preserve_timestamps
-- usage = ('usage: %s -i /interpreter -p file-or-directory ...\n' %
-+ global create_backup
-+ usage = ('usage: %s -i /interpreter -p -n file-or-directory ...\n' %
- sys.argv[0])
- try:
-- opts, args = getopt.getopt(sys.argv[1:], 'i:p')
-+ opts, args = getopt.getopt(sys.argv[1:], 'i:pn')
- except getopt.error as msg:
- err(str(msg) + '\n')
- err(usage)
-@@ -48,6 +52,8 @@ def main():
- new_interpreter = a.encode()
- if o == '-p':
- preserve_timestamps = True
-+ if o == '-n':
-+ create_backup = False
- if not new_interpreter or not new_interpreter.startswith(b'/') or \
- not args:
- err('-i option or file-or-directory missing\n')
-@@ -134,10 +140,16 @@ def fix(filename):
- except OSError as msg:
- err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
- # Then make a backup of the original file as filename~
-- try:
-- os.rename(filename, filename + '~')
-- except OSError as msg:
-- err('%s: warning: backup failed (%r)\n' % (filename, msg))
-+ if create_backup:
-+ try:
-+ os.rename(filename, filename + '~')
-+ except OSError as msg:
-+ err('%s: warning: backup failed (%r)\n' % (filename, msg))
-+ else:
-+ try:
-+ os.remove(filename)
-+ except OSError as msg:
-+ err('%s: warning: removing failed (%r)\n' % (filename, msg))
- # Now move the temp file to the original file
- try:
- os.rename(tempname, filename)
diff --git a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
deleted file mode 100644
index 965792a..0000000
--- a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a3febe3cba14b89885f42ca2f0224096a52885f6 Mon Sep 17 00:00:00 2001
-From: Antoine Pitrou <antoine(a)python.org>
-Date: Mon, 23 Apr 2018 13:19:42 +0200
-Subject: [PATCH] bpo-33329: Fix multiprocessing regression on newer glibcs
-
-Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some
-reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom
-is commonly used to select all signals for blocking with `pthread_sigmask`.
-So we ignore the sigaddset() return value until we expose sigfillset()
-to provide a better idiom.
----
- .../next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst | 1 +
- Modules/signalmodule.c | 14 ++++++++------
- 2 files changed, 9 insertions(+), 6 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-
-diff --git a/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-new file mode 100644
-index 000000000000..d1a4e56d04b9
---- /dev/null
-+++ b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-@@ -0,0 +1 @@
-+Fix multiprocessing regression on newer glibcs
-diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
-index 791616014384..35fd87e2d1e7 100644
---- a/Modules/signalmodule.c
-+++ b/Modules/signalmodule.c
-@@ -819,7 +819,6 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
- int result = -1;
- PyObject *iterator, *item;
- long signum;
-- int err;
-
- sigemptyset(mask);
-
-@@ -841,11 +840,14 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
- Py_DECREF(item);
- if (signum == -1 && PyErr_Occurred())
- goto error;
-- if (0 < signum && signum < NSIG)
-- err = sigaddset(mask, (int)signum);
-- else
-- err = 1;
-- if (err) {
-+ if (0 < signum && signum < NSIG) {
-+ /* bpo-33329: ignore sigaddset() return value as it can fail
-+ * for some reserved signals, but we want the `range(1, NSIG)`
-+ * idiom to allow selecting all valid signals.
-+ */
-+ (void) sigaddset(mask, (int)signum);
-+ }
-+ else {
- PyErr_Format(PyExc_ValueError,
- "signal number %ld out of range", signum);
- goto error;
diff --git a/python3.spec b/python3.spec
index 7472a57..6ba9805 100644
--- a/python3.spec
+++ b/python3.spec
@@ -300,12 +300,6 @@ Patch251: 00251-change-user-install-location.patch
# Upstream uses Debian-style architecture naming. Change to match Fedora.
Patch274: 00274-fix-arch-names.patch
-# 00291 #
-# Build fails with undefined references to dlopen / dlsym otherwise.
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
-# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
-Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
-
# 00312 #
# Revert "bpo-6721: Hold logging locks across fork() 3b699932e5ac3e7
# This is a TEMPORARY WORKAROUND for an urgent Fedora bug
@@ -659,7 +653,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch205 -p1
%patch251 -p1
%patch274 -p1
-%patch291 -p1
%patch312 -p1
%patch313 -p1
%patch315 -p1
commit 1092d478f540ba9d510316205eca201e5c5d07e9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Dec 7 10:03:24 2018 +0100
Make sure we don't ship any exe files (not needed an prebuilt)
Such files are only used to create Microsoft Windows installers
and that functionality is broken on Linux anyway.
We can keep the exe files in SRPM, as they are free software as
confirmed by the Python Software Foundation:
> Hello,
>
> Shipping and distributing these files is ok.
>
> These files are stubs, used as the executable part of a self-unzipping
> executable and showing an "installer window" to the user.
> They are original to Python and, while they call win32 functions,
> they don't have Windows SDK code in them.
> The source is at: PC/bdist_wininst/install.c
>
> The binaries are included so that anyone creating a bdist_wininst
> distribution (mostly deprecated, actually) can do so, even when
> cross-compiling.
>
> Thanks,
> Van (Lindberg)
See also https://mail.python.org/pipermail/python-dev/2018-October/155507.html
diff --git a/python3.spec b/python3.spec
index bb020fa..7472a57 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.1
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -627,6 +627,10 @@ version once Python %{pybasever} is stable.
%prep
%setup -q -n Python-%{version}%{?prerel}
+# Remove all exe files to ensure we are not shipping prebuilt binaries
+# note that those are only used to create Microsoft Windows installers
+# and that functionality is broken on Linux anyway
+find -name '*.exe' -print -delete
# Remove bundled libraries to ensure that we're using the system copy.
rm -r Modules/expat
@@ -1283,7 +1287,6 @@ CheckPython optimized
%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/distutils/README
%{pylibdir}/distutils/command
-%exclude %{pylibdir}/distutils/command/wininst-*.exe
%dir %{pylibdir}/email/
%dir %{pylibdir}/email/__pycache__/
@@ -1353,7 +1356,6 @@ CheckPython optimized
%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%endif
-%{pylibdir}/distutils/command/wininst-*.exe
%{_includedir}/python%{LDVERSION_optimized}/*.h
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
@@ -1575,6 +1577,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Dec 07 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-5
+- Make sure we don't ship any exe files (not needed an prebuilt)
+
* Wed Nov 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-4
- Make sure the entire test.support module is in python3-libs (#1651245)
commit 5258d1d1943c5f416fe693cc8f5c740e514c6f35
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Dec 10 17:29:57 2018 +0100
Run the testsuite in parallel, --findleaks runs in the CI
diff --git a/python3.spec b/python3.spec
index e194ab2..bb020fa 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1066,7 +1066,7 @@ CheckPython() {
# @unittest._expectedFailureInRpmBuild
WITHIN_PYTHON_RPM_BUILD= \
LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
- -wW --slowest --findleaks \
+ -wW --slowest -j0 \
-x test_distutils \
-x test_bdist_rpm \
-x test_gdb \
commit bc8629686948c26706c634b14edb0265bacb3449
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Nov 14 16:34:36 2018 +0100
Run the selftest suite on Fedora CI
diff --git a/tests/tests.yml b/tests/tests.yml
index 2e14ca0..d26ece2 100644
--- a/tests/tests.yml
+++ b/tests/tests.yml
@@ -11,7 +11,17 @@
- smoke:
dir: python/smoke
run: VERSION=3.7 ./venv.sh
+ - selftest:
+ dir: python/selftest
+ run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh
+ - findleaks:
+ dir: python/selftest
+ run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./findleaks.sh
required_packages:
- - gcc
- - python3-tox
- - python3-devel
+ - gcc # for extension building in venv and selftest
+ - python3-debug # for leak testing
+ - python3-devel # for extension building in venv and selftest
+ - python3-tkinter # for selftest
+ - python3-test # for selftest
+ - python3-tox # for venv tests
+ - glibc-all-langpacks # for locale tests
commit 7be8eebca61f0afeaa2065b4a4e25dd21dffa249
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Dec 18 11:27:06 2018 +0100
Require glibc-all-langpacks to test locales
Python 3 test suite requires various locales. Install all of them to
build the package to make sure that no test is skipped because of a
missing locale.
diff --git a/python3.spec b/python3.spec
index 2890caa..e194ab2 100644
--- a/python3.spec
+++ b/python3.spec
@@ -152,6 +152,7 @@ BuildRequires: gcc-c++
%if %{with gdbm}
BuildRequires: gdbm-devel >= 1:1.13
%endif
+BuildRequires: glibc-all-langpacks
BuildRequires: glibc-devel
BuildRequires: gmp-devel
BuildRequires: libappstream-glib
commit 4f22584498d101092afb723fde527159a1cf22aa
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Nov 27 13:36:14 2018 +0100
Fix mktime() error in test_email
http://bugs.python.org/issue35317
https://bugzilla.redhat.com/show_bug.cgi?id=1652843
diff --git a/00315-test_email-mktime.patch b/00315-test_email-mktime.patch
new file mode 100644
index 0000000..aacdcd6
--- /dev/null
+++ b/00315-test_email-mktime.patch
@@ -0,0 +1,46 @@
+From 0165caf04ef9c615c8b86dd16f7c201ca7a0befa Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner(a)redhat.com>
+Date: Tue, 27 Nov 2018 12:40:50 +0100
+Subject: [PATCH] bpo-35317: Fix mktime() error in test_email (GH-10721)
+
+Fix mktime() overflow error in test_email: run
+test_localtime_daylight_true_dst_true() and
+test_localtime_daylight_false_dst_true() with a specific timezone.
+(cherry picked from commit cfaafda8e3e19764682abb4bd4c574accb784c42)
+
+Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
+---
+ Lib/test/test_email/test_utils.py | 2 ++
+ .../NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst | 3 +++
+ 2 files changed, 5 insertions(+)
+ create mode 100644 Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+
+diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py
+index 6dcb3bbe7aab..4e3c3f3a195f 100644
+--- a/Lib/test/test_email/test_utils.py
++++ b/Lib/test/test_email/test_utils.py
+@@ -75,6 +75,7 @@ def test_localtime_daylight_false_dst_false(self):
+ t2 = utils.localtime(t1)
+ self.assertEqual(t1, t2)
+
++ @test.support.run_with_tz('Europe/Minsk')
+ def test_localtime_daylight_true_dst_true(self):
+ test.support.patch(self, time, 'daylight', True)
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
+@@ -82,6 +83,7 @@ def test_localtime_daylight_true_dst_true(self):
+ t2 = utils.localtime(t1)
+ self.assertEqual(t1, t2)
+
++ @test.support.run_with_tz('Europe/Minsk')
+ def test_localtime_daylight_false_dst_true(self):
+ test.support.patch(self, time, 'daylight', False)
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
+diff --git a/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+new file mode 100644
+index 000000000000..73a30f71927f
+--- /dev/null
++++ b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+@@ -0,0 +1,3 @@
++Fix ``mktime()`` overflow error in ``test_email``: run
++``test_localtime_daylight_true_dst_true()`` and
++``test_localtime_daylight_false_dst_true()`` with a specific timezone.
diff --git a/python3.spec b/python3.spec
index 7444132..2890caa 100644
--- a/python3.spec
+++ b/python3.spec
@@ -318,6 +318,12 @@ Patch312: 00312-revert-bpo-6721.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1160640
Patch313: 00313-cprofile-sort-option.patch
+# 00315 #
+# Fix mktime() error in test_email
+# http://bugs.python.org/issue35317
+# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
+Patch315: 00315-test_email-mktime.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -651,6 +657,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch291 -p1
%patch312 -p1
%patch313 -p1
+%patch315 -p1
# Remove files that should be generated by the build
commit e21e6a6b22570e4027047076a268481ad1436dd9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Nov 26 15:52:56 2018 +0100
Show test.pythoninfo, helpful for debugging test failures
diff --git a/python3.spec b/python3.spec
index 9c638c8..7444132 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1049,6 +1049,9 @@ CheckPython() {
# Note that we're running the tests using the version of the code in the
# builddir, not in the buildroot.
+ # Show some info, helpful for debugging test failures
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo
+
# 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)
commit 31d96372deeb66e3a6b061f075cf70fdd3205966
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Nov 19 15:55:55 2018 +0100
Make sure the entire test.support module is in python3-libs (#1651245)
diff --git a/python3.spec b/python3.spec
index 2cbf972..9c638c8 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.1
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -540,6 +540,7 @@ the Python programming language.
%package test
Summary: The self-test suite for the main python3 package
Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# Shall be removed in Fedora 31
Obsoletes: platform-python-test < %{platpyver}
@@ -1145,14 +1146,19 @@ CheckPython optimized
%{pylibdir}/ensurepip/_bundled/*.whl
%endif
+# The majority of the test module lives in the test subpackage
+# However test.support is in libs - it contains stuff used when testing your code
+# https://bugzilla.redhat.com/show_bug.cgi?id=596258
+%if %{without flatpackage}
%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/
%dir %{pylibdir}/test/support/
%dir %{pylibdir}/test/support/__pycache__/
%{pylibdir}/test/__init__.py
%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
-%{pylibdir}/test/support/__init__.py
-%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
+%{pylibdir}/test/support/*.py
+%{pylibdir}/test/support/__pycache__/*%{bytecode_suffixes}
+%endif
%dir %{pylibdir}/concurrent/
%dir %{pylibdir}/concurrent/__pycache__/
@@ -1410,6 +1416,15 @@ CheckPython optimized
%{pylibdir}/tkinter/test
%{pylibdir}/unittest/test
+# stuff already owned by the libs subpackage
+# test requires libs, so we are safe not owning those dirs
+%if %{without flatpackage}
+%exclude %dir %{pylibdir}/test/
+%exclude %dir %{pylibdir}/test/__pycache__/
+%exclude %{pylibdir}/test/__init__.py
+%exclude %{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
+%exclude %{pylibdir}/test/support/
+%endif
# We don't bother splitting the debug build out into further subpackages:
# if you need it, you're probably a developer.
@@ -1549,6 +1564,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Nov 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-4
+- Make sure the entire test.support module is in python3-libs (#1651245)
+
* Tue Nov 06 2018 Victor Stinner <vstinner(a)redhat.com> - 3.7.1-3
- Verify the value of '-s' when execute the CLI of cProfile (rhbz#1160640)
commit a4e394925c249b7afd150fe2a6c7c77a3702f1b7
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Wed Nov 7 00:37:34 2018 +0100
Verify the value of '-s' when execute the CLI of cProfile
Resolves: rhbz#1160640
diff --git a/00313-cprofile-sort-option.patch b/00313-cprofile-sort-option.patch
new file mode 100644
index 0000000..fe427e5
--- /dev/null
+++ b/00313-cprofile-sort-option.patch
@@ -0,0 +1,61 @@
+commit c36e8721f276e7cc09cecdb9c04783630f0ba82a
+Author: Victor Stinner <vstinner(a)redhat.com>
+Date: Wed Nov 7 00:34:22 2018 +0100
+
+ bpo-23420: Verify the value of '-s' when execute the CLI of cProfile
+
+ Verify the value for the parameter '-s' of the cProfile CLI. Patch by Robert
+ Kuska.
+
+ Resolves: rhbz#1160640
+
+diff --git a/Lib/cProfile.py b/Lib/cProfile.py
+index c044be8..f6e423b 100755
+--- a/Lib/cProfile.py
++++ b/Lib/cProfile.py
+@@ -124,6 +124,7 @@ def main():
+ import os
+ import sys
+ import runpy
++ import pstats
+ from optparse import OptionParser
+ usage = "cProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ..."
+ parser = OptionParser(usage=usage)
+@@ -132,7 +133,8 @@ def main():
+ help="Save stats to <outfile>", default=None)
+ parser.add_option('-s', '--sort', dest="sort",
+ help="Sort order when printing to stdout, based on pstats.Stats class",
+- default=-1)
++ default=-1,
++ choices=sorted(pstats.Stats.sort_arg_dict_default))
+ parser.add_option('-m', dest="module", action="store_true",
+ help="Profile a library module", default=False)
+
+diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py
+index 1430d22..5c4ec5b 100644
+--- a/Lib/test/test_cprofile.py
++++ b/Lib/test/test_cprofile.py
+@@ -2,6 +2,7 @@
+
+ import sys
+ from test.support import run_unittest, TESTFN, unlink
++import unittest
+
+ # rip off all interesting stuff from test_profile
+ import cProfile
+@@ -50,8 +51,14 @@ class CProfileTest(ProfileTest):
+ assert_python_ok('-m', 'cProfile', '-m', 'timeit', '-n', '1')
+
+
++class TestCommandLine(unittest.TestCase):
++ def test_sort(self):
++ rc, out, err = assert_python_failure('-m', 'cProfile', '-s', 'demo')
++ self.assertGreater(rc, 0)
++ self.assertIn(b"option -s: invalid choice: 'demo'", err)
++
+ def test_main():
+- run_unittest(CProfileTest)
++ run_unittest(CProfileTest, TestCommandLine)
+
+ def main():
+ if '-r' not in sys.argv:
diff --git a/python3.spec b/python3.spec
index dffcbdc..2cbf972 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.1
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -312,6 +312,12 @@ Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1644936
Patch312: 00312-revert-bpo-6721.patch
+# 00313 #
+# Verify the value of '-s' when execute the CLI of cProfile
+# http://bugs.python.org/issue23420
+# https://bugzilla.redhat.com/show_bug.cgi?id=1160640
+Patch313: 00313-cprofile-sort-option.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -643,6 +649,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch274 -p1
%patch291 -p1
%patch312 -p1
+%patch313 -p1
# Remove files that should be generated by the build
@@ -1542,6 +1549,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Nov 06 2018 Victor Stinner <vstinner(a)redhat.com> - 3.7.1-3
+- Verify the value of '-s' when execute the CLI of cProfile (rhbz#1160640)
+
* Sun Nov 04 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-2
- Temporarily revert upstream commit 3b699932e5ac3e7
- This is dirty workaround for (#1644936)
commit 72bc3f43c46b8142b42e0ef82a48c7f78f0714d0
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Nov 4 19:26:46 2018 +0100
Temporarily revert upstream commit 3b699932e5ac3e7
This is dirty workaround for
https://bugzilla.redhat.com/show_bug.cgi?id=1644936
diff --git a/00312-revert-bpo-6721.patch b/00312-revert-bpo-6721.patch
new file mode 100644
index 0000000..c3350bf
--- /dev/null
+++ b/00312-revert-bpo-6721.patch
@@ -0,0 +1,168 @@
+From 583bb07116505dcc73c0fc4aa3c1cf5074f3522d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
+Date: Fri, 2 Nov 2018 14:01:28 +0100
+Subject: [PATCH] Revert "bpo-6721: Hold logging locks across fork() (GH-4071)
+ (#9291)"
+
+This reverts commit 3b699932e5ac3e76031bbb6d700fbea07492641d.
+---
+ Lib/logging/__init__.py | 50 ------------------------------
+ Lib/test/test_logging.py | 67 ----------------------------------------
+ 2 files changed, 117 deletions(-)
+
+diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
+index 3ad2cc38f6..53780cd600 100644
+--- a/Lib/logging/__init__.py
++++ b/Lib/logging/__init__.py
+@@ -225,55 +225,6 @@ def _releaseLock():
+ if _lock:
+ _lock.release()
+
+-
+-# Prevent a held logging lock from blocking a child from logging.
+-
+-if not hasattr(os, 'register_at_fork'): # Windows and friends.
+- def _register_at_fork_acquire_release(instance):
+- pass # no-op when os.register_at_fork does not exist.
+-else: # The os.register_at_fork API exists
+- os.register_at_fork(before=_acquireLock,
+- after_in_child=_releaseLock,
+- after_in_parent=_releaseLock)
+-
+- # A collection of instances with acquire and release methods (logging.Handler)
+- # to be called before and after fork. The weakref avoids us keeping discarded
+- # Handler instances alive forever in case an odd program creates and destroys
+- # many over its lifetime.
+- _at_fork_acquire_release_weakset = weakref.WeakSet()
+-
+-
+- def _register_at_fork_acquire_release(instance):
+- # We put the instance itself in a single WeakSet as we MUST have only
+- # one atomic weak ref. used by both before and after atfork calls to
+- # guarantee matched pairs of acquire and release calls.
+- _at_fork_acquire_release_weakset.add(instance)
+-
+-
+- def _at_fork_weak_calls(method_name):
+- for instance in _at_fork_acquire_release_weakset:
+- method = getattr(instance, method_name)
+- try:
+- method()
+- except Exception as err:
+- # Similar to what PyErr_WriteUnraisable does.
+- print("Ignoring exception from logging atfork", instance,
+- method_name, "method:", err, file=sys.stderr)
+-
+-
+- def _before_at_fork_weak_calls():
+- _at_fork_weak_calls('acquire')
+-
+-
+- def _after_at_fork_weak_calls():
+- _at_fork_weak_calls('release')
+-
+-
+- os.register_at_fork(before=_before_at_fork_weak_calls,
+- after_in_child=_after_at_fork_weak_calls,
+- after_in_parent=_after_at_fork_weak_calls)
+-
+-
+ #---------------------------------------------------------------------------
+ # The logging record
+ #---------------------------------------------------------------------------
+@@ -844,7 +795,6 @@ class Handler(Filterer):
+ Acquire a thread lock for serializing access to the underlying I/O.
+ """
+ self.lock = threading.RLock()
+- _register_at_fork_acquire_release(self)
+
+ def acquire(self):
+ """
+diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
+index 1ea2967f5b..5d5eba7357 100644
+--- a/Lib/test/test_logging.py
++++ b/Lib/test/test_logging.py
+@@ -35,7 +35,6 @@ import os
+ import queue
+ import random
+ import re
+-import signal
+ import socket
+ import struct
+ import sys
+@@ -667,72 +666,6 @@ class HandlerTest(BaseTest):
+ if os.path.exists(fn):
+ os.unlink(fn)
+
+- # The implementation relies on os.register_at_fork existing, but we test
+- # based on os.fork existing because that is what users and this test use.
+- # This helps ensure that when fork exists (the important concept) that the
+- # register_at_fork mechanism is also present and used.
+- @unittest.skipIf(not hasattr(os, 'fork'), 'Test requires os.fork().')
+- def test_post_fork_child_no_deadlock(self):
+- """Ensure forked child logging locks are not held; bpo-6721."""
+- refed_h = logging.Handler()
+- refed_h.name = 'because we need at least one for this test'
+- self.assertGreater(len(logging._handlers), 0)
+-
+- locks_held__ready_to_fork = threading.Event()
+- fork_happened__release_locks_and_end_thread = threading.Event()
+-
+- def lock_holder_thread_fn():
+- logging._acquireLock()
+- try:
+- refed_h.acquire()
+- try:
+- # Tell the main thread to do the fork.
+- locks_held__ready_to_fork.set()
+-
+- # If the deadlock bug exists, the fork will happen
+- # without dealing with the locks we hold, deadlocking
+- # the child.
+-
+- # Wait for a successful fork or an unreasonable amount of
+- # time before releasing our locks. To avoid a timing based
+- # test we'd need communication from os.fork() as to when it
+- # has actually happened. Given this is a regression test
+- # for a fixed issue, potentially less reliably detecting
+- # regression via timing is acceptable for simplicity.
+- # The test will always take at least this long. :(
+- fork_happened__release_locks_and_end_thread.wait(0.5)
+- finally:
+- refed_h.release()
+- finally:
+- logging._releaseLock()
+-
+- lock_holder_thread = threading.Thread(
+- target=lock_holder_thread_fn,
+- name='test_post_fork_child_no_deadlock lock holder')
+- lock_holder_thread.start()
+-
+- locks_held__ready_to_fork.wait()
+- pid = os.fork()
+- if pid == 0: # Child.
+- logging.error(r'Child process did not deadlock. \o/')
+- os._exit(0)
+- else: # Parent.
+- fork_happened__release_locks_and_end_thread.set()
+- lock_holder_thread.join()
+- start_time = time.monotonic()
+- while True:
+- waited_pid, status = os.waitpid(pid, os.WNOHANG)
+- if waited_pid == pid:
+- break # child process exited.
+- if time.monotonic() - start_time > 7:
+- break # so long? implies child deadlock.
+- time.sleep(0.05)
+- if waited_pid != pid:
+- os.kill(pid, signal.SIGKILL)
+- waited_pid, status = os.waitpid(pid, 0)
+- self.fail("child process deadlocked.")
+- self.assertEqual(status, 0, msg="child process error")
+-
+
+ class BadStream(object):
+ def write(self, data):
+--
+2.19.1
+
diff --git a/python3.spec b/python3.spec
index 2e2ee57..dffcbdc 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -305,6 +305,13 @@ Patch274: 00274-fix-arch-names.patch
# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+# 00312 #
+# Revert "bpo-6721: Hold logging locks across fork() 3b699932e5ac3e7
+# This is a TEMPORARY WORKAROUND for an urgent Fedora bug
+# TODO Investigate properly and get a real fix (here or in anaconda)!
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1644936
+Patch312: 00312-revert-bpo-6721.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -635,6 +642,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch291 -p1
+%patch312 -p1
# Remove files that should be generated by the build
@@ -1534,6 +1542,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Nov 04 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-2
+- Temporarily revert upstream commit 3b699932e5ac3e7
+- This is dirty workaround for (#1644936)
+
* Mon Oct 22 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-1
- Update to 3.7.1
commit d533a32456480f7e57a05f03f03bf1887c9f4a80
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Oct 1 16:05:20 2018 +0200
Update to 3.7.1
Removed patches due to being upstreamed: 307, 308
Rebased patches: 170
diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch
index c37e69c..fb3ad85 100644
--- a/00170-gc-assertions.patch
+++ b/00170-gc-assertions.patch
@@ -53,15 +53,16 @@ index c772dea..5729797 100644
}
#endif
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
-index 904fc7d..288e242 100644
+index 8d806db..dc8bb16 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
-@@ -1,10 +1,11 @@
+@@ -1,10 +1,12 @@
import unittest
from test.support import (verbose, refcount_test, run_unittest,
strip_python_stderr, cpython_only, start_threads,
-- temp_dir, requires_type_collecting)
-+ temp_dir, import_module, requires_type_collecting)
+- temp_dir, requires_type_collecting, TESTFN, unlink)
++ temp_dir, requires_type_collecting, TESTFN, unlink,
++ import_module)
from test.support.script_helper import assert_python_ok, make_script
import sys
@@ -69,7 +70,7 @@ index 904fc7d..288e242 100644
import time
import gc
import weakref
-@@ -46,6 +47,8 @@ class GC_Detector(object):
+@@ -46,6 +48,8 @@ class GC_Detector(object):
# gc collects it.
self.wr = weakref.ref(C1055820(666), it_happened)
@@ -78,7 +79,7 @@ index 904fc7d..288e242 100644
@with_tp_del
class Uncollectable(object):
"""Create a reference cycle with multiple __del__ methods.
-@@ -863,6 +866,50 @@ class GCCallbackTests(unittest.TestCase):
+@@ -878,6 +882,50 @@ class GCCallbackTests(unittest.TestCase):
self.assertEqual(len(gc.garbage), 0)
@@ -130,7 +131,7 @@ index 904fc7d..288e242 100644
def setUp(self):
gc.enable()
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
-index 8ba1093..e795308 100644
+index 4d701cb..388dd78 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -239,7 +239,8 @@ update_refs(PyGC_Head *containers)
@@ -251,7 +252,7 @@ index 8ba1093..e795308 100644
/* copy-paste of weakrefobject.c's handle_callback() */
temp = PyObject_CallFunctionObjArgs(callback, wr, NULL);
-@@ -720,12 +726,14 @@ check_garbage(PyGC_Head *collectable)
+@@ -717,12 +723,14 @@ check_garbage(PyGC_Head *collectable)
for (gc = collectable->gc.gc_next; gc != collectable;
gc = gc->gc.gc_next) {
_PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
diff --git a/00307-allow-to-call-Py_Main-after-Py_Initialize.patch b/00307-allow-to-call-Py_Main-after-Py_Initialize.patch
deleted file mode 100644
index d9c0486..0000000
--- a/00307-allow-to-call-Py_Main-after-Py_Initialize.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From bbd6fc7e77dbd33ae7d3670eaf7800b5d3ff42d3 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <vstinner(a)redhat.com>
-Date: Fri, 20 Jul 2018 17:34:23 +0200
-Subject: [PATCH] bpo-34008: Allow to call Py_Main() after Py_Initialize()
- (GH-8043)
-
-Py_Main() can again be called after Py_Initialize(), as in Python
-3.6. The new configuration is ignored, except of
-_PyMainInterpreterConfig.argv which is used to update sys.argv.
-(cherry picked from commit fb47bca9ee2d07ce96df94b4e4abafd11826eb01)
-
-Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
----
- Lib/test/test_embed.py | 8 ++++++++
- .../C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst | 1 +
- Modules/main.c | 10 +++++++---
- Programs/_testembed.c | 16 +++++++++++++++
- Python/pylifecycle.c | 23 +++++++++++++++++++---
- 5 files changed, 52 insertions(+), 6 deletions(-)
- create mode 100644 Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
-
-diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
-index f3b60433ccc1..024c3f99a85d 100644
---- a/Lib/test/test_embed.py
-+++ b/Lib/test/test_embed.py
-@@ -238,6 +238,14 @@ def test_initialize_twice(self):
- self.assertEqual(out, '')
- self.assertEqual(err, '')
-
-+ def test_initialize_pymain(self):
-+ """
-+ bpo-34008: Calling Py_Main() after Py_Initialize() must not fail.
-+ """
-+ out, err = self.run_embedded_interpreter("initialize_pymain")
-+ self.assertEqual(out.rstrip(), "Py_Main() after Py_Initialize: sys.argv=['-c', 'arg2']")
-+ self.assertEqual(err, '')
-+
-
- if __name__ == "__main__":
- unittest.main()
-diff --git a/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst b/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
-new file mode 100644
-index 000000000000..d9881b9945df
---- /dev/null
-+++ b/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
-@@ -0,0 +1 @@
-+Py_Main() can again be called after Py_Initialize(), as in Python 3.6.
-diff --git a/Modules/main.c b/Modules/main.c
-index 3809fa4abef5..31ebbceb83e0 100644
---- a/Modules/main.c
-+++ b/Modules/main.c
-@@ -2647,9 +2647,13 @@ pymain_main(_PyMain *pymain)
-
- pymain_init_stdio(pymain);
-
-- pymain->err = _Py_InitializeCore(&pymain->config);
-- if (_Py_INIT_FAILED(pymain->err)) {
-- _Py_FatalInitError(pymain->err);
-+ /* bpo-34008: For backward compatibility reasons, calling Py_Main() after
-+ Py_Initialize() ignores the new configuration. */
-+ if (!_PyRuntime.initialized) {
-+ pymain->err = _Py_InitializeCore(&pymain->config);
-+ if (_Py_INIT_FAILED(pymain->err)) {
-+ _Py_FatalInitError(pymain->err);
-+ }
- }
-
- if (pymain_init_python_main(pymain) < 0) {
-diff --git a/Programs/_testembed.c b/Programs/_testembed.c
-index b8827f074b9c..b1be682f7adc 100644
---- a/Programs/_testembed.c
-+++ b/Programs/_testembed.c
-@@ -276,6 +276,21 @@ static int test_initialize_twice(void)
- return 0;
- }
-
-+static int test_initialize_pymain(void)
-+{
-+ wchar_t *argv[] = {L"PYTHON", L"-c",
-+ L"import sys; print(f'Py_Main() after Py_Initialize: sys.argv={sys.argv}')",
-+ L"arg2"};
-+ _testembed_Py_Initialize();
-+
-+ /* bpo-34008: Calling Py_Main() after Py_Initialize() must not crash */
-+ Py_Main(Py_ARRAY_LENGTH(argv), argv);
-+
-+ Py_Finalize();
-+
-+ return 0;
-+}
-+
-
- /* *********************************************************
- * List of test cases and the function that implements it.
-@@ -302,6 +317,7 @@ static struct TestCase TestCases[] = {
- { "pre_initialization_sys_options", test_pre_initialization_sys_options },
- { "bpo20891", test_bpo20891 },
- { "initialize_twice", test_initialize_twice },
-+ { "initialize_pymain", test_initialize_pymain },
- { NULL, NULL }
- };
-
-diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
-index fdb759f480be..219a46558825 100644
---- a/Python/pylifecycle.c
-+++ b/Python/pylifecycle.c
-@@ -775,6 +775,22 @@ _Py_InitializeCore(const _PyCoreConfig *core_config)
- return _Py_INIT_OK();
- }
-
-+/* Py_Initialize() has already been called: update the main interpreter
-+ configuration. Example of bpo-34008: Py_Main() called after
-+ Py_Initialize(). */
-+static _PyInitError
-+_Py_ReconfigureMainInterpreter(PyInterpreterState *interp,
-+ const _PyMainInterpreterConfig *config)
-+{
-+ if (config->argv != NULL) {
-+ int res = PyDict_SetItemString(interp->sysdict, "argv", config->argv);
-+ if (res < 0) {
-+ return _Py_INIT_ERR("fail to set sys.argv");
-+ }
-+ }
-+ return _Py_INIT_OK();
-+}
-+
- /* Update interpreter state based on supplied configuration settings
- *
- * After calling this function, most of the restrictions on the interpreter
-@@ -796,9 +812,6 @@ _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *config)
- if (!_PyRuntime.core_initialized) {
- return _Py_INIT_ERR("runtime core not initialized");
- }
-- if (_PyRuntime.initialized) {
-- return _Py_INIT_ERR("main interpreter already initialized");
-- }
-
- /* Get current thread state and interpreter pointer */
- tstate = PyThreadState_GET();
-@@ -813,6 +826,10 @@ _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *config)
- return _Py_INIT_ERR("failed to copy main interpreter config");
- }
-
-+ if (_PyRuntime.initialized) {
-+ return _Py_ReconfigureMainInterpreter(interp, config);
-+ }
-+
- if (interp->core_config._disable_importlib) {
- /* Special mode for freeze_importlib: run with no import system
- *
diff --git a/00308-tls-1.3.patch b/00308-tls-1.3.patch
deleted file mode 100644
index 7cd9e59..0000000
--- a/00308-tls-1.3.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-diff --git a/Lib/test/dh1024.pem b/Lib/test/dh1024.pem
-deleted file mode 100644
-index a391176..0000000
---- a/Lib/test/dh1024.pem
-+++ /dev/null
-@@ -1,7 +0,0 @@
-------BEGIN DH PARAMETERS-----
--MIGHAoGBAIbzw1s9CT8SV5yv6L7esdAdZYZjPi3qWFs61CYTFFQnf2s/d09NYaJt
--rrvJhIzWavqnue71qXCf83/J3nz3FEwUU/L0mGyheVbsSHiI64wUo3u50wK5Igo0
--RNs/LD0irs7m0icZ//hijafTU+JOBiuA8zMI+oZfU7BGuc9XrUprAgEC
-------END DH PARAMETERS-----
--
--Generated with: openssl dhparam -out dh1024.pem 1024
-diff --git a/Lib/test/ffdh3072.pem b/Lib/test/ffdh3072.pem
-new file mode 100644
-index 0000000..ad69bac
---- /dev/null
-+++ b/Lib/test/ffdh3072.pem
-@@ -0,0 +1,41 @@
-+ DH Parameters: (3072 bit)
-+ prime:
-+ 00:ff:ff:ff:ff:ff:ff:ff:ff:ad:f8:54:58:a2:bb:
-+ 4a:9a:af:dc:56:20:27:3d:3c:f1:d8:b9:c5:83:ce:
-+ 2d:36:95:a9:e1:36:41:14:64:33:fb:cc:93:9d:ce:
-+ 24:9b:3e:f9:7d:2f:e3:63:63:0c:75:d8:f6:81:b2:
-+ 02:ae:c4:61:7a:d3:df:1e:d5:d5:fd:65:61:24:33:
-+ f5:1f:5f:06:6e:d0:85:63:65:55:3d:ed:1a:f3:b5:
-+ 57:13:5e:7f:57:c9:35:98:4f:0c:70:e0:e6:8b:77:
-+ e2:a6:89:da:f3:ef:e8:72:1d:f1:58:a1:36:ad:e7:
-+ 35:30:ac:ca:4f:48:3a:79:7a:bc:0a:b1:82:b3:24:
-+ fb:61:d1:08:a9:4b:b2:c8:e3:fb:b9:6a:da:b7:60:
-+ d7:f4:68:1d:4f:42:a3:de:39:4d:f4:ae:56:ed:e7:
-+ 63:72:bb:19:0b:07:a7:c8:ee:0a:6d:70:9e:02:fc:
-+ e1:cd:f7:e2:ec:c0:34:04:cd:28:34:2f:61:91:72:
-+ fe:9c:e9:85:83:ff:8e:4f:12:32:ee:f2:81:83:c3:
-+ fe:3b:1b:4c:6f:ad:73:3b:b5:fc:bc:2e:c2:20:05:
-+ c5:8e:f1:83:7d:16:83:b2:c6:f3:4a:26:c1:b2:ef:
-+ fa:88:6b:42:38:61:1f:cf:dc:de:35:5b:3b:65:19:
-+ 03:5b:bc:34:f4:de:f9:9c:02:38:61:b4:6f:c9:d6:
-+ e6:c9:07:7a:d9:1d:26:91:f7:f7:ee:59:8c:b0:fa:
-+ c1:86:d9:1c:ae:fe:13:09:85:13:92:70:b4:13:0c:
-+ 93:bc:43:79:44:f4:fd:44:52:e2:d7:4d:d3:64:f2:
-+ e2:1e:71:f5:4b:ff:5c:ae:82:ab:9c:9d:f6:9e:e8:
-+ 6d:2b:c5:22:36:3a:0d:ab:c5:21:97:9b:0d:ea:da:
-+ 1d:bf:9a:42:d5:c4:48:4e:0a:bc:d0:6b:fa:53:dd:
-+ ef:3c:1b:20:ee:3f:d5:9d:7c:25:e4:1d:2b:66:c6:
-+ 2e:37:ff:ff:ff:ff:ff:ff:ff:ff
-+ generator: 2 (0x2)
-+ recommended-private-length: 276 bits
-+-----BEGIN DH PARAMETERS-----
-+MIIBjAKCAYEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
-++8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
-+87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
-+YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
-+7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
-+ssbzSibBsu/6iGtCOGEfz9zeNVs7ZRkDW7w09N75nAI4YbRvydbmyQd62R0mkff3
-+7lmMsPrBhtkcrv4TCYUTknC0EwyTvEN5RPT9RFLi103TZPLiHnH1S/9croKrnJ32
-+nuhtK8UiNjoNq8Uhl5sN6todv5pC1cRITgq80Gv6U93vPBsg7j/VnXwl5B0rZsYu
-+N///////////AgECAgIBFA==
-+-----END DH PARAMETERS-----
-diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
-index f9488a9..da8ba32 100644
---- a/Lib/test/test_ftplib.py
-+++ b/Lib/test/test_ftplib.py
-@@ -880,18 +880,23 @@ class TestTLS_FTPClass(TestCase):
- # clear text
- with self.client.transfercmd('list') as sock:
- self.assertNotIsInstance(sock, ssl.SSLSocket)
-+ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
- self.assertEqual(self.client.voidresp(), "226 transfer complete")
-
- # secured, after PROT P
- self.client.prot_p()
- with self.client.transfercmd('list') as sock:
- self.assertIsInstance(sock, ssl.SSLSocket)
-+ # consume from SSL socket to finalize handshake and avoid
-+ # "SSLError [SSL] shutdown while in init"
-+ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
- self.assertEqual(self.client.voidresp(), "226 transfer complete")
-
- # PROT C is issued, the connection must be in cleartext again
- self.client.prot_c()
- with self.client.transfercmd('list') as sock:
- self.assertNotIsInstance(sock, ssl.SSLSocket)
-+ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
- self.assertEqual(self.client.voidresp(), "226 transfer complete")
-
- def test_login(self):
-diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
-index 7bbaa9f..ea528b5 100644
---- a/Lib/test/test_ssl.py
-+++ b/Lib/test/test_ssl.py
-@@ -55,7 +55,6 @@ CAPATH = data_file("capath")
- BYTES_CAPATH = os.fsencode(CAPATH)
- CAFILE_NEURONIO = data_file("capath", "4e1295a3.0")
- CAFILE_CACERT = data_file("capath", "5ed36f99.0")
--WRONG_CERT = data_file("wrongcert.pem")
-
- CERTFILE_INFO = {
- 'issuer': ((('countryName', 'XY'),),
-@@ -118,7 +117,7 @@ BADKEY = data_file("badkey.pem")
- NOKIACERT = data_file("nokia.pem")
- NULLBYTECERT = data_file("nullbytecert.pem")
-
--DHFILE = data_file("dh1024.pem")
-+DHFILE = data_file("ffdh3072.pem")
- BYTES_DHFILE = os.fsencode(DHFILE)
-
- # Not defined in all versions of OpenSSL
-@@ -2846,8 +2845,8 @@ class ThreadedTests(unittest.TestCase):
- connect to it with a wrong client certificate fails.
- """
- client_context, server_context, hostname = testing_context()
-- # load client cert
-- client_context.load_cert_chain(WRONG_CERT)
-+ # load client cert that is not signed by trusted CA
-+ client_context.load_cert_chain(CERTFILE)
- # require TLS client authentication
- server_context.verify_mode = ssl.CERT_REQUIRED
- # TLS 1.3 has different handshake
-@@ -2879,7 +2878,8 @@ class ThreadedTests(unittest.TestCase):
- @unittest.skipUnless(ssl.HAS_TLSv1_3, "Test needs TLS 1.3")
- def test_wrong_cert_tls13(self):
- client_context, server_context, hostname = testing_context()
-- client_context.load_cert_chain(WRONG_CERT)
-+ # load client cert that is not signed by trusted CA
-+ client_context.load_cert_chain(CERTFILE)
- server_context.verify_mode = ssl.CERT_REQUIRED
- server_context.minimum_version = ssl.TLSVersion.TLSv1_3
- client_context.minimum_version = ssl.TLSVersion.TLSv1_3
-diff --git a/Lib/test/wrongcert.pem b/Lib/test/wrongcert.pem
-deleted file mode 100644
-index 5f92f9b..0000000
---- a/Lib/test/wrongcert.pem
-+++ /dev/null
-@@ -1,32 +0,0 @@
-------BEGIN RSA PRIVATE KEY-----
--MIICXAIBAAKBgQC89ZNxjTgWgq7Z1g0tJ65w+k7lNAj5IgjLb155UkUrz0XsHDnH
--FlbsVUg2Xtk6+bo2UEYIzN7cIm5ImpmyW/2z0J1IDVDlvR2xJ659xrE0v5c2cB6T
--f9lnNTwpSoeK24Nd7Jwq4j9vk95fLrdqsBq0/KVlsCXeixS/CaqqduXfvwIDAQAB
--AoGAQFko4uyCgzfxr4Ezb4Mp5pN3Npqny5+Jey3r8EjSAX9Ogn+CNYgoBcdtFgbq
--1yif/0sK7ohGBJU9FUCAwrqNBI9ZHB6rcy7dx+gULOmRBGckln1o5S1+smVdmOsW
--7zUVLBVByKuNWqTYFlzfVd6s4iiXtAE2iHn3GCyYdlICwrECQQDhMQVxHd3EFbzg
--SFmJBTARlZ2GKA3c1g/h9/XbkEPQ9/RwI3vnjJ2RaSnjlfoLl8TOcf0uOGbOEyFe
--19RvCLXjAkEA1s+UE5ziF+YVkW3WolDCQ2kQ5WG9+ccfNebfh6b67B7Ln5iG0Sbg
--ky9cjsO3jbMJQtlzAQnH1850oRD5Gi51dQJAIbHCDLDZU9Ok1TI+I2BhVuA6F666
--lEZ7TeZaJSYq34OaUYUdrwG9OdqwZ9sy9LUav4ESzu2lhEQchCJrKMn23QJAReqs
--ZLHUeTjfXkVk7dHhWPWSlUZ6AhmIlA/AQ7Payg2/8wM/JkZEJEPvGVykms9iPUrv
--frADRr+hAGe43IewnQJBAJWKZllPgKuEBPwoEldHNS8nRu61D7HzxEzQ2xnfj+Nk
--2fgf1MAzzTRsikfGENhVsVWeqOcijWb6g5gsyCmlRpc=
-------END RSA PRIVATE KEY-----
-------BEGIN CERTIFICATE-----
--MIICsDCCAhmgAwIBAgIJAOqYOYFJfEEoMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
--BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
--aWRnaXRzIFB0eSBMdGQwHhcNMDgwNjI2MTgxNTUyWhcNMDkwNjI2MTgxNTUyWjBF
--MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
--ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
--gQC89ZNxjTgWgq7Z1g0tJ65w+k7lNAj5IgjLb155UkUrz0XsHDnHFlbsVUg2Xtk6
--+bo2UEYIzN7cIm5ImpmyW/2z0J1IDVDlvR2xJ659xrE0v5c2cB6Tf9lnNTwpSoeK
--24Nd7Jwq4j9vk95fLrdqsBq0/KVlsCXeixS/CaqqduXfvwIDAQABo4GnMIGkMB0G
--A1UdDgQWBBTctMtI3EO9OjLI0x9Zo2ifkwIiNjB1BgNVHSMEbjBsgBTctMtI3EO9
--OjLI0x9Zo2ifkwIiNqFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
--U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAOqYOYFJ
--fEEoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAQwa7jya/DfhaDn7E
--usPkpgIX8WCL2B1SqnRTXEZfBPPVq/cUmFGyEVRVATySRuMwi8PXbVcOhXXuocA+
--43W+iIsD9pXapCZhhOerCq18TC1dWK98vLUsoK8PMjB6e5H/O8bqojv0EeC+fyCw
--eSHj5jpC8iZKjCHBn+mAi4cQ514=
-------END CERTIFICATE-----
-diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
-index 20d4eeac12..a0c683bbcf 100644
---- a/Lib/test/test_poplib.py
-+++ b/Lib/test/test_poplib.py
-@@ -178,7 +178,8 @@ class DummyPOP3Handler(asynchat.async_chat):
- return self.handle_close()
- # TODO: SSLError does not expose alert information
- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or
-- "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]):
-+ "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1] or
-+ "bad record type" in err.args[1]):
- return self.handle_close()
- raise
- except OSError as err:
diff --git a/python3.spec b/python3.spec
index 6bc5a64..2e2ee57 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.0
-Release: 10%{?dist}
+Version: %{pybasever}.1
+Release: 1%{?dist}
License: Python
@@ -196,7 +196,7 @@ BuildRequires: python-pip-wheel
# Source code and patches
# =======================
-Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}....
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
@@ -305,21 +305,6 @@ Patch274: 00274-fix-arch-names.patch
# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
-# 00307 #
-# Allow to call Py_Main() after Py_Initialize()
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1595421
-# and: https://bugs.python.org/issue34008
-Patch307: 00307-allow-to-call-Py_Main-after-Py_Initialize.patch
-
-# 00308 #
-# TLS 1.3 related fixes from upstream:
-# https://github.com/python/cpython/pull/8762
-# https://github.com/python/cpython/pull/8787
-# And a workaround before openssl is 1.1.1-pre9:
-# https://bugzilla.redhat.com/show_bug.cgi?id=1609291#c12
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1609291
-Patch308: 00308-tls-1.3.patch
-
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -650,8 +635,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch251 -p1
%patch274 -p1
%patch291 -p1
-%patch307 -p1
-%patch308 -p1
# Remove files that should be generated by the build
@@ -1551,6 +1534,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Oct 22 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.1-1
+- Update to 3.7.1
+
* Thu Sep 27 2018 Petr Viktorin <pviktori(a)redhat.com> - 3.7.0-10
- Compile the debug build with -Og rather than -O0
diff --git a/sources b/sources
index 099b345..4d40818 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.0.tar.xz) = 8bb11233fb67ee9ab8ed1b72f8fdc62f66e26a6beaaeb92448bce681cf065269833b1658d3ed2459127f25ba43adb0eab73cf27c59834a2a803fb529b4216739
+SHA512 (Python-3.7.1.tar.xz) = 3eb62a0127609b14420a47442727702f396519c649625aca59883d04f4c02e5f37ba1d58ac8e93c49d14a63f17ae7909315c33fc813293dbcdb6127f39a148b0
commit 091b4b20e9f8fc324b0db7e04cb20b8426ab8612
Author: Petr Viktorin <pviktori(a)redhat.com>
Date: Thu Sep 27 11:32:47 2018 +0200
Compile the debug build with -Og rather than -O0
That is, "optimize for debugging experience" rather than
"don't optimize".
diff --git a/python3.spec b/python3.spec
index 993132b..6bc5a64 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 9%{?dist}
+Release: 10%{?dist}
License: Python
@@ -742,7 +742,7 @@ BuildPython() {
%if %{with debug_build}
BuildPython debug \
"--without-ensurepip --with-pydebug" \
- "-O0"
+ "-Og"
%endif # with debug_build
BuildPython optimized \
@@ -1551,6 +1551,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Sep 27 2018 Petr Viktorin <pviktori(a)redhat.com> - 3.7.0-10
+- Compile the debug build with -Og rather than -O0
+
* Thu Aug 30 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-9
- Require python3-setuptools from python3-devel to prevent packaging errors (#1623914)
commit e354fb5703f6b2157235a4bf6df150a41ad718ba
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Sep 27 13:57:12 2018 +0200
Disable test_gdb for now as it fails
with latest gdb.
diff --git a/python3.spec b/python3.spec
index 6ebe8d0..993132b 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1059,12 +1059,10 @@ CheckPython() {
-wW --slowest --findleaks \
-x test_distutils \
-x test_bdist_rpm \
+ -x test_gdb \
%ifarch %{mips64}
-x test_ctypes \
%endif
- %ifarch %{power64} s390 s390x armv7hl %{mips}
- -x test_gdb \
- %endif
%ifarch ppc64le
-x test_buffer \
%endif
commit 33cd8ff3711a9a2bed9841431998d85c95415e82
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Sep 3 14:10:31 2018 +0200
rpmlintrc updates
* put 64 in ()? to support 32bit RPMs
* add new executables to the manpages ignore list
diff --git a/python3.rpmlintrc b/python3.rpmlintrc
index 6c1ce83..d59fe13 100644
--- a/python3.rpmlintrc
+++ b/python3.rpmlintrc
@@ -26,12 +26,12 @@ addFilter(r'only-non-binary-in-usr-lib')
# some devel files that are deliberately needed
addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
-addFilter(r'devel-file-in-non-devel-package /usr/lib64/python3\.\d/distutils/tests/xxmodule\.c')
+addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d/distutils/tests/xxmodule\.c')
# SORRY, NOT SORRY:
# manual pages
-addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix\.py)')
+addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix|msgfmt|pygettext)')
addFilter(r'no-manual-page-for-binary python3.*-config$')
addFilter(r'no-manual-page-for-binary python3.\dd?m$')
commit 704ecff9600ad338b4b00a7ca6677917102a75e3
Author: Petr plchal <psplicha(a)redhat.com>
Date: Thu Jul 19 17:02:45 2018 +0200
Enable basic venv smoke test in the CI
This executes virtual environment smoke test from the shared
python tests repository against Python 3.7.
diff --git a/tests/tests.yml b/tests/tests.yml
new file mode 100644
index 0000000..2e14ca0
--- /dev/null
+++ b/tests/tests.yml
@@ -0,0 +1,17 @@
+---
+- 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: VERSION=3.7 ./venv.sh
+ required_packages:
+ - gcc
+ - python3-tox
+ - python3-devel
commit 4da7cff796031aae6132274def989f6fbcc482f7
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Aug 30 15:17:04 2018 +0200
Require python3-setuptools from python3-devel to prevent packaging errors (#1623914)
diff --git a/python3.spec b/python3.spec
index 5969a45..6ebe8d0 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 8%{?dist}
+Release: 9%{?dist}
License: Python
@@ -458,6 +458,15 @@ Requires: python-rpm-macros
Requires: python3-rpm-macros
Requires: python3-rpm-generators
+# 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=1623914
+# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
+Requires: python3-setuptools
+
# 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
@@ -1544,6 +1553,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Aug 30 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-9
+- Require python3-setuptools from python3-devel to prevent packaging errors (#1623914)
+
* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-8
- Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel
Resolves: rhbz#1571474
commit 37056bc0f97ec9610dc96fa567da39f8e5c5d811
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jul 26 14:19:23 2018 +0200
Renew check-pyc-timestamps.py
- rename it, the are no pyo files on Python 3
- make sure to check all levels of pyc files optimization
- use path globs
- use comprehensions instead of map + filter
- use f-strings and print() instead of sys.stderr.write()
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
deleted file mode 100644
index ab75c9f..0000000
--- a/check-pyc-and-pyo-timestamps.py
+++ /dev/null
@@ -1,66 +0,0 @@
-"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
-
-import importlib.util
-import os
-import sys
-
-# list of test and other files that we expect not to have bytecode
-not_compiled = [
- '/usr/bin/pathfix.py',
- '/usr/bin/pygettext3.py',
- f'/usr/bin/pygettext{sys.version[:3]}.py',
- '/usr/bin/msgfmt3.py',
- f'/usr/bin/msgfmt{sys.version[:3]}.py',
- 'test/bad_coding.py',
- 'test/bad_coding2.py',
- 'test/badsyntax_3131.py',
- 'test/badsyntax_future3.py',
- 'test/badsyntax_future4.py',
- 'test/badsyntax_future5.py',
- 'test/badsyntax_future6.py',
- 'test/badsyntax_future7.py',
- 'test/badsyntax_future8.py',
- 'test/badsyntax_future9.py',
- 'test/badsyntax_future10.py',
- 'test/badsyntax_async1.py',
- 'test/badsyntax_async2.py',
- 'test/badsyntax_async3.py',
- 'test/badsyntax_async4.py',
- 'test/badsyntax_async5.py',
- 'test/badsyntax_async6.py',
- 'test/badsyntax_async7.py',
- 'test/badsyntax_async8.py',
- 'test/badsyntax_async9.py',
- 'test/badsyntax_pep3120.py',
- 'lib2to3/tests/data/bom.py',
- 'lib2to3/tests/data/crlf.py',
- 'lib2to3/tests/data/different_encoding.py',
- 'lib2to3/tests/data/false_encoding.py',
- 'lib2to3/tests/data/py2_test_grammar.py',
- '.debug-gdb.py',
-]
-failed = 0
-
-
-def bytecode_expected(source):
- for f in not_compiled:
- if source.endswith(f):
- return False
- return True
-
-
-compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
-for f in compiled:
- # check both pyo and pyc
- to_check = map(lambda b: importlib.util.cache_from_source(f, b), (True, False))
- f_mtime = os.path.getmtime(f)
- for c in to_check:
- c_mtime = os.path.getmtime(c)
- if c_mtime < f_mtime:
- sys.stderr.write('Failed bytecompilation timestamps check: ')
- sys.stderr.write('Bytecode file {} is older than source file {}.\n'.format(c, f))
- failed += 1
-
-if failed:
- sys.stderr.write('\n{} files failed bytecompilation timestamps check.\n'.format(failed))
- sys.exit(1)
diff --git a/check-pyc-timestamps.py b/check-pyc-timestamps.py
new file mode 100644
index 0000000..91af4fd
--- /dev/null
+++ b/check-pyc-timestamps.py
@@ -0,0 +1,55 @@
+"""Checks if all *.pyc files have later mtime than their *.py files."""
+
+import os
+import sys
+from importlib.util import cache_from_source
+from pathlib import Path
+
+
+RPM_BUILD_ROOT = os.environ.get('RPM_BUILD_ROOT', '')
+
+# ...cpython-3X.pyc
+# ...cpython-3X.opt-1.pyc
+# ...cpython-3X.opt-2.pyc
+LEVELS = (None, 1, 2)
+
+# list of globs of test and other files that we expect not to have bytecode
+not_compiled = [
+ '/usr/bin/*',
+ '*/test/bad_coding.py',
+ '*/test/bad_coding2.py',
+ '*/test/badsyntax_*.py',
+ '*/lib2to3/tests/data/bom.py',
+ '*/lib2to3/tests/data/crlf.py',
+ '*/lib2to3/tests/data/different_encoding.py',
+ '*/lib2to3/tests/data/false_encoding.py',
+ '*/lib2to3/tests/data/py2_test_grammar.py',
+ '*.debug-gdb.py',
+]
+
+
+def bytecode_expected(path):
+ path = Path(path[len(RPM_BUILD_ROOT):])
+ for glob in not_compiled:
+ if path.match(glob):
+ return False
+ return True
+
+
+failed = 0
+compiled = (path for path in sys.argv[1:] if bytecode_expected(path))
+for path in compiled:
+ to_check = (cache_from_source(path, optimization=opt) for opt in LEVELS)
+ f_mtime = os.path.getmtime(path)
+ for pyc in to_check:
+ c_mtime = os.path.getmtime(pyc)
+ if c_mtime < f_mtime:
+ print('Failed bytecompilation timestamps check: '
+ f'Bytecode file {pyc} is older than source file {path}',
+ file=sys.stderr)
+ failed += 1
+
+if failed:
+ print(f'\n{failed} files failed bytecompilation timestamps check.',
+ file=sys.stderr)
+ sys.exit(1)
diff --git a/python3.spec b/python3.spec
index a6c6481..5969a45 100644
--- a/python3.spec
+++ b/python3.spec
@@ -200,8 +200,8 @@ Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
-# Written by bkabrda
-Source8: check-pyc-and-pyo-timestamps.py
+# Originally written by bkabrda
+Source8: check-pyc-timestamps.py
# Desktop menu entry for idle3
Source10: idle3.desktop
commit 83a5f52678e1699558dd538004931e76394cd5c9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jul 26 13:44:49 2018 +0200
Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel
Resolves: rhbz#1571474
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
index 262a985..ab75c9f 100644
--- a/check-pyc-and-pyo-timestamps.py
+++ b/check-pyc-and-pyo-timestamps.py
@@ -7,6 +7,10 @@ import sys
# list of test and other files that we expect not to have bytecode
not_compiled = [
'/usr/bin/pathfix.py',
+ '/usr/bin/pygettext3.py',
+ f'/usr/bin/pygettext{sys.version[:3]}.py',
+ '/usr/bin/msgfmt3.py',
+ f'/usr/bin/msgfmt{sys.version[:3]}.py',
'test/bad_coding.py',
'test/bad_coding2.py',
'test/badsyntax_3131.py',
diff --git a/python3.spec b/python3.spec
index 91d0f34..a6c6481 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 7%{?dist}
+Release: 8%{?dist}
License: Python
@@ -893,6 +893,14 @@ sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
# See https://github.com/fedora-python/python-rpm-porting/issues/24
cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+# Install i18n tools to bindir
+# They are also in python2, so we version them
+# https://bugzilla.redhat.com/show_bug.cgi?id=1571474
+for tool in pygettext msgfmt; do
+ cp -p Tools/i18n/${tool}.py %{buildroot}%{_bindir}/${tool}%{pybasever}.py
+ ln -s ${tool}%{pybasever}.py %{buildroot}%{_bindir}/${tool}3.py
+done
+
# Switch all shebangs to refer to the specific Python version.
# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
# so handle files named using other naming scheme separately.
@@ -900,6 +908,7 @@ LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
Tools/scripts/pathfix.py \
-i "%{_bindir}/python%{pybasever}" -pn \
%{buildroot} \
+ %{buildroot}%{_bindir}/*%{pybasever}.py \
%{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
# Remove tests for python3-tools which was removed in
@@ -964,6 +973,8 @@ mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
rm %{buildroot}%{_bindir}/python3
rm %{buildroot}%{_bindir}/pydoc3
rm %{buildroot}%{_bindir}/pathfix.py
+rm %{buildroot}%{_bindir}/pygettext3.py
+rm %{buildroot}%{_bindir}/msgfmt3.py
rm %{buildroot}%{_bindir}/idle3
rm %{buildroot}%{_bindir}/python3-*
rm %{buildroot}%{_bindir}/pyvenv
@@ -1328,8 +1339,13 @@ CheckPython optimized
%{_bindir}/python3-config
%{_libdir}/pkgconfig/python3.pc
%{_bindir}/pathfix.py
+%{_bindir}/pygettext3.py
+%{_bindir}/msgfmt3.py
%endif
+%{_bindir}/pygettext%{pybasever}.py
+%{_bindir}/msgfmt%{pybasever}.py
+
%{_bindir}/python%{pybasever}-config
%{_bindir}/python%{LDVERSION_optimized}-config
%{_bindir}/python%{LDVERSION_optimized}-*-config
@@ -1528,6 +1544,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-8
+- Add /usr/bin/pygettext3.py and msgfmt3.py to python3-devel
+Resolves: rhbz#1571474
+
* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-7
- Backport TLS 1.3 related fixes to fix FTBFS
Resolves: rhbz#1609291
commit 4aa9ebcc0385f0475d3d8ad1593fb1d5806a9cea
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Aug 17 13:00:03 2018 +0200
Backport TLS 1.3 related fixes to fix FTBFS
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1609291
diff --git a/00308-tls-1.3.patch b/00308-tls-1.3.patch
new file mode 100644
index 0000000..7cd9e59
--- /dev/null
+++ b/00308-tls-1.3.patch
@@ -0,0 +1,182 @@
+diff --git a/Lib/test/dh1024.pem b/Lib/test/dh1024.pem
+deleted file mode 100644
+index a391176..0000000
+--- a/Lib/test/dh1024.pem
++++ /dev/null
+@@ -1,7 +0,0 @@
+------BEGIN DH PARAMETERS-----
+-MIGHAoGBAIbzw1s9CT8SV5yv6L7esdAdZYZjPi3qWFs61CYTFFQnf2s/d09NYaJt
+-rrvJhIzWavqnue71qXCf83/J3nz3FEwUU/L0mGyheVbsSHiI64wUo3u50wK5Igo0
+-RNs/LD0irs7m0icZ//hijafTU+JOBiuA8zMI+oZfU7BGuc9XrUprAgEC
+------END DH PARAMETERS-----
+-
+-Generated with: openssl dhparam -out dh1024.pem 1024
+diff --git a/Lib/test/ffdh3072.pem b/Lib/test/ffdh3072.pem
+new file mode 100644
+index 0000000..ad69bac
+--- /dev/null
++++ b/Lib/test/ffdh3072.pem
+@@ -0,0 +1,41 @@
++ DH Parameters: (3072 bit)
++ prime:
++ 00:ff:ff:ff:ff:ff:ff:ff:ff:ad:f8:54:58:a2:bb:
++ 4a:9a:af:dc:56:20:27:3d:3c:f1:d8:b9:c5:83:ce:
++ 2d:36:95:a9:e1:36:41:14:64:33:fb:cc:93:9d:ce:
++ 24:9b:3e:f9:7d:2f:e3:63:63:0c:75:d8:f6:81:b2:
++ 02:ae:c4:61:7a:d3:df:1e:d5:d5:fd:65:61:24:33:
++ f5:1f:5f:06:6e:d0:85:63:65:55:3d:ed:1a:f3:b5:
++ 57:13:5e:7f:57:c9:35:98:4f:0c:70:e0:e6:8b:77:
++ e2:a6:89:da:f3:ef:e8:72:1d:f1:58:a1:36:ad:e7:
++ 35:30:ac:ca:4f:48:3a:79:7a:bc:0a:b1:82:b3:24:
++ fb:61:d1:08:a9:4b:b2:c8:e3:fb:b9:6a:da:b7:60:
++ d7:f4:68:1d:4f:42:a3:de:39:4d:f4:ae:56:ed:e7:
++ 63:72:bb:19:0b:07:a7:c8:ee:0a:6d:70:9e:02:fc:
++ e1:cd:f7:e2:ec:c0:34:04:cd:28:34:2f:61:91:72:
++ fe:9c:e9:85:83:ff:8e:4f:12:32:ee:f2:81:83:c3:
++ fe:3b:1b:4c:6f:ad:73:3b:b5:fc:bc:2e:c2:20:05:
++ c5:8e:f1:83:7d:16:83:b2:c6:f3:4a:26:c1:b2:ef:
++ fa:88:6b:42:38:61:1f:cf:dc:de:35:5b:3b:65:19:
++ 03:5b:bc:34:f4:de:f9:9c:02:38:61:b4:6f:c9:d6:
++ e6:c9:07:7a:d9:1d:26:91:f7:f7:ee:59:8c:b0:fa:
++ c1:86:d9:1c:ae:fe:13:09:85:13:92:70:b4:13:0c:
++ 93:bc:43:79:44:f4:fd:44:52:e2:d7:4d:d3:64:f2:
++ e2:1e:71:f5:4b:ff:5c:ae:82:ab:9c:9d:f6:9e:e8:
++ 6d:2b:c5:22:36:3a:0d:ab:c5:21:97:9b:0d:ea:da:
++ 1d:bf:9a:42:d5:c4:48:4e:0a:bc:d0:6b:fa:53:dd:
++ ef:3c:1b:20:ee:3f:d5:9d:7c:25:e4:1d:2b:66:c6:
++ 2e:37:ff:ff:ff:ff:ff:ff:ff:ff
++ generator: 2 (0x2)
++ recommended-private-length: 276 bits
++-----BEGIN DH PARAMETERS-----
++MIIBjAKCAYEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
+++8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
++87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
++YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
++7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
++ssbzSibBsu/6iGtCOGEfz9zeNVs7ZRkDW7w09N75nAI4YbRvydbmyQd62R0mkff3
++7lmMsPrBhtkcrv4TCYUTknC0EwyTvEN5RPT9RFLi103TZPLiHnH1S/9croKrnJ32
++nuhtK8UiNjoNq8Uhl5sN6todv5pC1cRITgq80Gv6U93vPBsg7j/VnXwl5B0rZsYu
++N///////////AgECAgIBFA==
++-----END DH PARAMETERS-----
+diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
+index f9488a9..da8ba32 100644
+--- a/Lib/test/test_ftplib.py
++++ b/Lib/test/test_ftplib.py
+@@ -880,18 +880,23 @@ class TestTLS_FTPClass(TestCase):
+ # clear text
+ with self.client.transfercmd('list') as sock:
+ self.assertNotIsInstance(sock, ssl.SSLSocket)
++ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
+ self.assertEqual(self.client.voidresp(), "226 transfer complete")
+
+ # secured, after PROT P
+ self.client.prot_p()
+ with self.client.transfercmd('list') as sock:
+ self.assertIsInstance(sock, ssl.SSLSocket)
++ # consume from SSL socket to finalize handshake and avoid
++ # "SSLError [SSL] shutdown while in init"
++ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
+ self.assertEqual(self.client.voidresp(), "226 transfer complete")
+
+ # PROT C is issued, the connection must be in cleartext again
+ self.client.prot_c()
+ with self.client.transfercmd('list') as sock:
+ self.assertNotIsInstance(sock, ssl.SSLSocket)
++ self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii'))
+ self.assertEqual(self.client.voidresp(), "226 transfer complete")
+
+ def test_login(self):
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+index 7bbaa9f..ea528b5 100644
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -55,7 +55,6 @@ CAPATH = data_file("capath")
+ BYTES_CAPATH = os.fsencode(CAPATH)
+ CAFILE_NEURONIO = data_file("capath", "4e1295a3.0")
+ CAFILE_CACERT = data_file("capath", "5ed36f99.0")
+-WRONG_CERT = data_file("wrongcert.pem")
+
+ CERTFILE_INFO = {
+ 'issuer': ((('countryName', 'XY'),),
+@@ -118,7 +117,7 @@ BADKEY = data_file("badkey.pem")
+ NOKIACERT = data_file("nokia.pem")
+ NULLBYTECERT = data_file("nullbytecert.pem")
+
+-DHFILE = data_file("dh1024.pem")
++DHFILE = data_file("ffdh3072.pem")
+ BYTES_DHFILE = os.fsencode(DHFILE)
+
+ # Not defined in all versions of OpenSSL
+@@ -2846,8 +2845,8 @@ class ThreadedTests(unittest.TestCase):
+ connect to it with a wrong client certificate fails.
+ """
+ client_context, server_context, hostname = testing_context()
+- # load client cert
+- client_context.load_cert_chain(WRONG_CERT)
++ # load client cert that is not signed by trusted CA
++ client_context.load_cert_chain(CERTFILE)
+ # require TLS client authentication
+ server_context.verify_mode = ssl.CERT_REQUIRED
+ # TLS 1.3 has different handshake
+@@ -2879,7 +2878,8 @@ class ThreadedTests(unittest.TestCase):
+ @unittest.skipUnless(ssl.HAS_TLSv1_3, "Test needs TLS 1.3")
+ def test_wrong_cert_tls13(self):
+ client_context, server_context, hostname = testing_context()
+- client_context.load_cert_chain(WRONG_CERT)
++ # load client cert that is not signed by trusted CA
++ client_context.load_cert_chain(CERTFILE)
+ server_context.verify_mode = ssl.CERT_REQUIRED
+ server_context.minimum_version = ssl.TLSVersion.TLSv1_3
+ client_context.minimum_version = ssl.TLSVersion.TLSv1_3
+diff --git a/Lib/test/wrongcert.pem b/Lib/test/wrongcert.pem
+deleted file mode 100644
+index 5f92f9b..0000000
+--- a/Lib/test/wrongcert.pem
++++ /dev/null
+@@ -1,32 +0,0 @@
+------BEGIN RSA PRIVATE KEY-----
+-MIICXAIBAAKBgQC89ZNxjTgWgq7Z1g0tJ65w+k7lNAj5IgjLb155UkUrz0XsHDnH
+-FlbsVUg2Xtk6+bo2UEYIzN7cIm5ImpmyW/2z0J1IDVDlvR2xJ659xrE0v5c2cB6T
+-f9lnNTwpSoeK24Nd7Jwq4j9vk95fLrdqsBq0/KVlsCXeixS/CaqqduXfvwIDAQAB
+-AoGAQFko4uyCgzfxr4Ezb4Mp5pN3Npqny5+Jey3r8EjSAX9Ogn+CNYgoBcdtFgbq
+-1yif/0sK7ohGBJU9FUCAwrqNBI9ZHB6rcy7dx+gULOmRBGckln1o5S1+smVdmOsW
+-7zUVLBVByKuNWqTYFlzfVd6s4iiXtAE2iHn3GCyYdlICwrECQQDhMQVxHd3EFbzg
+-SFmJBTARlZ2GKA3c1g/h9/XbkEPQ9/RwI3vnjJ2RaSnjlfoLl8TOcf0uOGbOEyFe
+-19RvCLXjAkEA1s+UE5ziF+YVkW3WolDCQ2kQ5WG9+ccfNebfh6b67B7Ln5iG0Sbg
+-ky9cjsO3jbMJQtlzAQnH1850oRD5Gi51dQJAIbHCDLDZU9Ok1TI+I2BhVuA6F666
+-lEZ7TeZaJSYq34OaUYUdrwG9OdqwZ9sy9LUav4ESzu2lhEQchCJrKMn23QJAReqs
+-ZLHUeTjfXkVk7dHhWPWSlUZ6AhmIlA/AQ7Payg2/8wM/JkZEJEPvGVykms9iPUrv
+-frADRr+hAGe43IewnQJBAJWKZllPgKuEBPwoEldHNS8nRu61D7HzxEzQ2xnfj+Nk
+-2fgf1MAzzTRsikfGENhVsVWeqOcijWb6g5gsyCmlRpc=
+------END RSA PRIVATE KEY-----
+------BEGIN CERTIFICATE-----
+-MIICsDCCAhmgAwIBAgIJAOqYOYFJfEEoMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+-BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+-aWRnaXRzIFB0eSBMdGQwHhcNMDgwNjI2MTgxNTUyWhcNMDkwNjI2MTgxNTUyWjBF
+-MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
+-ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+-gQC89ZNxjTgWgq7Z1g0tJ65w+k7lNAj5IgjLb155UkUrz0XsHDnHFlbsVUg2Xtk6
+-+bo2UEYIzN7cIm5ImpmyW/2z0J1IDVDlvR2xJ659xrE0v5c2cB6Tf9lnNTwpSoeK
+-24Nd7Jwq4j9vk95fLrdqsBq0/KVlsCXeixS/CaqqduXfvwIDAQABo4GnMIGkMB0G
+-A1UdDgQWBBTctMtI3EO9OjLI0x9Zo2ifkwIiNjB1BgNVHSMEbjBsgBTctMtI3EO9
+-OjLI0x9Zo2ifkwIiNqFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
+-U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAOqYOYFJ
+-fEEoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAQwa7jya/DfhaDn7E
+-usPkpgIX8WCL2B1SqnRTXEZfBPPVq/cUmFGyEVRVATySRuMwi8PXbVcOhXXuocA+
+-43W+iIsD9pXapCZhhOerCq18TC1dWK98vLUsoK8PMjB6e5H/O8bqojv0EeC+fyCw
+-eSHj5jpC8iZKjCHBn+mAi4cQ514=
+------END CERTIFICATE-----
+diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
+index 20d4eeac12..a0c683bbcf 100644
+--- a/Lib/test/test_poplib.py
++++ b/Lib/test/test_poplib.py
+@@ -178,7 +178,8 @@ class DummyPOP3Handler(asynchat.async_chat):
+ return self.handle_close()
+ # TODO: SSLError does not expose alert information
+ elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or
+- "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]):
++ "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1] or
++ "bad record type" in err.args[1]):
+ return self.handle_close()
+ raise
+ except OSError as err:
diff --git a/python3.spec b/python3.spec
index 9caf494..91d0f34 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 6%{?dist}
+Release: 7%{?dist}
License: Python
@@ -311,6 +311,15 @@ Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
# and: https://bugs.python.org/issue34008
Patch307: 00307-allow-to-call-Py_Main-after-Py_Initialize.patch
+# 00308 #
+# TLS 1.3 related fixes from upstream:
+# https://github.com/python/cpython/pull/8762
+# https://github.com/python/cpython/pull/8787
+# And a workaround before openssl is 1.1.1-pre9:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1609291#c12
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1609291
+Patch308: 00308-tls-1.3.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -633,6 +642,7 @@ rm Lib/ensurepip/_bundled/*.whl
%patch274 -p1
%patch291 -p1
%patch307 -p1
+%patch308 -p1
# Remove files that should be generated by the build
@@ -1009,6 +1019,12 @@ CheckPython() {
ConfName=$1
ConfDir=$(pwd)/build/$ConfName
+ # Fedora sets TLSv1 as explicit minimum version.
+ # Python's test suite assumes that the minimum protocol version is set to
+ # a magic marker. We workaround the test problem by setting:
+ export OPENSSL_CONF=/non-existing-file
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1618753
+
echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
# Note that we're running the tests using the version of the code in the
@@ -1512,6 +1528,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Aug 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-7
+- Backport TLS 1.3 related fixes to fix FTBFS
+Resolves: rhbz#1609291
+
* Wed Aug 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-6
- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch
commit b9e8a46cca86dec69891b26ab810cc80b4db96b2
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Aug 16 12:30:28 2018 +0200
Recommend setuptools and pip for developer experience
diff --git a/python3.spec b/python3.spec
index 6e87de8..9caf494 100644
--- a/python3.spec
+++ b/python3.spec
@@ -358,6 +358,12 @@ Obsoletes: python%{pyshortver}
%global platpyver 3.6.2-20
Obsoletes: platform-python < %{platpyver}
+# 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: python3-setuptools
+Recommends: python3-pip
+
# This prevents ALL subpackages built from this spec to require
# /usr/bin/python3*. Granularity per subpackage is impossible.
# It's intended for the libs package not to drag in the interpreter, see
commit 0b241abda6b7f8d4b092974cecd11d9660fa7b83
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 15 15:36:29 2018 +0200
Drop the rewheel patch, use RPM built wheels instead
diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch
deleted file mode 100644
index d8ba671..0000000
--- a/00189-add-rewheel-module.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
-index 7ff938b..8c3d062 100644
---- a/Lib/ensurepip/__init__.py
-+++ b/Lib/ensurepip/__init__.py
-@@ -1,8 +1,10 @@
- import os
- import os.path
- import pkgutil
-+import shutil
- import sys
- import tempfile
-+from ensurepip import rewheel
-
-
- __all__ = ["version", "bootstrap"]
-@@ -24,8 +26,15 @@ 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
-+ if args[0] in ["install", "list", "wheel"]:
-+ args.append('--pre')
-+ return main(args)
-
-
- def version():
-@@ -88,20 +97,39 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
- # omit pip and easy_install
- os.environ["ENSUREPIP_OPTIONS"] = "install"
-
-+ whls = []
-+ rewheel_dir = None
-+ # try to see if we have system-wide versions of _PROJECTS
-+ dep_records = rewheel.find_system_records([p[0] for p in _PROJECTS])
-+ # TODO: check if system-wide versions are the newest ones
-+ # if --upgrade is used?
-+ if all(dep_records):
-+ # if we have all _PROJECTS installed system-wide, we'll recreate
-+ # wheels from them and install those
-+ rewheel_dir = tempfile.TemporaryDirectory()
-+ for dr in dep_records:
-+ new_whl = rewheel.rewheel_from_record(dr, rewheel_dir.name)
-+ whls.append(os.path.join(rewheel_dir.name, new_whl))
-+ else:
-+ # if we don't have all the _PROJECTS installed system-wide,
-+ # let's just fall back to bundled wheels
-+ for project, version in _PROJECTS:
-+ whl = os.path.join(
-+ os.path.dirname(__file__),
-+ "_bundled",
-+ "{}-{}-py2.py3-none-any.whl".format(project, version)
-+ )
-+ whls.append(whl)
-+
- with tempfile.TemporaryDirectory() as tmpdir:
- # Put our bundled wheels into a temporary directory and construct the
- # additional paths that need added to sys.path
- 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)
--
-- additional_paths.append(os.path.join(tmpdir, wheel_name))
-+ for whl in whls:
-+ shutil.copy(whl, tmpdir)
-+ additional_paths.append(os.path.join(tmpdir, os.path.basename(whl)))
-+ if rewheel_dir:
-+ rewheel_dir.cleanup()
-
- # Construct the arguments to be passed to the pip command
- args = ["install", "--no-index", "--find-links", tmpdir]
-diff --git a/Lib/ensurepip/rewheel/__init__.py b/Lib/ensurepip/rewheel/__init__.py
-new file mode 100644
-index 0000000..753c764
---- /dev/null
-+++ b/Lib/ensurepip/rewheel/__init__.py
-@@ -0,0 +1,143 @@
-+import argparse
-+import codecs
-+import csv
-+import email.parser
-+import os
-+import io
-+import re
-+import site
-+import subprocess
-+import sys
-+import zipfile
-+
-+def run():
-+ parser = argparse.ArgumentParser(description='Recreate wheel of package with given RECORD.')
-+ parser.add_argument('record_path',
-+ help='Path to RECORD file')
-+ parser.add_argument('-o', '--output-dir',
-+ help='Dir where to place the wheel, defaults to current working dir.',
-+ dest='outdir',
-+ default=os.path.curdir)
-+
-+ ns = parser.parse_args()
-+ retcode = 0
-+ try:
-+ print(rewheel_from_record(**vars(ns)))
-+ except BaseException as e:
-+ print('Failed: {}'.format(e))
-+ retcode = 1
-+ sys.exit(1)
-+
-+def find_system_records(projects):
-+ """Return list of paths to RECORD files for system-installed projects.
-+
-+ If a project is not installed, the resulting list contains None instead
-+ of a path to its RECORD
-+ """
-+ records = []
-+ # get system site-packages dirs
-+ sys_sitepack = site.getsitepackages([sys.base_prefix, sys.base_exec_prefix])
-+ sys_sitepack = [sp for sp in sys_sitepack if os.path.exists(sp)]
-+ # try to find all projects in all system site-packages
-+ for project in projects:
-+ path = None
-+ for sp in sys_sitepack:
-+ dist_info_re = os.path.join(sp, project) + r'-[^\{0}]+\.dist-info'.format(os.sep)
-+ candidates = [os.path.join(sp, p) for p in os.listdir(sp)]
-+ # filter out candidate dirs based on the above regexp
-+ filtered = [c for c in candidates if re.match(dist_info_re, c)]
-+ # if we have 0 or 2 or more dirs, something is wrong...
-+ if len(filtered) == 1:
-+ path = filtered[0]
-+ if path is not None:
-+ records.append(os.path.join(path, 'RECORD'))
-+ else:
-+ records.append(None)
-+ return records
-+
-+def rewheel_from_record(record_path, outdir):
-+ """Recreates a whee of package with given record_path and returns path
-+ to the newly created wheel."""
-+ site_dir = os.path.dirname(os.path.dirname(record_path))
-+ record_relpath = record_path[len(site_dir):].strip(os.path.sep)
-+ to_write, to_omit = get_records_to_pack(site_dir, record_relpath)
-+ new_wheel_name = get_wheel_name(record_path)
-+ new_wheel_path = os.path.join(outdir, new_wheel_name + '.whl')
-+
-+ new_wheel = zipfile.ZipFile(new_wheel_path, mode='w', compression=zipfile.ZIP_DEFLATED)
-+ # we need to write a new record with just the files that we will write,
-+ # e.g. not binaries and *.pyc/*.pyo files
-+ new_record = io.StringIO()
-+ writer = csv.writer(new_record)
-+
-+ # handle files that we can write straight away
-+ for f, sha_hash, size in to_write:
-+ new_wheel.write(os.path.join(site_dir, f), arcname=f)
-+ writer.writerow([f, sha_hash,size])
-+
-+ # rewrite the old wheel file with a new computed one
-+ writer.writerow([record_relpath, '', ''])
-+ new_wheel.writestr(record_relpath, new_record.getvalue())
-+
-+ new_wheel.close()
-+
-+ return new_wheel.filename
-+
-+def get_wheel_name(record_path):
-+ """Return proper name of the wheel, without .whl."""
-+
-+ wheel_info_path = os.path.join(os.path.dirname(record_path), 'WHEEL')
-+ with codecs.open(wheel_info_path, encoding='utf-8') as wheel_info_file:
-+ wheel_info = email.parser.Parser().parsestr(wheel_info_file.read())
-+
-+ metadata_path = os.path.join(os.path.dirname(record_path), 'METADATA')
-+ with codecs.open(metadata_path, encoding='utf-8') as metadata_file:
-+ metadata = email.parser.Parser().parsestr(metadata_file.read())
-+
-+ # construct name parts according to wheel spec
-+ distribution = metadata.get('Name')
-+ version = metadata.get('Version')
-+ build_tag = '' # nothing for now
-+ lang_tag = []
-+ for t in wheel_info.get_all('Tag'):
-+ lang_tag.append(t.split('-')[0])
-+ lang_tag = '.'.join(lang_tag)
-+ abi_tag, plat_tag = wheel_info.get('Tag').split('-')[1:3]
-+ # leave out build tag, if it is empty
-+ to_join = filter(None, [distribution, version, build_tag, lang_tag, abi_tag, plat_tag])
-+ return '-'.join(list(to_join))
-+
-+def get_records_to_pack(site_dir, record_relpath):
-+ """Accepts path of sitedir and path of RECORD file relative to it.
-+ Returns two lists:
-+ - list of files that can be written to new RECORD straight away
-+ - list of files that shouldn't be written or need some processing
-+ (pyc and pyo files, scripts)
-+ """
-+ record_file_path = os.path.join(site_dir, record_relpath)
-+ with codecs.open(record_file_path, encoding='utf-8') as record_file:
-+ record_contents = record_file.read()
-+ # temporary fix for https://github.com/pypa/pip/issues/1376
-+ # we need to ignore files under ".data" directory
-+ data_dir = os.path.dirname(record_relpath).strip(os.path.sep)
-+ data_dir = data_dir[:-len('dist-info')] + 'data'
-+
-+ to_write = []
-+ to_omit = []
-+ for l in record_contents.splitlines():
-+ spl = l.split(',')
-+ if len(spl) == 3:
-+ # new record will omit (or write differently):
-+ # - abs paths, paths with ".." (entry points),
-+ # - pyc+pyo files
-+ # - the old RECORD file
-+ # TODO: is there any better way to recognize an entry point?
-+ if os.path.isabs(spl[0]) or spl[0].startswith('..') or \
-+ spl[0].endswith('.pyc') or spl[0].endswith('.pyo') or \
-+ spl[0] == record_relpath or spl[0].startswith(data_dir):
-+ to_omit.append(spl)
-+ else:
-+ to_write.append(spl)
-+ else:
-+ pass # bad RECORD or empty line
-+ return to_write, to_omit
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index d07b312..1c6720e 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1301,7 +1301,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
- test/test_asyncio \
- collections concurrent concurrent/futures encodings \
- email email/mime test/test_email test/test_email/data \
-- ensurepip ensurepip/_bundled \
-+ ensurepip ensurepip/_bundled ensurepip/rewheel \
- html json test/test_json http dbm xmlrpc \
- sqlite3 sqlite3/test \
- logging csv wsgiref urllib \
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
new file mode 100644
index 0000000..cc2719b
--- /dev/null
+++ b/00189-use-rpm-wheels.patch
@@ -0,0 +1,51 @@
+diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
+index 4748ba4..fc02255 100644
+--- a/Lib/ensurepip/__init__.py
++++ b/Lib/ensurepip/__init__.py
+@@ -1,16 +1,27 @@
++import distutils.version
++import glob
+ import os
+ import os.path
+-import pkgutil
+ import sys
+ import tempfile
+
+
+ __all__ = ["version", "bootstrap"]
+
++_WHEEL_DIR = "/usr/share/python-wheels/"
+
+-_SETUPTOOLS_VERSION = "39.0.1"
+
+-_PIP_VERSION = "10.0.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),
+@@ -94,12 +105,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/python3.spec b/python3.spec
index 3661213..6e87de8 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Python
@@ -33,6 +33,9 @@ License: Python
# WARNING: This does not change the package name and summary above
%bcond_with flatpackage
+# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
+# Uses upstream bundled prebuilt wheels otherwise
+%bcond_without rpmwheels
# Expensive optimizations (mainly, profile-guided optimizations)
%ifarch %{ix86} x86_64
@@ -46,13 +49,6 @@ License: Python
# Run the test suite in %%check
%bcond_without tests
-# Ability to reuse RPM-installed pip using rewheel
-%if %{with flatpackage}
-%bcond_with rewheel
-%else
-%bcond_without rewheel
-%endif
-
# Extra build for debugging the interpreter or C-API extensions
# (the -debug subpackages)
%if %{with flatpackage}
@@ -190,9 +186,9 @@ BuildRequires: /usr/bin/dtrace
# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
BuildRequires: /usr/sbin/ifconfig
-%if %{with rewheel}
-BuildRequires: python3-setuptools
-BuildRequires: python3-pip
+%if %{with rpmwheels}
+BuildRequires: python-setuptools-wheel
+BuildRequires: python-pip-wheel
%endif
@@ -283,10 +279,9 @@ Patch170: 00170-gc-assertions.patch
Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
# 00189 #
-# Add the rewheel module, allowing to recreate wheels from already installed
-# ones
-# https://github.com/bkabrda/rewheel
-Patch189: 00189-add-rewheel-module.patch
+# Instead of bundled wheels, use our RPM packaged wheels from
+# /usr/share/python-wheels
+Patch189: 00189-use-rpm-wheels.patch
# 00205 #
# LIBPL variable in makefile takes LIBPL from configure.ac
@@ -363,11 +358,6 @@ Obsoletes: python%{pyshortver}
%global platpyver 3.6.2-20
Obsoletes: platform-python < %{platpyver}
-%if %{with rewheel}
-Requires: python3-setuptools
-Requires: python3-pip
-%endif
-
# This prevents ALL subpackages built from this spec to require
# /usr/bin/python3*. Granularity per subpackage is impossible.
# It's intended for the libs package not to drag in the interpreter, see
@@ -414,6 +404,14 @@ Requires: glibc%{?_isa} >= 2.24.90-26
Requires: gdbm-libs%{?_isa} >= 1:1.13
%endif
+%if %{with rpmwheels}
+Requires: python-setuptools-wheel
+Requires: python-pip-wheel
+%else
+Provides: bundled(python3-pip) = 10.0.1
+Provides: bundled(python3-setuptools) = 39.0.1
+%endif
+
# There are files in the standard library that have python shebang.
# We've filtered the automatic requirement out so libs are installable without
# the main package. This however makes it pulled in by default.
@@ -443,12 +441,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
BuildRequires: python-rpm-macros
Requires: python-rpm-macros
Requires: python3-rpm-macros
-
-%if %{with rewheel}
-# without rewheel is used to bootstrap setuptools+pip
-# python3-rpm-generators needs python3-setuptools, so we cannot have it yet
Requires: python3-rpm-generators
-%endif
# https://bugzilla.redhat.com/show_bug.cgi?id=1217376
# https://bugzilla.redhat.com/show_bug.cgi?id=1496757
@@ -579,9 +572,13 @@ Requires: redhat-rpm-config
%global __requires_exclude ^python\\(abi\\) = 3\\..$
%global __provides_exclude ^python\\(abi\\) = 3\\..$
-# We keep those inside on purpose
+%if %{with rpmwheels}
+Requires: python-setuptools-wheel
+Requires: python-pip-wheel
+%else
Provides: bundled(python3-pip) = 10.0.1
Provides: bundled(python3-setuptools) = 39.0.1
+%endif
# The description for the flat package
%description
@@ -604,11 +601,6 @@ version once Python %{pybasever} is stable.
# Remove bundled libraries to ensure that we're using the system copy.
rm -r Modules/expat
-%if %{with rewheel}
-%global pip_version %(pip3 --version | cut -d' ' -f2)
-sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
-%endif
-
#
# Apply patches:
#
@@ -625,8 +617,9 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch170 -p1
%patch178 -p1
-%if %{with rewheel}
+%if %{with rpmwheels}
%patch189 -p1
+rm Lib/ensurepip/_bundled/*.whl
%endif
%patch205 -p1
@@ -1107,20 +1100,13 @@ CheckPython optimized
%{pylibdir}/ensurepip/*.py
%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
-%if %{without flatpackage}
+%if %{with rpmwheels}
%exclude %{pylibdir}/ensurepip/_bundled
%else
%dir %{pylibdir}/ensurepip/_bundled
%{pylibdir}/ensurepip/_bundled/*.whl
%endif
-%if %{with rewheel}
-%dir %{pylibdir}/ensurepip/rewheel/
-%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
-%{pylibdir}/ensurepip/rewheel/*.py
-%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
-%endif
-
%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/
%dir %{pylibdir}/test/support/
@@ -1520,6 +1506,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Aug 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-6
+- Use RPM built wheels of pip and setuptools in ensurepip instead of our rewheel patch
+
* Fri Aug 10 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-5
- Fix wrong requirement on gdbm
commit da8bebda6dc857076a540a222e65328def300345
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Aug 10 12:56:24 2018 +0200
Fix wrong requirement on gdbm
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index 4359d8b..3661213 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -411,7 +411,7 @@ Requires: glibc%{?_isa} >= 2.24.90-26
%if %{with gdbm}
# When built with this (as guarded by the BuildRequires above), require it
-Requires: gdbm%{?_isa} >= 1:1.13
+Requires: gdbm-libs%{?_isa} >= 1:1.13
%endif
# There are files in the standard library that have python shebang.
@@ -1520,6 +1520,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Aug 10 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-5
+- Fix wrong requirement on gdbm
+
* Fri Jul 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-4
- Allow to call Py_Main() after Py_Initialize()
Resolves: rhbz#1595421
commit a64e7f7e987353a3485cac592d39ff7a78b1718b
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Aug 4 22:07:21 2018 +0200
Use the %{valgrind_arches} macro instead of hardcoding unsupported arches
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
diff --git a/python3.spec b/python3.spec
index a3ff6af..4359d8b 100644
--- a/python3.spec
+++ b/python3.spec
@@ -71,10 +71,9 @@ License: Python
%bcond_without computed_gotos
# Support for the Valgrind debugger/profiler
-%ifnarch s390 %{mips} riscv64
+%ifarch %{valgrind_arches}
%bcond_without valgrind
%else
-# Some arches don't have valgrind, disable support for it there.
%bcond_with valgrind
%endif
commit 37437e1d447934363bebd27bfadccc041e9b4cde
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jul 20 17:47:22 2018 +0200
Allow to call Py_Main() after Py_Initialize()
Resolves: rhbz#1595421
diff --git a/00307-allow-to-call-Py_Main-after-Py_Initialize.patch b/00307-allow-to-call-Py_Main-after-Py_Initialize.patch
new file mode 100644
index 0000000..d9c0486
--- /dev/null
+++ b/00307-allow-to-call-Py_Main-after-Py_Initialize.patch
@@ -0,0 +1,150 @@
+From bbd6fc7e77dbd33ae7d3670eaf7800b5d3ff42d3 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner(a)redhat.com>
+Date: Fri, 20 Jul 2018 17:34:23 +0200
+Subject: [PATCH] bpo-34008: Allow to call Py_Main() after Py_Initialize()
+ (GH-8043)
+
+Py_Main() can again be called after Py_Initialize(), as in Python
+3.6. The new configuration is ignored, except of
+_PyMainInterpreterConfig.argv which is used to update sys.argv.
+(cherry picked from commit fb47bca9ee2d07ce96df94b4e4abafd11826eb01)
+
+Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
+---
+ Lib/test/test_embed.py | 8 ++++++++
+ .../C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst | 1 +
+ Modules/main.c | 10 +++++++---
+ Programs/_testembed.c | 16 +++++++++++++++
+ Python/pylifecycle.c | 23 +++++++++++++++++++---
+ 5 files changed, 52 insertions(+), 6 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
+
+diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
+index f3b60433ccc1..024c3f99a85d 100644
+--- a/Lib/test/test_embed.py
++++ b/Lib/test/test_embed.py
+@@ -238,6 +238,14 @@ def test_initialize_twice(self):
+ self.assertEqual(out, '')
+ self.assertEqual(err, '')
+
++ def test_initialize_pymain(self):
++ """
++ bpo-34008: Calling Py_Main() after Py_Initialize() must not fail.
++ """
++ out, err = self.run_embedded_interpreter("initialize_pymain")
++ self.assertEqual(out.rstrip(), "Py_Main() after Py_Initialize: sys.argv=['-c', 'arg2']")
++ self.assertEqual(err, '')
++
+
+ if __name__ == "__main__":
+ unittest.main()
+diff --git a/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst b/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
+new file mode 100644
+index 000000000000..d9881b9945df
+--- /dev/null
++++ b/Misc/NEWS.d/next/C API/2018-07-02-10-58-11.bpo-34008.COewz-.rst
+@@ -0,0 +1 @@
++Py_Main() can again be called after Py_Initialize(), as in Python 3.6.
+diff --git a/Modules/main.c b/Modules/main.c
+index 3809fa4abef5..31ebbceb83e0 100644
+--- a/Modules/main.c
++++ b/Modules/main.c
+@@ -2647,9 +2647,13 @@ pymain_main(_PyMain *pymain)
+
+ pymain_init_stdio(pymain);
+
+- pymain->err = _Py_InitializeCore(&pymain->config);
+- if (_Py_INIT_FAILED(pymain->err)) {
+- _Py_FatalInitError(pymain->err);
++ /* bpo-34008: For backward compatibility reasons, calling Py_Main() after
++ Py_Initialize() ignores the new configuration. */
++ if (!_PyRuntime.initialized) {
++ pymain->err = _Py_InitializeCore(&pymain->config);
++ if (_Py_INIT_FAILED(pymain->err)) {
++ _Py_FatalInitError(pymain->err);
++ }
+ }
+
+ if (pymain_init_python_main(pymain) < 0) {
+diff --git a/Programs/_testembed.c b/Programs/_testembed.c
+index b8827f074b9c..b1be682f7adc 100644
+--- a/Programs/_testembed.c
++++ b/Programs/_testembed.c
+@@ -276,6 +276,21 @@ static int test_initialize_twice(void)
+ return 0;
+ }
+
++static int test_initialize_pymain(void)
++{
++ wchar_t *argv[] = {L"PYTHON", L"-c",
++ L"import sys; print(f'Py_Main() after Py_Initialize: sys.argv={sys.argv}')",
++ L"arg2"};
++ _testembed_Py_Initialize();
++
++ /* bpo-34008: Calling Py_Main() after Py_Initialize() must not crash */
++ Py_Main(Py_ARRAY_LENGTH(argv), argv);
++
++ Py_Finalize();
++
++ return 0;
++}
++
+
+ /* *********************************************************
+ * List of test cases and the function that implements it.
+@@ -302,6 +317,7 @@ static struct TestCase TestCases[] = {
+ { "pre_initialization_sys_options", test_pre_initialization_sys_options },
+ { "bpo20891", test_bpo20891 },
+ { "initialize_twice", test_initialize_twice },
++ { "initialize_pymain", test_initialize_pymain },
+ { NULL, NULL }
+ };
+
+diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
+index fdb759f480be..219a46558825 100644
+--- a/Python/pylifecycle.c
++++ b/Python/pylifecycle.c
+@@ -775,6 +775,22 @@ _Py_InitializeCore(const _PyCoreConfig *core_config)
+ return _Py_INIT_OK();
+ }
+
++/* Py_Initialize() has already been called: update the main interpreter
++ configuration. Example of bpo-34008: Py_Main() called after
++ Py_Initialize(). */
++static _PyInitError
++_Py_ReconfigureMainInterpreter(PyInterpreterState *interp,
++ const _PyMainInterpreterConfig *config)
++{
++ if (config->argv != NULL) {
++ int res = PyDict_SetItemString(interp->sysdict, "argv", config->argv);
++ if (res < 0) {
++ return _Py_INIT_ERR("fail to set sys.argv");
++ }
++ }
++ return _Py_INIT_OK();
++}
++
+ /* Update interpreter state based on supplied configuration settings
+ *
+ * After calling this function, most of the restrictions on the interpreter
+@@ -796,9 +812,6 @@ _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *config)
+ if (!_PyRuntime.core_initialized) {
+ return _Py_INIT_ERR("runtime core not initialized");
+ }
+- if (_PyRuntime.initialized) {
+- return _Py_INIT_ERR("main interpreter already initialized");
+- }
+
+ /* Get current thread state and interpreter pointer */
+ tstate = PyThreadState_GET();
+@@ -813,6 +826,10 @@ _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *config)
+ return _Py_INIT_ERR("failed to copy main interpreter config");
+ }
+
++ if (_PyRuntime.initialized) {
++ return _Py_ReconfigureMainInterpreter(interp, config);
++ }
++
+ if (interp->core_config._disable_importlib) {
+ /* Special mode for freeze_importlib: run with no import system
+ *
diff --git a/python3.spec b/python3.spec
index b77ab76..a3ff6af 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -311,6 +311,12 @@ Patch274: 00274-fix-arch-names.patch
# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+# 00307 #
+# Allow to call Py_Main() after Py_Initialize()
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1595421
+# and: https://bugs.python.org/issue34008
+Patch307: 00307-allow-to-call-Py_Main-after-Py_Initialize.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -628,6 +634,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch251 -p1
%patch274 -p1
%patch291 -p1
+%patch307 -p1
# Remove files that should be generated by the build
@@ -1514,6 +1521,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Jul 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-4
+- Allow to call Py_Main() after Py_Initialize()
+Resolves: rhbz#1595421
+
* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
commit d90f9872b6d41e2cff3389ded4f9df5e28c092b0
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jul 9 12:53:43 2018 +0200
Replace no longer relevant notes from bootstrapping 3.6 with link to 3.7
diff --git a/python3.spec b/python3.spec
index 3863a95..b77ab76 100644
--- a/python3.spec
+++ b/python3.spec
@@ -79,40 +79,8 @@ License: Python
%endif
-# ==================================
-# Notes from bootstraping Python 3.6
-# ==================================
-#
-# New Python major version (3.X) break ABI and bytecode compatibility,
-# so all packages depending on it need to be rebuilt.
-#
-# Due to a dependency cycle between Python, gdb, rpm, pip, setuptools, wheel,
-# and other packages, this isn't straightforward.
-# Build in the following order:
-#
-# 1. At the same time:
-# - gdb without python support (add %%global _without_python 1 on top of
-# gdb's SPEC file)
-# - python-rpm-generators
-# (this can be done also during step 2., but should be done before 3.)
-# 2. python3 without rewheel (use %%bcond_with rewheel instead of
-# %%bcond_without)
-# 3. gdb with python support (remove %%global _without_python 1 on top of
-# gdb's SPEC file)
-# 4. rpm
-# 5. python-setuptools with bootstrap set to 1
-# 6. python-pip with build_wheel set to 0
-# 7. python-wheel with %%bcond_without bootstrap
-# 8. python-setuptools with bootstrap set to 0 and also with_check set to 0
-# 9. python-pip with build_wheel set to 1
-# 10. pyparsing
-# 11. python3 with rewheel
-#
-# Then the most important packages have to be built, in dependency order.
-# These were:
-# python-sphinx, pytest, python-requests, cloud-init, dnf, anaconda, abrt
-#
-# After these have been built, a targeted rebuild should be done for the rest.
+# Notes from bootstraping Python 3.7:
+# https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython
# =====================
commit 266317a762f36aa79cb4db25039b3b0e4bee9a9d
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 14 02:50:11 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index 4e972c5..3863a95 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -1546,6 +1546,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Thu Jul 12 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-2
- Rebuild for new gdbm
commit 7a4ecff9a735f2a154aeb7a22b4a6503226b31eb
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Thu Jul 12 10:58:16 2018 +0200
Rebuild for new gdbm
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index ccada0f..4e972c5 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -1546,6 +1546,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Jul 12 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.7.0-2
+- Rebuild for new gdbm
+
* Wed Jun 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-1
- Update to 3.7.0 final
commit dc63bc71b5e68ce18dd72bc15a99817ce16cfa8d
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 27 12:17:46 2018 +0200
Update to 3.7.0 final
diff --git a/python3.spec b/python3.spec
index 7f9c29a..ccada0f 100644
--- a/python3.spec
+++ b/python3.spec
@@ -11,14 +11,10 @@ Name: python3
Summary: Interpreter of the Python programming language
URL: https://www.python.org/
-
-# First rc
-%global prerel rc1
-
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 0.21.%{?prerel}%{?dist}
+Release: 1%{?dist}
License: Python
@@ -237,7 +233,7 @@ BuildRequires: python3-pip
# Source code and patches
# =======================
-Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{prerel}.t...
+Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
@@ -1550,6 +1546,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Jun 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-1
+- Update to 3.7.0 final
+
* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.21.rc1
- Finish bootstrapping, enable rewheel, tests, optimizations
diff --git a/sources b/sources
index 8ed12d6..099b345 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.7.0rc1.tar.xz) = cc4c29dfce7e2fca6328f802bd435e1ffc4acecd70d83d602a894bf076bdb95fb4635c891043ba1c3b6438d23ba7f76545cfe323ec0b57029b5c0f639fc6d2c5
+SHA512 (Python-3.7.0.tar.xz) = 8bb11233fb67ee9ab8ed1b72f8fdc62f66e26a6beaaeb92448bce681cf065269833b1658d3ed2459127f25ba43adb0eab73cf27c59834a2a803fb529b4216739
commit 838e397e16128957c8fcf6f2db31b099d2d90350
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jun 18 23:44:35 2018 +0200
Install appdata files to %{_metainfodir}
See: https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Applica...
and: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html
diff --git a/python3.spec b/python3.spec
index 7e2cd03..7f9c29a 100644
--- a/python3.spec
+++ b/python3.spec
@@ -893,9 +893,9 @@ install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/h
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
# Install and validate appdata file
-mkdir -p %{buildroot}%{_datadir}/appdata
-cp -a %{SOURCE11} %{buildroot}%{_datadir}/appdata
-appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/idle3.appdata.xml
+mkdir -p %{buildroot}%{_metainfodir}
+cp -a %{SOURCE11} %{buildroot}%{_metainfodir}
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/idle3.appdata.xml
%endif
# Make sure distutils looks at the right pyconfig.h file
@@ -1371,7 +1371,7 @@ CheckPython optimized
%{pylibdir}/idlelib
%if %{without flatpackage}
-%{_datadir}/appdata/idle3.appdata.xml
+%{_metainfodir}/idle3.appdata.xml
%{_datadir}/applications/idle3.desktop
%{_datadir}/icons/hicolor/*/apps/idle3.*
%endif
commit 40d6240272f02361704e89a807f683e81ef84a0b
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Jun 18 23:42:46 2018 +0200
Remove %defattr(-, root, root)
It is not needed since gods know when. Is's the default.
diff --git a/python3.spec b/python3.spec
index cfe6468..7e2cd03 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1080,7 +1080,6 @@ CheckPython optimized
%files
-%defattr(-, root, root)
%license LICENSE
%doc README.rst
@@ -1102,7 +1101,6 @@ CheckPython optimized
%if %{without flatpackage}
%files libs
-%defattr(-,root,root,-)
%license LICENSE
%doc README.rst
%endif
@@ -1336,7 +1334,6 @@ CheckPython optimized
%if %{without flatpackage}
%files devel
-%defattr(-,root,root)
%{_bindir}/2to3
%endif
@@ -1365,7 +1362,6 @@ CheckPython optimized
%if %{without flatpackage}
%files idle
-%defattr(-,root,root,755)
%{_bindir}/idle*
%else
@@ -1382,7 +1378,6 @@ CheckPython optimized
%if %{without flatpackage}
%files tkinter
-%defattr(-,root,root,755)
%endif
%{pylibdir}/tkinter
@@ -1401,7 +1396,6 @@ CheckPython optimized
%if %{without flatpackage}
%files test
-%defattr(-, root, root)
%endif
%{pylibdir}/ctypes/test
@@ -1427,7 +1421,6 @@ CheckPython optimized
%if %{with debug_build}
%if %{without flatpackage}
%files debug
-%defattr(-,root,root,-)
%{_bindir}/python3-debug
%endif
commit d780a93d16002cb4fddc858863437c784a904516
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 13 20:47:48 2018 +0200
Don't hardcode pip version, make it dynamic at build time
This will make test_with_pip (test.test_venv.EnsurePipTest) happy.
diff --git a/python3.spec b/python3.spec
index ae579b5..cfe6468 100644
--- a/python3.spec
+++ b/python3.spec
@@ -636,7 +636,7 @@ version once Python %{pybasever} is stable.
rm -r Modules/expat
%if %{with rewheel}
-%global pip_version 9.0.1
+%global pip_version %(pip3 --version | cut -d' ' -f2)
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
%endif
commit 3ba1d1aadf6f9125a1d7a3059f8581aa738bb074
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 13 19:14:30 2018 +0200
Finish bootstrapping, enable rewheel, tests, optimizations
diff --git a/python3.spec b/python3.spec
index 5cb2190..ae579b5 100644
--- a/python3.spec
+++ b/python3.spec
@@ -18,7 +18,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.0
-Release: 0.20.%{?prerel}%{?dist}
+Release: 0.21.%{?prerel}%{?dist}
License: Python
@@ -40,7 +40,7 @@ License: Python
# Expensive optimizations (mainly, profile-guided optimizations)
%ifarch %{ix86} x86_64
-%bcond_with optimizations
+%bcond_without optimizations
%else
# On some architectures, the optimized build takes tens of hours, possibly
# longer than Koji's 24-hour timeout. Disable optimizations here.
@@ -48,13 +48,13 @@ License: Python
%endif
# Run the test suite in %%check
-%bcond_with tests
+%bcond_without tests
# Ability to reuse RPM-installed pip using rewheel
%if %{with flatpackage}
%bcond_with rewheel
%else
-%bcond_with rewheel
+%bcond_without rewheel
%endif
# Extra build for debugging the interpreter or C-API extensions
@@ -1557,6 +1557,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Jun 13 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.21.rc1
+- Finish bootstrapping, enable rewheel, tests, optimizations
+
* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
- Update to 3.7.0rc1
- Bootstrap, disable rewheel, tests, optimizations
commit 2266a26125b54d320d22ce07e09ef6620e9d1065
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jun 13 15:27:50 2018 +0200
Bootstrap, disable tests, optimizations
diff --git a/python3.spec b/python3.spec
index c166c19..5cb2190 100644
--- a/python3.spec
+++ b/python3.spec
@@ -40,7 +40,7 @@ License: Python
# Expensive optimizations (mainly, profile-guided optimizations)
%ifarch %{ix86} x86_64
-%bcond_without optimizations
+%bcond_with optimizations
%else
# On some architectures, the optimized build takes tens of hours, possibly
# longer than Koji's 24-hour timeout. Disable optimizations here.
@@ -48,7 +48,7 @@ License: Python
%endif
# Run the test suite in %%check
-%bcond_without tests
+%bcond_with tests
# Ability to reuse RPM-installed pip using rewheel
%if %{with flatpackage}
@@ -1559,7 +1559,7 @@ CheckPython optimized
%changelog
* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
- Update to 3.7.0rc1
-- Bootstrap, disable rewheel
+- Bootstrap, disable rewheel, tests, optimizations
* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
- Fix multiprocessing regression on newer glibcs
commit 00bb7bddf29c3fd4a83a43f7f66fe90fd79740e1
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jun 12 13:55:40 2018 +0200
Bootstrap, disable rewheel
diff --git a/python3.spec b/python3.spec
index 1e2645b..c166c19 100644
--- a/python3.spec
+++ b/python3.spec
@@ -54,7 +54,7 @@ License: Python
%if %{with flatpackage}
%bcond_with rewheel
%else
-%bcond_without rewheel
+%bcond_with rewheel
%endif
# Extra build for debugging the interpreter or C-API extensions
@@ -1559,6 +1559,7 @@ CheckPython optimized
%changelog
* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
- Update to 3.7.0rc1
+- Bootstrap, disable rewheel
* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
- Fix multiprocessing regression on newer glibcs
commit cb1167a87825f7bce17fed3fc4e24a040995cd77
Merge: 2d5b843 de441a2
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jun 12 12:44:40 2018 +0200
Merge from python37, update to 3.7.0rc1
diff --cc python3.rpmlintrc
index 03607c6,0000000..6c1ce83
mode 100644,000000..100644
--- a/python3.rpmlintrc
+++ b/python3.rpmlintrc
@@@ -1,67 -1,0 +1,75 @@@
+# KNOWN BUGS:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1489816
+addFilter(r'crypto-policy-non-compliance-openssl')
+
+
+# TESTS:
+addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
+
+
+# OTHER DELIBERATES:
+# chroot function
+addFilter(r'missing-call-to-chdir-with-chroot')
+
+# intentionally unversioned and selfobsoleted
+addFilter(r'unversioned-explicit-obsoletes python')
+addFilter(r'self-obsoletion python3\d obsoletes python3\d')
+
+# intentionally hardcoded
+addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})')
+
++# intentional for our pythonXY package
++addFilter(r'python3\d\.[^:]+: (E|W): devel-file-in-non-devel-package')
++
+# we have non binary stuff, python files
+addFilter(r'only-non-binary-in-usr-lib')
+
+# some devel files that are deliberately needed
+addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
+addFilter(r'devel-file-in-non-devel-package /usr/lib64/python3\.\d/distutils/tests/xxmodule\.c')
+
+
+# SORRY, NOT SORRY:
+# manual pages
+addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix\.py)')
+addFilter(r'no-manual-page-for-binary python3.*-config$')
+addFilter(r'no-manual-page-for-binary python3.\dd?m$')
+
+# missing documentation from subpackages
+addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')
+
+# platform python is obsoleted, but not provided
+addFilter(r'obsolete-not-provided platform-python')
+
+
- # RPMLINT IMPERFECTIONS:
- # ifarch applied patches are OK
- # https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
- addFilter(r'%ifarch-applied-patch')
++# RPMLINT IMPERFECTIONS
++# https://github.com/rpm-software-management/rpmlint/issues/123
++addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3393')
++# https://github.com/rpm-software-management/rpmlint/pull/133
++addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3394')
++
++# https://bugzilla.redhat.com/show_bug.cgi?id=1550562
++# https://github.com/rpm-software-management/rpmlint/issues/128
++addFilter(r'python-bytecode-inconsistent-mtime .* 1970')
+
+# debugsource
+addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')
+
+# debuginfo
+addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')
+
+# this is OK for F28+
+addFilter(r'library-without-ldconfig-post')
+
+# debug package contains devel and non-devel files
+addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package')
+
+# this goes to other subpackage, hence not actually dangling, the read error is bogus
+addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
+addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
+
+# we need this macro to evaluate, even if the line starts with #
+addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
+
+# SPELLING ERRORS
+addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
diff --cc python3.spec
index e7f52f5,0000000..1e2645b
mode 100644,000000..100644
--- a/python3.spec
+++ b/python3.spec
@@@ -1,2703 -1,0 +1,2680 @@@
+# ==================
+# Top-level metadata
+# ==================
+
- %global pybasever 3.6
++%global pybasever 3.7
+
+# pybasever without the dot:
- %global pyshortver 36
++%global pyshortver 37
+
+Name: python3
+Summary: Interpreter of the Python programming language
+URL: https://www.python.org/
+
++
++# First rc
++%global prerel rc1
++
+# WARNING When rebasing to a new Python version,
+# remember to update the python3-docs package as well
- Version: %{pybasever}.5
- Release: 4%{?dist}
++Version: %{pybasever}.0
++Release: 0.20.%{?prerel}%{?dist}
+License: Python
+
+
+# ==================================
+# Conditionals 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"
+
++
+# Flat package, i.e. python36, python37, python38 for tox etc.
+# warning: changes some other defaults
+# in Fedora, never turn this on for the python3 package
- # and always keep it on for python36 etc.
++# and always keep it on for python37 etc.
+# WARNING: This does not change the package name and summary above
+%bcond_with flatpackage
+
+
+# Expensive optimizations (mainly, profile-guided optimizations)
+%ifarch %{ix86} x86_64
+%bcond_without optimizations
+%else
+# On some architectures, the optimized build takes tens of hours, possibly
+# longer than Koji's 24-hour timeout. Disable optimizations here.
+%bcond_with optimizations
+%endif
+
+# Run the test suite in %%check
+%bcond_without tests
+
+# Ability to reuse RPM-installed pip using rewheel
+%if %{with flatpackage}
+%bcond_with rewheel
+%else
+%bcond_without rewheel
+%endif
+
+# Extra build for debugging the interpreter or C-API extensions
+# (the -debug subpackages)
+%if %{with flatpackage}
+%bcond_with debug_build
+%else
+%bcond_without debug_build
+%endif
+
+# Support for the GDB debugger
+%bcond_without gdb_hooks
+
+# The dbm.gnu module (key-value database)
+%bcond_without gdbm
+
+# Main interpreter loop optimization
+%bcond_without computed_gotos
+
+# Support for the Valgrind debugger/profiler
+%ifnarch s390 %{mips} riscv64
+%bcond_without valgrind
+%else
+# Some arches don't have valgrind, disable support for it there.
+%bcond_with valgrind
+%endif
+
+
+# ==================================
+# Notes from bootstraping Python 3.6
+# ==================================
+#
+# New Python major version (3.X) break ABI and bytecode compatibility,
+# so all packages depending on it need to be rebuilt.
+#
+# Due to a dependency cycle between Python, gdb, rpm, pip, setuptools, wheel,
+# and other packages, this isn't straightforward.
+# Build in the following order:
+#
+# 1. At the same time:
+# - gdb without python support (add %%global _without_python 1 on top of
+# gdb's SPEC file)
+# - python-rpm-generators
+# (this can be done also during step 2., but should be done before 3.)
+# 2. python3 without rewheel (use %%bcond_with rewheel instead of
+# %%bcond_without)
+# 3. gdb with python support (remove %%global _without_python 1 on top of
+# gdb's SPEC file)
+# 4. rpm
+# 5. python-setuptools with bootstrap set to 1
+# 6. python-pip with build_wheel set to 0
+# 7. python-wheel with %%bcond_without bootstrap
+# 8. python-setuptools with bootstrap set to 0 and also with_check set to 0
+# 9. python-pip with build_wheel set to 1
+# 10. pyparsing
+# 11. python3 with rewheel
+#
+# Then the most important packages have to be built, in dependency order.
+# These were:
+# python-sphinx, pytest, python-requests, cloud-init, dnf, anaconda, abrt
+#
+# After these have been built, a targeted rebuild should be done for the rest.
+
+
+# =====================
+# General global macros
+# =====================
+
+%global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
+# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+# All bytecode files are in a __pycache__ subdirectory, with a name
+# reflecting the version of the bytecode.
+# See PEP 3147: http://www.python.org/dev/peps/pep-3147/
+# For example,
+# foo/bar.py
+# has bytecode at:
+# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
+%global bytecode_suffixes .cpython-%{pyshortver}*.pyc
+
+# 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%{LDVERSION_optimized}.so.%{py_SOVERSION}
+%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
+
+# Disable automatic bytecompilation. The python3 binary is not yet be
+# available in /usr/bin when Python is built. Also, the bytecompilation fails
+# on files that test invalid syntax.
+%undefine py_auto_byte_compile
+
+# For multilib support, files that are different between 32- and 64-bit arches
+# need different filenames. Use "64" or "32" according to the word size.
+# Currently, the best way to determine an architecture's word size happens to
+# be checking %%{_lib}.
+%if "%{_lib}" == "lib64"
+%global wordsize 64
+%else
+%global wordsize 32
+%endif
+
+
+# =======================
+# Build-time requirements
+# =======================
+
+# (keep this list alphabetized)
+
+BuildRequires: autoconf
+BuildRequires: bluez-libs-devel
+BuildRequires: bzip2
+BuildRequires: bzip2-devel
+BuildRequires: desktop-file-utils
+BuildRequires: expat-devel
+
+BuildRequires: findutils
+BuildRequires: gcc-c++
+%if %{with gdbm}
+BuildRequires: gdbm-devel >= 1:1.13
+%endif
+BuildRequires: glibc-devel
+BuildRequires: gmp-devel
+BuildRequires: libappstream-glib
+BuildRequires: libffi-devel
+BuildRequires: libnsl2-devel
+BuildRequires: libtirpc-devel
+BuildRequires: libGL-devel
++BuildRequires: libuuid-devel
+BuildRequires: libX11-devel
+BuildRequires: ncurses-devel
+
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: sqlite-devel
+BuildRequires: gdb
+
+BuildRequires: tar
+BuildRequires: tcl-devel
+BuildRequires: tix-devel
+BuildRequires: tk-devel
+
+%if %{with valgrind}
+BuildRequires: valgrind-devel
+%endif
+
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+BuildRequires: /usr/bin/dtrace
+
+# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
+BuildRequires: /usr/sbin/ifconfig
+
+%if %{with rewheel}
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%endif
+
+
+# =======================
+# Source code and patches
+# =======================
+
- Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-
- # Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
- # to enable specfiles to selectively byte-compile individual files and paths
- # with different Python runtimes as necessary:
- Source3: macros.pybytecompile%{pybasever}
++Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{prerel}.t...
+
+# A simple script to check timestamps of bytecode files
+# Run in check section with Python that is currently being built
+# Written by bkabrda
+Source8: check-pyc-and-pyo-timestamps.py
+
- # Backward compatible no-op macro for system-python
- # Remove in Fedora 29
- Source9: macros.systempython
-
+# Desktop menu entry for idle3
+Source10: idle3.desktop
+
+# AppData file for idle3
+Source11: idle3.appdata.xml
+
+# 00001 #
+# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
+# Was Patch0 in ivazquez' python3000 specfile:
+Patch1: 00001-rpath.patch
+
+# 00102 #
+# Change the various install paths to use /usr/lib64/ instead or /usr/lib
+# Only used when "%%{_lib}" == "lib64"
+# Not yet sent upstream.
+Patch102: 00102-lib64.patch
+
+# 00111 #
+# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
+# a libpythonMAJOR.MINOR.a
+# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
+# Downstream only: not appropriate for upstream
+Patch111: 00111-no-static-lib.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
+
+# 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
+# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
+Patch155: 00155-avoid-ctypes-thunks.patch
+
+# 00160 #
+# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
+# header files in the build chroot, but may not be supported in the running
+# kernel, hence we disable this test in an rpm build.
+# Adding these was upstream issue http://bugs.python.org/issue10142
+# Not yet sent upstream
+Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
+
+# 00163 #
+# Some tests within test_socket fail intermittently when run inside Koji;
+# disable them using unittest._skipInRpmBuild
+# Not yet sent upstream
+Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.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)
+# The new macros/functions within gcmodule.c are hidden to avoid exposing
+# them within the extension API.
+# Sent upstream: http://bugs.python.org/issue9263
+# See https://bugzilla.redhat.com/show_bug.cgi?id=614680
+Patch170: 00170-gc-assertions.patch
+
+# 00178 #
+# Don't duplicate various FLAGS in sysconfig values
+# http://bugs.python.org/issue17679
+# Does not affect python2 AFAICS (different sysconfig values initialization)
+Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
+
+# 00189 #
+# Add the rewheel module, allowing to recreate wheels from already installed
+# ones
+# https://github.com/bkabrda/rewheel
+Patch189: 00189-add-rewheel-module.patch
+
+# 00205 #
+# LIBPL variable in makefile takes LIBPL from configure.ac
+# but the LIBPL variable defined there doesn't respect libdir macro
+Patch205: 00205-make-libpl-respect-lib64.patch
+
+# 00251
+# Set values of prefix and exec_prefix in distutils install command
+# to /usr/local if executable is /usr/bin/python* and RPM build
+# is not detected to make pip and distutils install into separate location
+# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
+Patch251: 00251-change-user-install-location.patch
+
- # 00262 #
- # Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale
- # https://www.python.org/dev/peps/pep-0538/
- # Fedora Change: https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale
- # Original proposal: https://bugzilla.redhat.com/show_bug.cgi?id=1404918
- Patch262: 00262-pep538_coerce_legacy_c_locale.patch
-
+# 00274 #
+# Upstream uses Debian-style architecture naming. Change to match Fedora.
+Patch274: 00274-fix-arch-names.patch
+
- # 00292 #
- # Restore the public PyExc_RecursionErrorInst symbol that was removed
- # from the 3.6.4 release upstream.
- # Reported upstream: https://bugs.python.org/issue30697
- Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
-
- # 00294 #
- # Define TLS cipher suite on build time depending
- # on the OpenSSL default cipher suite selection.
- # Fixed upstream on CPython's 3.7 branch:
- # https://bugs.python.org/issue31429
- # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
- Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
-
- # 00301 #
- # Tools/scripts/pathfix.py: Add -n option for no backup~
- # See: https://bugzilla.redhat.com/show_bug.cgi?id=1546990
- # Fixed upstream: https://bugs.python.org/issue32885
- Patch301: 00301-pathfix-add-n-option-for-no-backup.patch
-
- # 00302 #
- # Fix multiprocessing regression on newer glibcs
- # See: https://bugzilla.redhat.com/show_bug.cgi?id=1569933
- # and: https://bugs.python.org/issue33329
- Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
++# 00291 #
++# Build fails with undefined references to dlopen / dlsym otherwise.
++# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
++# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
++Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+
+# (New patches go here ^^^)
+#
+# When adding new patches to "python" 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
+
+
+# ==========================================
+# Descriptions, and metadata for subpackages
+# ==========================================
+
+%if %{without flatpackage}
+
+# Packages with Python modules in standard locations automatically
+# depend on python(abi). Provide that here.
+Provides: python(abi) = %{pybasever}
+
+# For backward compatibility only, remove in F29:
+Provides: system-python(abi) = %{pybasever}
+Provides: system-python = %{version}-%{release}
+Provides: system-python%{?_isa} = %{version}-%{release}
+Obsoletes: system-python < %{version}-%{release}
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+# In order to support multiple Python interpreters for development purposes,
+# packages with the naming scheme flatpackage (e.g. python35) exist for
+# non-default versions of Python 3.
+# For consistency, and to keep the upgrade path clean, we Provide/Obsolete
+# these names here.
+Provides: python%{pyshortver} = %{version}-%{release}
+# Note that using Obsoletes without package version is not standard practice.
+# Here we assert that *any* version of the system's default interpreter is
+# preferable to an "extra" interpreter. For example, python3-3.6.1 will
+# replace python36-3.6.2.
+Obsoletes: python%{pyshortver}
+
+# Shall be removed in Fedora 31
+# The release is bumped to 20, so we can do f27 platform-python updates
+# If the release in f27 ever goes >= 20, raise it here
+# If platform-python is ever reintroduced, make it higher version than this:
+%global platpyver 3.6.2-20
+Obsoletes: platform-python < %{platpyver}
+
+%if %{with rewheel}
+Requires: python3-setuptools
+Requires: python3-pip
+%endif
+
+# This prevents ALL subpackages built from this spec to require
+# /usr/bin/python3*. Granularity per subpackage is impossible.
+# It's intended for the libs package not to drag in the interpreter, see
+# https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+# All others require %%{name} anyway.
+%global __requires_exclude ^/usr/bin/python3
+
+
+# The description used both for the SRPM and the main `python3` subpackage:
+%description
+Python is an accessible, high-level, dynamically typed, interpreted programming
+language, designed with an emphasis on code readability.
+It includes an extensive standard library, and has a vast ecosystem of
+third-party libraries.
+
+The %{name} package provides the "python3" executable: the reference
+interpreter for the Python language, version 3.
+The majority of its standard library is provided in the %{name}-libs package,
+which should be installed automatically along with %{name}.
+The remaining parts of the Python standard library are broken out into the
+%{name}-tkinter and %{name}-test packages, which may need to be installed
+separately.
+
+Documentation for Python is provided in the %{name}-docs package.
+
+Packages containing additional libraries for Python are generally named with
+the "%{name}-" prefix.
+
+
+%package libs
+Summary: Python runtime libraries
+
+# The "enum" module is included in the standard library.
+# Provide an upgrade path from the external library.
+Provides: python3-enum34 = 1.0.4-5%{?dist}
+Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
+
+# Python 3 built with glibc >= 2.24.90-26 needs to require it
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1410644
+Requires: glibc%{?_isa} >= 2.24.90-26
+
+%if %{with gdbm}
+# When built with this (as guarded by the BuildRequires above), require it
+Requires: gdbm%{?_isa} >= 1:1.13
+%endif
+
+# There are files in the standard library that have python shebang.
+# We've filtered the automatic requirement out so libs are installable without
+# the main package. This however makes it pulled in by default.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+Recommends: %{name}%{?_isa} = %{version}-%{release}
+
+# For backward compatibility only, remove in F29:
+Provides: system-python-libs = %{version}-%{release}
+Provides: system-python-libs%{?_isa} = %{version}-%{release}
+Obsoletes: system-python-libs < %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-libs < %{platpyver}
+Obsoletes: platform-python-libs-devel < %{platpyver}
+
+%description libs
+This package contains runtime libraries for use by Python:
+- the majority of the Python standard library
+- a dynamically linked library for use by applications that embed Python as
+ a scripting language, and by the main "python3" executable
+
+
+%package devel
+Summary: Libraries and header files needed for Python development
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: python-rpm-macros
+Requires: python-rpm-macros
+Requires: python3-rpm-macros
++
++%if %{with rewheel}
++# without rewheel is used to bootstrap setuptools+pip
++# python3-rpm-generators needs python3-setuptools, so we cannot have it yet
+Requires: python3-rpm-generators
++%endif
+
+# 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
+
+Provides: %{name}-2to3 = %{version}-%{release}
+Provides: 2to3 = %{version}-%{release}
+
+Conflicts: %{name} < %{version}-%{release}
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
+# /usr/bin/2to3 was moved from python2-tools to python3-tools
+# TODO Remove in Fedora 29
+Conflicts: python2-tools < 2.7.13-17
+Conflicts: python-tools < 2.7.13-17
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+# /usr/bin/2to3 was moved from python3-tools to python3-devel
+# TODO Remove in Fedora 30
- Conflicts: python3-tools < 3.6.4-14
++Conflicts: python3-tools < 3.7
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-devel < %{platpyver}
+
+%description devel
+This package contains the header files and configuration needed to compile
+Python extension modules (typically written in C or C++), to embed Python
+into other programs, and to make binary distributions for Python libraries.
+
+It also contains the necessary macros to build RPM packages with Python modules
+and 2to3 tool, an automatic source converter from Python 2.X.
+
+
+%package idle
+Summary: A basic graphical development environment for Python
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tkinter = %{version}-%{release}
+
+Provides: idle3 = %{version}-%{release}
+
+Provides: %{name}-tools = %{version}-%{release}
+Provides: %{name}-tools%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-tools < %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-tools < %{platpyver}
+
+%description idle
+IDLE is Pythons Integrated Development and Learning Environment.
+
+IDLE has the following features: Python shell window (interactive
+interpreter) with colorizing of code input, output, and error messages;
+multi-window text editor with multiple undo, Python colorizing,
+smart indent, call tips, auto completion, and other features;
+search within any window, replace within editor windows, and
+search through multiple files (grep); debugger with persistent
+breakpoints, stepping, and viewing of global and local namespaces;
+configuration, browsers, and other dialogs.
+
+
+%package tkinter
+Summary: A GUI toolkit for Python
+Requires: %{name} = %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-tkinter < %{platpyver}
+
+%description tkinter
+The Tkinter (Tk interface) library is a graphical user interface toolkit for
+the Python programming language.
+
+
+%package test
+Summary: The self-test suite for the main python3 package
+Requires: %{name} = %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-test < %{platpyver}
+
+%description test
+The self-test suite for the Python interpreter.
+
+This is only useful to test Python itself. For testing general Python code,
+you should use the unittest module from %{name}-libs, or a library such as
+%{name}-pytest or %{name}-nose.
+
+
+%if %{with debug_build}
+%package debug
+Summary: Debug version of the Python runtime
+
+# 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: %{name}-tkinter%{?_isa} = %{version}-%{release}
+Requires: %{name}-idle%{?_isa} = %{version}-%{release}
+
+%description debug
+python3-debug provides a version of the Python 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 build,
+but is useful for tracking down reference-counting issues and other bugs.
+
+The bytecode format is unchanged, so that .pyc files are compatible between
+this and the standard version of Python, but the debugging features mean that
+C/C++ extension modules are ABI-incompatible and must be built for each version
+separately.
+
+The debug build shares installation directories with the standard Python
+runtime, so that .py and .pyc files can be shared.
+Compiled extension modules use a special ABI flag ("d") in the filename,
+so extensions for both versions can co-exist in the same directory.
+%endif # with debug_build
+
+%else # with flatpackage
+
+Requires: redhat-rpm-config
+
+# We'll not provide this, on purpose
+# No package in Fedora shall ever depend on flatpackage via this
+%global __requires_exclude ^python\\(abi\\) = 3\\..$
+%global __provides_exclude ^python\\(abi\\) = 3\\..$
+
+# We keep those inside on purpose
- Provides: bundled(python3-pip) = 9.0.3
++Provides: bundled(python3-pip) = 10.0.1
+Provides: bundled(python3-setuptools) = 39.0.1
+
+# The description for the flat package
+%description
+Python %{pybasever} package for developers.
+
- This package exists to allow developers to test their code against an older
++This package exists to allow developers to test their code against a newer
+version of Python. This is not a full Python stack and if you wish to run
- your applications with Python %{pybasever}, see other distributions
- that support it, such as CentOS or RHEL with Software Collections
- or older Fedora releases.
++your applications with Python %{pybasever}, update your Fedora to a newer
++version once Python %{pybasever} is stable.
+
+%endif # with flatpackage
+
+# ======================================================
+# The prep phase of the build:
+# ======================================================
+
+%prep
+%setup -q -n Python-%{version}%{?prerel}
+
+# Remove bundled libraries to ensure that we're using the system copy.
+rm -r Modules/expat
- rm -r Modules/zlib
+
+%if %{with rewheel}
- %global pip_version 9.0.3
++%global pip_version 9.0.1
+sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
+%endif
+
+#
+# Apply patches:
+#
+%patch1 -p1
+
+%if "%{_lib}" == "lib64"
+%patch102 -p1
+%endif
+%patch111 -p1
+%patch132 -p1
+%patch155 -p1
+%patch160 -p1
+%patch163 -p1
+%patch170 -p1
+%patch178 -p1
+
+%if %{with rewheel}
+%patch189 -p1
+%endif
+
+%patch205 -p1
+%patch251 -p1
- %patch262 -p1
+%patch274 -p1
- %patch292 -p1
- %patch294 -p1
- %patch301 -p1
- %patch302 -p1
++%patch291 -p1
+
+
+# Remove files that should be generated by the build
+# (This is after patching, so that we can use patches directly from upstream)
+rm configure pyconfig.h.in
+
+
+# ======================================================
+# Configuring and building the code:
+# ======================================================
+
+%build
+
+# Regenerate the configure script and pyconfig.h.in
+autoconf
+autoheader
+
+# Remember the current directory (which has sources and the configure script),
+# so we can refer to it after we "cd" elsewhere.
+topdir=$(pwd)
+
+# Get proper option names from bconds
+%if %{with computed_gotos}
+%global computed_gotos_flag yes
+%else
+%global computed_gotos_flag no
+%endif
+
+%if %{with optimizations}
+%global optimizations_flag "--enable-optimizations"
+%else
+%global optimizations_flag "--disable-optimizations"
+%endif
+
+# Set common compiler/linker flags
+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 CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
+export LDFLAGS="$RPM_LD_FLAGS -g $(pkg-config --libs-only-L openssl)"
+
+# We can build several different configurations of Python: regular and debug.
+# Define a common function that does one build:
+BuildPython() {
+ ConfName=$1
+ ExtraConfigArgs=$2
+ MoreCFlags=$3
+
+ # Each build is done in its own directory
+ ConfDir=build/$ConfName
+ echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ # Normally, %%configure looks for the "configure" script in the current
+ # directory.
+ # Since we changed directories, we need to tell %%configure where to look.
+ %global _configure $topdir/configure
+
+%configure \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos=%{computed_gotos_flag} \
+ --with-dbmliborder=gdbm:ndbm:bdb \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-loadable-sqlite-extensions \
+ --with-dtrace \
+ --with-lto \
+ --with-ssl-default-suites=openssl \
+%if %{with valgrind}
+ --with-valgrind \
+%endif
+ $ExtraConfigArgs \
+ %{nil}
+
+ # Invoke the build
+ make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
+
+ popd
+ echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Call the above to build each configuration.
+
+%if %{with debug_build}
+BuildPython debug \
+ "--without-ensurepip --with-pydebug" \
+ "-O0"
+%endif # with debug_build
+
+BuildPython optimized \
+ "--without-ensurepip %{optimizations_flag}" \
+ ""
+
+# ======================================================
+# Installing the built code:
+# ======================================================
+
+%install
+
+# As in %%build, remember the current directory
+topdir=$(pwd)
+
+# We install a collection of hooks for gdb that make it easier to debug
+# executables linked against libpython3* (such as /usr/bin/python3 itself)
+#
+# These hooks are implemented in Python itself (though they are for the version
+# of python that gdb is linked with)
+#
+# gdb-archer looks for them in the same path as the ELF file or its .debug
+# file, with a -gdb.py suffix.
+# We put them next to the debug file, because ldconfig would complain if
+# it found non-library files directly in /usr/lib/
+# (see https://bugzilla.redhat.com/show_bug.cgi?id=562980)
+#
+# We'll put these files in the debuginfo package by installing them to e.g.:
+# /usr/lib/debug/usr/lib/libpython3.2.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
+
+%if %{with gdb_hooks}
+DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
+mkdir -p %{buildroot}$DirHoldingGdbPy
+%endif # with gdb_hooks
+
+# Multilib support for pyconfig.h
+# 32- and 64-bit versions of pyconfig.h are different. For multilib support
+# (making it possible to install 32- and 64-bit versions simultaneously),
+# we need to install them under different filenames, and to make the common
+# "pyconfig.h" include the right file based on architecture.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=192747
+# Filanames are defined here:
+%global _pyconfig32_h pyconfig-32.h
+%global _pyconfig64_h pyconfig-64.h
+%global _pyconfig_h pyconfig-%{wordsize}.h
+
+# Use a common function to do an install for all our configurations:
+InstallPython() {
+
+ ConfName=$1
+ PyInstSoName=$2
+ MoreCFlags=$3
+ LDVersion=$4
+
+ # Switch to the directory with this configuration's built files
+ ConfDir=build/$ConfName
+ echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ make \
+ DESTDIR=%{buildroot} \
+ INSTALL="install -p" \
+ EXTRA_CFLAGS="$MoreCFlags" \
+ install
+
+ popd
+
+%if %{with gdb_hooks}
+ # See comment on $DirHoldingGdbPy above
+ PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
+ cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
+%endif # with gdb_hooks
+
+ # Rename the -devel script that differs on different arches to arch specific name
+ mv %{buildroot}%{_bindir}/python${LDVersion}-{,`uname -m`-}config
+ echo -e '#!/bin/sh\nexec `dirname $0`/python'${LDVersion}'-`uname -m`-config "$@"' > \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ echo '[ $? -eq 127 ] && echo "Could not find python'${LDVersion}'-`uname -m`-config. Look around to see available arches." >&2' >> \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ chmod +x %{buildroot}%{_bindir}/python${LDVersion}-config
+
+ # Make python3-devel multilib-ready
+ mv %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h \
+ %{buildroot}%{_includedir}/python${LDVersion}/%{_pyconfig_h}
+ cat > %{buildroot}%{_includedir}/python${LDVersion}/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
+
+ echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Install the "debug" build first; any common files will be overridden with
+# later builds
+%if %{with debug_build}
+InstallPython debug \
+ %{py_INSTSONAME_debug} \
+ -O0 \
+ %{LDVERSION_debug}
+%endif # with debug_build
+
+# Now the optimized build:
+InstallPython optimized \
+ %{py_INSTSONAME_optimized} \
+ "" \
+ %{LDVERSION_optimized}
+
+# Install directories for additional packages
+install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
+%if "%{_lib}" == "lib64"
+# The 64-bit version needs to create "site-packages" in /usr/lib/ (for
+# pure-Python modules) as well as in /usr/lib64/ (for packages with extension
+# modules).
+# Note that rpmlint will complain about hardcoded library path;
+# this is intentional.
+install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
+%endif
+
+%if %{without flatpackage}
+# add idle3 to menu
+install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/idle3.png
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
+
+# Install and validate appdata file
+mkdir -p %{buildroot}%{_datadir}/appdata
+cp -a %{SOURCE11} %{buildroot}%{_datadir}/appdata
+appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/idle3.appdata.xml
+%endif
+
+# Make sure distutils looks at the right pyconfig.h file
+# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
+# 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 (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
+#
+# 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
+
+# Install pathfix.py to bindir
+# See https://github.com/fedora-python/python-rpm-porting/issues/24
+cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+
+# Switch all shebangs to refer to the specific Python version.
+# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
+# so handle files named using other naming scheme separately.
+LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
+ Tools/scripts/pathfix.py \
+ -i "%{_bindir}/python%{pybasever}" -pn \
+ %{buildroot} \
+ %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
+
+# Remove tests for python3-tools which was removed in
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+rm -rf %{buildroot}%{pylibdir}/test/test_tools
+
+# Remove shebang lines from .py files that aren't executable, and
+# remove executability from .py files that don't have a shebang line:
+find %{buildroot} -name \*.py \
+ \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
+ -print -exec sed -i '1d' {} \; \) -o \( \
+ -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
+ -exec chmod a-x {} \; \) \)
+
+# Get rid of DOS batch files:
+find %{buildroot} -name \*.bat -exec rm {} \;
+
+# Get rid of backup files:
+find %{buildroot}/ -name "*~" -exec rm -f {} \;
+find . -name "*~" -exec rm -f {} \;
+
+# Get rid of a stray copy of the license:
+rm %{buildroot}%{pylibdir}/LICENSE.txt
+
+# Do bytecompilation with the newly installed interpreter.
+# This is similar to the script in macros.pybytecompile
+# 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} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
+
+# Since we have pathfix.py in bindir, this is created, but we don't want it
+rm -rf %{buildroot}%{_bindir}/__pycache__
+
+# Fixup permissions for shared libraries from non-standard 555 to standard 755:
+find %{buildroot} -perm 555 -exec chmod 755 {} \;
+
- %if %{without flatpackage}
- # Install macros for rpm:
- mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
- install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
- install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
- %endif
-
+# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
+# avoid the user having to know the precise version and ABI flags.
+# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
+%if %{with debug_build} && %{without flatpackage}
+ln -s \
+ %{_bindir}/python%{LDVERSION_debug} \
+ %{buildroot}%{_bindir}/python3-debug
+%endif
+
+# System Python: Link the executable to libexec
+# This is for backwards compatibility only and should be removed in Fedora 29
+%if %{without flatpackage}
+mkdir -p %{buildroot}%{_libexecdir}
+ln -s %{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
+%endif
+
++# There's 2to3-X.X executable and 2to3 soft link to it.
++# No reason to have both, so keep only 2to3 as an executable.
++# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
++mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
++
+%if %{with flatpackage}
+# Remove stuff that would conflict with python3 package
+rm %{buildroot}%{_bindir}/python3
+rm %{buildroot}%{_bindir}/pydoc3
+rm %{buildroot}%{_bindir}/pathfix.py
+rm %{buildroot}%{_bindir}/idle3
+rm %{buildroot}%{_bindir}/python3-*
+rm %{buildroot}%{_bindir}/pyvenv
- rm %{buildroot}%{_bindir}/2to3*
++rm %{buildroot}%{_bindir}/2to3
+rm %{buildroot}%{_libdir}/libpython3.so
+rm %{buildroot}%{_mandir}/man1/python3.1*
+rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+%endif
+
++
+# ======================================================
+# Checks for packaging issues
+# ======================================================
+
+%check
+
+# first of all, check timestamps of bytecode files
+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} %{SOURCE8}
+
+# Ensure that the curses module was linked against libncursesw.so, rather than
+# libncurses.so
+# See https://bugzilla.redhat.com/show_bug.cgi?id=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
+ *.%{SOABI_debug})
+ ldd $Module | grep %{py_INSTSONAME_optimized} &&
+ (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
+
+ ;;
+ *.%{SOABI_optimized})
+ ldd $Module | grep %{py_INSTSONAME_debug} &&
+ (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
+ ;;
+ esac
+done
+
++
+# ======================================================
+# Running the upstream test suite
+# ======================================================
+
+topdir=$(pwd)
+CheckPython() {
+ ConfName=$1
+ ConfDir=$(pwd)/build/$ConfName
+
+ 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.
+
+ # 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
- # test_faulthandler.test_register_chain currently fails on ppc64le and
- # aarch64, see upstream bug http://bugs.python.org/issue21131
+ WITHIN_PYTHON_RPM_BUILD= \
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
+ -wW --slowest --findleaks \
+ -x test_distutils \
+ -x test_bdist_rpm \
- -x test_gdb \
- %ifarch ppc64le aarch64
- -x test_faulthandler \
- %endif
+ %ifarch %{mips64}
+ -x test_ctypes \
+ %endif
++ %ifarch %{power64} s390 s390x armv7hl %{mips}
++ -x test_gdb \
++ %endif
+ %ifarch ppc64le
+ -x test_buffer \
+ %endif
+
+ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+}
+
+%if %{with tests}
+
+# Check each of the configurations:
+%if %{with debug_build}
+CheckPython debug
+%endif # with debug_build
+CheckPython optimized
+
+%endif # with tests
+
+
+%files
+%defattr(-, root, root)
+%license LICENSE
+%doc README.rst
+
+%if %{without flatpackage}
+%{_bindir}/pydoc*
+%{_bindir}/python3
+%{_bindir}/pyvenv
- %{_mandir}/*/*
- %{_bindir}/pyvenv
+# Remove in Fedora 29:
+%{_libexecdir}/system-python
+%else
+%{_bindir}/pydoc%{pybasever}
- %{_mandir}/*/python%{pybasever}*
+%endif
- %{_bindir}/pyvenv-%{pybasever}
++
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
++%{_bindir}/pyvenv-%{pybasever}
++%{_mandir}/*/*
++
+
+%if %{without flatpackage}
+%files libs
+%defattr(-,root,root,-)
+%license LICENSE
+%doc README.rst
+%endif
+
+%dir %{pylibdir}
+%dir %{dynload_dir}
+
+%{pylibdir}/lib2to3
+%if %{without flatpackage}
+%exclude %{pylibdir}/lib2to3/tests
+%endif
+
+%dir %{pylibdir}/unittest/
+%dir %{pylibdir}/unittest/__pycache__/
+%{pylibdir}/unittest/*.py
+%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/asyncio/
+%dir %{pylibdir}/asyncio/__pycache__/
+%{pylibdir}/asyncio/*.py
+%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/venv/
+%dir %{pylibdir}/venv/__pycache__/
+%{pylibdir}/venv/*.py
+%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/venv/scripts
+
+%{pylibdir}/wsgiref
+%{pylibdir}/xmlrpc
+
+%dir %{pylibdir}/ensurepip/
+%dir %{pylibdir}/ensurepip/__pycache__/
+%{pylibdir}/ensurepip/*.py
+%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
+%exclude %{pylibdir}/ensurepip/_bundled
+%else
+%dir %{pylibdir}/ensurepip/_bundled
+%{pylibdir}/ensurepip/_bundled/*.whl
+%endif
+
+%if %{with rewheel}
+%dir %{pylibdir}/ensurepip/rewheel/
+%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
+%{pylibdir}/ensurepip/rewheel/*.py
+%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
+%endif
+
+%dir %{pylibdir}/test/
+%dir %{pylibdir}/test/__pycache__/
+%dir %{pylibdir}/test/support/
+%dir %{pylibdir}/test/support/__pycache__/
+%{pylibdir}/test/__init__.py
+%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
+%{pylibdir}/test/support/__init__.py
+%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/
+%dir %{pylibdir}/concurrent/__pycache__/
+%{pylibdir}/concurrent/*.py
+%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/futures/
+%dir %{pylibdir}/concurrent/futures/__pycache__/
+%{pylibdir}/concurrent/futures/*.py
+%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/pydoc_data
+
+%{dynload_dir}/_blake2.%{SOABI_optimized}.so
+%{dynload_dir}/_md5.%{SOABI_optimized}.so
+%{dynload_dir}/_sha1.%{SOABI_optimized}.so
+%{dynload_dir}/_sha256.%{SOABI_optimized}.so
+%{dynload_dir}/_sha3.%{SOABI_optimized}.so
+%{dynload_dir}/_sha512.%{SOABI_optimized}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
+%{dynload_dir}/_bisect.%{SOABI_optimized}.so
+%{dynload_dir}/_bz2.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
++%{dynload_dir}/_contextvars.%{SOABI_optimized}.so
+%{dynload_dir}/_crypt.%{SOABI_optimized}.so
+%{dynload_dir}/_csv.%{SOABI_optimized}.so
+%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
+%{dynload_dir}/_curses.%{SOABI_optimized}.so
+%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
+%{dynload_dir}/_dbm.%{SOABI_optimized}.so
+%{dynload_dir}/_decimal.%{SOABI_optimized}.so
+%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
+%{dynload_dir}/_heapq.%{SOABI_optimized}.so
+%{dynload_dir}/_json.%{SOABI_optimized}.so
+%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
+%{dynload_dir}/_lzma.%{SOABI_optimized}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
+%{dynload_dir}/_opcode.%{SOABI_optimized}.so
+%{dynload_dir}/_pickle.%{SOABI_optimized}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
++%{dynload_dir}/_queue.%{SOABI_optimized}.so
+%{dynload_dir}/_random.%{SOABI_optimized}.so
+%{dynload_dir}/_socket.%{SOABI_optimized}.so
+%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
+%{dynload_dir}/_ssl.%{SOABI_optimized}.so
+%{dynload_dir}/_struct.%{SOABI_optimized}.so
+%{dynload_dir}/array.%{SOABI_optimized}.so
+%{dynload_dir}/audioop.%{SOABI_optimized}.so
+%{dynload_dir}/binascii.%{SOABI_optimized}.so
+%{dynload_dir}/cmath.%{SOABI_optimized}.so
+%{dynload_dir}/_datetime.%{SOABI_optimized}.so
+%{dynload_dir}/fcntl.%{SOABI_optimized}.so
+%{dynload_dir}/grp.%{SOABI_optimized}.so
+%{dynload_dir}/math.%{SOABI_optimized}.so
+%{dynload_dir}/mmap.%{SOABI_optimized}.so
+%{dynload_dir}/nis.%{SOABI_optimized}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
+%{dynload_dir}/parser.%{SOABI_optimized}.so
+%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
+%{dynload_dir}/readline.%{SOABI_optimized}.so
+%{dynload_dir}/resource.%{SOABI_optimized}.so
+%{dynload_dir}/select.%{SOABI_optimized}.so
+%{dynload_dir}/spwd.%{SOABI_optimized}.so
+%{dynload_dir}/syslog.%{SOABI_optimized}.so
+%{dynload_dir}/termios.%{SOABI_optimized}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
+%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
++%{dynload_dir}/_uuid.%{SOABI_optimized}.so
+%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
+%{dynload_dir}/zlib.%{SOABI_optimized}.so
+
+%dir %{pylibdir}/site-packages/
+%dir %{pylibdir}/site-packages/__pycache__/
+%{pylibdir}/site-packages/README.txt
+%{pylibdir}/*.py
+%dir %{pylibdir}/__pycache__/
+%{pylibdir}/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/collections/
+%dir %{pylibdir}/collections/__pycache__/
+%{pylibdir}/collections/*.py
+%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/ctypes/
+%dir %{pylibdir}/ctypes/__pycache__/
+%{pylibdir}/ctypes/*.py
+%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/ctypes/macholib
+
+%{pylibdir}/curses
+
+%dir %{pylibdir}/dbm/
+%dir %{pylibdir}/dbm/__pycache__/
+%{pylibdir}/dbm/*.py
+%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/distutils/
+%dir %{pylibdir}/distutils/__pycache__/
+%{pylibdir}/distutils/*.py
+%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/distutils/README
+%{pylibdir}/distutils/command
+%exclude %{pylibdir}/distutils/command/wininst-*.exe
+
+%dir %{pylibdir}/email/
+%dir %{pylibdir}/email/__pycache__/
+%{pylibdir}/email/*.py
+%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/email/mime
+%doc %{pylibdir}/email/architecture.rst
+
+%{pylibdir}/encodings
+
+%{pylibdir}/html
+%{pylibdir}/http
+
+%dir %{pylibdir}/importlib/
+%dir %{pylibdir}/importlib/__pycache__/
+%{pylibdir}/importlib/*.py
+%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/json/
+%dir %{pylibdir}/json/__pycache__/
+%{pylibdir}/json/*.py
+%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/logging
+%{pylibdir}/multiprocessing
+
+%dir %{pylibdir}/sqlite3/
+%dir %{pylibdir}/sqlite3/__pycache__/
+%{pylibdir}/sqlite3/*.py
+%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
+%exclude %{pylibdir}/turtle.py
+%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%endif
+
+%{pylibdir}/urllib
+%{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
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
+%endif
+
+# "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):
+%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%dir %{_includedir}/python%{LDVERSION_optimized}/
+%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+
+%{_libdir}/%{py_INSTSONAME_optimized}
+%if %{without flatpackage}
+%{_libdir}/libpython3.so
+%endif
+
++
+%if %{without flatpackage}
+%files devel
+%defattr(-,root,root)
+%{_bindir}/2to3
- # TODO: Remove 2to3-3.7 once rebased to 3.7
- %{_bindir}/2to3-%{pybasever}
+%endif
+
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
+%if %{without flatpackage}
+%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%endif
+%{pylibdir}/distutils/command/wininst-*.exe
+%{_includedir}/python%{LDVERSION_optimized}/*.h
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+
+%if %{without flatpackage}
+%{_bindir}/python3-config
+%{_libdir}/pkgconfig/python3.pc
- %{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
- %{_rpmconfigdir}/macros.d/macros.systempython
+%{_bindir}/pathfix.py
+%endif
+
+%{_bindir}/python%{pybasever}-config
+%{_bindir}/python%{LDVERSION_optimized}-config
+%{_bindir}/python%{LDVERSION_optimized}-*-config
+%{_libdir}/libpython%{LDVERSION_optimized}.so
+%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
+%{_libdir}/pkgconfig/python-%{pybasever}.pc
+
++
+%if %{without flatpackage}
+%files idle
+%defattr(-,root,root,755)
+
+%{_bindir}/idle*
+%else
+%{_bindir}/idle%{pybasever}
+%endif
+
+%{pylibdir}/idlelib
+
+%if %{without flatpackage}
+%{_datadir}/appdata/idle3.appdata.xml
+%{_datadir}/applications/idle3.desktop
+%{_datadir}/icons/hicolor/*/apps/idle3.*
+%endif
+
+%if %{without flatpackage}
+%files tkinter
+%defattr(-,root,root,755)
+%endif
+
+%{pylibdir}/tkinter
+%if %{without flatpackage}
+%exclude %{pylibdir}/tkinter/test
+%endif
+%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
+%{pylibdir}/turtle.py
+%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%dir %{pylibdir}/turtledemo
+%{pylibdir}/turtledemo/*.py
+%{pylibdir}/turtledemo/*.cfg
+%dir %{pylibdir}/turtledemo/__pycache__/
+%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+
++
+%if %{without flatpackage}
+%files test
+%defattr(-, root, root)
+%endif
++
+%{pylibdir}/ctypes/test
+%{pylibdir}/distutils/tests
+%{pylibdir}/sqlite3/test
+%{pylibdir}/test
+%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
+%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
+%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
++%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so
+%{pylibdir}/lib2to3/tests
+%{pylibdir}/tkinter/test
+%{pylibdir}/unittest/test
+
+
+# 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}
+%if %{without flatpackage}
+%files debug
+%defattr(-,root,root,-)
+%{_bindir}/python3-debug
+%endif
+
+# Analog of the core subpackage's files:
+%{_bindir}/python%{LDVERSION_debug}
+
+# Analog of the -libs subpackage's files:
+# ...with debug builds of the built-in "extension" modules:
+
+%{dynload_dir}/_blake2.%{SOABI_debug}.so
+%{dynload_dir}/_md5.%{SOABI_debug}.so
+%{dynload_dir}/_sha1.%{SOABI_debug}.so
+%{dynload_dir}/_sha256.%{SOABI_debug}.so
+%{dynload_dir}/_sha3.%{SOABI_debug}.so
+%{dynload_dir}/_sha512.%{SOABI_debug}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_debug}.so
+%{dynload_dir}/_bisect.%{SOABI_debug}.so
+%{dynload_dir}/_bz2.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
++%{dynload_dir}/_contextvars.%{SOABI_debug}.so
+%{dynload_dir}/_crypt.%{SOABI_debug}.so
+%{dynload_dir}/_csv.%{SOABI_debug}.so
+%{dynload_dir}/_ctypes.%{SOABI_debug}.so
+%{dynload_dir}/_curses.%{SOABI_debug}.so
+%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
+%{dynload_dir}/_dbm.%{SOABI_debug}.so
+%{dynload_dir}/_decimal.%{SOABI_debug}.so
+%{dynload_dir}/_elementtree.%{SOABI_debug}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_debug}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_debug}.so
+%{dynload_dir}/_heapq.%{SOABI_debug}.so
+%{dynload_dir}/_json.%{SOABI_debug}.so
+%{dynload_dir}/_lsprof.%{SOABI_debug}.so
+%{dynload_dir}/_lzma.%{SOABI_debug}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
+%{dynload_dir}/_opcode.%{SOABI_debug}.so
+%{dynload_dir}/_pickle.%{SOABI_debug}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
++%{dynload_dir}/_queue.%{SOABI_debug}.so
+%{dynload_dir}/_random.%{SOABI_debug}.so
+%{dynload_dir}/_socket.%{SOABI_debug}.so
+%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
+%{dynload_dir}/_ssl.%{SOABI_debug}.so
+%{dynload_dir}/_struct.%{SOABI_debug}.so
+%{dynload_dir}/array.%{SOABI_debug}.so
+%{dynload_dir}/audioop.%{SOABI_debug}.so
+%{dynload_dir}/binascii.%{SOABI_debug}.so
+%{dynload_dir}/cmath.%{SOABI_debug}.so
+%{dynload_dir}/_datetime.%{SOABI_debug}.so
+%{dynload_dir}/fcntl.%{SOABI_debug}.so
+%{dynload_dir}/grp.%{SOABI_debug}.so
+%{dynload_dir}/math.%{SOABI_debug}.so
+%{dynload_dir}/mmap.%{SOABI_debug}.so
+%{dynload_dir}/nis.%{SOABI_debug}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
+%{dynload_dir}/parser.%{SOABI_debug}.so
+%{dynload_dir}/pyexpat.%{SOABI_debug}.so
+%{dynload_dir}/readline.%{SOABI_debug}.so
+%{dynload_dir}/resource.%{SOABI_debug}.so
+%{dynload_dir}/select.%{SOABI_debug}.so
+%{dynload_dir}/spwd.%{SOABI_debug}.so
+%{dynload_dir}/syslog.%{SOABI_debug}.so
+%{dynload_dir}/termios.%{SOABI_debug}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
+%{dynload_dir}/unicodedata.%{SOABI_debug}.so
++%{dynload_dir}/_uuid.%{SOABI_debug}.so
++%{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so
+%{dynload_dir}/zlib.%{SOABI_debug}.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}
+
+# Analog of the -devel subpackage's files:
+%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
+%{_includedir}/python%{LDVERSION_debug}
+%{_bindir}/python%{LDVERSION_debug}-config
+%{_bindir}/python%{LDVERSION_debug}-*-config
+%{_libdir}/libpython%{LDVERSION_debug}.so
+%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
+%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
+
+# Analog of the -tools subpackage's files:
+# None for now; we could build precanned versions that have the appropriate
+# shebang if needed
+
+# Analog of the tkinter subpackage's files:
+%{dynload_dir}/_tkinter.%{SOABI_debug}.so
+
+# Analog of the -test subpackage's files:
+%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
+%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
+%{dynload_dir}/_testcapi.%{SOABI_debug}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
+
+%endif # with debug_build
+
+# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
+# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
+#
+# The /usr/lib/rpm/redhat/macros defines %%__debug_package 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 https://bugzilla.redhat.com/show_bug.cgi?id=1476593
+%undefine _debuginfo_subpackages
+
+# ======================================================
+# Finally, the changelog:
+# ======================================================
+
+%changelog
++* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
++- Update to 3.7.0rc1
++
+* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
+- Fix multiprocessing regression on newer glibcs
+- Enable test_multiprocessing_fork(server) and _spawn again
+Resolves: rhbz#1569933
+
+* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-3
+- Skip test_multiprocessing_fork(server) and _spawn for now
+
+* Wed Apr 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-2
+- Add flatpackage conditionals
+
+* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
+- Update to 3.6.5
+
+* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
+- Fix broken macro invocation and broken building of C Python extensions
+Resolves: rhbz#1560103
+
+* Fri Mar 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-19
+- Add -n option for pathfix.py
+Resolves: rhbz#1546990
+
+* Thu Mar 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-18
+- Fix the py_byte_compile macro to work on Python 2
+- Remove the pybytecompile macro file from the flat package
+Resolves: rhbz#1484993
+
+* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-17
+- Do not send IP addresses in SNI TLS extension
+
+* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 3.6.4-16
+- Rebuild with new LDFLAGS from redhat-rpm-config
+
+* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-15
+- Filter out automatic /usr/bin/python3.X requirement,
+ recommend the main package from libs instead
+Resolves: rhbz#1547131
+
+* Thu Feb 15 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.4-14
+- Remove the python3-tools package (#rhbz 1312030)
+- Move /usr/bin/2to3 to python3-devel
+- Move /usr/bin/idle and idlelib to python3-idle
+- Provide python3-tools from python3-idle
+
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-13
+- Escape macros in %%changelog
+
+* Fri Feb 02 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.4-12
+- Remove sys.executable check from change-user-install-location patch
+Resolves: rhbz#1532287
+
+* Thu Feb 01 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-11
+- Define TLS cipher suite on build time.
+
+* Wed Jan 31 2018 Tomas Orsava <torsava(a)redhat.com> - 3.6.4-10
+- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation
+ of the F28 mass rebuild
+- Re-enable these tests after the mass rebuild when they can be properly
+ addressed
+
+* Tue Jan 23 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-9
+- Restore the PyExc_RecursionErrorInst public symbol
+
+* Tue Jan 23 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-8
+- Add patch to explicitly link _ctypes module with -ldl (#1537489)
+- Refactored patch for libxcrypt
+- Re-enable strict symbol checks in the link editor
+
+* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
+- Add patch for libxcrypt
+- Disable strict symbol checks in the link editor
+
+* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
+- Rebuilt for switch to libxcrypt
+
+* Fri Jan 19 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-5
+- Fix localeconv() encoding for LC_NUMERIC
+
+* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-4
+- R: gdbm-devel R: gdbm for python3-libs
+
+* Wed Jan 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-3
+- Require large enough gdbm (fixup for previous bump)
+
+* Tue Jan 16 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-2
+- Rebuild for reverted gdbm 1.13 on Fedora 27
+
+* Mon Jan 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-1
+- Update to version 3.6.4
+
+* Fri Jan 12 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-5
+- Fix the compilation of the nis module.
+
+* Tue Nov 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-4
+- Raise the release of platform-python obsoletes for better maintainability
+
+* Wed Nov 15 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-3
+- Obsolete platform-python and it's subpackages
+
+* Mon Oct 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-2
+- Fix memory corruption due to allocator mix
+Resolves: rhbz#1498207
+
+* Fri Oct 06 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-1
+- Update to Python 3.6.3
+
+* Fri Sep 29 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-19
+- Move pathfix.py to bindir, https://github.com/fedora-python/python-rpm-porting/issues/24
+- Make the -devel package require redhat-rpm-config
+Resolves: rhbz#1496757
+
+* Wed Sep 13 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-18
+- Fix /usr/bin/env dependency from python3-tools
+Resolves: rhbz#1482118
+
+* Wed Sep 06 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-17
+- Include `-g` in the flags sent to the linker (LDFLAGS)
+Resolves: rhbz#1483222
+
+* Tue Sep 05 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-16
+- Specfile cleanup
+- Make the main description also applicable to the SRPM
+- Add audiotest.au to the test package
+
+* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-15
+- Remove %%{pylibdir}/Tools/scripts/2to3
+
+* Fri Sep 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-14
+- Expat >= 2.1.0 is everywhere, remove explicit requires
+- Conditionalize systemtap-devel BuildRequires
+- For consistency, require /usr/sbin/ifconfig instead of net-tools
+
+* Mon Aug 28 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-13
+- Rename patch files to be consistent
+- Run autotools to generate the configure script before building
+- Merge lib64 patches (104 into 102)
+- Skip test_bdist_rpm using test config rather than a patch (removes patch 137)
+- Remove patches 157 and 186, which had test changes left over after upstreaming
+- Remove patch 188, a temporary workaround for hashlib tests
+- Merge patches 180, 206, 243, 5001 (architecture naming) into new patch 274
+- Move python2-tools conflicts to tools subpackage (it was wrongly in tkinter)
+
+* Mon Aug 28 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-12
+- Use python3 style of calling super() without arguments in rpath
+ patch to prevent recursion in UnixCCompiler subclasses
+Resolves: rhbz#1458122
+
+* Mon Aug 21 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-11
+- Add bcond for --without optimizations
+- Reword package descriptions
+- Remove Group declarations
+- Skip failing test_float_with_comma
+
+* Mon Aug 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-10
+- Remove system-python, see https://fedoraproject.org/wiki/Changes/Platform_Python_Stack
+
+* Wed Aug 16 2017 Petr Viktorin <pviktori(a)redhat.com> - 3.6.2-9
+- Use bconds for configuring the build
+- Reorganize the initial sections
+
+* Wed Aug 16 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.2-8
+- Have /usr/bin/2to3 (rhbz#1111275)
+- Provide 2to3 and idle3, list them in summary and description (rhbz#1076401)
+
+* Fri Aug 11 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.2-7
+- Revert "Add --executable option to install.py command"
+ This enhancement is currently not needed and it can possibly
+ collide with `pip --editable`option
+
+* Mon Aug 07 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.2-6
+- Fix the "urllib FTP protocol stream injection" vulnerability
+Resolves: rhbz#1478916
+
+* Tue Aug 01 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.2-5
+- Dropped BuildRequires on db4-devel which was useful for Python 2 (module
+ bsddb), however, no longer needod for Python 3
+- Tested building Python 3 with and without the dependency, all tests pass and
+ filelists of resulting RPMs are identical
+
+* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 3.6.2-4
+- Do not generate debuginfo subpackages (#1476593)
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Jul 25 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-2
+- Make test_asyncio to not depend on the current SIGHUP signal handler.
+
+* Tue Jul 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.2-1
+- Update to Python 3.6.2
+
+* Tue Jun 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-10
+- Update to the latest upstream implementation of PEP 538
+
+* Mon Jun 26 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.1-9
+- Make pip and distutils in user environment install into separate location
+
+* Fri Jun 23 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-8
+- Fix test_alpn_protocols from test_ssl
+- Do not require rebundled setuptools dependencies
+
+* Tue May 16 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-7
+- Added a dependency to the devel subpackage on python3-rpm-generators which
+ have been excised out of rpm-build
+- Updated notes on bootstrapping Python on top of this specfile accordingly
+- Involves: rhbz#1410631, rhbz#1444925
+
+* Tue May 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-6
+- Enable profile guided optimizations for x86_64 and i686 architectures
+- Update to a newer implementation of PEP 538
+- Update description to reflect that Python 3 is now the default Python
+
+* Fri May 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-5
+- Update PEP 538 to the latest upstream implementation
+
+* Tue Apr 18 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-4
+- Enable link time optimizations
+- Move windows executables to the devel subpackage (rhbz#1426257)
+
+* Thu Apr 13 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-3
+- Rename python3.Xdm-config script from -debug to be arch specific
+Resolves: rhbz#1179073
+
+* Wed Apr 05 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.1-2
+- Install the Makefile in its proper location (rhbz#1438219)
+
+* Wed Mar 22 2017 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.1-1
+- Update to version 3.6.1 final
+
+* Tue Mar 21 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.1-0.2.rc1
+- Fix syntax error in %%py_byte_compile macro (rhbz#1433569)
+
+* Thu Mar 16 2017 Iryna Shcherbina <ishcherb(a)redaht.com> - 3.6.1-0.1.rc1
+- Update to Python 3.6.1 release candidate 1
+- Add patch 264 to skip a known test failure on aarch64
+
+* Fri Mar 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-21
+- Use proper command line parsing in _testembed
+- Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale
+ https://fedoraproject.org/wiki/Changes/python3_c.utf-8_locale
+
+* Mon Feb 27 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-20
+- Add desktop entry and appdata.xml file for IDLE 3 (rhbz#1392049)
+
+* Fri Feb 24 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-19
+- Revert "Set values of prefix and exec_prefix to /usr/local for
+ /usr/bin/python* executables..." to prevent build failures
+ of packages using alternate build tools
+
+* Tue Feb 21 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-18
+- Set values of prefix and exec_prefix to /usr/local for
+ /usr/bin/python* executables
+- Use new %%_module_build macro
+
+* Fri Feb 17 2017 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.0-13
+- Add --executable option to install.py command
+
+* Wed Feb 15 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-12
+- BuildRequire the new dependencies of setuptools when rewheel mode is enabled
+in order for the virtualenvs to work properly
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.6.0-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed Feb 01 2017 Stephen Gallagher <sgallagh(a)redhat.com> - 3.6.0-10
+- Add missing %%license macro
+
+* Thu Jan 26 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-9
+- Modify the runtime dependency of python3-libs on system-python-libs again,
+ because previous attempt didn't work properly with dnf resolving mechanism
+
+* Wed Jan 25 2017 Tomas Orsava <torsava(a)redhat.com> - 3.6.0-8
+- Modify the runtime dependency of python3-libs on system-python-libs to use
+ just the version and release number, but not the dist tag due to Modularity
+
+* Mon Jan 16 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-7
+- Fix error check, so that Random.seed actually uses OS randomness (rhbz#1412275)
+- Skip test_aead_aes_gcm during rpmbuild
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 3.6.0-6
+- Rebuild for readline 7.x
+
+* Tue Jan 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-5
+- Require glibc >= 2.24.90-26 for system-python-libs (rhbz#1410644)
+
+* Mon Jan 09 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-4
+- Define HAVE_LONG_LONG as 1 for backwards compatibility
+
+* Thu Jan 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.0-3
+- Don't blow up on EL7 kernel (random generator) (rhbz#1410175)
+
+* Tue Dec 27 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-1
+- Update to Python 3.6.0 final
+
+* Fri Dec 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.6.rc1
+- Enable rewheel
+
+* Wed Dec 07 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.5.rc1
+- Update to Python 3.6.0 release candidate 1
+
+* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.0-0.4.b4
+- Update to Python 3.6.0 beta 4
+
+* Mon Dec 05 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-7
+- Set to work with pip version 9.0.1
+
+* Wed Oct 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-6
+- Use proper patch numbering and base upstream branch for
+porting ssl and hashlib modules to OpenSSL 1.1.0
+- Drop hashlib patch for now
+- Add riscv64 arch to 64bit and no-valgrind arches
+
+* Tue Oct 11 2016 Tom Mrz <tmraz(a)redhat.com> - 3.5.2-5
+- Make it build with OpenSSL-1.1.0 based on upstream patch
+
+* Wed Sep 14 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-4
+- Obsolete and Provide python35 package
+
+* Mon Sep 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-3
+- Update %%py_byte_compile macro
+- Remove unused configure flags (rhbz#1374357)
+
+* Fri Sep 09 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-2
+- Updated .pyc 'bytecompilation with the newly installed interpreter' to also
+ recompile optimized .pyc files
+- Removed .pyo 'bytecompilation with the newly installed interpreter', as .pyo
+ files are no more
+- Resolves rhbz#1373635
+
+* Mon Aug 15 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-1
+- Rebased to version 3.5.2
+- Set to work with pip version 8.1.2
+- Removed patches 207, 237, 241 as fixes are already contained in Python 3.5.2
+- Removed arch or environment specific patches 194, 196, 203, and 208
+ as test builds indicate they are no longer needed
+- Updated patches 102, 146, and 242 to work with the new Python codebase
+- Removed patches 200, 201, 5000 which weren't even being applied
+
+* Tue Aug 09 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-15
+- Fix for CVE-2016-1000110 HTTPoxy attack
+- SPEC file cleanup
+
+* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 3.5.1-14
+- Build properly on MIPS
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.5.1-13
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-12
+- Refactor patch for properly fixing CVE-2016-5636
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-11
+- Fix test_pyexpat failure with Expat version of 2.2.0
+
+* Fri Jul 08 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-10
+- Move xml module to system-python-libs
+
+* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.1-9
+- 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#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+- Fixed upstream: https://hg.python.org/cpython/rev/d590114c2394
+
+* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-8
+- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
+
+* Fri Mar 04 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-7
+- Move distutils to system-python-libs
+
+* Wed Feb 24 2016 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-6
+- Provide python3-enum34
+
+* Fri Feb 19 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-5
+- Provide System Python packages and macros
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 13 2016 Orion Poplwski <orion(a)cora.nwra.com> - 3.5.1-2
+- Drop python3 macros, require python/python3-rpm-macros
+
+* Mon Dec 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-1
+- Update to 3.5.1
+- Removed patch 199 and 207 (upstream)
+
+* Sun Nov 15 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-5
+- Remove versioned libpython from devel package
+
+* Fri Nov 13 2015 Than Ngo <than(a)redhat.com> 3.5.0-4
+- add correct arch for ppc64/ppc64le to fix build failure
+
+* Wed Nov 11 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-3
+- Hide the private _Py_atomic_xxx symbols from public header
+
+* Wed Oct 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-2
+- Rebuild with wheel set to 1
+
+* Tue Sep 15 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.5.0-1
+- Update to 3.5.0
+
+* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 3.4.3-4
+- python3-devel: Require python-macros for version independant macros such as
+ python_provide. See fpc#281 and fpc#534.
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-4
+- Use 1024bit DH key in test_ssl
+- Use -O0 when compiling -debug build
+- Update pip version variable to the version we actually ship
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-3
+- Make relocating Python by changing _prefix actually work
+Resolves: rhbz#1231801
+
+* Mon May 4 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.3-2
+- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
+
+* Thu Mar 12 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-1
+- Updated to 3.4.3
+- BuildPython now accepts additional build options
+- Temporarily disabled test_gdb on arm (rhbz#1196181)
+
+* Wed Feb 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-7
+- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
+ (http://bugs.python.org/issue23433)
+
+* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 3.4.2-6
+- 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> - 3.4.2-5
+- Own systemtap dirs (#710733)
+
+* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 3.4.2-4
+- build with valgrind on ppc64le
+- disable test_gdb on s390(x) until rhbz#1181034 is resolved
+
+* Tue Dec 16 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-3
+- New patches: 170 (gc asserts), 200 (gettext headers),
+ 201 (gdbm memory leak)
+
+* Thu Dec 11 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-2
+- OpenSSL disabled SSLv3 in SSLv23 method
+
+* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-1
+- Update to 3.4.2
+- Refreshed patches: 156 (gdb autoload)
+- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
+
+* Mon Nov 03 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-16
+- Fix CVE-2014-4650 - CGIHTTPServer URL handling
+Resolves: rhbz#1113529
+
+* Sun Sep 07 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-15
+- exclude test_gdb on ppc* (rhbz#1132488)
+
+* Thu Aug 21 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-14
+- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
+
+* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sun Jun 8 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.1-12
+- aarch64 has valgrind, just list those that don't support it
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed Jun 04 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-10
+- bump release and rebuild to link with the correct tcl/tk libs on ppcle
+
+* Tue Jun 03 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-9
+- Change paths to bundled projects in rewheel patch
+
+* Fri May 30 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-8
+- In config script, use uname -m to write the arch
+
+* Thu May 29 2014 Dan Hork <dan[at]danny.cz> - 3.4.1-7
+- update the arch list where valgrind exists - %%power64 includes also
+ ppc64le which is not supported yet
+
+* Thu May 29 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-6
+- Forward arguments to the arch specific config script
+Resolves: rhbz#1102683
+
+* Wed May 28 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-5
+- Rename python3.Xm-config script to arch specific.
+Resolves: rhbz#1091815
+
+* Tue May 27 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.1-4
+- Use python3-*, not python-* runtime requires on setuptools and pip
+- rebuild for tcl-8.6
+
+* Tue May 27 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-3
+- Update the rewheel module
+
+* Mon May 26 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-2
+- Fix multilib dependencies.
+Resolves: rhbz#1091815
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-1
+- Update to Python 3.4.1
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-8
+- Fix test_gdb failure on ppc64le
+Resolves: rhbz#1095355
+
+* Thu May 22 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.0-7
+- Add macro %%python3_version_nodots
+
+* Sun May 18 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-6
+- Disable test_faulthandler, test_gdb on aarch64
+Resolves: rhbz#1045193
+
+* Fri May 16 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-5
+- Don't add Werror=declaration-after-statement for extension
+ modules through setup.py (PyBT#21121)
+
+* Mon May 12 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-4
+- Add setuptools and pip to Requires
+
+* Tue Apr 29 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-3
+- Point __os_install_post to correct brp-* files
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-2
+- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-1
+- Update to Python 3.4 final
+- Add patch adding the rewheel module
+- Merge patches from master
+
+* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b2
+- Update to Python 3.4 beta 2.
+- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
+- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
+
+* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b1
+- Update to Python 3.4 beta 1.
+- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
+ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
+- Removed patch 00187 (remove pthread atfork; upstreamed)
+
+* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.a4
+- Update to Python 3.4 alpha 4.
+- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
+114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
+test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
+from py_compile)
+- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
+Koji), 142 (the mock issue that caused this is fixed)
+- Added patch 187 (remove thread atfork) - will be in next version
+- Refreshed script for checking pyc and pyo timestamps with new ignored files.
+- The fips patch is disabled for now until upstream makes a final decision
+what to do with sha3 implementation for 3.4.0.
+
+* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-7
+- Bytecompile all *.py files properly during build (rhbz#1023607)
+
+* Fri Aug 23 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 3.3.2-6
+- Added fix for CVE-2013-4238 (rhbz#996399)
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-5
+- fix up indentation in arm patch
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-4
+- disable a test that fails on arm
+- enable valgrind support on arm arches
+
+* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-3
+- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
+
+* Mon May 20 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-2
+- Add patch for CVE-2013-2099 (rhbz#963261).
+
+* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-1
+- Updated to Python 3.3.2.
+- Refreshed patches: 153 (gdb test noise)
+- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
+test threads)
+- Synced patch numbers with python.spec.
+
+* Thu May 9 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.1-4
+- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
+
+* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-3
+- Add patch that enables building on ppc64p7 (replace the sed, so that
+we get consistent with python2 spec and it's more obvious that we're doing it.
+
+* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-2
+- Add fix for gdb tests failing on arm, rhbz#951802.
+
+* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-1
+- Updated to Python 3.3.1.
+- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
+153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
+keeping few more downstream tests)
+- Removed patches: 3 (audiotest.au made it to upstream tarball)
+- Removed workaround for http://bugs.python.org/issue14774, discussed in
+http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-10
+- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-9
+- renumber patches to keep them in sync with python.spec
+
+* Fri Mar 15 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-8
+- Fix error in platform.platform() when non-ascii byte strings are decoded to
+ unicode (rhbz#922149)
+
+* Thu Mar 14 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-7
+- Fix up shared library extension (rhbz#889784)
+
+* Thu Mar 07 2013 Karsten Hopp <karsten(a)redhat.com> 3.3.0-6
+- add ppc64p7 build target, optimized for Power7
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-5
+- add workaround for ENOPROTOOPT seen running selftests in Koji
+(rhbz#913732)
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-4
+- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
+
+* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-3
+- add aarch64 (rhbz#909783)
+
+* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-2
+- add BR on bluez-libs-devel (rhbz#879720)
+
+* Sat Sep 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-1
+- 3.3.0rc3 -> 3.3.0; drop alphatag
+
+* Mon Sep 24 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.6.rc3
+- 3.3.0rc2 -> 3.3.0rc3
+
+* Mon Sep 10 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.5.rc2
+- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
+
+* Mon Aug 27 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.4.rc1
+- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
+
+* Mon Aug 13 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.3.b2
+- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
+134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
+correctly when LANG=C (patch 55); importlib.test was moved to
+test.test_importlib upstream
+
+* Mon Aug 13 2012 Karsten Hopp <karsten(a)redhat.com> 3.3.0-0.2.b1
+- disable some failing checks on PPC* (rhbz#846849)
+
+* Fri Aug 3 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
+- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
+patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
+configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
+"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
+for stdlib (upstream issues 10645 and 12218); email/test moved to
+test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
+_decimal and _lzma modules; make collections modules explicit in payload again
+(upstream issue 11085); add _testbuffer module to tests subpackage (added in
+upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
+workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
+distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
+_lzma module); skip some tests within test_socket (patch 163)
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2.3-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jul 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+
+* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-10
+- use macro for power64 (rhbz#834653)
+
+* Mon Jun 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-9
+- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
+
+* Wed May 30 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.2.3-8
+- fix tapset for debug build
+
+* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-7
+- 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> - 3.2.3-6
+- renumber autotools patch from 300 to 5000
+- specfile cleanups
+
+* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-5
+- fix test_gdb.py (patch 156; rhbz#817072)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.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)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-3
+- add explicit version requirements on expat to avoid linkage problems with
+XML_SetHashSalt
+
+* Thu Apr 12 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-2
+- fix test_gdb (patch 153)
+
+* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-1
+- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
+values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
+
+* Thu Feb 9 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-13
+- use newly installed python for byte compiling (now for real)
+
+* Sun Feb 5 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-12
+- use newly installed python for byte compiling (#787498)
+
+* Wed Jan 4 2012 Ville Skytt <ville.skytta(a)iki.fi> - 3.2.2-11
+- Build with $RPM_LD_FLAGS (#756863).
+- Use xz-compressed source tarball.
+
+* Wed Dec 07 2011 Karsten Hopp <karsten(a)redhat.com> 3.2.2-10
+- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
+
+* Mon Oct 17 2011 Rex Dieter <rdieter(a)fedoraproject.org> - 3.2.2-9
+- python3-devel missing autogenerated pkgconfig() provides (#746751)
+
+* Mon Oct 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-8
+- cherrypick fix for distutils not using __pycache__ when byte-compiling
+files (rhbz#722578)
+
+* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-7
+- re-enable gdbm (patch 148; rhbz#742242)
+
+* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-6
+- add a sys._debugmallocstats() function (patch 147)
+
+* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-5
+- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
+_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
+
+* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-4
+- disable gdbm module to prepare for gdbm soname bump
+
+* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-3
+- renumber and rename patches for consistency with python.spec (8 to 55, 106
+to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
+
+* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-2
+- 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 106, 133-142 sparsely, moving
+patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
+
+* Tue Sep 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-1
+- 3.2.2
+
+* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-7
+- run selftests with "--verbose"
+- disable parts of test_io on ppc (rhbz#732998)
+
+* Wed Aug 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-6
+- use "--findleaks --verbose3" when running test suite
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-5
+- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
+ppc to avoid aliasing violations (patch 130; rhbz#698726)
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-4
+- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
+
+* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-3
+- add %%python3_version to the rpm macros (rhbz#719082)
+
+* Mon Jul 11 2011 Dennis Gilmore <dennis(a)ausil.us> - 3.2.1-2
+- disable some tests on sparc arches
+
+* Mon Jul 11 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-1
+- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
+of static library build (due to Modules/_testembed; patch 6), autotool
+intermediates (patch 300)
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-5
+- use the gdb hooks from the upstream tarball, rather than keeping our own copy
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-4
+- don't run test_openpty and test_pty in %%check
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-3
+- cleanup of BuildRequires; add comment headings to specfile sections
+
+* Tue Apr 19 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-2
+- fix the libpython.stp systemtap tapset (rhbz#697730)
+
+* Mon Feb 21 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-1
+- 3.2
+- drop alphatag
+- regenerate autotool patch
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.13.rc3
+- add a /usr/bin/python3-debug symlink within the debug subpackage
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.12.rc3
+- 3.2rc3
+- regenerate autotool patch
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2-0.11.rc2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.10.rc2
+- 3.2rc2
+
+* Mon Jan 17 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.9.rc1
+- 3.2rc1
+- rework patch 6 (static lib removal)
+- remove upstreamed patch 130 (ppc debug build)
+- regenerate patch 300 (autotool intermediates)
+- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
+- added libpython3.so and 2to3-3.2
+
+* Wed Jan 5 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.8.b2
+- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
+error with dynamic annotations (when configured using --with-valgrind)
+- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
+
+* Tue Jan 4 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.7.b2
+- add --with-valgrind to configuration (on architectures that support this)
+
+* Wed Dec 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.6.b2
+- work around test_subprocess failure seen in koji (patch 129)
+
+* Tue Dec 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.b2
+- 3.2b2
+- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
+patch 8 (systemtap), patch 102 (lib64)
+- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
+patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
+fixed upstream)
+- regenerate patch 300 (autotool intermediates)
+- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
+patch 128)
+- stop using runtest.sh in %%check (dropped by upstream), replacing with
+regrtest; fixup list of failing tests
+- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
+- rework manifests of shared libraries to use "SOABI_" macros, reflecting
+PEP 3149
+- drop itertools, operator and _collections modules from the manifests as py3k
+commit r84058 moved these inside libpython; json/tests moved to test/json_tests
+- move turtle code into the tkinter subpackage
+
+* Wed Nov 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.a1
+- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
+
+* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.4.a1
+- move most of the content of the core package to the libs subpackage, given
+that the libs aren't meaningfully usable without the standard libraries
+
+* Wed Sep 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.3.a1
+- Move test.support to core package (rhbz#596258)
+- Add various missing __pycache__ directories to payload
+
+* Sun Aug 22 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.2-0.2.a1
+- Add __pycache__ directory for site-packages
+
+* Sun Aug 22 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2-0.1.a1
+- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
+- make find-provides-without-python-sonames.sh 64bit aware
+
+* Sat Aug 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.0.a1
+- 3.2a1; add alphatag
+- rework %%files in the light of PEP 3147 (__pycache__)
+- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
+better job of things, and the %%files explicitly lists our modules (r82746
+appears to break the old way of doing things). This leads to various modules
+changing from "foomodule.so" to "foo.so". It also leads to the optimized build
+dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
+_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
+testing/devel purposes)
+- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
+- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
+plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
+- add machinery for rebuilding "configure" and friends, using the correct
+version of autoconf (patch 300)
+- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
+- "modulator" was removed upstream
+- drop "-b" from patch applications affecting .py files to avoid littering the
+installation tree
+
+* Thu Aug 19 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.1.2-13
+- Turn on computed-gotos.
+- Fix for parallel make and graminit.c
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-12
+- rebuild
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-11
+- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
+a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
+
+* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-10
+- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
+- reformat whitespace in audioop.c (patch 106)
+- CVE-2010-1634: fix various integer overflow checks in the audioop
+module (patch 107)
+- CVE-2010-2089: further checks within the audioop module (patch 108)
+- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
+
+* Thu May 27 2010 Dan Hork <dan[at]danny.cz> - 3.1.2-9
+- reading the timestamp counter is available only on some arches (see Python/ceval.c)
+
+* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-8
+- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
+(patch 105)
+
+* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-7
+- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
+(patch 104); enable them and the WITH_TSC option within the debug build
+
+* Mon May 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-6
+- build and install two different configurations of Python 3: debug and
+standard, packaging the debug build in a new "python3-debug" subpackage
+(patch 103)
+
+* Tue Apr 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-5
+- exclude test_http_cookies when running selftests, due to hang seen on
+http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
+11 hours)
+- update python-gdb.py from v5 to py3k version submitted upstream
+
+* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-4
+- update python-gdb.py from v4 to v5 (improving performance and stability,
+adding commands)
+
+* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-3
+- 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> - 3.1.2-2
+- refresh gdb hooks to v3 (reworking how they are packaged)
+
+* Sun Mar 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-1
+- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
+- drop upstreamed patch 2 (.pyc permissions handling)
+- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
+- drop upstreamed patch 200 (path-fixing script)
+
+* Sat Mar 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-28
+- fix typo in libpython.stp (rhbz:575336)
+
+* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-27
+- add pyfuntop.stp example (source 7)
+- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
+consistency with python.spec
+
+* Mon Feb 15 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.1.1-26
+- rebuild for new package of redhat-rpm-config (rhbz:564527)
+- use 'install -p' when running 'make install'
+
+* Fri Feb 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-25
+- split configure options into multiple lines for easy of editing
+- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
+tapset defining "python.function.entry" and "python.function.return" to make
+the markers easy to use (dmalcolm; source 5), and an example of using the
+tapset to the docs (dmalcolm; source 6) (rhbz:545179)
+
+* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-24
+- 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> - 3.1.1-23
+- add gdb hooks for easier debugging (Source 4)
+
+* Thu Jan 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-22
+- update python-3.1.1-config.patch to remove downstream customization of build
+of pyexpat and elementtree modules
+- add patch adapted from upstream (patch 7) to add support for building against
+system expat; add --with-system-expat to "configure" invocation
+- remove embedded copies of expat and zlib from source tree during "prep"
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-21
+- introduce %%{dynload_dir} macro
+- 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
+- introduce a macros.pybytecompile source file, to help with packaging python3
+modules (Source3; written by Toshio)
+- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
+plans
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-20
+- change python-3.1.1-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> - 3.1.1-19
+- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
+builds for setting up the python3 copy of the source tree)
+
+* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-18
+- move lib2to3 from -tools subpackage to main package (bug 556667)
+
+* Sun Jan 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-17
+- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-16
+- 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
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-15
+- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
+docs, rather than the 2.6 build
+
+* Wed Jan 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-14
+- replace references to /usr with %%{_prefix}; replace references to
+/usr/include with %%{_includedir} (Toshio)
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-13
+- fix permission on find-provides-without-python-sonames.sh from 775 to 755
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-12
+- remove build-time requirements on tix and tk, since we already have
+build-time requirements on the -devel subpackages for each of these (Thomas
+Spura)
+- replace usage of %%define with %%global (Thomas Spura)
+- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
+longer be necessary
+- move various test files from the "tools"/"tkinter" subpackages to the "test"
+subpackage
+
+* Thu Jan 7 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-11
+- add %%check section (thanks to Thomas Spura)
+- update patch 4 to use correct shebang line
+- get rid of stray patch file from buildroot
+
+* Tue Nov 17 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> - 3.1.1-10
+- switched a few instances of "find |xargs" to "find -exec" for consistency.
+- made the description of __os_install_post more accurate.
+
+* Wed Nov 4 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-9
+- add macros.python3 to the -devel subpackage, containing common macros for use
+when packaging python3 modules
+
+* Tue Nov 3 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-8
+- add a provides of "python(abi)" (see bug 532118)
+- fix issues identified by a.badger in package review (bug 526126, comment 39):
+ - use "3" thoughout metadata, rather than "3.*"
+ - remove conditional around "pkg-config openssl"
+ - use standard cleanup of RPM_BUILD_ROOT
+ - replace hardcoded references to /usr with _prefix macro
+ - stop removing egg-info files
+ - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
+up shebang lines
+ - stop attempting to remove no-longer-present .cvsignore files
+ - move the post/postun sections above the "files" sections
+
+* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-7
+- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
+flag is used by default in the upstream code
+- "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)
+
+* Tue Oct 27 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-6
+- reword description, based on suggestion by amcnabb
+- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
+- fix the test_tk and test_ttk_* selftests (patch 5)
+- fix up the specfile's handling of shebang/perms to avoid corrupting
+test_httpservers.py (sed command suggested by amcnabb)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-5
+- fixup importlib/_bootstrap.py so that it correctly handles being unable to
+open .pyc files for writing (patch 2, upstream issue 7187)
+- actually apply the rpath patch (patch 1)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-4
+- update patch0's setup of the crypt module to link it against libcrypt
+- update patch0 to comment "datetimemodule" back out, so that it is built
+using setup.py (see Setup, option 3), thus linking it statically against
+timemodule.c and thus avoiding a run-time "undefined symbol:
+_PyTime_DoubleToTimet" failure on "import datetime"
+
+* Wed Oct 21 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-3
+- remove executable flag from various files that shouldn't have it
+- fix end-of-line encodings
+- fix a character encoding
+
+* Tue Oct 20 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-2
+- disable invocation of brp-python-bytecompile in postprocessing, since
+it would be with the wrong version of python (adapted from ivazquez'
+python3000 specfile)
+- use a custom implementation of __find_provides in order to filter out bogus
+provides lines for the various .so modules
+- fixup distutils/unixccompiler.py to remove standard library path from rpath
+(patch 1, was Patch0 in ivazquez' python3000 specfile)
+- split out libraries into a -libs subpackage
+- update summaries and descriptions, basing content on ivazquez' specfile
+- fixup executable permissions on .py, .xpm and .xbm files, based on work in
+ivazquez's specfile
+- get rid of DOS batch files
+- fixup permissions for shared libraries from non-standard 555 to standard 755
+- move /usr/bin/python*-config to the -devel subpackage
+- mark various directories as being documentation
+
+* Thu Sep 24 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> 3.1.1-1
+- Initial package for Python 3.
+
commit 2d5b84388b07f909b709643e0e6a9f4dc0b93f39
Author: Tomas Orsava <torsava(a)redhat.com>
Date: Thu May 24 18:11:18 2018 +0200
Update the bootstrapping sequence
diff --git a/python3.spec b/python3.spec
index a81b111..e7f52f5 100644
--- a/python3.spec
+++ b/python3.spec
@@ -92,15 +92,12 @@ License: Python
# 1. At the same time:
# - gdb without python support (add %%global _without_python 1 on top of
# gdb's SPEC file)
-# - python-rpm-generators with bootstrapping_python set to 1
+# - python-rpm-generators
# (this can be done also during step 2., but should be done before 3.)
# 2. python3 without rewheel (use %%bcond_with rewheel instead of
# %%bcond_without)
-# 3. At the same time:
-# - gdb with python support (remove %%global _without_python 1 on top of
-# gdb's SPEC file)
-# - python-rpm-generators with bootstrapping_python set to 0
-# (this can be done at any later step without negative effects)
+# 3. gdb with python support (remove %%global _without_python 1 on top of
+# gdb's SPEC file)
# 4. rpm
# 5. python-setuptools with bootstrap set to 1
# 6. python-pip with build_wheel set to 0
commit e324bf2dbba4dd776d787a8f124676a5e44c94d4
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Apr 23 18:17:32 2018 +0200
Fix multiprocessing regression on newer glibcs
Enable test_multiprocessing_fork(server) and _spawn again
Resolves: rhbz#1569933
diff --git a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
new file mode 100644
index 0000000..965792a
--- /dev/null
+++ b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
@@ -0,0 +1,55 @@
+From a3febe3cba14b89885f42ca2f0224096a52885f6 Mon Sep 17 00:00:00 2001
+From: Antoine Pitrou <antoine(a)python.org>
+Date: Mon, 23 Apr 2018 13:19:42 +0200
+Subject: [PATCH] bpo-33329: Fix multiprocessing regression on newer glibcs
+
+Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some
+reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom
+is commonly used to select all signals for blocking with `pthread_sigmask`.
+So we ignore the sigaddset() return value until we expose sigfillset()
+to provide a better idiom.
+---
+ .../next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst | 1 +
+ Modules/signalmodule.c | 14 ++++++++------
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+
+diff --git a/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+new file mode 100644
+index 000000000000..d1a4e56d04b9
+--- /dev/null
++++ b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+@@ -0,0 +1 @@
++Fix multiprocessing regression on newer glibcs
+diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
+index 791616014384..35fd87e2d1e7 100644
+--- a/Modules/signalmodule.c
++++ b/Modules/signalmodule.c
+@@ -819,7 +819,6 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
+ int result = -1;
+ PyObject *iterator, *item;
+ long signum;
+- int err;
+
+ sigemptyset(mask);
+
+@@ -841,11 +840,14 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
+ Py_DECREF(item);
+ if (signum == -1 && PyErr_Occurred())
+ goto error;
+- if (0 < signum && signum < NSIG)
+- err = sigaddset(mask, (int)signum);
+- else
+- err = 1;
+- if (err) {
++ if (0 < signum && signum < NSIG) {
++ /* bpo-33329: ignore sigaddset() return value as it can fail
++ * for some reserved signals, but we want the `range(1, NSIG)`
++ * idiom to allow selecting all valid signals.
++ */
++ (void) sigaddset(mask, (int)signum);
++ }
++ else {
+ PyErr_Format(PyExc_ValueError,
+ "signal number %ld out of range", signum);
+ goto error;
diff --git a/python3.spec b/python3.spec
index a69624d..a81b111 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.5
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -374,6 +374,12 @@ Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
# Fixed upstream: https://bugs.python.org/issue32885
Patch301: 00301-pathfix-add-n-option-for-no-backup.patch
+# 00302 #
+# Fix multiprocessing regression on newer glibcs
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1569933
+# and: https://bugs.python.org/issue33329
+Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -691,6 +697,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch292 -p1
%patch294 -p1
%patch301 -p1
+%patch302 -p1
# Remove files that should be generated by the build
@@ -1093,9 +1100,6 @@ CheckPython() {
%ifarch ppc64le
-x test_buffer \
%endif
- -x test_multiprocessing_fork \
- -x test_multiprocessing_forkserver \
- -x test_multiprocessing_spawn \
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1582,6 +1586,11 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-4
+- Fix multiprocessing regression on newer glibcs
+- Enable test_multiprocessing_fork(server) and _spawn again
+Resolves: rhbz#1569933
+
* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-3
- Skip test_multiprocessing_fork(server) and _spawn for now
commit 45a046d2f4d6624b57b8b7d7acaa468a4ff57ebb
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Apr 19 22:17:51 2018 +0200
Skip test_multiprocessing_fork(server) and _spawn for now
It hangs the build
diff --git a/python3.spec b/python3.spec
index 4b4f79d..a69624d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.5
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -1093,6 +1093,9 @@ CheckPython() {
%ifarch ppc64le
-x test_buffer \
%endif
+ -x test_multiprocessing_fork \
+ -x test_multiprocessing_forkserver \
+ -x test_multiprocessing_spawn \
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1579,6 +1582,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-3
+- Skip test_multiprocessing_fork(server) and _spawn for now
+
* Wed Apr 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-2
- Add flatpackage conditionals
commit 8c67bafd7ce7a04d4b41aa58b464857dfb14dd70
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Apr 18 14:40:03 2018 +0200
Add flatpackage conditionals
This will allow us to create python36 easily once needed [1].
It shoudl also make it easier to merge stuff between python36 and 37.
This more or less backports:
https://src.fedoraproject.org/rpms/python37/c/63459d7d2a4a8df39f900d753cf...
https://src.fedoraproject.org/rpms/python37/c/7f3ae64d2f98f00b8778b9693ad...
https://src.fedoraproject.org/rpms/python37/c/6a6d4a03245c076ec8686b8f96a...
[1] https://fedoraproject.org/wiki/Changes/Python3.7
diff --git a/python3.spec b/python3.spec
index 5bdde01..4b4f79d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -2,19 +2,19 @@
# Top-level metadata
# ==================
-Name: python3
-Summary: Interpreter of the Python programming language
-URL: https://www.python.org/
-
%global pybasever 3.6
# pybasever without the dot:
%global pyshortver 36
+Name: python3
+Summary: Interpreter of the Python programming language
+URL: https://www.python.org/
+
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.5
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -25,6 +25,14 @@ License: Python
# Note that the bcond macros are named for the CLI option they create.
# "%%bcond_without" means "ENABLE by default and create a --without option"
+# Flat package, i.e. python36, python37, python38 for tox etc.
+# warning: changes some other defaults
+# in Fedora, never turn this on for the python3 package
+# and always keep it on for python36 etc.
+# WARNING: This does not change the package name and summary above
+%bcond_with flatpackage
+
+
# Expensive optimizations (mainly, profile-guided optimizations)
%ifarch %{ix86} x86_64
%bcond_without optimizations
@@ -38,11 +46,19 @@ License: Python
%bcond_without tests
# Ability to reuse RPM-installed pip using rewheel
+%if %{with flatpackage}
+%bcond_with rewheel
+%else
%bcond_without rewheel
+%endif
# Extra build for debugging the interpreter or C-API extensions
# (the -debug subpackages)
+%if %{with flatpackage}
+%bcond_with debug_build
+%else
%bcond_without debug_build
+%endif
# Support for the GDB debugger
%bcond_without gdb_hooks
@@ -372,6 +388,8 @@ Patch301: 00301-pathfix-add-n-option-for-no-backup.patch
# Descriptions, and metadata for subpackages
# ==========================================
+%if %{without flatpackage}
+
# Packages with Python modules in standard locations automatically
# depend on python(abi). Provide that here.
Provides: python(abi) = %{pybasever}
@@ -385,7 +403,7 @@ Obsoletes: system-python < %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# In order to support multiple Python interpreters for development purposes,
-# packages with with the naming scheme pythonXY (e.g. python35) exist for
+# packages with the naming scheme flatpackage (e.g. python35) exist for
# non-default versions of Python 3.
# For consistency, and to keep the upgrade path clean, we Provide/Obsolete
# these names here.
@@ -605,6 +623,30 @@ Compiled extension modules use a special ABI flag ("d") in the filename,
so extensions for both versions can co-exist in the same directory.
%endif # with debug_build
+%else # with flatpackage
+
+Requires: redhat-rpm-config
+
+# We'll not provide this, on purpose
+# No package in Fedora shall ever depend on flatpackage via this
+%global __requires_exclude ^python\\(abi\\) = 3\\..$
+%global __provides_exclude ^python\\(abi\\) = 3\\..$
+
+# We keep those inside on purpose
+Provides: bundled(python3-pip) = 9.0.3
+Provides: bundled(python3-setuptools) = 39.0.1
+
+# The description for the flat package
+%description
+Python %{pybasever} package for developers.
+
+This package exists to allow developers to test their code against an older
+version of Python. This is not a full Python stack and if you wish to run
+your applications with Python %{pybasever}, see other distributions
+that support it, such as CentOS or RHEL with Software Collections
+or older Fedora releases.
+
+%endif # with flatpackage
# ======================================================
# The prep phase of the build:
@@ -870,6 +912,7 @@ install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
%endif
+%if %{without flatpackage}
# add idle3 to menu
install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
@@ -880,6 +923,7 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
mkdir -p %{buildroot}%{_datadir}/appdata
cp -a %{SOURCE11} %{buildroot}%{_datadir}/appdata
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/idle3.appdata.xml
+%endif
# Make sure distutils looks at the right pyconfig.h file
# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
@@ -942,15 +986,17 @@ rm -rf %{buildroot}%{_bindir}/__pycache__
# Fixup permissions for shared libraries from non-standard 555 to standard 755:
find %{buildroot} -perm 555 -exec chmod 755 {} \;
+%if %{without flatpackage}
# Install macros for rpm:
mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
+%endif
# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
# avoid the user having to know the precise version and ABI flags.
# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
-%if %{with debug_build}
+%if %{with debug_build} && %{without flatpackage}
ln -s \
%{_bindir}/python%{LDVERSION_debug} \
%{buildroot}%{_bindir}/python3-debug
@@ -958,9 +1004,24 @@ ln -s \
# System Python: Link the executable to libexec
# This is for backwards compatibility only and should be removed in Fedora 29
+%if %{without flatpackage}
mkdir -p %{buildroot}%{_libexecdir}
ln -s %{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
+%endif
+%if %{with flatpackage}
+# Remove stuff that would conflict with python3 package
+rm %{buildroot}%{_bindir}/python3
+rm %{buildroot}%{_bindir}/pydoc3
+rm %{buildroot}%{_bindir}/pathfix.py
+rm %{buildroot}%{_bindir}/idle3
+rm %{buildroot}%{_bindir}/python3-*
+rm %{buildroot}%{_bindir}/pyvenv
+rm %{buildroot}%{_bindir}/2to3*
+rm %{buildroot}%{_libdir}/libpython3.so
+rm %{buildroot}%{_mandir}/man1/python3.1*
+rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+%endif
# ======================================================
# Checks for packaging issues
@@ -1052,26 +1113,37 @@ CheckPython optimized
%defattr(-, root, root)
%license LICENSE
%doc README.rst
+
+%if %{without flatpackage}
%{_bindir}/pydoc*
%{_bindir}/python3
-%{_bindir}/python%{pybasever}
-%{_bindir}/python%{pybasever}m
%{_bindir}/pyvenv
-%{_bindir}/pyvenv-%{pybasever}
%{_mandir}/*/*
+%{_bindir}/pyvenv
# Remove in Fedora 29:
%{_libexecdir}/system-python
+%else
+%{_bindir}/pydoc%{pybasever}
+%{_mandir}/*/python%{pybasever}*
+%endif
+%{_bindir}/pyvenv-%{pybasever}
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
+%if %{without flatpackage}
%files libs
%defattr(-,root,root,-)
%license LICENSE
%doc README.rst
+%endif
%dir %{pylibdir}
%dir %{dynload_dir}
%{pylibdir}/lib2to3
+%if %{without flatpackage}
%exclude %{pylibdir}/lib2to3/tests
+%endif
%dir %{pylibdir}/unittest/
%dir %{pylibdir}/unittest/__pycache__/
@@ -1096,7 +1168,13 @@ CheckPython optimized
%dir %{pylibdir}/ensurepip/__pycache__/
%{pylibdir}/ensurepip/*.py
%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
%exclude %{pylibdir}/ensurepip/_bundled
+%else
+%dir %{pylibdir}/ensurepip/_bundled
+%{pylibdir}/ensurepip/_bundled/*.whl
+%endif
%if %{with rewheel}
%dir %{pylibdir}/ensurepip/rewheel/
@@ -1255,8 +1333,10 @@ CheckPython optimized
%{pylibdir}/sqlite3/*.py
%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+%if %{without flatpackage}
%exclude %{pylibdir}/turtle.py
%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%endif
%{pylibdir}/urllib
%{pylibdir}/xml
@@ -1276,43 +1356,68 @@ CheckPython optimized
%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_libdir}/%{py_INSTSONAME_optimized}
+%if %{without flatpackage}
%{_libdir}/libpython3.so
+%endif
+%if %{without flatpackage}
%files devel
%defattr(-,root,root)
%{_bindir}/2to3
# TODO: Remove 2to3-3.7 once rebased to 3.7
%{_bindir}/2to3-%{pybasever}
+%endif
+
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
+%if %{without flatpackage}
%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%endif
%{pylibdir}/distutils/command/wininst-*.exe
%{_includedir}/python%{LDVERSION_optimized}/*.h
-%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+
+%if %{without flatpackage}
%{_bindir}/python3-config
+%{_libdir}/pkgconfig/python3.pc
+%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
+%{_rpmconfigdir}/macros.d/macros.systempython
+%{_bindir}/pathfix.py
+%endif
+
%{_bindir}/python%{pybasever}-config
%{_bindir}/python%{LDVERSION_optimized}-config
%{_bindir}/python%{LDVERSION_optimized}-*-config
-%{_bindir}/pathfix.py
%{_libdir}/libpython%{LDVERSION_optimized}.so
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
-%{_libdir}/pkgconfig/python3.pc
-%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
-%{_rpmconfigdir}/macros.d/macros.systempython
+%if %{without flatpackage}
%files idle
%defattr(-,root,root,755)
+
%{_bindir}/idle*
+%else
+%{_bindir}/idle%{pybasever}
+%endif
+
%{pylibdir}/idlelib
+
+%if %{without flatpackage}
%{_datadir}/appdata/idle3.appdata.xml
%{_datadir}/applications/idle3.desktop
%{_datadir}/icons/hicolor/*/apps/idle3.*
+%endif
+%if %{without flatpackage}
%files tkinter
%defattr(-,root,root,755)
+%endif
+
%{pylibdir}/tkinter
+%if %{without flatpackage}
%exclude %{pylibdir}/tkinter/test
+%endif
%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
%{pylibdir}/turtle.py
%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
@@ -1322,8 +1427,10 @@ CheckPython optimized
%dir %{pylibdir}/turtledemo/__pycache__/
%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+%if %{without flatpackage}
%files test
%defattr(-, root, root)
+%endif
%{pylibdir}/ctypes/test
%{pylibdir}/distutils/tests
%{pylibdir}/sqlite3/test
@@ -1344,12 +1451,14 @@ CheckPython optimized
# all of the other subpackages
%if %{with debug_build}
+%if %{without flatpackage}
%files debug
%defattr(-,root,root,-)
+%{_bindir}/python3-debug
+%endif
# Analog of the core subpackage's files:
%{_bindir}/python%{LDVERSION_debug}
-%{_bindir}/python3-debug
# Analog of the -libs subpackage's files:
# ...with debug builds of the built-in "extension" modules:
@@ -1470,6 +1579,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Apr 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.5-2
+- Add flatpackage conditionals
+
* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
- Update to 3.6.5
commit 34ebe3da1391f2feca7b23173cec5fc5e5d01fdf
Merge: 9a2e4be fb9702f
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Apr 18 13:36:00 2018 +0200
Merge master with f28
commit 9a2e4be589292030ebf559eec8bb547250915d95
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Mar 29 16:03:33 2018 +0200
Update to 3.6.5
Rebased patches: 102, 111, 262
Removed patches due to being upstreamed:
264, 273, 289, 290, 291, 298
Update pip version to 9.0.3
diff --git a/00102-lib64.patch b/00102-lib64.patch
index 8eea66d..2b913ca 100644
--- a/00102-lib64.patch
+++ b/00102-lib64.patch
@@ -110,7 +110,7 @@ index f698927..bc977b5 100644
@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
self.assertEqual(dirs[1], wanted)
elif os.sep == '/':
- # OS X non-framwework builds, Linux, FreeBSD, etc
+ # OS X non-framework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 1)
- wanted = os.path.join('xoxo', 'lib',
+ self.assertEqual(len(dirs), 2)
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
index 6929fda..bc4203d 100644
--- a/00111-no-static-lib.patch
+++ b/00111-no-static-lib.patch
@@ -1,9 +1,9 @@
diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 70e5927..04c8e3d 100644
+index 4b093e3..1088435 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -556,7 +556,7 @@ clinic: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2s_impl.c
- $(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
+@@ -543,7 +543,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
+ $(PYTHON_FOR_REGEN) ./Tools/clinic/clinic.py --make
# Build the interpreter
-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
@@ -11,7 +11,7 @@ index 70e5927..04c8e3d 100644
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
platform: $(BUILDPYTHON) pybuilddir.txt
-@@ -601,18 +601,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
+@@ -588,18 +588,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
@@ -30,7 +30,7 @@ index 70e5927..04c8e3d 100644
libpython$(LDVERSION).so: $(LIBRARY_OBJS)
if test $(INSTSONAME) != $(LDLIBRARY); then \
$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-@@ -702,7 +690,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
+@@ -689,7 +677,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
echo "-----------------------------------------------"; \
fi
@@ -39,7 +39,7 @@ index 70e5927..04c8e3d 100644
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
############################################################################
-@@ -1382,18 +1370,6 @@ libainstall: all python-config
+@@ -1425,18 +1413,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
else true; \
fi; \
done
diff --git a/00262-pep538_coerce_legacy_c_locale.patch b/00262-pep538_coerce_legacy_c_locale.patch
index b144ba5..4a640fd 100644
--- a/00262-pep538_coerce_legacy_c_locale.patch
+++ b/00262-pep538_coerce_legacy_c_locale.patch
@@ -542,18 +542,6 @@ diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index ae2bcd4..0a302ff 100644
--- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py
-@@ -9,8 +9,9 @@ import sys
- import subprocess
- import tempfile
- from test.support import script_helper, is_android
--from test.support.script_helper import (spawn_python, kill_python, assert_python_ok,
-- assert_python_failure)
-+from test.support.script_helper import (
-+ spawn_python, kill_python, assert_python_ok, assert_python_failure
-+)
-
-
- # XXX (ncoghlan): Move to script_helper and make consistent with run_python
@@ -151,6 +152,7 @@ class CmdLineTest(unittest.TestCase):
env = os.environ.copy()
# Use C locale to get ascii for the locale encoding
diff --git a/00264-skip-test-failing-on-aarch64.patch b/00264-skip-test-failing-on-aarch64.patch
deleted file mode 100644
index edda219..0000000
--- a/00264-skip-test-failing-on-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
-index 3eded77..ad7859a 100644
---- a/Lib/ctypes/test/test_structures.py
-+++ b/Lib/ctypes/test/test_structures.py
-@@ -392,6 +392,7 @@ class StructureTestCase(unittest.TestCase):
- (1, 0, 0, 0, 0, 0))
- self.assertRaises(TypeError, lambda: Z(1, 2, 3, 4, 5, 6, 7))
-
-+ @unittest.skip('Fails on aarch64: http://bugs.python.org/issue29804')
- def test_pass_by_value(self):
- # This should mirror the structure in Modules/_ctypes/_ctypes_test.c
- class X(Structure):
diff --git a/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch b/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
deleted file mode 100644
index 4d0c87d..0000000
--- a/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
-index b04442bc162..9a0c570533a 100644
---- a/Doc/library/locale.rst
-+++ b/Doc/library/locale.rst
-@@ -147,6 +147,16 @@ The :mod:`locale` module defines the following exception and functions:
- | ``CHAR_MAX`` | Nothing is specified in this locale. |
- +--------------+-----------------------------------------+
-
-+ The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
-+ locale to decode ``decimal_point`` and ``thousands_sep`` byte strings if
-+ they are non-ASCII or longer than 1 byte, and the ``LC_NUMERIC`` locale is
-+ different than the ``LC_CTYPE`` locale. This temporary change affects other
-+ threads.
-+
-+ .. versionchanged:: 3.6.5
-+ The function now sets temporarily the ``LC_CTYPE`` locale to the
-+ ``LC_NUMERIC`` locale in some cases.
-+
-
- .. function:: nl_langinfo(option)
-
-diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
-index 196a4c00056..d8a1647e8b5 100644
---- a/Doc/library/stdtypes.rst
-+++ b/Doc/library/stdtypes.rst
-@@ -1599,6 +1599,20 @@ expression support in the :mod:`re` module).
- See :ref:`formatstrings` for a description of the various formatting options
- that can be specified in format strings.
-
-+ .. note::
-+ When formatting a number (:class:`int`, :class:`float`, :class:`float`
-+ and subclasses) with the ``n`` type (ex: ``'{:n}'.format(1234)``), the
-+ function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
-+ locale to decode ``decimal_point`` and ``thousands_sep`` fields of
-+ :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, and the
-+ ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. This
-+ temporary change affects other threads.
-+
-+ .. versionchanged:: 3.6.5
-+ When formatting a number with the ``n`` type, the function sets
-+ temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some
-+ cases.
-+
-
- .. method:: str.format_map(mapping)
-
-diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
-index 847b50140a6..f83508c9250 100644
---- a/Doc/whatsnew/3.6.rst
-+++ b/Doc/whatsnew/3.6.rst
-@@ -2346,3 +2346,11 @@ It has been replaced by the new ``make regen-all`` target.
- (Contributed by Victor Stinner in :issue:`23404`.)
-
- .. versionchanged:: 3.6.2
-+
-+
-+Notable changes in Python 3.6.5
-+===============================
-+
-+The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE``
-+locale to the ``LC_NUMERIC`` locale in some cases.
-+(Contributed by Victor Stinner in :issue:`31900`.)
-diff --git a/Include/fileutils.h b/Include/fileutils.h
-index 900c70faad7..875715df97a 100644
---- a/Include/fileutils.h
-+++ b/Include/fileutils.h
-@@ -119,6 +119,11 @@ PyAPI_FUNC(int) _Py_get_blocking(int fd);
- PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
- #endif /* !MS_WINDOWS */
-
-+PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
-+ PyObject **decimal_point,
-+ PyObject **thousands_sep,
-+ const char **grouping);
-+
- #endif /* Py_LIMITED_API */
-
- #ifdef __cplusplus
-diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
-index 71c9146ccb8..95b370b1ad0 100644
---- a/Modules/_localemodule.c
-+++ b/Modules/_localemodule.c
-@@ -171,12 +171,6 @@ PyLocale_localeconv(PyObject* self)
- RESULT(#i, x); \
- } while (0)
-
-- /* Numeric information */
-- RESULT_STRING(decimal_point);
-- RESULT_STRING(thousands_sep);
-- x = copy_grouping(l->grouping);
-- RESULT("grouping", x);
--
- /* Monetary information */
- RESULT_STRING(int_curr_symbol);
- RESULT_STRING(currency_symbol);
-@@ -195,6 +189,32 @@ PyLocale_localeconv(PyObject* self)
- RESULT_INT(n_sep_by_space);
- RESULT_INT(p_sign_posn);
- RESULT_INT(n_sign_posn);
-+
-+ /* Numeric information */
-+ PyObject *decimal_point, *thousands_sep;
-+ const char *grouping;
-+ if (_Py_GetLocaleconvNumeric(&decimal_point,
-+ &thousands_sep,
-+ &grouping) < 0) {
-+ goto failed;
-+ }
-+
-+ if (PyDict_SetItemString(result, "decimal_point", decimal_point) < 0) {
-+ Py_DECREF(decimal_point);
-+ Py_DECREF(thousands_sep);
-+ goto failed;
-+ }
-+ Py_DECREF(decimal_point);
-+
-+ if (PyDict_SetItemString(result, "thousands_sep", thousands_sep) < 0) {
-+ Py_DECREF(thousands_sep);
-+ goto failed;
-+ }
-+ Py_DECREF(thousands_sep);
-+
-+ x = copy_grouping(grouping);
-+ RESULT("grouping", x);
-+
- return result;
-
- failed:
-diff --git a/Python/fileutils.c b/Python/fileutils.c
-index 97505e5bc6d..14dd81b03f0 100644
---- a/Python/fileutils.c
-+++ b/Python/fileutils.c
-@@ -1597,3 +1597,80 @@ _Py_set_blocking(int fd, int blocking)
- return -1;
- }
- #endif
-+
-+
-+int
-+_Py_GetLocaleconvNumeric(PyObject **decimal_point, PyObject **thousands_sep,
-+ const char **grouping)
-+{
-+ int res = -1;
-+
-+ struct lconv *lc = localeconv();
-+
-+ int change_locale = 0;
-+ if (decimal_point != NULL &&
-+ (strlen(lc->decimal_point) > 1 || ((unsigned char)lc->decimal_point[0]) > 127))
-+ {
-+ change_locale = 1;
-+ }
-+ if (thousands_sep != NULL &&
-+ (strlen(lc->thousands_sep) > 1 || ((unsigned char)lc->thousands_sep[0]) > 127))
-+ {
-+ change_locale = 1;
-+ }
-+
-+ /* Keep a copy of the LC_CTYPE locale */
-+ char *oldloc = NULL, *loc = NULL;
-+ if (change_locale) {
-+ oldloc = setlocale(LC_CTYPE, NULL);
-+ if (!oldloc) {
-+ PyErr_SetString(PyExc_RuntimeWarning, "faild to get LC_CTYPE locale");
-+ return -1;
-+ }
-+
-+ oldloc = _PyMem_Strdup(oldloc);
-+ if (!oldloc) {
-+ PyErr_NoMemory();
-+ return -1;
-+ }
-+
-+ loc = setlocale(LC_NUMERIC, NULL);
-+ if (loc != NULL && strcmp(loc, oldloc) == 0) {
-+ loc = NULL;
-+ }
-+
-+ if (loc != NULL) {
-+ /* Only set the locale temporarilty the LC_CTYPE locale
-+ if LC_NUMERIC locale is different than LC_CTYPE locale and
-+ decimal_point and/or thousands_sep are non-ASCII or longer than
-+ 1 byte */
-+ setlocale(LC_CTYPE, loc);
-+ }
-+ }
-+
-+ if (decimal_point != NULL) {
-+ *decimal_point = PyUnicode_DecodeLocale(lc->decimal_point, NULL);
-+ if (*decimal_point == NULL) {
-+ goto error;
-+ }
-+ }
-+ if (thousands_sep != NULL) {
-+ *thousands_sep = PyUnicode_DecodeLocale(lc->thousands_sep, NULL);
-+ if (*thousands_sep == NULL) {
-+ goto error;
-+ }
-+ }
-+
-+ if (grouping != NULL) {
-+ *grouping = lc->grouping;
-+ }
-+
-+ res = 0;
-+
-+error:
-+ if (loc != NULL) {
-+ setlocale(LC_CTYPE, oldloc);
-+ }
-+ PyMem_Free(oldloc);
-+ return res;
-+}
-diff --git a/Python/formatter_unicode.c b/Python/formatter_unicode.c
-index d2be76f1e1a..d3ef650e6ce 100644
---- a/Python/formatter_unicode.c
-+++ b/Python/formatter_unicode.c
-@@ -707,18 +707,11 @@ get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
- {
- switch (type) {
- case LT_CURRENT_LOCALE: {
-- struct lconv *locale_data = localeconv();
-- locale_info->decimal_point = PyUnicode_DecodeLocale(
-- locale_data->decimal_point,
-- NULL);
-- if (locale_info->decimal_point == NULL)
-+ if (_Py_GetLocaleconvNumeric(&locale_info->decimal_point,
-+ &locale_info->thousands_sep,
-+ &locale_info->grouping) < 0) {
- return -1;
-- locale_info->thousands_sep = PyUnicode_DecodeLocale(
-- locale_data->thousands_sep,
-- NULL);
-- if (locale_info->thousands_sep == NULL)
-- return -1;
-- locale_info->grouping = locale_data->grouping;
-+ }
- break;
- }
- case LT_DEFAULT_LOCALE:
diff --git a/00277-fix-test-subprocess-hanging-tests.patch b/00277-fix-test-subprocess-hanging-tests.patch
deleted file mode 100644
index c9b54e2..0000000
--- a/00277-fix-test-subprocess-hanging-tests.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 54849962eacc38f4e6c6f8a72ae258b3e7c2ecd5 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <victor.stinner(a)gmail.com>
-Date: Thu, 5 Oct 2017 15:05:30 +0200
-Subject: [PATCH] bpo-31178: Mock os.waitpid() in test_subprocess
-
-Fix test_exception_errpipe_bad_data() and
-test_exception_errpipe_normal() of test_subprocess: mock os.waitpid()
-to avoid calling the real os.waitpid(0, 0) which is an unexpected
-side effect of the test.
----
- Lib/test/test_subprocess.py | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
-index 00dc37bc2c7..3ba5c028517 100644
---- a/Lib/test/test_subprocess.py
-+++ b/Lib/test/test_subprocess.py
-@@ -1559,8 +1559,10 @@ def proper_error(*args):
-
- fork_exec.side_effect = proper_error
-
-- with self.assertRaises(IsADirectoryError):
-- self.PopenNoDestructor(["non_existent_command"])
-+ with mock.patch("subprocess.os.waitpid",
-+ side_effect=ChildProcessError):
-+ with self.assertRaises(IsADirectoryError):
-+ self.PopenNoDestructor(["non_existent_command"])
-
- @mock.patch("subprocess._posixsubprocess.fork_exec")
- def test_exception_errpipe_bad_data(self, fork_exec):
-@@ -1577,8 +1579,10 @@ def bad_error(*args):
-
- fork_exec.side_effect = bad_error
-
-- with self.assertRaises(subprocess.SubprocessError) as e:
-- self.PopenNoDestructor(["non_existent_command"])
-+ with mock.patch("subprocess.os.waitpid",
-+ side_effect=ChildProcessError):
-+ with self.assertRaises(subprocess.SubprocessError) as e:
-+ self.PopenNoDestructor(["non_existent_command"])
-
- self.assertIn(repr(error_data), str(e.exception))
-
diff --git a/00279-fix-memory-corruption-due-to-allocator-mix.patch b/00279-fix-memory-corruption-due-to-allocator-mix.patch
deleted file mode 100644
index 4937391..0000000
--- a/00279-fix-memory-corruption-due-to-allocator-mix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Modules/getpath.c b/Modules/getpath.c
-index c4055be..1258fcd 100644
---- a/Modules/getpath.c
-+++ b/Modules/getpath.c
-@@ -735,7 +735,7 @@ calculate_path(void)
- bufsz += wcslen(zip_path) + 1;
- bufsz += wcslen(exec_prefix) + 1;
-
-- buf = PyMem_New(wchar_t, bufsz);
-+ buf = PyMem_RawMalloc(bufsz * sizeof(wchar_t));
- if (buf == NULL) {
- Py_FatalError(
- "Not enough memory for dynamic PYTHONPATH");
diff --git a/00289-fix-nis-compilation.patch b/00289-fix-nis-compilation.patch
deleted file mode 100644
index 4d4e3dc..0000000
--- a/00289-fix-nis-compilation.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 3eb6ad1..3437e48 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1331,20 +1331,14 @@ class PyBuildExt(build_ext):
- exts.append( Extension('termios', ['termios.c']) )
- # Jeremy Hylton's rlimit interface
- exts.append( Extension('resource', ['resource.c']) )
-+ else:
-+ missing.extend(['resource', 'termios'])
-
-- # Sun yellow pages. Some systems have the functions in libc.
-- if (host_platform not in ['cygwin', 'qnx6'] and
-- find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
-- if (self.compiler.find_library_file(lib_dirs, 'nsl')):
-- libs = ['nsl']
-- else:
-- libs = []
-- exts.append( Extension('nis', ['nismodule.c'],
-- libraries = libs) )
-- else:
-- missing.append('nis')
-+ nis = self._detect_nis(inc_dirs, lib_dirs)
-+ if nis is not None:
-+ exts.append(nis)
- else:
-- missing.extend(['nis', 'resource', 'termios'])
-+ missing.append('nis')
-
- # Curses support, requiring the System V version of curses, often
- # provided by the ncurses library.
-@@ -2179,6 +2173,51 @@ class PyBuildExt(build_ext):
- )
- return ext
-
-+ def _detect_nis(self, inc_dirs, lib_dirs):
-+ if host_platform in {'win32', 'cygwin', 'qnx6'}:
-+ return None
-+
-+ libs = []
-+ library_dirs = []
-+ includes_dirs = []
-+
-+ # Latest glibc has moved Sun RPC headers into tircp and nsl sub
-+ # directories. rpc code has been moved to libtirpc.
-+ rpcsvc_inc = find_file(
-+ 'rpcsvc/yp_prot.h', inc_dirs,
-+ ['/usr/local/include/nsl', '/usr/include/nsl']
-+ )
-+ rpc_inc = find_file(
-+ 'rpc/rpc.h', inc_dirs,
-+ ['/usr/local/include/tirpc', '/usr/include/tirpc']
-+ )
-+ 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
- # directory, which is not in sys.path when running Python during
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
deleted file mode 100644
index c5d768b..0000000
--- a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Include/Python.h b/Include/Python.h
-index dd595ea5e4c..1feb1531cc9 100644
---- a/Include/Python.h
-+++ b/Include/Python.h
-@@ -35,6 +35,9 @@
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#ifdef HAVE_CRYPT_H
-+#include <crypt.h>
-+#endif
-
- /* For size_t? */
- #ifdef HAVE_STDDEF_H
-diff --git a/configure.ac b/configure.ac
-index 03b0f501aff..15ef872a53a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2041,7 +2041,7 @@ dnl AC_MSG_RESULT($cpp_type)
-
- # checks for header files
- AC_HEADER_STDC
--AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
-+AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
- fcntl.h grp.h \
- ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
- sched.h shadow.h signal.h stropts.h termios.h \
-
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
deleted file mode 100644
index 6539003..0000000
--- a/00291-setup-Link-ctypes-against-dl-explicitly.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/setup.py b/setup.py
-index f4f6e4fdb1f0..8536c350fe3a 100644
---- a/setup.py
-+++ b/setup.py
-@@ -2005,6 +2005,10 @@ def detect_ctypes(self, inc_dirs, lib_dirs):
- ext.libraries.append(ffi_lib)
- self.use_system_libffi = True
-
-+ if sysconfig.get_config_var('HAVE_LIBDL'):
-+ # for dlopen, see bpo-32647
-+ ext.libraries.append('dl')
-+
- def _decimal_ext(self):
- extra_compile_args = []
- undef_macros = []
diff --git a/00298-do-not-send-IP-in-SNI-TLS-extension.patch b/00298-do-not-send-IP-in-SNI-TLS-extension.patch
deleted file mode 100644
index 19b6b31..0000000
--- a/00298-do-not-send-IP-in-SNI-TLS-extension.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/Modules/_ssl.c b/Modules/_ssl.c
-index df8c6a7d96d8..e8cffef14de0 100644
---- a/Modules/_ssl.c
-+++ b/Modules/_ssl.c
-@@ -55,6 +55,11 @@ static PySocketModule_APIObject PySocketModule;
- #include <sys/poll.h>
- #endif
-
-+#ifndef MS_WINDOWS
-+/* inet_pton */
-+#include <arpa/inet.h>
-+#endif
-+
- /* Don't warn about deprecated functions */
- #ifdef __GNUC__
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-@@ -667,8 +672,41 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
- SSL_set_mode(self->ssl, mode);
-
- #if HAVE_SNI
-- if (server_hostname != NULL)
-- SSL_set_tlsext_host_name(self->ssl, server_hostname);
-+ if (server_hostname != NULL) {
-+/* Don't send SNI for IP addresses. We cannot simply use inet_aton() and
-+ * inet_pton() here. inet_aton() may be linked weakly and inet_pton() isn't
-+ * available on all platforms. Use OpenSSL's IP address parser. It's
-+ * available since 1.0.2 and LibreSSL since at least 2.3.0. */
-+ int send_sni = 1;
-+#if OPENSSL_VERSION_NUMBER >= 0x10200000L
-+ ASN1_OCTET_STRING *ip = a2i_IPADDRESS(server_hostname);
-+ if (ip == NULL) {
-+ send_sni = 1;
-+ ERR_clear_error();
-+ } else {
-+ send_sni = 0;
-+ ASN1_OCTET_STRING_free(ip);
-+ }
-+#elif defined(HAVE_INET_PTON)
-+#ifdef ENABLE_IPV6
-+ char packed[Py_MAX(sizeof(struct in_addr), sizeof(struct in6_addr))];
-+#else
-+ char packed[sizeof(struct in_addr)];
-+#endif /* ENABLE_IPV6 */
-+ if (inet_pton(AF_INET, server_hostname, packed)) {
-+ send_sni = 0;
-+#ifdef ENABLE_IPV6
-+ } else if(inet_pton(AF_INET6, server_hostname, packed)) {
-+ send_sni = 0;
-+#endif /* ENABLE_IPV6 */
-+ } else {
-+ send_sni = 1;
-+ }
-+#endif /* HAVE_INET_PTON */
-+ if (send_sni) {
-+ SSL_set_tlsext_host_name(self->ssl, server_hostname);
-+ }
-+ }
- #endif
-
- /* If the socket is in non-blocking mode or timeout mode, set the BIO
diff --git a/python3.spec b/python3.spec
index dd21fdc..5bdde01 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.4
-Release: 20%{?dist}
+Version: %{pybasever}.5
+Release: 1%{?dist}
License: Python
@@ -334,45 +334,10 @@ Patch251: 00251-change-user-install-location.patch
# Original proposal: https://bugzilla.redhat.com/show_bug.cgi?id=1404918
Patch262: 00262-pep538_coerce_legacy_c_locale.patch
-# 00264 #
-# test_pass_by_value was added in Python 3.6.1 and on aarch64
-# it is catching an error that was there, but wasn't tested before.
-# Therefore skipping the test on aarch64 until fixed upstream.
-# Reported upstream: http://bugs.python.org/issue29804
-Patch264: 00264-skip-test-failing-on-aarch64.patch
-
-# 00273 #
-# Fix localeconv() encoding for LC_NUMERIC
-# Fixed upstream: https://bugs.python.org/issue31900
-Patch273: 00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
-
# 00274 #
# Upstream uses Debian-style architecture naming. Change to match Fedora.
Patch274: 00274-fix-arch-names.patch
-# 00289 #
-# Fix the compilation of the nis module, as glibc removed the
-# interfaces related to Sun RPC and they are now provided
-# by libtirpc and libnsl2.
-# See: https://fedoraproject.org/wiki/Changes/SunRPCRemoval
-# and https://fedoraproject.org/wiki/Changes/NISIPv6
-# Fixed upstream: https://bugs.python.org/issue32521
-Patch289: 00289-fix-nis-compilation.patch
-
-# 00290 #
-# Not every target system may provide a crypt() function in its stdlibc
-# and may use an external or replacement library, like libxcrypt, for
-# providing such functions.
-# Fixed upstream: https://bugs.python.org/issue32635
-Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
-
-# 00291 #
-# Build fails with undefined references to dlopen / dlsym otherwise.
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
-# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
-# Fixed upstream: https://bugs.python.org/issue32647
-Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
-
# 00292 #
# Restore the public PyExc_RecursionErrorInst symbol that was removed
# from the 3.6.4 release upstream.
@@ -387,12 +352,6 @@ Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
-# 00298 #
-# The SSL module no longer sends IP addresses in SNI TLS extension on
-# platforms with OpenSSL 1.0.2+ or inet_pton.
-# Fixed upstream: https://bugs.python.org/issue32185
-Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.patch
-
# 00301 #
# Tools/scripts/pathfix.py: Add -n option for no backup~
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1546990
@@ -659,7 +618,7 @@ rm -r Modules/expat
rm -r Modules/zlib
%if %{with rewheel}
-%global pip_version 9.0.1
+%global pip_version 9.0.3
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
%endif
@@ -686,19 +645,9 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch205 -p1
%patch251 -p1
%patch262 -p1
-
-%ifarch aarch64
-%patch264 -p1
-%endif
-
-%patch273 -p1
%patch274 -p1
-%patch289 -p1
-%patch290 -p1
-%patch291 -p1
%patch292 -p1
%patch294 -p1
-%patch298 -p1
%patch301 -p1
@@ -1521,6 +1470,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
+- Update to 3.6.5
+
* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
- Fix broken macro invocation and broken building of C Python extensions
Resolves: rhbz#1560103
diff --git a/sources b/sources
index 6b5ff13..9d32274 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.6.4.tar.xz) = 09ba2103ac517ac4d262f00380c9aac836a53401ce252540c17fd821a3b92e1ddf32528d00772221eb3126b12cb95b62c3ac3e852f4951e6f2eb406c88c848a2
+SHA512 (Python-3.6.5.tar.xz) = 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51
commit fb9702fb7f582516652106aabd7c208108970071
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Mar 29 16:03:33 2018 +0200
Update to 3.6.5
Rebased patches: 102, 111, 262
Removed patches due to being upstreamed:
264, 273, 289, 290, 291, 298
Update pip version to 9.0.3
diff --git a/00102-lib64.patch b/00102-lib64.patch
index 8eea66d..2b913ca 100644
--- a/00102-lib64.patch
+++ b/00102-lib64.patch
@@ -110,7 +110,7 @@ index f698927..bc977b5 100644
@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
self.assertEqual(dirs[1], wanted)
elif os.sep == '/':
- # OS X non-framwework builds, Linux, FreeBSD, etc
+ # OS X non-framework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 1)
- wanted = os.path.join('xoxo', 'lib',
+ self.assertEqual(len(dirs), 2)
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
index 6929fda..bc4203d 100644
--- a/00111-no-static-lib.patch
+++ b/00111-no-static-lib.patch
@@ -1,9 +1,9 @@
diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 70e5927..04c8e3d 100644
+index 4b093e3..1088435 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -556,7 +556,7 @@ clinic: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2s_impl.c
- $(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
+@@ -543,7 +543,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
+ $(PYTHON_FOR_REGEN) ./Tools/clinic/clinic.py --make
# Build the interpreter
-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
@@ -11,7 +11,7 @@ index 70e5927..04c8e3d 100644
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
platform: $(BUILDPYTHON) pybuilddir.txt
-@@ -601,18 +601,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
+@@ -588,18 +588,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
@@ -30,7 +30,7 @@ index 70e5927..04c8e3d 100644
libpython$(LDVERSION).so: $(LIBRARY_OBJS)
if test $(INSTSONAME) != $(LDLIBRARY); then \
$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-@@ -702,7 +690,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
+@@ -689,7 +677,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
echo "-----------------------------------------------"; \
fi
@@ -39,7 +39,7 @@ index 70e5927..04c8e3d 100644
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
############################################################################
-@@ -1382,18 +1370,6 @@ libainstall: all python-config
+@@ -1425,18 +1413,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
else true; \
fi; \
done
diff --git a/00262-pep538_coerce_legacy_c_locale.patch b/00262-pep538_coerce_legacy_c_locale.patch
index b144ba5..4a640fd 100644
--- a/00262-pep538_coerce_legacy_c_locale.patch
+++ b/00262-pep538_coerce_legacy_c_locale.patch
@@ -542,18 +542,6 @@ diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index ae2bcd4..0a302ff 100644
--- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py
-@@ -9,8 +9,9 @@ import sys
- import subprocess
- import tempfile
- from test.support import script_helper, is_android
--from test.support.script_helper import (spawn_python, kill_python, assert_python_ok,
-- assert_python_failure)
-+from test.support.script_helper import (
-+ spawn_python, kill_python, assert_python_ok, assert_python_failure
-+)
-
-
- # XXX (ncoghlan): Move to script_helper and make consistent with run_python
@@ -151,6 +152,7 @@ class CmdLineTest(unittest.TestCase):
env = os.environ.copy()
# Use C locale to get ascii for the locale encoding
diff --git a/00264-skip-test-failing-on-aarch64.patch b/00264-skip-test-failing-on-aarch64.patch
deleted file mode 100644
index edda219..0000000
--- a/00264-skip-test-failing-on-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
-index 3eded77..ad7859a 100644
---- a/Lib/ctypes/test/test_structures.py
-+++ b/Lib/ctypes/test/test_structures.py
-@@ -392,6 +392,7 @@ class StructureTestCase(unittest.TestCase):
- (1, 0, 0, 0, 0, 0))
- self.assertRaises(TypeError, lambda: Z(1, 2, 3, 4, 5, 6, 7))
-
-+ @unittest.skip('Fails on aarch64: http://bugs.python.org/issue29804')
- def test_pass_by_value(self):
- # This should mirror the structure in Modules/_ctypes/_ctypes_test.c
- class X(Structure):
diff --git a/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch b/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
deleted file mode 100644
index 4d0c87d..0000000
--- a/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
-index b04442bc162..9a0c570533a 100644
---- a/Doc/library/locale.rst
-+++ b/Doc/library/locale.rst
-@@ -147,6 +147,16 @@ The :mod:`locale` module defines the following exception and functions:
- | ``CHAR_MAX`` | Nothing is specified in this locale. |
- +--------------+-----------------------------------------+
-
-+ The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
-+ locale to decode ``decimal_point`` and ``thousands_sep`` byte strings if
-+ they are non-ASCII or longer than 1 byte, and the ``LC_NUMERIC`` locale is
-+ different than the ``LC_CTYPE`` locale. This temporary change affects other
-+ threads.
-+
-+ .. versionchanged:: 3.6.5
-+ The function now sets temporarily the ``LC_CTYPE`` locale to the
-+ ``LC_NUMERIC`` locale in some cases.
-+
-
- .. function:: nl_langinfo(option)
-
-diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
-index 196a4c00056..d8a1647e8b5 100644
---- a/Doc/library/stdtypes.rst
-+++ b/Doc/library/stdtypes.rst
-@@ -1599,6 +1599,20 @@ expression support in the :mod:`re` module).
- See :ref:`formatstrings` for a description of the various formatting options
- that can be specified in format strings.
-
-+ .. note::
-+ When formatting a number (:class:`int`, :class:`float`, :class:`float`
-+ and subclasses) with the ``n`` type (ex: ``'{:n}'.format(1234)``), the
-+ function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
-+ locale to decode ``decimal_point`` and ``thousands_sep`` fields of
-+ :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, and the
-+ ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. This
-+ temporary change affects other threads.
-+
-+ .. versionchanged:: 3.6.5
-+ When formatting a number with the ``n`` type, the function sets
-+ temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some
-+ cases.
-+
-
- .. method:: str.format_map(mapping)
-
-diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
-index 847b50140a6..f83508c9250 100644
---- a/Doc/whatsnew/3.6.rst
-+++ b/Doc/whatsnew/3.6.rst
-@@ -2346,3 +2346,11 @@ It has been replaced by the new ``make regen-all`` target.
- (Contributed by Victor Stinner in :issue:`23404`.)
-
- .. versionchanged:: 3.6.2
-+
-+
-+Notable changes in Python 3.6.5
-+===============================
-+
-+The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE``
-+locale to the ``LC_NUMERIC`` locale in some cases.
-+(Contributed by Victor Stinner in :issue:`31900`.)
-diff --git a/Include/fileutils.h b/Include/fileutils.h
-index 900c70faad7..875715df97a 100644
---- a/Include/fileutils.h
-+++ b/Include/fileutils.h
-@@ -119,6 +119,11 @@ PyAPI_FUNC(int) _Py_get_blocking(int fd);
- PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
- #endif /* !MS_WINDOWS */
-
-+PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
-+ PyObject **decimal_point,
-+ PyObject **thousands_sep,
-+ const char **grouping);
-+
- #endif /* Py_LIMITED_API */
-
- #ifdef __cplusplus
-diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
-index 71c9146ccb8..95b370b1ad0 100644
---- a/Modules/_localemodule.c
-+++ b/Modules/_localemodule.c
-@@ -171,12 +171,6 @@ PyLocale_localeconv(PyObject* self)
- RESULT(#i, x); \
- } while (0)
-
-- /* Numeric information */
-- RESULT_STRING(decimal_point);
-- RESULT_STRING(thousands_sep);
-- x = copy_grouping(l->grouping);
-- RESULT("grouping", x);
--
- /* Monetary information */
- RESULT_STRING(int_curr_symbol);
- RESULT_STRING(currency_symbol);
-@@ -195,6 +189,32 @@ PyLocale_localeconv(PyObject* self)
- RESULT_INT(n_sep_by_space);
- RESULT_INT(p_sign_posn);
- RESULT_INT(n_sign_posn);
-+
-+ /* Numeric information */
-+ PyObject *decimal_point, *thousands_sep;
-+ const char *grouping;
-+ if (_Py_GetLocaleconvNumeric(&decimal_point,
-+ &thousands_sep,
-+ &grouping) < 0) {
-+ goto failed;
-+ }
-+
-+ if (PyDict_SetItemString(result, "decimal_point", decimal_point) < 0) {
-+ Py_DECREF(decimal_point);
-+ Py_DECREF(thousands_sep);
-+ goto failed;
-+ }
-+ Py_DECREF(decimal_point);
-+
-+ if (PyDict_SetItemString(result, "thousands_sep", thousands_sep) < 0) {
-+ Py_DECREF(thousands_sep);
-+ goto failed;
-+ }
-+ Py_DECREF(thousands_sep);
-+
-+ x = copy_grouping(grouping);
-+ RESULT("grouping", x);
-+
- return result;
-
- failed:
-diff --git a/Python/fileutils.c b/Python/fileutils.c
-index 97505e5bc6d..14dd81b03f0 100644
---- a/Python/fileutils.c
-+++ b/Python/fileutils.c
-@@ -1597,3 +1597,80 @@ _Py_set_blocking(int fd, int blocking)
- return -1;
- }
- #endif
-+
-+
-+int
-+_Py_GetLocaleconvNumeric(PyObject **decimal_point, PyObject **thousands_sep,
-+ const char **grouping)
-+{
-+ int res = -1;
-+
-+ struct lconv *lc = localeconv();
-+
-+ int change_locale = 0;
-+ if (decimal_point != NULL &&
-+ (strlen(lc->decimal_point) > 1 || ((unsigned char)lc->decimal_point[0]) > 127))
-+ {
-+ change_locale = 1;
-+ }
-+ if (thousands_sep != NULL &&
-+ (strlen(lc->thousands_sep) > 1 || ((unsigned char)lc->thousands_sep[0]) > 127))
-+ {
-+ change_locale = 1;
-+ }
-+
-+ /* Keep a copy of the LC_CTYPE locale */
-+ char *oldloc = NULL, *loc = NULL;
-+ if (change_locale) {
-+ oldloc = setlocale(LC_CTYPE, NULL);
-+ if (!oldloc) {
-+ PyErr_SetString(PyExc_RuntimeWarning, "faild to get LC_CTYPE locale");
-+ return -1;
-+ }
-+
-+ oldloc = _PyMem_Strdup(oldloc);
-+ if (!oldloc) {
-+ PyErr_NoMemory();
-+ return -1;
-+ }
-+
-+ loc = setlocale(LC_NUMERIC, NULL);
-+ if (loc != NULL && strcmp(loc, oldloc) == 0) {
-+ loc = NULL;
-+ }
-+
-+ if (loc != NULL) {
-+ /* Only set the locale temporarilty the LC_CTYPE locale
-+ if LC_NUMERIC locale is different than LC_CTYPE locale and
-+ decimal_point and/or thousands_sep are non-ASCII or longer than
-+ 1 byte */
-+ setlocale(LC_CTYPE, loc);
-+ }
-+ }
-+
-+ if (decimal_point != NULL) {
-+ *decimal_point = PyUnicode_DecodeLocale(lc->decimal_point, NULL);
-+ if (*decimal_point == NULL) {
-+ goto error;
-+ }
-+ }
-+ if (thousands_sep != NULL) {
-+ *thousands_sep = PyUnicode_DecodeLocale(lc->thousands_sep, NULL);
-+ if (*thousands_sep == NULL) {
-+ goto error;
-+ }
-+ }
-+
-+ if (grouping != NULL) {
-+ *grouping = lc->grouping;
-+ }
-+
-+ res = 0;
-+
-+error:
-+ if (loc != NULL) {
-+ setlocale(LC_CTYPE, oldloc);
-+ }
-+ PyMem_Free(oldloc);
-+ return res;
-+}
-diff --git a/Python/formatter_unicode.c b/Python/formatter_unicode.c
-index d2be76f1e1a..d3ef650e6ce 100644
---- a/Python/formatter_unicode.c
-+++ b/Python/formatter_unicode.c
-@@ -707,18 +707,11 @@ get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
- {
- switch (type) {
- case LT_CURRENT_LOCALE: {
-- struct lconv *locale_data = localeconv();
-- locale_info->decimal_point = PyUnicode_DecodeLocale(
-- locale_data->decimal_point,
-- NULL);
-- if (locale_info->decimal_point == NULL)
-+ if (_Py_GetLocaleconvNumeric(&locale_info->decimal_point,
-+ &locale_info->thousands_sep,
-+ &locale_info->grouping) < 0) {
- return -1;
-- locale_info->thousands_sep = PyUnicode_DecodeLocale(
-- locale_data->thousands_sep,
-- NULL);
-- if (locale_info->thousands_sep == NULL)
-- return -1;
-- locale_info->grouping = locale_data->grouping;
-+ }
- break;
- }
- case LT_DEFAULT_LOCALE:
diff --git a/00277-fix-test-subprocess-hanging-tests.patch b/00277-fix-test-subprocess-hanging-tests.patch
deleted file mode 100644
index c9b54e2..0000000
--- a/00277-fix-test-subprocess-hanging-tests.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 54849962eacc38f4e6c6f8a72ae258b3e7c2ecd5 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <victor.stinner(a)gmail.com>
-Date: Thu, 5 Oct 2017 15:05:30 +0200
-Subject: [PATCH] bpo-31178: Mock os.waitpid() in test_subprocess
-
-Fix test_exception_errpipe_bad_data() and
-test_exception_errpipe_normal() of test_subprocess: mock os.waitpid()
-to avoid calling the real os.waitpid(0, 0) which is an unexpected
-side effect of the test.
----
- Lib/test/test_subprocess.py | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
-index 00dc37bc2c7..3ba5c028517 100644
---- a/Lib/test/test_subprocess.py
-+++ b/Lib/test/test_subprocess.py
-@@ -1559,8 +1559,10 @@ def proper_error(*args):
-
- fork_exec.side_effect = proper_error
-
-- with self.assertRaises(IsADirectoryError):
-- self.PopenNoDestructor(["non_existent_command"])
-+ with mock.patch("subprocess.os.waitpid",
-+ side_effect=ChildProcessError):
-+ with self.assertRaises(IsADirectoryError):
-+ self.PopenNoDestructor(["non_existent_command"])
-
- @mock.patch("subprocess._posixsubprocess.fork_exec")
- def test_exception_errpipe_bad_data(self, fork_exec):
-@@ -1577,8 +1579,10 @@ def bad_error(*args):
-
- fork_exec.side_effect = bad_error
-
-- with self.assertRaises(subprocess.SubprocessError) as e:
-- self.PopenNoDestructor(["non_existent_command"])
-+ with mock.patch("subprocess.os.waitpid",
-+ side_effect=ChildProcessError):
-+ with self.assertRaises(subprocess.SubprocessError) as e:
-+ self.PopenNoDestructor(["non_existent_command"])
-
- self.assertIn(repr(error_data), str(e.exception))
-
diff --git a/00279-fix-memory-corruption-due-to-allocator-mix.patch b/00279-fix-memory-corruption-due-to-allocator-mix.patch
deleted file mode 100644
index 4937391..0000000
--- a/00279-fix-memory-corruption-due-to-allocator-mix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Modules/getpath.c b/Modules/getpath.c
-index c4055be..1258fcd 100644
---- a/Modules/getpath.c
-+++ b/Modules/getpath.c
-@@ -735,7 +735,7 @@ calculate_path(void)
- bufsz += wcslen(zip_path) + 1;
- bufsz += wcslen(exec_prefix) + 1;
-
-- buf = PyMem_New(wchar_t, bufsz);
-+ buf = PyMem_RawMalloc(bufsz * sizeof(wchar_t));
- if (buf == NULL) {
- Py_FatalError(
- "Not enough memory for dynamic PYTHONPATH");
diff --git a/00289-fix-nis-compilation.patch b/00289-fix-nis-compilation.patch
deleted file mode 100644
index 4d4e3dc..0000000
--- a/00289-fix-nis-compilation.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 3eb6ad1..3437e48 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1331,20 +1331,14 @@ class PyBuildExt(build_ext):
- exts.append( Extension('termios', ['termios.c']) )
- # Jeremy Hylton's rlimit interface
- exts.append( Extension('resource', ['resource.c']) )
-+ else:
-+ missing.extend(['resource', 'termios'])
-
-- # Sun yellow pages. Some systems have the functions in libc.
-- if (host_platform not in ['cygwin', 'qnx6'] and
-- find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
-- if (self.compiler.find_library_file(lib_dirs, 'nsl')):
-- libs = ['nsl']
-- else:
-- libs = []
-- exts.append( Extension('nis', ['nismodule.c'],
-- libraries = libs) )
-- else:
-- missing.append('nis')
-+ nis = self._detect_nis(inc_dirs, lib_dirs)
-+ if nis is not None:
-+ exts.append(nis)
- else:
-- missing.extend(['nis', 'resource', 'termios'])
-+ missing.append('nis')
-
- # Curses support, requiring the System V version of curses, often
- # provided by the ncurses library.
-@@ -2179,6 +2173,51 @@ class PyBuildExt(build_ext):
- )
- return ext
-
-+ def _detect_nis(self, inc_dirs, lib_dirs):
-+ if host_platform in {'win32', 'cygwin', 'qnx6'}:
-+ return None
-+
-+ libs = []
-+ library_dirs = []
-+ includes_dirs = []
-+
-+ # Latest glibc has moved Sun RPC headers into tircp and nsl sub
-+ # directories. rpc code has been moved to libtirpc.
-+ rpcsvc_inc = find_file(
-+ 'rpcsvc/yp_prot.h', inc_dirs,
-+ ['/usr/local/include/nsl', '/usr/include/nsl']
-+ )
-+ rpc_inc = find_file(
-+ 'rpc/rpc.h', inc_dirs,
-+ ['/usr/local/include/tirpc', '/usr/include/tirpc']
-+ )
-+ 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
- # directory, which is not in sys.path when running Python during
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
deleted file mode 100644
index c5d768b..0000000
--- a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Include/Python.h b/Include/Python.h
-index dd595ea5e4c..1feb1531cc9 100644
---- a/Include/Python.h
-+++ b/Include/Python.h
-@@ -35,6 +35,9 @@
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#ifdef HAVE_CRYPT_H
-+#include <crypt.h>
-+#endif
-
- /* For size_t? */
- #ifdef HAVE_STDDEF_H
-diff --git a/configure.ac b/configure.ac
-index 03b0f501aff..15ef872a53a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2041,7 +2041,7 @@ dnl AC_MSG_RESULT($cpp_type)
-
- # checks for header files
- AC_HEADER_STDC
--AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
-+AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
- fcntl.h grp.h \
- ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
- sched.h shadow.h signal.h stropts.h termios.h \
-
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
deleted file mode 100644
index 6539003..0000000
--- a/00291-setup-Link-ctypes-against-dl-explicitly.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/setup.py b/setup.py
-index f4f6e4fdb1f0..8536c350fe3a 100644
---- a/setup.py
-+++ b/setup.py
-@@ -2005,6 +2005,10 @@ def detect_ctypes(self, inc_dirs, lib_dirs):
- ext.libraries.append(ffi_lib)
- self.use_system_libffi = True
-
-+ if sysconfig.get_config_var('HAVE_LIBDL'):
-+ # for dlopen, see bpo-32647
-+ ext.libraries.append('dl')
-+
- def _decimal_ext(self):
- extra_compile_args = []
- undef_macros = []
diff --git a/00298-do-not-send-IP-in-SNI-TLS-extension.patch b/00298-do-not-send-IP-in-SNI-TLS-extension.patch
deleted file mode 100644
index 19b6b31..0000000
--- a/00298-do-not-send-IP-in-SNI-TLS-extension.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/Modules/_ssl.c b/Modules/_ssl.c
-index df8c6a7d96d8..e8cffef14de0 100644
---- a/Modules/_ssl.c
-+++ b/Modules/_ssl.c
-@@ -55,6 +55,11 @@ static PySocketModule_APIObject PySocketModule;
- #include <sys/poll.h>
- #endif
-
-+#ifndef MS_WINDOWS
-+/* inet_pton */
-+#include <arpa/inet.h>
-+#endif
-+
- /* Don't warn about deprecated functions */
- #ifdef __GNUC__
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-@@ -667,8 +672,41 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
- SSL_set_mode(self->ssl, mode);
-
- #if HAVE_SNI
-- if (server_hostname != NULL)
-- SSL_set_tlsext_host_name(self->ssl, server_hostname);
-+ if (server_hostname != NULL) {
-+/* Don't send SNI for IP addresses. We cannot simply use inet_aton() and
-+ * inet_pton() here. inet_aton() may be linked weakly and inet_pton() isn't
-+ * available on all platforms. Use OpenSSL's IP address parser. It's
-+ * available since 1.0.2 and LibreSSL since at least 2.3.0. */
-+ int send_sni = 1;
-+#if OPENSSL_VERSION_NUMBER >= 0x10200000L
-+ ASN1_OCTET_STRING *ip = a2i_IPADDRESS(server_hostname);
-+ if (ip == NULL) {
-+ send_sni = 1;
-+ ERR_clear_error();
-+ } else {
-+ send_sni = 0;
-+ ASN1_OCTET_STRING_free(ip);
-+ }
-+#elif defined(HAVE_INET_PTON)
-+#ifdef ENABLE_IPV6
-+ char packed[Py_MAX(sizeof(struct in_addr), sizeof(struct in6_addr))];
-+#else
-+ char packed[sizeof(struct in_addr)];
-+#endif /* ENABLE_IPV6 */
-+ if (inet_pton(AF_INET, server_hostname, packed)) {
-+ send_sni = 0;
-+#ifdef ENABLE_IPV6
-+ } else if(inet_pton(AF_INET6, server_hostname, packed)) {
-+ send_sni = 0;
-+#endif /* ENABLE_IPV6 */
-+ } else {
-+ send_sni = 1;
-+ }
-+#endif /* HAVE_INET_PTON */
-+ if (send_sni) {
-+ SSL_set_tlsext_host_name(self->ssl, server_hostname);
-+ }
-+ }
- #endif
-
- /* If the socket is in non-blocking mode or timeout mode, set the BIO
diff --git a/python3.spec b/python3.spec
index dd21fdc..5bdde01 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.4
-Release: 20%{?dist}
+Version: %{pybasever}.5
+Release: 1%{?dist}
License: Python
@@ -334,45 +334,10 @@ Patch251: 00251-change-user-install-location.patch
# Original proposal: https://bugzilla.redhat.com/show_bug.cgi?id=1404918
Patch262: 00262-pep538_coerce_legacy_c_locale.patch
-# 00264 #
-# test_pass_by_value was added in Python 3.6.1 and on aarch64
-# it is catching an error that was there, but wasn't tested before.
-# Therefore skipping the test on aarch64 until fixed upstream.
-# Reported upstream: http://bugs.python.org/issue29804
-Patch264: 00264-skip-test-failing-on-aarch64.patch
-
-# 00273 #
-# Fix localeconv() encoding for LC_NUMERIC
-# Fixed upstream: https://bugs.python.org/issue31900
-Patch273: 00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
-
# 00274 #
# Upstream uses Debian-style architecture naming. Change to match Fedora.
Patch274: 00274-fix-arch-names.patch
-# 00289 #
-# Fix the compilation of the nis module, as glibc removed the
-# interfaces related to Sun RPC and they are now provided
-# by libtirpc and libnsl2.
-# See: https://fedoraproject.org/wiki/Changes/SunRPCRemoval
-# and https://fedoraproject.org/wiki/Changes/NISIPv6
-# Fixed upstream: https://bugs.python.org/issue32521
-Patch289: 00289-fix-nis-compilation.patch
-
-# 00290 #
-# Not every target system may provide a crypt() function in its stdlibc
-# and may use an external or replacement library, like libxcrypt, for
-# providing such functions.
-# Fixed upstream: https://bugs.python.org/issue32635
-Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
-
-# 00291 #
-# Build fails with undefined references to dlopen / dlsym otherwise.
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
-# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
-# Fixed upstream: https://bugs.python.org/issue32647
-Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
-
# 00292 #
# Restore the public PyExc_RecursionErrorInst symbol that was removed
# from the 3.6.4 release upstream.
@@ -387,12 +352,6 @@ Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
-# 00298 #
-# The SSL module no longer sends IP addresses in SNI TLS extension on
-# platforms with OpenSSL 1.0.2+ or inet_pton.
-# Fixed upstream: https://bugs.python.org/issue32185
-Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.patch
-
# 00301 #
# Tools/scripts/pathfix.py: Add -n option for no backup~
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1546990
@@ -659,7 +618,7 @@ rm -r Modules/expat
rm -r Modules/zlib
%if %{with rewheel}
-%global pip_version 9.0.1
+%global pip_version 9.0.3
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
%endif
@@ -686,19 +645,9 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch205 -p1
%patch251 -p1
%patch262 -p1
-
-%ifarch aarch64
-%patch264 -p1
-%endif
-
-%patch273 -p1
%patch274 -p1
-%patch289 -p1
-%patch290 -p1
-%patch291 -p1
%patch292 -p1
%patch294 -p1
-%patch298 -p1
%patch301 -p1
@@ -1521,6 +1470,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Mar 29 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.5-1
+- Update to 3.6.5
+
* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
- Fix broken macro invocation and broken building of C Python extensions
Resolves: rhbz#1560103
diff --git a/sources b/sources
index 6b5ff13..9d32274 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.6.4.tar.xz) = 09ba2103ac517ac4d262f00380c9aac836a53401ce252540c17fd821a3b92e1ddf32528d00772221eb3126b12cb95b62c3ac3e852f4951e6f2eb406c88c848a2
+SHA512 (Python-3.6.5.tar.xz) = 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51
commit 6c5992ec4eefd7d510434df06fb18f56a7bdf49a
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Mar 25 20:49:54 2018 +0200
Fix shebangs of the GDB hooks
Also, use -p (preserve timestamp) and -n (don't create backup files)
with pathfix.py.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1560295
diff --git a/python3.spec b/python3.spec
index 8c9dacd..dd21fdc 100644
--- a/python3.spec
+++ b/python3.spec
@@ -953,8 +953,9 @@ cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
# so handle files named using other naming scheme separately.
LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
Tools/scripts/pathfix.py \
- -i "%{_bindir}/python%{pybasever}" \
- %{buildroot}
+ -i "%{_bindir}/python%{pybasever}" -pn \
+ %{buildroot} \
+ %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
# Remove tests for python3-tools which was removed in
# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
commit 37c970a4db6dd7f5c6885e40bc506efd3288a573
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Mar 24 08:06:56 2018 +0100
rpmlintrc: Filter macro-in-comment %{_pyconfig(32|64)_h}
diff --git a/python3.rpmlintrc b/python3.rpmlintrc
index 2c6e93d..03607c6 100644
--- a/python3.rpmlintrc
+++ b/python3.rpmlintrc
@@ -60,6 +60,8 @@ addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-pac
addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
+# we need this macro to evaluate, even if the line starts with #
+addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
# SPELLING ERRORS
addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
commit e8fa184158dfa253cf88fbac86a18cfb82046ca9
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Mar 24 08:02:08 2018 +0100
Fix broken macro invocation and broken building of C Python extensions
Revert "Use %% for actual % in spec"
This reverts commit 90512a5a1b6bb4e54449a0e3611482e6a55a8ab3.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1560103
diff --git a/python3.spec b/python3.spec
index e96ccf7..8c9dacd 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 19%{?dist}
+Release: 20%{?dist}
License: Python
@@ -884,9 +884,9 @@ InstallPython() {
#include <bits/wordsize.h>
#if __WORDSIZE == 32
-#include "%%{_pyconfig32_h}"
+#include "%{_pyconfig32_h}"
#elif __WORDSIZE == 64
-#include "%%{_pyconfig64_h}"
+#include "%{_pyconfig64_h}"
#else
#error "Unknown word size"
#endif
@@ -1520,6 +1520,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-20
+- Fix broken macro invocation and broken building of C Python extensions
+Resolves: rhbz#1560103
+
* Fri Mar 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-19
- Add -n option for pathfix.py
Resolves: rhbz#1546990
commit 58c6b177d4bfe558542c765d6b57d641646b4fe0
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Mar 1 15:21:59 2018 +0100
Add rpmlintrc file
Filter all the errors and warnings. This allows us to actually read the rpmlint
output to get new information. From now on, we can rely on this information
when pushing updates.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1548683
Backport of https://src.fedoraproject.org/rpms/python37/pull-request/10
diff --git a/python3.rpmlintrc b/python3.rpmlintrc
new file mode 100644
index 0000000..2c6e93d
--- /dev/null
+++ b/python3.rpmlintrc
@@ -0,0 +1,65 @@
+# KNOWN BUGS:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1489816
+addFilter(r'crypto-policy-non-compliance-openssl')
+
+
+# TESTS:
+addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
+
+
+# OTHER DELIBERATES:
+# chroot function
+addFilter(r'missing-call-to-chdir-with-chroot')
+
+# intentionally unversioned and selfobsoleted
+addFilter(r'unversioned-explicit-obsoletes python')
+addFilter(r'self-obsoletion python3\d obsoletes python3\d')
+
+# intentionally hardcoded
+addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})')
+
+# we have non binary stuff, python files
+addFilter(r'only-non-binary-in-usr-lib')
+
+# some devel files that are deliberately needed
+addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
+addFilter(r'devel-file-in-non-devel-package /usr/lib64/python3\.\d/distutils/tests/xxmodule\.c')
+
+
+# SORRY, NOT SORRY:
+# manual pages
+addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix\.py)')
+addFilter(r'no-manual-page-for-binary python3.*-config$')
+addFilter(r'no-manual-page-for-binary python3.\dd?m$')
+
+# missing documentation from subpackages
+addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')
+
+# platform python is obsoleted, but not provided
+addFilter(r'obsolete-not-provided platform-python')
+
+
+# RPMLINT IMPERFECTIONS:
+# ifarch applied patches are OK
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'%ifarch-applied-patch')
+
+# debugsource
+addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')
+
+# debuginfo
+addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')
+
+# this is OK for F28+
+addFilter(r'library-without-ldconfig-post')
+
+# debug package contains devel and non-devel files
+addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package')
+
+# this goes to other subpackage, hence not actually dangling, the read error is bogus
+addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
+addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
+
+
+# SPELLING ERRORS
+addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
commit 90512a5a1b6bb4e54449a0e3611482e6a55a8ab3
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Mar 1 15:19:51 2018 +0100
Use %% for actual % in spec
rpmlint reports this as macro in comment, however it was left here, because it
is not macro and not comment. On the other hand, % shall be escaped using %%.
All this needs to blow is somebody defining a macro called _pyconfig64_h.
diff --git a/python3.spec b/python3.spec
index 41594dd..e96ccf7 100644
--- a/python3.spec
+++ b/python3.spec
@@ -884,9 +884,9 @@ InstallPython() {
#include <bits/wordsize.h>
#if __WORDSIZE == 32
-#include "%{_pyconfig32_h}"
+#include "%%{_pyconfig32_h}"
#elif __WORDSIZE == 64
-#include "%{_pyconfig64_h}"
+#include "%%{_pyconfig64_h}"
#else
#error "Unknown word size"
#endif
commit 545e6802537971e9848fdcda7e15d3c5bfb08b9e
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Mar 14 22:05:06 2018 +0100
Add -n option for pathfix.py (#1546990)
diff --git a/00301-pathfix-add-n-option-for-no-backup.patch b/00301-pathfix-add-n-option-for-no-backup.patch
new file mode 100644
index 0000000..350fe97
--- /dev/null
+++ b/00301-pathfix-add-n-option-for-no-backup.patch
@@ -0,0 +1,104 @@
+From 5affd5c29eb1493cb31ef3cfdde15538ac134689 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
+Date: Tue, 13 Mar 2018 10:56:43 +0100
+Subject: [PATCH] bpo-32885: Tools/scripts/pathfix.py: Add -n option for no
+ backup~ (#5772)
+
+Creating backup files with ~ suffix can be undesirable in some environment,
+such as when building RPM packages. Instead of requiring the user to remove
+those files manually, option -n was added, that simply disables this feature.
+
+-n was selected because 2to3 has the same option with this behavior.
+---
+ Misc/ACKS | 1 +
+ .../2018-02-20-12-16-47.bpo-32885.dL5x7C.rst | 2 ++
+ Tools/scripts/pathfix.py | 28 +++++++++++++++-------
+ 3 files changed, 23 insertions(+), 8 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
+
+diff --git a/Misc/ACKS b/Misc/ACKS
+index d8179c8b03ab..d752d8a35434 100644
+--- a/Misc/ACKS
++++ b/Misc/ACKS
+@@ -687,6 +687,7 @@ Ken Howard
+ Brad Howes
+ Mike Hoy
+ Ben Hoyt
++Miro Hronok
+ Chiu-Hsiang Hsu
+ Chih-Hao Huang
+ Christian Hudon
+diff --git a/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
+new file mode 100644
+index 000000000000..e003e1d84fd0
+--- /dev/null
++++ b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
+@@ -0,0 +1,2 @@
++Add an ``-n`` flag for ``Tools/scripts/pathfix.py`` to disbale automatic
++backup creation (files with ``~`` suffix).
+diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py
+index 562bbc737812..c5bf984306a3 100755
+--- a/Tools/scripts/pathfix.py
++++ b/Tools/scripts/pathfix.py
+@@ -7,8 +7,9 @@
+ # Directories are searched recursively for files whose name looks
+ # like a python module.
+ # Symbolic links are always ignored (except as explicit directory
+-# arguments). Of course, the original file is kept as a back-up
+-# (with a "~" attached to its name).
++# arguments).
++# The original file is kept as a back-up (with a "~" attached to its name),
++# -n flag can be used to disable this.
+ #
+ # Undoubtedly you can do this using find and sed or perl, but this is
+ # a nice example of Python code that recurses down a directory tree
+@@ -31,14 +32,17 @@
+
+ new_interpreter = None
+ preserve_timestamps = False
++create_backup = True
++
+
+ def main():
+ global new_interpreter
+ global preserve_timestamps
+- usage = ('usage: %s -i /interpreter -p file-or-directory ...\n' %
++ global create_backup
++ usage = ('usage: %s -i /interpreter -p -n file-or-directory ...\n' %
+ sys.argv[0])
+ try:
+- opts, args = getopt.getopt(sys.argv[1:], 'i:p')
++ opts, args = getopt.getopt(sys.argv[1:], 'i:pn')
+ except getopt.error as msg:
+ err(str(msg) + '\n')
+ err(usage)
+@@ -48,6 +52,8 @@ def main():
+ new_interpreter = a.encode()
+ if o == '-p':
+ preserve_timestamps = True
++ if o == '-n':
++ create_backup = False
+ if not new_interpreter or not new_interpreter.startswith(b'/') or \
+ not args:
+ err('-i option or file-or-directory missing\n')
+@@ -134,10 +140,16 @@ def fix(filename):
+ except OSError as msg:
+ err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
+ # Then make a backup of the original file as filename~
+- try:
+- os.rename(filename, filename + '~')
+- except OSError as msg:
+- err('%s: warning: backup failed (%r)\n' % (filename, msg))
++ if create_backup:
++ try:
++ os.rename(filename, filename + '~')
++ except OSError as msg:
++ err('%s: warning: backup failed (%r)\n' % (filename, msg))
++ else:
++ try:
++ os.remove(filename)
++ except OSError as msg:
++ err('%s: warning: removing failed (%r)\n' % (filename, msg))
+ # Now move the temp file to the original file
+ try:
+ os.rename(tempname, filename)
diff --git a/python3.spec b/python3.spec
index a81494f..41594dd 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 18%{?dist}
+Release: 19%{?dist}
License: Python
@@ -393,6 +393,12 @@ Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
# Fixed upstream: https://bugs.python.org/issue32185
Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.patch
+# 00301 #
+# Tools/scripts/pathfix.py: Add -n option for no backup~
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1546990
+# Fixed upstream: https://bugs.python.org/issue32885
+Patch301: 00301-pathfix-add-n-option-for-no-backup.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -693,6 +699,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch292 -p1
%patch294 -p1
%patch298 -p1
+%patch301 -p1
# Remove files that should be generated by the build
@@ -1513,6 +1520,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Mar 16 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-19
+- Add -n option for pathfix.py
+Resolves: rhbz#1546990
+
* Thu Mar 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-18
- Fix the py_byte_compile macro to work on Python 2
- Remove the pybytecompile macro file from the flat package
commit e5f4159f8f90b5b2836af3af921a9d80c7df1b86
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jan 18 16:53:05 2018 +0100
Fix the py_byte_compile macro to work on Python 2
See https://bugzilla.redhat.com/show_bug.cgi?id=1484993
Inspired by Terje Rsten's workaround from that bugzilla
diff --git a/macros.pybytecompile3.6 b/macros.pybytecompile3.6
index 3968c6e..f319979 100644
--- a/macros.pybytecompile3.6
+++ b/macros.pybytecompile3.6
@@ -3,8 +3,23 @@
# Python's compile_all module only works on directories, and requires a max
# recursion depth
+# Note that the py_byte_compile macro should work for python2 as well
+# Which unfortunately makes the definition more complicated than it should be
+# The condition should be reversed once /usr/bin/python is python3!
+
%py_byte_compile()\
-python_binary="%1"\
-bytecode_compilation_path="%2"\
-find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
+py2_byte_compile () {\
+ python_binary="%1"\
+ bytecode_compilation_path="%2"\
+ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
+ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
+}\
+\
+py3_byte_compile () {\
+ python_binary="%1"\
+ bytecode_compilation_path="%2"\
+ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
+}\
+\
+[[ "%1" == *python3* ]] || py2_byte_compile "%1" "%2" && py3_byte_compile "%1" "%2" \
%{nil}
diff --git a/python3.spec b/python3.spec
index b649cd9..a81494f 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 17%{?dist}
+Release: 18%{?dist}
License: Python
@@ -1513,6 +1513,11 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Mar 15 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-18
+- Fix the py_byte_compile macro to work on Python 2
+- Remove the pybytecompile macro file from the flat package
+Resolves: rhbz#1484993
+
* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-17
- Do not send IP addresses in SNI TLS extension
commit c9bb114a1dc3fc2216af482d1cdbafe58db45afb
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Mar 13 16:58:18 2018 +0100
Do not send IP addresses in SNI TLS extension
diff --git a/00298-do-not-send-IP-in-SNI-TLS-extension.patch b/00298-do-not-send-IP-in-SNI-TLS-extension.patch
new file mode 100644
index 0000000..19b6b31
--- /dev/null
+++ b/00298-do-not-send-IP-in-SNI-TLS-extension.patch
@@ -0,0 +1,60 @@
+diff --git a/Modules/_ssl.c b/Modules/_ssl.c
+index df8c6a7d96d8..e8cffef14de0 100644
+--- a/Modules/_ssl.c
++++ b/Modules/_ssl.c
+@@ -55,6 +55,11 @@ static PySocketModule_APIObject PySocketModule;
+ #include <sys/poll.h>
+ #endif
+
++#ifndef MS_WINDOWS
++/* inet_pton */
++#include <arpa/inet.h>
++#endif
++
+ /* Don't warn about deprecated functions */
+ #ifdef __GNUC__
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+@@ -667,8 +672,41 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
+ SSL_set_mode(self->ssl, mode);
+
+ #if HAVE_SNI
+- if (server_hostname != NULL)
+- SSL_set_tlsext_host_name(self->ssl, server_hostname);
++ if (server_hostname != NULL) {
++/* Don't send SNI for IP addresses. We cannot simply use inet_aton() and
++ * inet_pton() here. inet_aton() may be linked weakly and inet_pton() isn't
++ * available on all platforms. Use OpenSSL's IP address parser. It's
++ * available since 1.0.2 and LibreSSL since at least 2.3.0. */
++ int send_sni = 1;
++#if OPENSSL_VERSION_NUMBER >= 0x10200000L
++ ASN1_OCTET_STRING *ip = a2i_IPADDRESS(server_hostname);
++ if (ip == NULL) {
++ send_sni = 1;
++ ERR_clear_error();
++ } else {
++ send_sni = 0;
++ ASN1_OCTET_STRING_free(ip);
++ }
++#elif defined(HAVE_INET_PTON)
++#ifdef ENABLE_IPV6
++ char packed[Py_MAX(sizeof(struct in_addr), sizeof(struct in6_addr))];
++#else
++ char packed[sizeof(struct in_addr)];
++#endif /* ENABLE_IPV6 */
++ if (inet_pton(AF_INET, server_hostname, packed)) {
++ send_sni = 0;
++#ifdef ENABLE_IPV6
++ } else if(inet_pton(AF_INET6, server_hostname, packed)) {
++ send_sni = 0;
++#endif /* ENABLE_IPV6 */
++ } else {
++ send_sni = 1;
++ }
++#endif /* HAVE_INET_PTON */
++ if (send_sni) {
++ SSL_set_tlsext_host_name(self->ssl, server_hostname);
++ }
++ }
+ #endif
+
+ /* If the socket is in non-blocking mode or timeout mode, set the BIO
diff --git a/python3.spec b/python3.spec
index 3a6cf71..b649cd9 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 16%{?dist}
+Release: 17%{?dist}
License: Python
@@ -387,6 +387,12 @@ Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
+# 00298 #
+# The SSL module no longer sends IP addresses in SNI TLS extension on
+# platforms with OpenSSL 1.0.2+ or inet_pton.
+# Fixed upstream: https://bugs.python.org/issue32185
+Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -686,6 +692,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch291 -p1
%patch292 -p1
%patch294 -p1
+%patch298 -p1
# Remove files that should be generated by the build
@@ -1506,6 +1513,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Mar 13 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-17
+- Do not send IP addresses in SNI TLS extension
+
* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 3.6.4-16
- Rebuild with new LDFLAGS from redhat-rpm-config
commit 6b9e1d1d7ab03dcd54b53bce53c59ffc368ee9c9
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Feb 26 17:28:35 2018 +0100
Replace patch 291 with the upstream fix.
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
index 4bf4801..6539003 100644
--- a/00291-setup-Link-ctypes-against-dl-explicitly.patch
+++ b/00291-setup-Link-ctypes-against-dl-explicitly.patch
@@ -1,25 +1,15 @@
-From aae2ef0bace0e38f4ee5aaa4642aa32450a84216 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
-Date: Tue, 23 Jan 2018 14:43:43 +0100
-Subject: [PATCH] setup: Link ctypes against dl explicitly
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
diff --git a/setup.py b/setup.py
-index c23628a2a9..9e40bb53e6 100644
+index f4f6e4fdb1f0..8536c350fe3a 100644
--- a/setup.py
+++ b/setup.py
-@@ -1935,7 +1935,7 @@ class PyBuildExt(build_ext):
- self.use_system_libffi = False
- include_dirs = []
+@@ -2005,6 +2005,10 @@ def detect_ctypes(self, inc_dirs, lib_dirs):
+ ext.libraries.append(ffi_lib)
+ self.use_system_libffi = True
+
++ if sysconfig.get_config_var('HAVE_LIBDL'):
++ # for dlopen, see bpo-32647
++ ext.libraries.append('dl')
++
+ def _decimal_ext(self):
extra_compile_args = []
-- extra_link_args = []
-+ extra_link_args = ['-ldl']
- sources = ['_ctypes/_ctypes.c',
- '_ctypes/callbacks.c',
- '_ctypes/callproc.c',
---
-2.16.1
-
+ undef_macros = []
diff --git a/python3.spec b/python3.spec
index 9b033c9..3a6cf71 100644
--- a/python3.spec
+++ b/python3.spec
@@ -370,6 +370,7 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# Build fails with undefined references to dlopen / dlsym otherwise.
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
+# Fixed upstream: https://bugs.python.org/issue32647
Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
# 00292 #
commit 347e968f54b2eb8693041334ca8abdb3416f97c6
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Sat Feb 24 18:28:44 2018 +0100
Rebuild with new LDFLAGS from redhat-rpm-config
diff --git a/python3.spec b/python3.spec
index 4b032be..9b033c9 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 15%{?dist}
+Release: 16%{?dist}
License: Python
@@ -1505,6 +1505,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Feb 24 2018 Florian Weimer <fweimer(a)redhat.com> - 3.6.4-16
+- Rebuild with new LDFLAGS from redhat-rpm-config
+
* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-15
- Filter out automatic /usr/bin/python3.X requirement,
recommend the main package from libs instead
commit 3f778c43e364bfcca194d665bab51bdb6a5c1f84
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Feb 21 14:35:54 2018 +0100
Filter out automatic /usr/bin/python3.X requirement...
...recommend the main package from libs instead.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1547131
diff --git a/python3.spec b/python3.spec
index f647c00..4b032be 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 14%{?dist}
+Release: 15%{?dist}
License: Python
@@ -436,6 +436,14 @@ Requires: python3-setuptools
Requires: python3-pip
%endif
+# This prevents ALL subpackages built from this spec to require
+# /usr/bin/python3*. Granularity per subpackage is impossible.
+# It's intended for the libs package not to drag in the interpreter, see
+# https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+# All others require %%{name} anyway.
+%global __requires_exclude ^/usr/bin/python3
+
+
# The description used both for the SRPM and the main `python3` subpackage:
%description
Python is an accessible, high-level, dynamically typed, interpreted programming
@@ -474,6 +482,12 @@ Requires: glibc%{?_isa} >= 2.24.90-26
Requires: gdbm%{?_isa} >= 1:1.13
%endif
+# There are files in the standard library that have python shebang.
+# We've filtered the automatic requirement out so libs are installable without
+# the main package. This however makes it pulled in by default.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+Recommends: %{name}%{?_isa} = %{version}-%{release}
+
# For backward compatibility only, remove in F29:
Provides: system-python-libs = %{version}-%{release}
Provides: system-python-libs%{?_isa} = %{version}-%{release}
@@ -1491,6 +1505,11 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-15
+- Filter out automatic /usr/bin/python3.X requirement,
+ recommend the main package from libs instead
+Resolves: rhbz#1547131
+
* Thu Feb 15 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.4-14
- Remove the python3-tools package (#rhbz 1312030)
- Move /usr/bin/2to3 to python3-devel
commit ffaa0f307889d9e7a3055b1f212182da79f59c5e
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Tue Feb 13 16:23:24 2018 +0100
Remove unused Postfix argument from InstallPython
It was used for Systemtap hooks, which were removed recently:
https://src.fedoraproject.org/rpms/python3/c/dd3cb47629970fe54d5dd87825c0...
diff --git a/python3.spec b/python3.spec
index 523364d..f647c00 100644
--- a/python3.spec
+++ b/python3.spec
@@ -819,7 +819,6 @@ InstallPython() {
PyInstSoName=$2
MoreCFlags=$3
LDVersion=$4
- Postfix=$5
# Switch to the directory with this configuration's built files
ConfDir=build/$ConfName
@@ -873,16 +872,14 @@ EOF
InstallPython debug \
%{py_INSTSONAME_debug} \
-O0 \
- %{LDVERSION_debug} \
- -debug
+ %{LDVERSION_debug}
%endif # with debug_build
# Now the optimized build:
InstallPython optimized \
%{py_INSTSONAME_optimized} \
"" \
- %{LDVERSION_optimized} \
- ""
+ %{LDVERSION_optimized}
# Install directories for additional packages
install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
commit 56c7fd9871f10addbf4456faf1ac8d7270996009
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Tue Feb 13 13:49:21 2018 +0100
Fix deprecation warning on using imp
In build log fixes the following warning:
/builddir/build/SOURCES/check-pyc-and-pyo-timestamps.py:3: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
index 76a3421..262a985 100644
--- a/check-pyc-and-pyo-timestamps.py
+++ b/check-pyc-and-pyo-timestamps.py
@@ -1,6 +1,6 @@
"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
-import imp
+import importlib.util
import os
import sys
@@ -37,16 +37,18 @@ not_compiled = [
]
failed = 0
+
def bytecode_expected(source):
for f in not_compiled:
if source.endswith(f):
return False
return True
+
compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
for f in compiled:
# check both pyo and pyc
- to_check = map(lambda b: imp.cache_from_source(f, b), (True, False))
+ to_check = map(lambda b: importlib.util.cache_from_source(f, b), (True, False))
f_mtime = os.path.getmtime(f)
for c in to_check:
c_mtime = os.path.getmtime(c)
commit daeec838fe3aa8668ffa4ac4cca8e23a8c9aa375
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Tue Feb 13 11:16:40 2018 +0100
Remove not used patches
Should have been removed with update to 3.6.3
https://src.fedoraproject.org/rpms/python3/c/47069ff4171cd7fafa42544033be...
diff --git a/00270-fix-ssl-alpn-hook-test.patch b/00270-fix-ssl-alpn-hook-test.patch
deleted file mode 100644
index 97b433e..0000000
--- a/00270-fix-ssl-alpn-hook-test.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
-index d203cdd..c128dae 100644
---- a/Lib/test/test_ssl.py
-+++ b/Lib/test/test_ssl.py
-@@ -3256,8 +3256,9 @@ if _have_threads:
- except ssl.SSLError as e:
- stats = e
-
-- if expected is None and IS_OPENSSL_1_1:
-- # OpenSSL 1.1.0 raises handshake error
-+ if (expected is None and IS_OPENSSL_1_1
-+ and ssl.OPENSSL_VERSION_INFO < (1, 1, 0, 6)):
-+ # OpenSSL 1.1.0 to 1.1.0e raises handshake error
- self.assertIsInstance(stats, ssl.SSLError)
- else:
- msg = "failed trying %s (s) and %s (c).\n" \
diff --git a/00271-asyncio-get-default-signal-handler.patch b/00271-asyncio-get-default-signal-handler.patch
deleted file mode 100644
index 8b1bf77..0000000
--- a/00271-asyncio-get-default-signal-handler.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py
-index 492a84a2313..9746678607c 100644
---- a/Lib/test/test_asyncio/test_events.py
-+++ b/Lib/test/test_asyncio/test_events.py
-@@ -1980,19 +1980,26 @@ def test_subprocess_terminate(self):
-
- @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP")
- def test_subprocess_send_signal(self):
-- prog = os.path.join(os.path.dirname(__file__), 'echo.py')
--
-- connect = self.loop.subprocess_exec(
-- functools.partial(MySubprocessProtocol, self.loop),
-- sys.executable, prog)
-- transp, proto = self.loop.run_until_complete(connect)
-- self.assertIsInstance(proto, MySubprocessProtocol)
-- self.loop.run_until_complete(proto.connected)
--
-- transp.send_signal(signal.SIGHUP)
-- self.loop.run_until_complete(proto.completed)
-- self.assertEqual(-signal.SIGHUP, proto.returncode)
-- transp.close()
-+ # bpo-31034: Make sure that we get the default signal handler (killing
-+ # the process). The parent process may have decided to ignore SIGHUP,
-+ # and signal handlers are inherited.
-+ old_handler = signal.signal(signal.SIGHUP, signal.SIG_DFL)
-+ try:
-+ prog = os.path.join(os.path.dirname(__file__), 'echo.py')
-+
-+ connect = self.loop.subprocess_exec(
-+ functools.partial(MySubprocessProtocol, self.loop),
-+ sys.executable, prog)
-+ transp, proto = self.loop.run_until_complete(connect)
-+ self.assertIsInstance(proto, MySubprocessProtocol)
-+ self.loop.run_until_complete(proto.connected)
-+
-+ transp.send_signal(signal.SIGHUP)
-+ self.loop.run_until_complete(proto.completed)
-+ self.assertEqual(-signal.SIGHUP, proto.returncode)
-+ transp.close()
-+ finally:
-+ signal.signal(signal.SIGHUP, old_handler)
-
- def test_subprocess_stderr(self):
- prog = os.path.join(os.path.dirname(__file__), 'echo2.py')
-diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py
-index 2e14a8a9735..e8822c36698 100644
---- a/Lib/test/test_asyncio/test_subprocess.py
-+++ b/Lib/test/test_asyncio/test_subprocess.py
-@@ -166,25 +166,32 @@ def test_terminate(self):
-
- @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP")
- def test_send_signal(self):
-- code = 'import time; print("sleeping", flush=True); time.sleep(3600)'
-- args = [sys.executable, '-c', code]
-- create = asyncio.create_subprocess_exec(*args,
-- stdout=subprocess.PIPE,
-- loop=self.loop)
-- proc = self.loop.run_until_complete(create)
--
-- @asyncio.coroutine
-- def send_signal(proc):
-- # basic synchronization to wait until the program is sleeping
-- line = yield from proc.stdout.readline()
-- self.assertEqual(line, b'sleeping\n')
-+ # bpo-31034: Make sure that we get the default signal handler (killing
-+ # the process). The parent process may have decided to ignore SIGHUP,
-+ # and signal handlers are inherited.
-+ old_handler = signal.signal(signal.SIGHUP, signal.SIG_DFL)
-+ try:
-+ code = 'import time; print("sleeping", flush=True); time.sleep(3600)'
-+ args = [sys.executable, '-c', code]
-+ create = asyncio.create_subprocess_exec(*args,
-+ stdout=subprocess.PIPE,
-+ loop=self.loop)
-+ proc = self.loop.run_until_complete(create)
-
-- proc.send_signal(signal.SIGHUP)
-- returncode = (yield from proc.wait())
-- return returncode
--
-- returncode = self.loop.run_until_complete(send_signal(proc))
-- self.assertEqual(-signal.SIGHUP, returncode)
-+ @asyncio.coroutine
-+ def send_signal(proc):
-+ # basic synchronization to wait until the program is sleeping
-+ line = yield from proc.stdout.readline()
-+ self.assertEqual(line, b'sleeping\n')
-+
-+ proc.send_signal(signal.SIGHUP)
-+ returncode = (yield from proc.wait())
-+ return returncode
-+
-+ returncode = self.loop.run_until_complete(send_signal(proc))
-+ self.assertEqual(-signal.SIGHUP, returncode)
-+ finally:
-+ signal.signal(signal.SIGHUP, old_handler)
-
- def prepare_broken_pipe_test(self):
- # buffer large enough to feed the whole pipe buffer
diff --git a/00272-fix-ftplib-to-reject-newlines.patch b/00272-fix-ftplib-to-reject-newlines.patch
deleted file mode 100644
index 66486a8..0000000
--- a/00272-fix-ftplib-to-reject-newlines.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 8c2d4cf092c5f0335e7982392a33927579c4d512 Mon Sep 17 00:00:00 2001
-From: Dong-hee Na <donghee.na92(a)gmail.com>
-Date: Wed, 26 Jul 2017 21:11:25 +0900
-Subject: [PATCH] [3.6] bpo-30119: fix ftplib.FTP.putline() to throw an error
- for a illegal command (#1214) (#2886)
-
----
- Lib/ftplib.py | 2 ++
- Lib/test/test_ftplib.py | 6 +++++-
- Misc/NEWS.d/next/Library/2017-07-26-15-15-00.bpo-30119.DZ6C_S.rst | 2 ++
- 3 files changed, 9 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Library/2017-07-26-15-15-00.bpo-30119.DZ6C_S.rst
-
-diff --git a/Lib/ftplib.py b/Lib/ftplib.py
-index 8f36f537e8a..a02e595cb02 100644
---- a/Lib/ftplib.py
-+++ b/Lib/ftplib.py
-@@ -186,6 +186,8 @@ def sanitize(self, s):
-
- # Internal: send one line to the server, appending CRLF
- def putline(self, line):
-+ if '\r' in line or '\n' in line:
-+ raise ValueError('an illegal newline character should not be contained')
- line = line + CRLF
- if self.debugging > 1:
- print('*put*', self.sanitize(line))
-diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
-index 12fabc5e8be..a561e9efa03 100644
---- a/Lib/test/test_ftplib.py
-+++ b/Lib/test/test_ftplib.py
-@@ -484,6 +484,9 @@ def test_sanitize(self):
- self.assertEqual(self.client.sanitize('PASS 12345'), repr('PASS *****'))
-
- def test_exceptions(self):
-+ self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r\n0')
-+ self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\n0')
-+ self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r0')
- self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400')
- self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499')
- self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500')
-@@ -492,7 +495,8 @@ def test_exceptions(self):
-
- def test_all_errors(self):
- exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm,
-- ftplib.error_proto, ftplib.Error, OSError, EOFError)
-+ ftplib.error_proto, ftplib.Error, OSError,
-+ EOFError)
- for x in exceptions:
- try:
- raise x('exception not included in all_errors set')
-diff --git a/Misc/NEWS.d/next/Library/2017-07-26-15-15-00.bpo-30119.DZ6C_S.rst b/Misc/NEWS.d/next/Library/2017-07-26-15-15-00.bpo-30119.DZ6C_S.rst
-new file mode 100644
-index 00000000000..a37d3703842
---- /dev/null
-+++ b/Misc/NEWS.d/next/Library/2017-07-26-15-15-00.bpo-30119.DZ6C_S.rst
-@@ -0,0 +1,2 @@
-+ftplib.FTP.putline() now throws ValueError on commands that contains CR or
-+LF. Patch by Dong-hee Na.
commit 3bbc2a0bdf53b44febb0bbe45d9e5ed284698e02
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Mon Feb 12 17:43:19 2018 +0100
Fix rpmlint errors: spelling, tabs (bz#1535596)
diff --git a/python3.spec b/python3.spec
index cc3b0ef..523364d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -127,7 +127,7 @@ License: Python
# has bytecode at:
# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
-# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
%global bytecode_suffixes .cpython-%{pyshortver}*.pyc
# Python's configure script defines SOVERSION, and this is used in the Makefile
@@ -439,7 +439,7 @@ Requires: python3-pip
# The description used both for the SRPM and the main `python3` subpackage:
%description
Python is an accessible, high-level, dynamically typed, interpreted programming
-language, designed with an emphasis on code readibility.
+language, designed with an emphasis on code readability.
It includes an extensive standard library, and has a vast ecosystem of
third-party libraries.
@@ -591,7 +591,7 @@ you should use the unittest module from %{name}-libs, or a library such as
Summary: Debug version of the Python runtime
# 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
+# 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}
@@ -616,7 +616,7 @@ separately.
The debug build shares installation directories with the standard Python
runtime, so that .py and .pyc files can be shared.
Compiled extension modules use a special ABI flag ("d") in the filename,
-so extensions for both verisons can co-exist in the same directory.
+so extensions for both versions can co-exist in the same directory.
%endif # with debug_build
commit d938460ea1a9a638205d427014593e10c5dfa6e0
Author: Iryna Shcherbina <shcherbina.iryna(a)gmail.com>
Date: Thu Jan 18 22:57:38 2018 +0100
Remove the python3-tools package (bz#1312030)
For more details see https://bugzilla.redhat.com/show_bug.cgi?id=1312030
Scope:
- Remove the python3-tools package and `Tools/` library
- Move /usr/bin/2to3 to python3-devel
- Move /usr/bin/idle and idlelib to python3-idle
- Provide python3-tools from python3-idle to keep upgrades sane
- Remove tests for tools from python3-tests package
Backported from https://src.fedoraproject.org/rpms/python37/pull-request/4
diff --git a/python3.spec b/python3.spec
index 78317c8..cc3b0ef 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 13%{?dist}
+Release: 14%{?dist}
License: Python
@@ -505,8 +505,21 @@ Requires: python3-rpm-generators
# TODO change to a specific subpackage once available (#1218294)
Requires: redhat-rpm-config
+Provides: %{name}-2to3 = %{version}-%{release}
+Provides: 2to3 = %{version}-%{release}
+
Conflicts: %{name} < %{version}-%{release}
+# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
+# /usr/bin/2to3 was moved from python2-tools to python3-tools
+# TODO Remove in Fedora 29
+Conflicts: python2-tools < 2.7.13-17
+Conflicts: python-tools < 2.7.13-17
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+# /usr/bin/2to3 was moved from python3-tools to python3-devel
+# TODO Remove in Fedora 30
+Conflicts: python3-tools < 3.6.4-14
+
# Shall be removed in Fedora 31
Obsoletes: platform-python-devel < %{platpyver}
@@ -515,32 +528,35 @@ This package contains the header files and configuration needed to compile
Python extension modules (typically written in C or C++), to embed Python
into other programs, and to make binary distributions for Python libraries.
-It also contains the necessary macros to build RPM packages with Python modules.
+It also contains the necessary macros to build RPM packages with Python modules
+and 2to3 tool, an automatic source converter from Python 2.X.
-%package tools
-Summary: A collection of tools included with Python including 2to3 and idle
+%package idle
+Summary: A basic graphical development environment for Python
Requires: %{name} = %{version}-%{release}
Requires: %{name}-tkinter = %{version}-%{release}
-Provides: %{name}-2to3 = %{version}-%{release}
-Provides: %{name}-idle = %{version}-%{release}
-Provides: 2to3 = %{version}-%{release}
Provides: idle3 = %{version}-%{release}
-# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
-# /usr/bin/2to3 was moved from here
-# TODO Remove in Fedora 29
-Conflicts: python2-tools < 2.7.13-17
-Conflicts: python-tools < 2.7.13-17
+Provides: %{name}-tools = %{version}-%{release}
+Provides: %{name}-tools%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-tools < %{version}-%{release}
# Shall be removed in Fedora 31
Obsoletes: platform-python-tools < %{platpyver}
-%description tools
-This package contains several tools included with Python, including:
-- 2to3, an automatic source converter from Python 2.X
-- idle, a basic graphical development environment
+%description idle
+IDLE is Pythons Integrated Development and Learning Environment.
+
+IDLE has the following features: Python shell window (interactive
+interpreter) with colorizing of code input, output, and error messages;
+multi-window text editor with multiple undo, Python colorizing,
+smart indent, call tips, auto completion, and other features;
+search within any window, replace within editor windows, and
+search through multiple files (grep); debugger with persistent
+breakpoints, stepping, and viewing of global and local namespaces;
+configuration, browsers, and other dialogs.
%package tkinter
@@ -558,7 +574,6 @@ the Python programming language.
%package test
Summary: The self-test suite for the main python3 package
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tools = %{version}-%{release}
# Shall be removed in Fedora 31
Obsoletes: platform-python-test < %{platpyver}
@@ -583,7 +598,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-test%{?_isa} = %{version}-%{release}
Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
-Requires: %{name}-tools%{?_isa} = %{version}-%{release}
+Requires: %{name}-idle%{?_isa} = %{version}-%{release}
%description debug
python3-debug provides a version of the Python runtime with numerous debugging
@@ -891,21 +906,6 @@ mkdir -p %{buildroot}%{_datadir}/appdata
cp -a %{SOURCE11} %{buildroot}%{_datadir}/appdata
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/idle3.appdata.xml
-# Development tools
-install -m755 -d %{buildroot}%{pylibdir}/Tools
-install Tools/README %{buildroot}%{pylibdir}/Tools/
-cp -ar Tools/freeze %{buildroot}%{pylibdir}/Tools/
-cp -ar Tools/i18n %{buildroot}%{pylibdir}/Tools/
-cp -ar Tools/pynche %{buildroot}%{pylibdir}/Tools/
-cp -ar Tools/scripts %{buildroot}%{pylibdir}/Tools/
-
-# Documentation tools
-install -m755 -d %{buildroot}%{pylibdir}/Doc
-cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
-
-# Demo scripts
-cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
-
# Make sure distutils looks at the right pyconfig.h file
# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
@@ -918,22 +918,21 @@ sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
%{buildroot}%{pylibdir}/distutils/sysconfig.py \
%{buildroot}%{pylibdir}/sysconfig.py
+# Install pathfix.py to bindir
+# See https://github.com/fedora-python/python-rpm-porting/issues/24
+cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+
# Switch all shebangs to refer to the specific Python version.
# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
# so handle files named using other naming scheme separately.
LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
Tools/scripts/pathfix.py \
-i "%{_bindir}/python%{pybasever}" \
- %{buildroot} %{buildroot}%{pylibdir}/Tools/scripts/*-*.py \
- %{buildroot}%{pylibdir}/Tools/pynche/{pynche,pynche.pyw}
-# not covered, also redundant and useless:
-rm %{buildroot}%{pylibdir}/Tools/scripts/{2to3,idle3,pydoc3,pyvenv}
-
-
-# Move pathfix.py to bindir
-# See https://github.com/fedora-python/python-rpm-porting/issues/24
-mv %{buildroot}%{pylibdir}/Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+ %{buildroot}
+# Remove tests for python3-tools which was removed in
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+rm -rf %{buildroot}%{pylibdir}/test/test_tools
# Remove shebang lines from .py files that aren't executable, and
# remove executability from .py files that don't have a shebang line:
@@ -943,10 +942,6 @@ find %{buildroot} -name \*.py \
-perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
-exec chmod a-x {} \; \) \)
-# Remove executable flag from files that shouldn't have it:
-chmod a-x \
- %{buildroot}%{pylibdir}/Tools/README
-
# Get rid of DOS batch files:
find %{buildroot} -name \*.bat -exec rm {} \;
@@ -1134,8 +1129,6 @@ CheckPython optimized
%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
%endif
-%{pylibdir}/idlelib
-
%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/
%dir %{pylibdir}/test/support/
@@ -1311,6 +1304,9 @@ CheckPython optimized
%files devel
%defattr(-,root,root)
+%{_bindir}/2to3
+# TODO: Remove 2to3-3.7 once rebased to 3.7
+%{_bindir}/2to3-%{pybasever}
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%{pylibdir}/distutils/command/wininst-*.exe
@@ -1329,14 +1325,10 @@ CheckPython optimized
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
%{_rpmconfigdir}/macros.d/macros.systempython
-%files tools
+%files idle
%defattr(-,root,root,755)
-%{_bindir}/2to3
-# TODO: Remove 2to3-3.7 once rebased to 3.7
-%{_bindir}/2to3-%{pybasever}
%{_bindir}/idle*
-%{pylibdir}/Tools
-%doc %{pylibdir}/Doc
+%{pylibdir}/idlelib
%{_datadir}/appdata/idle3.appdata.xml
%{_datadir}/applications/idle3.desktop
%{_datadir}/icons/hicolor/*/apps/idle3.*
@@ -1502,6 +1494,12 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Feb 15 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.6.4-14
+- Remove the python3-tools package (#rhbz 1312030)
+- Move /usr/bin/2to3 to python3-devel
+- Move /usr/bin/idle and idlelib to python3-idle
+- Provide python3-tools from python3-idle
+
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-13
- Escape macros in %%changelog
commit 2bcebb2b16c28cd4324c31187ba8aa8a1965f29f
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Feb 15 14:34:07 2018 +0100
Fix the name macro in the description 2
diff --git a/python3.spec b/python3.spec
index 6cbcfca..78317c8 100644
--- a/python3.spec
+++ b/python3.spec
@@ -568,7 +568,7 @@ The self-test suite for the Python interpreter.
This is only useful to test Python itself. For testing general Python code,
you should use the unittest module from %{name}-libs, or a library such as
-${name}-pytest or ${name}-nose.
+%{name}-pytest or %{name}-nose.
%if %{with debug_build}
commit 40b8f9ece20b5f9cbaf3d2fd78a39a3158dfa0c5
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Feb 9 09:05:39 2018 +0100
Escape macros in %changelog
Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index 0dc0dda..6cbcfca 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 12%{?dist}
+Release: 13%{?dist}
License: Python
@@ -1502,6 +1502,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-13
+- Escape macros in %%changelog
+
* Fri Feb 02 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.4-12
- Remove sys.executable check from change-user-install-location patch
Resolves: rhbz#1532287
@@ -1775,7 +1778,7 @@ porting ssl and hashlib modules to OpenSSL 1.1.0
- Obsolete and Provide python35 package
* Mon Sep 12 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-3
-- Update %py_byte_compile macro
+- Update %%py_byte_compile macro
- Remove unused configure flags (rhbz#1374357)
* Fri Sep 09 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-2
commit af1dc2628db378d5086f7396efd13f86a04b0bd7
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Feb 8 14:54:08 2018 +0100
Fix the name macro in the description
diff --git a/python3.spec b/python3.spec
index 748e26d..0dc0dda 100644
--- a/python3.spec
+++ b/python3.spec
@@ -443,7 +443,7 @@ language, designed with an emphasis on code readibility.
It includes an extensive standard library, and has a vast ecosystem of
third-party libraries.
-The ${name} package provides the "python3" executable: the reference
+The %{name} package provides the "python3" executable: the reference
interpreter for the Python language, version 3.
The majority of its standard library is provided in the %{name}-libs package,
which should be installed automatically along with %{name}.
commit 08ffd081b5cd033575aaea43a56990ea76ab6248
Author: Michal Cyprian <m.cyprian(a)gmail.com>
Date: Fri Feb 2 12:27:49 2018 +0100
Remove sys.executable check from change-user-install-location patch
Resolves: rhbz#1532287
diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch
index 1dcd9f2..4104449 100644
--- a/00251-change-user-install-location.patch
+++ b/00251-change-user-install-location.patch
@@ -1,19 +1,20 @@
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
-index 9d31d13..ed44a93 100644
+index 0258d3d..4ebf50a 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
-@@ -424,8 +424,18 @@ class install(Command):
+@@ -418,8 +418,19 @@ class install(Command):
raise DistutilsOptionError(
"must not supply exec-prefix without prefix")
- self.prefix = os.path.normpath(sys.prefix)
- self.exec_prefix = os.path.normpath(sys.exec_prefix)
+ # self.prefix is set to sys.prefix + /local/
-+ # if the executable is /usr/bin/python* and RPM build
-+ # is not detected to make pip and distutils install into
-+ # the separate location.
-+ if (sys.executable.startswith("/usr/bin/python")
-+ and 'RPM_BUILD_ROOT' not in os.environ):
++ # if neither RPM build nor virtual environment is
++ # detected to make pip and distutils install packages
++ # into the separate location.
++ if (not (hasattr(sys, 'real_prefix') or
++ sys.prefix != sys.base_prefix) and
++ 'RPM_BUILD_ROOT' not in os.environ):
+ addition = "/local"
+ else:
+ addition = ""
@@ -24,22 +25,21 @@ index 9d31d13..ed44a93 100644
else:
if self.exec_prefix is None:
diff --git a/Lib/site.py b/Lib/site.py
-index 4744eb0..b5fe571 100644
+index 0fc9200..c95202e 100644
--- a/Lib/site.py
+++ b/Lib/site.py
-@@ -326,7 +326,15 @@ def getsitepackages(prefixes=None):
+@@ -322,7 +322,14 @@ def getsitepackages(prefixes=None):
return sitepackages
def addsitepackages(known_paths, prefixes=None):
- """Add site-packages to sys.path"""
-+ """Add site-packages to sys.path.
++ """Add site-packages to sys.path
+
-+ '/usr/local' is included in PREFIXES if the executable is /usr/bin/python*
-+ and RPM build is not detected to make sudo pip installed packages visible.
++ '/usr/local' is included in PREFIXES if RPM build is not detected
++ to make packages installed into this location visible.
+
+ """
-+ if (ENABLE_USER_SITE and sys.executable.startswith("/usr/bin/python")
-+ and 'RPM_BUILD_ROOT' not in os.environ):
++ if ENABLE_USER_SITE and 'RPM_BUILD_ROOT' not in os.environ:
+ PREFIXES.insert(0, "/usr/local")
for sitedir in getsitepackages(prefixes):
if os.path.isdir(sitedir):
diff --git a/python3.spec b/python3.spec
index 8765231..748e26d 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 11%{?dist}
+Release: 12%{?dist}
License: Python
@@ -1502,6 +1502,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Feb 02 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.6.4-12
+- Remove sys.executable check from change-user-install-location patch
+Resolves: rhbz#1532287
+
* Thu Feb 01 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-11
- Define TLS cipher suite on build time.
commit 14deb52d02decabd7dda8bcfa01e628031f03414
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Feb 5 17:50:53 2018 +0100
Remove obsolete scriptlets that are now automatic.
diff --git a/python3.spec b/python3.spec
index e9465a6..8765231 100644
--- a/python3.spec
+++ b/python3.spec
@@ -1077,26 +1077,6 @@ CheckPython optimized
%endif # with tests
-# ======================================================
-# Scriptlets
-# ======================================================
-
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
-
-%post
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-
-%postun
-if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
-fi
-
-%posttrans
-/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
-
%files
%defattr(-, root, root)
%license LICENSE
commit 969d51434e2479639d62c2b03fd51df7403eb722
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Feb 1 11:20:15 2018 +0100
Define TLS cipher suite on build time
diff --git a/00294-define-TLS-cipher-suite-on-build-time.patch b/00294-define-TLS-cipher-suite-on-build-time.patch
new file mode 100644
index 0000000..1aa348c
--- /dev/null
+++ b/00294-define-TLS-cipher-suite-on-build-time.patch
@@ -0,0 +1,228 @@
+diff --git a/Lib/ssl.py b/Lib/ssl.py
+index 1f3a31a..b54a684 100644
+--- a/Lib/ssl.py
++++ b/Lib/ssl.py
+@@ -116,6 +116,7 @@ except ImportError:
+
+
+ from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN, HAS_TLSv1_3
++from _ssl import _DEFAULT_CIPHERS
+ from _ssl import _OPENSSL_API_VERSION
+
+
+@@ -174,48 +175,7 @@ else:
+ CHANNEL_BINDING_TYPES = []
+
+
+-# Disable weak or insecure ciphers by default
+-# (OpenSSL's default setting is 'DEFAULT:!aNULL:!eNULL')
+-# Enable a better set of ciphers by default
+-# This list has been explicitly chosen to:
+-# * TLS 1.3 ChaCha20 and AES-GCM cipher suites
+-# * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
+-# * Prefer ECDHE over DHE for better performance
+-# * Prefer AEAD over CBC for better performance and security
+-# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI
+-# (ChaCha20 needs OpenSSL 1.1.0 or patched 1.0.2)
+-# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better
+-# performance and security
+-# * Then Use HIGH cipher suites as a fallback
+-# * Disable NULL authentication, NULL encryption, 3DES and MD5 MACs
+-# for security reasons
+-_DEFAULT_CIPHERS = (
+- 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:'
+- 'TLS13-AES-128-GCM-SHA256:'
+- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
+- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
+- '!aNULL:!eNULL:!MD5:!3DES'
+- )
+-
+-# Restricted and more secure ciphers for the server side
+-# This list has been explicitly chosen to:
+-# * TLS 1.3 ChaCha20 and AES-GCM cipher suites
+-# * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
+-# * Prefer ECDHE over DHE for better performance
+-# * Prefer AEAD over CBC for better performance and security
+-# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI
+-# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better
+-# performance and security
+-# * Then Use HIGH cipher suites as a fallback
+-# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, RC4, and
+-# 3DES for security reasons
+-_RESTRICTED_SERVER_CIPHERS = (
+- 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:'
+- 'TLS13-AES-128-GCM-SHA256:'
+- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
+- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
+- '!aNULL:!eNULL:!MD5:!DSS:!RC4:!3DES'
+-)
++_RESTRICTED_SERVER_CIPHERS = _DEFAULT_CIPHERS
+
+
+ class CertificateError(ValueError):
+@@ -389,8 +349,6 @@ class SSLContext(_SSLContext):
+
+ def __new__(cls, protocol=PROTOCOL_TLS, *args, **kwargs):
+ self = _SSLContext.__new__(cls, protocol)
+- if protocol != _SSLv2_IF_EXISTS:
+- self.set_ciphers(_DEFAULT_CIPHERS)
+ return self
+
+ def __init__(self, protocol=PROTOCOL_TLS):
+@@ -505,8 +463,6 @@ def create_default_context(purpose=Purpose.SERVER_AUTH, *, cafile=None,
+ # verify certs and host name in client mode
+ context.verify_mode = CERT_REQUIRED
+ context.check_hostname = True
+- elif purpose == Purpose.CLIENT_AUTH:
+- context.set_ciphers(_RESTRICTED_SERVER_CIPHERS)
+
+ if cafile or capath or cadata:
+ context.load_verify_locations(cafile, capath, cadata)
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+index 54644e1..799100c 100644
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -18,6 +18,7 @@ import asyncore
+ import weakref
+ import platform
+ import functools
++import sysconfig
+ try:
+ import ctypes
+ except ImportError:
+@@ -36,7 +37,7 @@ PROTOCOLS = sorted(ssl._PROTOCOL_NAMES)
+ HOST = support.HOST
+ IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
+ IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
+-
++PY_SSL_DEFAULT_CIPHERS = sysconfig.get_config_var('PY_SSL_DEFAULT_CIPHERS')
+
+ def data_file(*name):
+ return os.path.join(os.path.dirname(__file__), *name)
+@@ -889,6 +890,19 @@ class ContextTests(unittest.TestCase):
+ with self.assertRaisesRegex(ssl.SSLError, "No cipher can be selected"):
+ ctx.set_ciphers("^$:,;?*'dorothyx")
+
++ @unittest.skipUnless(PY_SSL_DEFAULT_CIPHERS == 1,
++ "Test applies only to Python default ciphers")
++ def test_python_ciphers(self):
++ ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
++ ciphers = ctx.get_ciphers()
++ for suite in ciphers:
++ name = suite['name']
++ self.assertNotIn("PSK", name)
++ self.assertNotIn("SRP", name)
++ self.assertNotIn("MD5", name)
++ self.assertNotIn("RC4", name)
++ self.assertNotIn("3DES", name)
++
+ @unittest.skipIf(ssl.OPENSSL_VERSION_INFO < (1, 0, 2, 0, 0), 'OpenSSL too old')
+ def test_get_ciphers(self):
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+diff --git a/Modules/_ssl.c b/Modules/_ssl.c
+index df8c6a7..e23a569 100644
+--- a/Modules/_ssl.c
++++ b/Modules/_ssl.c
+@@ -206,6 +206,31 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
+
+ #endif /* OpenSSL < 1.1.0 or LibreSSL */
+
++/* Default cipher suites */
++#ifndef PY_SSL_DEFAULT_CIPHERS
++#define PY_SSL_DEFAULT_CIPHERS 1
++#endif
++
++#if PY_SSL_DEFAULT_CIPHERS == 0
++ #ifndef PY_SSL_DEFAULT_CIPHER_STRING
++ #error "Py_SSL_DEFAULT_CIPHERS 0 needs Py_SSL_DEFAULT_CIPHER_STRING"
++ #endif
++#elif PY_SSL_DEFAULT_CIPHERS == 1
++/* Python custom selection of sensible ciper suites
++ * DEFAULT: OpenSSL's default cipher list. Since 1.0.2 the list is in sensible order.
++ * !aNULL:!eNULL: really no NULL ciphers
++ * !MD5:!3DES:!DES:!RC4:!IDEA:!SEED: no weak or broken algorithms on old OpenSSL versions.
++ * !aDSS: no authentication with discrete logarithm DSA algorithm
++ * !SRP:!PSK: no secure remote password or pre-shared key authentication
++ */
++ #define PY_SSL_DEFAULT_CIPHER_STRING "DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK"
++#elif PY_SSL_DEFAULT_CIPHERS == 2
++/* Ignored in SSLContext constructor, only used to as _ssl.DEFAULT_CIPHER_STRING */
++ #define PY_SSL_DEFAULT_CIPHER_STRING SSL_DEFAULT_CIPHER_LIST
++#else
++ #error "Unsupported PY_SSL_DEFAULT_CIPHERS"
++#endif
++
+
+ enum py_ssl_error {
+ /* these mirror ssl.h */
+@@ -2739,7 +2764,12 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
+ /* A bare minimum cipher list without completely broken cipher suites.
+ * It's far from perfect but gives users a better head start. */
+ if (proto_version != PY_SSL_VERSION_SSL2) {
+- result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL:!MD5");
++#if PY_SSL_DEFAULT_CIPHERS == 2
++ /* stick to OpenSSL's default settings */
++ result = 1;
++#else
++ result = SSL_CTX_set_cipher_list(ctx, PY_SSL_DEFAULT_CIPHER_STRING);
++#endif
+ } else {
+ /* SSLv2 needs MD5 */
+ result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL");
+@@ -5279,6 +5309,9 @@ PyInit__ssl(void)
+ (PyObject *)&PySSLSession_Type) != 0)
+ return NULL;
+
++ PyModule_AddStringConstant(m, "_DEFAULT_CIPHERS",
++ PY_SSL_DEFAULT_CIPHER_STRING);
++
+ PyModule_AddIntConstant(m, "SSL_ERROR_ZERO_RETURN",
+ PY_SSL_ERROR_ZERO_RETURN);
+ PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ",
+diff --git a/configure.ac b/configure.ac
+index 7ea62f8..4b42393 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -5555,6 +5555,42 @@ if test "$have_getrandom" = yes; then
+ [Define to 1 if the getrandom() function is available])
+ fi
+
++# ssl module default cipher suite string
++AH_TEMPLATE(PY_SSL_DEFAULT_CIPHERS,
++ [Default cipher suites list for ssl module.
++ 1: Python's preferred selection, 2: leave OpenSSL defaults untouched, 0: custom string])
++AH_TEMPLATE(PY_SSL_DEFAULT_CIPHER_STRING,
++ [Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0]
++)
++AC_MSG_CHECKING(for --with-ssl-default-suites)
++AC_ARG_WITH(ssl-default-suites,
++ AS_HELP_STRING([--with-ssl-default-suites=@<:@python|openssl|STRING@:>@],
++ [Override default cipher suites string,
++ python: use Python's preferred selection (default),
++ openssl: leave OpenSSL's defaults untouched,
++ STRING: use a custom string,
++ PROTOCOL_SSLv2 ignores the setting]),
++[
++AC_MSG_RESULT($withval)
++case "$withval" in
++ python)
++ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 1)
++ ;;
++ openssl)
++ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 2)
++ ;;
++ *)
++ AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 0)
++ AC_DEFINE_UNQUOTED(PY_SSL_DEFAULT_CIPHER_STRING, "$withval")
++ ;;
++esac
++],
++[
++AC_MSG_RESULT(python)
++AC_DEFINE(PY_SSL_DEFAULT_CIPHERS, 1)
++])
++
++
+ # generate output files
+ AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh)
+ AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
diff --git a/python3.spec b/python3.spec
index f8a1509..e9465a6 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 10%{?dist}
+Release: 11%{?dist}
License: Python
@@ -378,6 +378,14 @@ Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
# Reported upstream: https://bugs.python.org/issue30697
Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
+# 00294 #
+# Define TLS cipher suite on build time depending
+# on the OpenSSL default cipher suite selection.
+# Fixed upstream on CPython's 3.7 branch:
+# https://bugs.python.org/issue31429
+# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
+Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -647,6 +655,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch290 -p1
%patch291 -p1
%patch292 -p1
+%patch294 -p1
# Remove files that should be generated by the build
@@ -718,6 +727,7 @@ BuildPython() {
--enable-loadable-sqlite-extensions \
--with-dtrace \
--with-lto \
+ --with-ssl-default-suites=openssl \
%if %{with valgrind}
--with-valgrind \
%endif
@@ -1512,6 +1522,9 @@ fi
# ======================================================
%changelog
+* Thu Feb 01 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-11
+- Define TLS cipher suite on build time.
+
* Wed Jan 31 2018 Tomas Orsava <torsava(a)redhat.com> - 3.6.4-10
- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation
of the F28 mass rebuild
commit be049209131847f4fcb28b67ea7c04134d9c4f9e
Author: Tomas Orsava <torsava(a)redhat.com>
Date: Wed Jan 31 15:16:02 2018 +0100
Disable test_gdb for all arches and test_buffer for ppc64le in anticipation of the F28 mass rebuild
- Re-enable these tests after the mass rebuild when they can be properly
addressed
diff --git a/python3.spec b/python3.spec
index 5ba3068..f8a1509 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 9%{?dist}
+Release: 10%{?dist}
License: Python
@@ -1041,14 +1041,15 @@ CheckPython() {
-wW --slowest --findleaks \
-x test_distutils \
-x test_bdist_rpm \
+ -x test_gdb \
%ifarch ppc64le aarch64
-x test_faulthandler \
%endif
%ifarch %{mips64}
-x test_ctypes \
%endif
- %ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
- -x test_gdb
+ %ifarch ppc64le
+ -x test_buffer \
%endif
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1511,6 +1512,12 @@ fi
# ======================================================
%changelog
+* Wed Jan 31 2018 Tomas Orsava <torsava(a)redhat.com> - 3.6.4-10
+- Disable test_gdb for all arches and test_buffer for ppc64le in anticipation
+ of the F28 mass rebuild
+- Re-enable these tests after the mass rebuild when they can be properly
+ addressed
+
* Tue Jan 23 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-9
- Restore the PyExc_RecursionErrorInst public symbol
commit d623e929ca5b17f310a4c437c1a497c7af1b2316
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 23 17:19:17 2018 +0100
Restore the PyExc_RecursionErrorInst public symbol
diff --git a/00292-restore-PyExc_RecursionErrorInst-symbol.patch b/00292-restore-PyExc_RecursionErrorInst-symbol.patch
new file mode 100644
index 0000000..89671f8
--- /dev/null
+++ b/00292-restore-PyExc_RecursionErrorInst-symbol.patch
@@ -0,0 +1,106 @@
+diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
+index 847b50140a6..570dc3ed6fe 100644
+--- a/Doc/whatsnew/3.6.rst
++++ b/Doc/whatsnew/3.6.rst
+@@ -1852,10 +1852,10 @@ Build and C API Changes
+ * The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder`
+ functions will now accept :term:`path-like objects <path-like object>`.
+
+-* The ``PyExc_RecursionErrorInst`` singleton that was part of the public API
+- has been removed as its members being never cleared may cause a segfault
+- during finalization of the interpreter. Contributed by Xavier de Gaye in
+- :issue:`22898` and :issue:`30697`.
++* The ``PyExc_RecursionErrorInst`` singleton is not used anymore as its members
++ being never cleared may cause a segfault during finalization of the
++ interpreter. Contributed by Xavier de Gaye in :issue:`22898` and
++ :issue:`30697`.
+
+
+ Other Improvements
+diff --git a/Include/pyerrors.h b/Include/pyerrors.h
+index c28c1373f82..8c1dbc5047b 100644
+--- a/Include/pyerrors.h
++++ b/Include/pyerrors.h
+@@ -219,6 +219,8 @@ PyAPI_DATA(PyObject *) PyExc_IOError;
+ PyAPI_DATA(PyObject *) PyExc_WindowsError;
+ #endif
+
++PyAPI_DATA(PyObject *) PyExc_RecursionErrorInst;
++
+ /* Predefined warning categories */
+ PyAPI_DATA(PyObject *) PyExc_Warning;
+ PyAPI_DATA(PyObject *) PyExc_UserWarning;
+diff --git a/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst
+new file mode 100644
+index 00000000000..28f74ad4f30
+--- /dev/null
++++ b/Misc/NEWS.d/next/C API/2017-12-20-15-23-06.bpo-30697.v9FmgG.rst
+@@ -0,0 +1 @@
++Restore PyExc_RecursionErrorInst in 3.6
+diff --git a/Objects/exceptions.c b/Objects/exceptions.c
+index df4899372a5..271e293e325 100644
+--- a/Objects/exceptions.c
++++ b/Objects/exceptions.c
+@@ -2430,6 +2430,12 @@ SimpleExtendsException(PyExc_Warning, ResourceWarning,
+
+
+
++/* Pre-computed RecursionError instance for when recursion depth is reached.
++ Meant to be used when normalizing the exception for exceeding the recursion
++ depth will cause its own infinite recursion.
++*/
++PyObject *PyExc_RecursionErrorInst = NULL;
++
+ #define PRE_INIT(TYPE) \
+ if (!(_PyExc_ ## TYPE.tp_flags & Py_TPFLAGS_READY)) { \
+ if (PyType_Ready(&_PyExc_ ## TYPE) < 0) \
+@@ -2691,11 +2697,37 @@ _PyExc_Init(PyObject *bltinmod)
+ ADD_ERRNO(TimeoutError, ETIMEDOUT);
+
+ preallocate_memerrors();
++
++ if (!PyExc_RecursionErrorInst) {
++ PyExc_RecursionErrorInst = BaseException_new(&_PyExc_RecursionError, NULL, NULL);
++ if (!PyExc_RecursionErrorInst)
++ Py_FatalError("Cannot pre-allocate RecursionError instance for "
++ "recursion errors");
++ else {
++ PyBaseExceptionObject *err_inst =
++ (PyBaseExceptionObject *)PyExc_RecursionErrorInst;
++ PyObject *args_tuple;
++ PyObject *exc_message;
++ exc_message = PyUnicode_FromString("maximum recursion depth exceeded");
++ if (!exc_message)
++ Py_FatalError("cannot allocate argument for RecursionError "
++ "pre-allocation");
++ args_tuple = PyTuple_Pack(1, exc_message);
++ if (!args_tuple)
++ Py_FatalError("cannot allocate tuple for RecursionError "
++ "pre-allocation");
++ Py_DECREF(exc_message);
++ if (BaseException_init(err_inst, args_tuple, NULL))
++ Py_FatalError("init of pre-allocated RecursionError failed");
++ Py_DECREF(args_tuple);
++ }
++ }
+ }
+
+ void
+ _PyExc_Fini(void)
+ {
++ Py_CLEAR(PyExc_RecursionErrorInst);
+ free_preallocated_memerrors();
+ Py_CLEAR(errnomap);
+ }
+diff --git a/PC/python3.def b/PC/python3.def
+index 4fc4a6814ee..ff70718fc37 100644
+--- a/PC/python3.def
++++ b/PC/python3.def
+@@ -224,6 +224,7 @@ EXPORTS
+ PyExc_PermissionError=python36.PyExc_PermissionError DATA
+ PyExc_ProcessLookupError=python36.PyExc_ProcessLookupError DATA
+ PyExc_RecursionError=python36.PyExc_RecursionError DATA
++ PyExc_RecursionErrorInst=python36.PyExc_RecursionErrorInst DATA
+ PyExc_ReferenceError=python36.PyExc_ReferenceError DATA
+ PyExc_ResourceWarning=python36.PyExc_ResourceWarning DATA
+ PyExc_RuntimeError=python36.PyExc_RuntimeError DATA
diff --git a/python3.spec b/python3.spec
index 73cb6e2..5ba3068 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 8%{?dist}
+Release: 9%{?dist}
License: Python
@@ -372,6 +372,12 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+# 00292 #
+# Restore the public PyExc_RecursionErrorInst symbol that was removed
+# from the 3.6.4 release upstream.
+# Reported upstream: https://bugs.python.org/issue30697
+Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -640,6 +646,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch289 -p1
%patch290 -p1
%patch291 -p1
+%patch292 -p1
# Remove files that should be generated by the build
@@ -1504,6 +1511,9 @@ fi
# ======================================================
%changelog
+* Tue Jan 23 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-9
+- Restore the PyExc_RecursionErrorInst public symbol
+
* Tue Jan 23 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-8
- Add patch to explicitly link _ctypes module with -ldl (#1537489)
- Refactored patch for libxcrypt
commit 434d46925934a7254c9de8bb4d2008546902d49a
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 23 17:18:20 2018 +0100
Synced patch for libxcrypt with upstream
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
index 38aa7de..c5d768b 100644
--- a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+++ b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
@@ -1,45 +1,28 @@
-From bb9a8332e54fd6d2b0d4767b55c7df9a36ad3022 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
-Date: Sun, 21 Jan 2018 18:55:31 +0100
-Subject: [PATCH] cryptmodule: Include <crypt.h> for declaration of crypt() if
- needed
-
-Not every target system may provide a crypt() function in its stdlibc
-and may use an external or replacement library, like libxcrypt, for
-providing such functions.
----
- Modules/_cryptmodule.c | 4 ++++
- configure.ac | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
-index 58d179e6a3..0031037b64 100644
---- a/Modules/_cryptmodule.c
-+++ b/Modules/_cryptmodule.c
-@@ -5,6 +5,10 @@
-
- #include <sys/types.h>
-
-+#if defined(HAVE_CRYPT_H)
+diff --git a/Include/Python.h b/Include/Python.h
+index dd595ea5e4c..1feb1531cc9 100644
+--- a/Include/Python.h
++++ b/Include/Python.h
+@@ -35,6 +35,9 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
-+
- /* Module crypt */
- /*[clinic input]
+ /* For size_t? */
+ #ifdef HAVE_STDDEF_H
diff --git a/configure.ac b/configure.ac
-index 39e2e8e769..79397a7a24 100644
+index 03b0f501aff..15ef872a53a 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -2049,7 +2049,7 @@ AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
+@@ -2041,7 +2041,7 @@ dnl AC_MSG_RESULT($cpp_type)
+
+ # checks for header files
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
++AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
sched.h shadow.h signal.h stropts.h termios.h \
--unistd.h utime.h \
-+unistd.h crypt.h utime.h \
- poll.h sys/devpoll.h sys/epoll.h sys/poll.h \
- sys/audioio.h sys/xattr.h sys/bsdtty.h sys/event.h sys/file.h sys/ioctl.h \
- sys/kern_control.h sys/loadavg.h sys/lock.h sys/mkdev.h sys/modem.h \
---
-2.16.1
-
+
diff --git a/python3.spec b/python3.spec
index b1cc9f6..73cb6e2 100644
--- a/python3.spec
+++ b/python3.spec
@@ -363,7 +363,7 @@ Patch289: 00289-fix-nis-compilation.patch
# Not every target system may provide a crypt() function in its stdlibc
# and may use an external or replacement library, like libxcrypt, for
# providing such functions.
-# Reported upstream: https://bugs.python.org/issue32635
+# Fixed upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# 00291 #
commit ce6ec4f16ac18a3f451b036bb6743fdeebb8813c
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Tue Jan 23 15:25:04 2018 +0100
Add patch to explicitly link _ctypes module with -ldl (#1537489)
Refactored patch for libxcrypt
Re-enable strict symbol checks in the link editor
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
index be62939..38aa7de 100644
--- a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+++ b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
@@ -1,4 +1,4 @@
-From 6811089dbf34a2cef9799e1cb6d63b863b58739f Mon Sep 17 00:00:00 2001
+From bb9a8332e54fd6d2b0d4767b55c7df9a36ad3022 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
Date: Sun, 21 Jan 2018 18:55:31 +0100
Subject: [PATCH] cryptmodule: Include <crypt.h> for declaration of crypt() if
@@ -9,18 +9,18 @@ and may use an external or replacement library, like libxcrypt, for
providing such functions.
---
Modules/_cryptmodule.c | 4 ++++
- configure.ac | 4 ++++
- 2 files changed, 8 insertions(+)
+ configure.ac | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
-index 58d179e6a3..bb26d83f55 100644
+index 58d179e6a3..0031037b64 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -5,6 +5,10 @@
#include <sys/types.h>
-+#if defined(HAVE_XCRYPT)
++#if defined(HAVE_CRYPT_H)
+#include <crypt.h>
+#endif
+
@@ -28,20 +28,18 @@ index 58d179e6a3..bb26d83f55 100644
/*[clinic input]
diff --git a/configure.ac b/configure.ac
-index 39e2e8e769..129c198c15 100644
+index 39e2e8e769..79397a7a24 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -2816,6 +2816,10 @@ LIBS="$withval $LIBS"
-
- PKG_PROG_PKG_CONFIG
-
-+# Check for libxcrypt is present.
-+PKG_CHECK_MODULES([libxcrypt], libxcrypt,
-+ AC_DEFINE([HAVE_XCRYPT], 1, [Define to 1 if libxcrypt is found.]), [])
-+
- # Check for use of the system expat library
- AC_MSG_CHECKING(for --with-system-expat)
- AC_ARG_WITH(system_expat,
+@@ -2049,7 +2049,7 @@ AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
+ fcntl.h grp.h \
+ ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
+ sched.h shadow.h signal.h stropts.h termios.h \
+-unistd.h utime.h \
++unistd.h crypt.h utime.h \
+ poll.h sys/devpoll.h sys/epoll.h sys/poll.h \
+ sys/audioio.h sys/xattr.h sys/bsdtty.h sys/event.h sys/file.h sys/ioctl.h \
+ sys/kern_control.h sys/loadavg.h sys/lock.h sys/mkdev.h sys/modem.h \
--
-2.16.0
+2.16.1
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
new file mode 100644
index 0000000..4bf4801
--- /dev/null
+++ b/00291-setup-Link-ctypes-against-dl-explicitly.patch
@@ -0,0 +1,25 @@
+From aae2ef0bace0e38f4ee5aaa4642aa32450a84216 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Tue, 23 Jan 2018 14:43:43 +0100
+Subject: [PATCH] setup: Link ctypes against dl explicitly
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index c23628a2a9..9e40bb53e6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1935,7 +1935,7 @@ class PyBuildExt(build_ext):
+ self.use_system_libffi = False
+ include_dirs = []
+ extra_compile_args = []
+- extra_link_args = []
++ extra_link_args = ['-ldl']
+ sources = ['_ctypes/_ctypes.c',
+ '_ctypes/callbacks.c',
+ '_ctypes/callproc.c',
+--
+2.16.1
+
diff --git a/python3.spec b/python3.spec
index 9f1b88a..b1cc9f6 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 7%{?dist}
+Release: 8%{?dist}
License: Python
@@ -146,11 +146,6 @@ License: Python
# on files that test invalid syntax.
%undefine py_auto_byte_compile
-# Disable strict symbol checks in the link editor.
-# See: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af192613e1beec3...
-# https://bugzilla.redhat.com/show_bug.cgi?id=1537489
-%undefine _strict_symbol_defs_build
-
# For multilib support, files that are different between 32- and 64-bit arches
# need different filenames. Use "64" or "32" according to the word size.
# Currently, the best way to determine an architecture's word size happens to
@@ -371,6 +366,12 @@ Patch289: 00289-fix-nis-compilation.patch
# Reported upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+# 00291 #
+# Build fails with undefined references to dlopen / dlsym otherwise.
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
+# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
+Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -638,6 +639,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch274 -p1
%patch289 -p1
%patch290 -p1
+%patch291 -p1
# Remove files that should be generated by the build
@@ -1502,6 +1504,11 @@ fi
# ======================================================
%changelog
+* Tue Jan 23 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-8
+- Add patch to explicitly link _ctypes module with -ldl (#1537489)
+- Refactored patch for libxcrypt
+- Re-enable strict symbol checks in the link editor
+
* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
- Add patch for libxcrypt
- Disable strict symbol checks in the link editor
commit 5a8bf97593a4db85208e905cb543728234fb4412
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 23 13:22:12 2018 +0100
Disable strict symbol checks in the link editor.
diff --git a/python3.spec b/python3.spec
index d86a696..9f1b88a 100644
--- a/python3.spec
+++ b/python3.spec
@@ -146,6 +146,11 @@ License: Python
# on files that test invalid syntax.
%undefine py_auto_byte_compile
+# Disable strict symbol checks in the link editor.
+# See: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af192613e1beec3...
+# https://bugzilla.redhat.com/show_bug.cgi?id=1537489
+%undefine _strict_symbol_defs_build
+
# For multilib support, files that are different between 32- and 64-bit arches
# need different filenames. Use "64" or "32" according to the word size.
# Currently, the best way to determine an architecture's word size happens to
@@ -363,6 +368,7 @@ Patch289: 00289-fix-nis-compilation.patch
# Not every target system may provide a crypt() function in its stdlibc
# and may use an external or replacement library, like libxcrypt, for
# providing such functions.
+# Reported upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# (New patches go here ^^^)
@@ -1498,6 +1504,7 @@ fi
%changelog
* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
- Add patch for libxcrypt
+- Disable strict symbol checks in the link editor
* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
- Rebuilt for switch to libxcrypt
commit 5ea7bf417d382b9fe25e4382c8e40aa4074f46cb
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Mon Jan 22 21:10:32 2018 +0100
Add patch for libxcrypt
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
new file mode 100644
index 0000000..be62939
--- /dev/null
+++ b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
@@ -0,0 +1,47 @@
+From 6811089dbf34a2cef9799e1cb6d63b863b58739f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Sun, 21 Jan 2018 18:55:31 +0100
+Subject: [PATCH] cryptmodule: Include <crypt.h> for declaration of crypt() if
+ needed
+
+Not every target system may provide a crypt() function in its stdlibc
+and may use an external or replacement library, like libxcrypt, for
+providing such functions.
+---
+ Modules/_cryptmodule.c | 4 ++++
+ configure.ac | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
+index 58d179e6a3..bb26d83f55 100644
+--- a/Modules/_cryptmodule.c
++++ b/Modules/_cryptmodule.c
+@@ -5,6 +5,10 @@
+
+ #include <sys/types.h>
+
++#if defined(HAVE_XCRYPT)
++#include <crypt.h>
++#endif
++
+ /* Module crypt */
+
+ /*[clinic input]
+diff --git a/configure.ac b/configure.ac
+index 39e2e8e769..129c198c15 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2816,6 +2816,10 @@ LIBS="$withval $LIBS"
+
+ PKG_PROG_PKG_CONFIG
+
++# Check for libxcrypt is present.
++PKG_CHECK_MODULES([libxcrypt], libxcrypt,
++ AC_DEFINE([HAVE_XCRYPT], 1, [Define to 1 if libxcrypt is found.]), [])
++
+ # Check for use of the system expat library
+ AC_MSG_CHECKING(for --with-system-expat)
+ AC_ARG_WITH(system_expat,
+--
+2.16.0
+
diff --git a/python3.spec b/python3.spec
index 3eed00a..d86a696 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 6%{?dist}
+Release: 7%{?dist}
License: Python
@@ -359,6 +359,12 @@ Patch274: 00274-fix-arch-names.patch
# Fixed upstream: https://bugs.python.org/issue32521
Patch289: 00289-fix-nis-compilation.patch
+# 00290 #
+# Not every target system may provide a crypt() function in its stdlibc
+# and may use an external or replacement library, like libxcrypt, for
+# providing such functions.
+Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -625,6 +631,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch273 -p1
%patch274 -p1
%patch289 -p1
+%patch290 -p1
# Remove files that should be generated by the build
@@ -1489,6 +1496,9 @@ fi
# ======================================================
%changelog
+* Mon Jan 22 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-7
+- Add patch for libxcrypt
+
* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
- Rebuilt for switch to libxcrypt
commit 085ae328d4e0757fb686cb14e9b9c30e7edf4fec
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Sat Jan 20 23:07:42 2018 +0100
Rebuilt for switch to libxcrypt
diff --git a/python3.spec b/python3.spec
index d2962bc..3eed00a 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Python
@@ -1489,6 +1489,9 @@ fi
# ======================================================
%changelog
+* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.6.4-6
+- Rebuilt for switch to libxcrypt
+
* Fri Jan 19 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-5
- Fix localeconv() encoding for LC_NUMERIC
commit 40bb48b58479cf1b301b2e5a073d9d07f9c32420
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Fri Jan 19 17:44:40 2018 +0100
Properly add patch 273
diff --git a/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch b/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
new file mode 100644
index 0000000..4d0c87d
--- /dev/null
+++ b/00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
@@ -0,0 +1,240 @@
+diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
+index b04442bc162..9a0c570533a 100644
+--- a/Doc/library/locale.rst
++++ b/Doc/library/locale.rst
+@@ -147,6 +147,16 @@ The :mod:`locale` module defines the following exception and functions:
+ | ``CHAR_MAX`` | Nothing is specified in this locale. |
+ +--------------+-----------------------------------------+
+
++ The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
++ locale to decode ``decimal_point`` and ``thousands_sep`` byte strings if
++ they are non-ASCII or longer than 1 byte, and the ``LC_NUMERIC`` locale is
++ different than the ``LC_CTYPE`` locale. This temporary change affects other
++ threads.
++
++ .. versionchanged:: 3.6.5
++ The function now sets temporarily the ``LC_CTYPE`` locale to the
++ ``LC_NUMERIC`` locale in some cases.
++
+
+ .. function:: nl_langinfo(option)
+
+diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
+index 196a4c00056..d8a1647e8b5 100644
+--- a/Doc/library/stdtypes.rst
++++ b/Doc/library/stdtypes.rst
+@@ -1599,6 +1599,20 @@ expression support in the :mod:`re` module).
+ See :ref:`formatstrings` for a description of the various formatting options
+ that can be specified in format strings.
+
++ .. note::
++ When formatting a number (:class:`int`, :class:`float`, :class:`float`
++ and subclasses) with the ``n`` type (ex: ``'{:n}'.format(1234)``), the
++ function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC``
++ locale to decode ``decimal_point`` and ``thousands_sep`` fields of
++ :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, and the
++ ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. This
++ temporary change affects other threads.
++
++ .. versionchanged:: 3.6.5
++ When formatting a number with the ``n`` type, the function sets
++ temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some
++ cases.
++
+
+ .. method:: str.format_map(mapping)
+
+diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
+index 847b50140a6..f83508c9250 100644
+--- a/Doc/whatsnew/3.6.rst
++++ b/Doc/whatsnew/3.6.rst
+@@ -2346,3 +2346,11 @@ It has been replaced by the new ``make regen-all`` target.
+ (Contributed by Victor Stinner in :issue:`23404`.)
+
+ .. versionchanged:: 3.6.2
++
++
++Notable changes in Python 3.6.5
++===============================
++
++The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE``
++locale to the ``LC_NUMERIC`` locale in some cases.
++(Contributed by Victor Stinner in :issue:`31900`.)
+diff --git a/Include/fileutils.h b/Include/fileutils.h
+index 900c70faad7..875715df97a 100644
+--- a/Include/fileutils.h
++++ b/Include/fileutils.h
+@@ -119,6 +119,11 @@ PyAPI_FUNC(int) _Py_get_blocking(int fd);
+ PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
+ #endif /* !MS_WINDOWS */
+
++PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
++ PyObject **decimal_point,
++ PyObject **thousands_sep,
++ const char **grouping);
++
+ #endif /* Py_LIMITED_API */
+
+ #ifdef __cplusplus
+diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
+index 71c9146ccb8..95b370b1ad0 100644
+--- a/Modules/_localemodule.c
++++ b/Modules/_localemodule.c
+@@ -171,12 +171,6 @@ PyLocale_localeconv(PyObject* self)
+ RESULT(#i, x); \
+ } while (0)
+
+- /* Numeric information */
+- RESULT_STRING(decimal_point);
+- RESULT_STRING(thousands_sep);
+- x = copy_grouping(l->grouping);
+- RESULT("grouping", x);
+-
+ /* Monetary information */
+ RESULT_STRING(int_curr_symbol);
+ RESULT_STRING(currency_symbol);
+@@ -195,6 +189,32 @@ PyLocale_localeconv(PyObject* self)
+ RESULT_INT(n_sep_by_space);
+ RESULT_INT(p_sign_posn);
+ RESULT_INT(n_sign_posn);
++
++ /* Numeric information */
++ PyObject *decimal_point, *thousands_sep;
++ const char *grouping;
++ if (_Py_GetLocaleconvNumeric(&decimal_point,
++ &thousands_sep,
++ &grouping) < 0) {
++ goto failed;
++ }
++
++ if (PyDict_SetItemString(result, "decimal_point", decimal_point) < 0) {
++ Py_DECREF(decimal_point);
++ Py_DECREF(thousands_sep);
++ goto failed;
++ }
++ Py_DECREF(decimal_point);
++
++ if (PyDict_SetItemString(result, "thousands_sep", thousands_sep) < 0) {
++ Py_DECREF(thousands_sep);
++ goto failed;
++ }
++ Py_DECREF(thousands_sep);
++
++ x = copy_grouping(grouping);
++ RESULT("grouping", x);
++
+ return result;
+
+ failed:
+diff --git a/Python/fileutils.c b/Python/fileutils.c
+index 97505e5bc6d..14dd81b03f0 100644
+--- a/Python/fileutils.c
++++ b/Python/fileutils.c
+@@ -1597,3 +1597,80 @@ _Py_set_blocking(int fd, int blocking)
+ return -1;
+ }
+ #endif
++
++
++int
++_Py_GetLocaleconvNumeric(PyObject **decimal_point, PyObject **thousands_sep,
++ const char **grouping)
++{
++ int res = -1;
++
++ struct lconv *lc = localeconv();
++
++ int change_locale = 0;
++ if (decimal_point != NULL &&
++ (strlen(lc->decimal_point) > 1 || ((unsigned char)lc->decimal_point[0]) > 127))
++ {
++ change_locale = 1;
++ }
++ if (thousands_sep != NULL &&
++ (strlen(lc->thousands_sep) > 1 || ((unsigned char)lc->thousands_sep[0]) > 127))
++ {
++ change_locale = 1;
++ }
++
++ /* Keep a copy of the LC_CTYPE locale */
++ char *oldloc = NULL, *loc = NULL;
++ if (change_locale) {
++ oldloc = setlocale(LC_CTYPE, NULL);
++ if (!oldloc) {
++ PyErr_SetString(PyExc_RuntimeWarning, "faild to get LC_CTYPE locale");
++ return -1;
++ }
++
++ oldloc = _PyMem_Strdup(oldloc);
++ if (!oldloc) {
++ PyErr_NoMemory();
++ return -1;
++ }
++
++ loc = setlocale(LC_NUMERIC, NULL);
++ if (loc != NULL && strcmp(loc, oldloc) == 0) {
++ loc = NULL;
++ }
++
++ if (loc != NULL) {
++ /* Only set the locale temporarilty the LC_CTYPE locale
++ if LC_NUMERIC locale is different than LC_CTYPE locale and
++ decimal_point and/or thousands_sep are non-ASCII or longer than
++ 1 byte */
++ setlocale(LC_CTYPE, loc);
++ }
++ }
++
++ if (decimal_point != NULL) {
++ *decimal_point = PyUnicode_DecodeLocale(lc->decimal_point, NULL);
++ if (*decimal_point == NULL) {
++ goto error;
++ }
++ }
++ if (thousands_sep != NULL) {
++ *thousands_sep = PyUnicode_DecodeLocale(lc->thousands_sep, NULL);
++ if (*thousands_sep == NULL) {
++ goto error;
++ }
++ }
++
++ if (grouping != NULL) {
++ *grouping = lc->grouping;
++ }
++
++ res = 0;
++
++error:
++ if (loc != NULL) {
++ setlocale(LC_CTYPE, oldloc);
++ }
++ PyMem_Free(oldloc);
++ return res;
++}
+diff --git a/Python/formatter_unicode.c b/Python/formatter_unicode.c
+index d2be76f1e1a..d3ef650e6ce 100644
+--- a/Python/formatter_unicode.c
++++ b/Python/formatter_unicode.c
+@@ -707,18 +707,11 @@ get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
+ {
+ switch (type) {
+ case LT_CURRENT_LOCALE: {
+- struct lconv *locale_data = localeconv();
+- locale_info->decimal_point = PyUnicode_DecodeLocale(
+- locale_data->decimal_point,
+- NULL);
+- if (locale_info->decimal_point == NULL)
++ if (_Py_GetLocaleconvNumeric(&locale_info->decimal_point,
++ &locale_info->thousands_sep,
++ &locale_info->grouping) < 0) {
+ return -1;
+- locale_info->thousands_sep = PyUnicode_DecodeLocale(
+- locale_data->thousands_sep,
+- NULL);
+- if (locale_info->thousands_sep == NULL)
+- return -1;
+- locale_info->grouping = locale_data->grouping;
++ }
+ break;
+ }
+ case LT_DEFAULT_LOCALE:
commit 26024771dfe131dc39d4e4664c5194a69b47c48c
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Fri Jan 19 17:36:05 2018 +0100
Fix localeconv() encoding for LC_NUMERIC
diff --git a/00273-skip-float-test.patch b/00273-skip-float-test.patch
deleted file mode 100644
index 233d3ed..0000000
--- a/00273-skip-float-test.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
-index 66726d6496d..3318fa5df59 100644
---- a/Lib/test/test_float.py
-+++ b/Lib/test/test_float.py
-@@ -141,6 +141,7 @@ class GeneralFloatCases(unittest.TestCase):
- # non-UTF-8 byte string
- check(b'123\xa0')
-
-+ @unittest.skip('Fails in Koji: https://bugzilla.redhat.com/show_bug.cgi?id=1484497')
- @support.run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')
- def test_float_with_comma(self):
- # set locale to something that doesn't use '.' for the decimal point
diff --git a/python3.spec b/python3.spec
index 96416ce..d2962bc 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -342,9 +342,9 @@ Patch262: 00262-pep538_coerce_legacy_c_locale.patch
Patch264: 00264-skip-test-failing-on-aarch64.patch
# 00273 #
-# Skip test_float_with_comma, which fails in Koji with UnicodeDecodeError
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1484497
-Patch273: 00273-skip-float-test.patch
+# Fix localeconv() encoding for LC_NUMERIC
+# Fixed upstream: https://bugs.python.org/issue31900
+Patch273: 00273-fix-localeconv-encoding-for-LC_NUMERIC.patch
# 00274 #
# Upstream uses Debian-style architecture naming. Change to match Fedora.
@@ -1489,6 +1489,9 @@ fi
# ======================================================
%changelog
+* Fri Jan 19 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-5
+- Fix localeconv() encoding for LC_NUMERIC
+
* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-4
- R: gdbm-devel R: gdbm for python3-libs
commit 57ec20127dcd1e317c6f6eb846a72d846b180560
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Thu Jan 18 19:41:19 2018 +0100
R: gdbm-devel R: gdbm for python3-libs
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/python3.spec b/python3.spec
index 80ce6ab..96416ce 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
@@ -444,7 +444,7 @@ Requires: glibc%{?_isa} >= 2.24.90-26
%if %{with gdbm}
# When built with this (as guarded by the BuildRequires above), require it
-Requires: gdbm-devel%{?_isa} >= 1:1.13
+Requires: gdbm%{?_isa} >= 1:1.13
%endif
# For backward compatibility only, remove in F29:
@@ -1489,6 +1489,9 @@ fi
# ======================================================
%changelog
+* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.6.4-4
+- R: gdbm-devel R: gdbm for python3-libs
+
* Wed Jan 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-3
- Require large enough gdbm (fixup for previous bump)
commit 1a43a65185f0f0371e3ee0fc7341535a7929486b
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Jan 17 11:48:11 2018 +0100
Require large enough gdbm (fixup for previous commit)
diff --git a/python3.spec b/python3.spec
index 02b4557..80ce6ab 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
@@ -442,6 +442,11 @@ Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
# See https://bugzilla.redhat.com/show_bug.cgi?id=1410644
Requires: glibc%{?_isa} >= 2.24.90-26
+%if %{with gdbm}
+# When built with this (as guarded by the BuildRequires above), require it
+Requires: gdbm-devel%{?_isa} >= 1:1.13
+%endif
+
# For backward compatibility only, remove in F29:
Provides: system-python-libs = %{version}-%{release}
Provides: system-python-libs%{?_isa} = %{version}-%{release}
@@ -1484,6 +1489,9 @@ fi
# ======================================================
%changelog
+* Wed Jan 17 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.6.4-3
+- Require large enough gdbm (fixup for previous bump)
+
* Tue Jan 16 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-2
- Rebuild for reverted gdbm 1.13 on Fedora 27
commit 6e38667b8a4543e9dedebc181b9f6d417ecea23a
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 16 20:36:17 2018 +0100
Rebuild for reverted gdbm 1:1.13 on F27
diff --git a/python3.spec b/python3.spec
index d6f9c43..02b4557 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.4
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
@@ -173,7 +173,7 @@ BuildRequires: expat-devel
BuildRequires: findutils
BuildRequires: gcc-c++
%if %{with gdbm}
-BuildRequires: gdbm-devel
+BuildRequires: gdbm-devel >= 1:1.13
%endif
BuildRequires: glibc-devel
BuildRequires: gmp-devel
@@ -1484,6 +1484,9 @@ fi
# ======================================================
%changelog
+* Tue Jan 16 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-2
+- Rebuild for reverted gdbm 1.13 on Fedora 27
+
* Mon Jan 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-1
- Update to version 3.6.4
commit 0077a197809465e42a2c6300b80af67898f8ebcd
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Jan 15 15:28:35 2018 +0100
Update to version 3.6.4
Rebased patches: 189, 262
Dropped patches due to being upstreamed: 277, 279
diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch
index 53a26ca..36b2611 100644
--- a/00189-add-rewheel-module.patch
+++ b/00189-add-rewheel-module.patch
@@ -1,6 +1,7 @@
-diff -Nur Python-3.4.1/Lib/ensurepip/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/__init__.py
---- Python-3.4.1/Lib/ensurepip/__init__.py 2014-08-21 10:49:30.792695824 +0200
-+++ Python-3.4.1-rewheel/Lib/ensurepip/__init__.py 2014-08-21 10:10:41.958341726 +0200
+diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
+index d69e09f..5cb12df 100644
+--- a/Lib/ensurepip/__init__.py
++++ b/Lib/ensurepip/__init__.py
@@ -1,8 +1,10 @@
import os
import os.path
@@ -12,16 +13,16 @@ diff -Nur Python-3.4.1/Lib/ensurepip/__init__.py Python-3.4.1-rewheel/Lib/ensure
__all__ = ["version", "bootstrap"]
-@@ -38,6 +40,8 @@
+@@ -25,6 +27,8 @@ def _run_pip(args, additional_paths=None):
# Install the bundled software
import pip
+ if args[0] in ["install", "list", "wheel"]:
+ args.append('--pre')
- pip.main(args)
+ return pip.main(args)
-@@ -87,20 +91,39 @@
+@@ -88,20 +92,39 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
# omit pip and easy_install
os.environ["ENSUREPIP_OPTIONS"] = "install"
@@ -72,8 +73,8 @@ diff -Nur Python-3.4.1/Lib/ensurepip/__init__.py Python-3.4.1-rewheel/Lib/ensure
# Construct the arguments to be passed to the pip command
args = ["install", "--no-index", "--find-links", tmpdir]
diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py
---- Python-3.4.1/Lib/ensurepip/rewheel/__init__.py 1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py 2014-08-21 10:11:22.560320121 +0200
+--- Python-3.4.1/Lib/ensurepip/rewheel/__init__.py 1970-01-01 01:00:00.000000000 +0100
++++ Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py 2014-08-21 10:11:22.560320121 +0200
@@ -0,0 +1,143 @@
+import argparse
+import codecs
@@ -219,8 +220,8 @@ diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Li
+ pass # bad RECORD or empty line
+ return to_write, to_omit
diff -Nur Python-3.4.1/Makefile.pre.in Python-3.4.1-rewheel/Makefile.pre.in
---- Python-3.4.1/Makefile.pre.in 2014-08-21 10:49:31.512695040 +0200
-+++ Python-3.4.1-rewheel/Makefile.pre.in 2014-08-21 10:10:41.961341722 +0200
+--- Python-3.4.1/Makefile.pre.in 2014-08-21 10:49:31.512695040 +0200
++++ Python-3.4.1-rewheel/Makefile.pre.in 2014-08-21 10:10:41.961341722 +0200
@@ -1145,7 +1145,7 @@
test/test_asyncio \
collections concurrent concurrent/futures encodings \
diff --git a/00262-pep538_coerce_legacy_c_locale.patch b/00262-pep538_coerce_legacy_c_locale.patch
index d749bac..b144ba5 100644
--- a/00262-pep538_coerce_legacy_c_locale.patch
+++ b/00262-pep538_coerce_legacy_c_locale.patch
@@ -1,8 +1,8 @@
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
-index 195f63f..8ecd70f 100644
+index 9ffb714..3f7201a 100644
--- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst
-@@ -713,6 +713,45 @@ conflict.
+@@ -711,6 +711,45 @@ conflict.
.. versionadded:: 3.6
@@ -500,37 +500,13 @@ index 0000000..635c98f
+if __name__ == "__main__":
+ test_main()
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
-index 6c3625d..009f542 100644
+index 6e4286e..594dfa9 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
-@@ -369,14 +369,21 @@ class EmbeddingTests(unittest.TestCase):
- def tearDown(self):
- os.chdir(self.oldcwd)
-
-- def run_embedded_interpreter(self, *args):
-+ def run_embedded_interpreter(self, *args, env=None):
- """Runs a test in the embedded interpreter"""
- cmd = [self.test_exe]
- cmd.extend(args)
-+ if env is not None and sys.platform == 'win32':
-+ # Windows requires at least the SYSTEMROOT environment variable to
-+ # start Python.
-+ env = env.copy()
-+ env['SYSTEMROOT'] = os.environ['SYSTEMROOT']
-+
- p = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
-- universal_newlines=True)
-+ universal_newlines=True,
-+ env=env)
- (out, err) = p.communicate()
- self.assertEqual(p.returncode, 0,
- "bad returncode %d, stderr is %r" %
-@@ -386,31 +393,21 @@ class EmbeddingTests(unittest.TestCase):
- def test_subinterps(self):
+@@ -425,32 +425,21 @@ class EmbeddingTests(unittest.TestCase):
+ def test_repeated_init_and_subinterpreters(self):
# This is just a "don't crash" test
- out, err = self.run_embedded_interpreter()
+ out, err = self.run_embedded_interpreter('repeated_init_and_subinterpreters')
- if support.verbose:
+ if support.verbose > 1:
print()
@@ -549,33 +525,19 @@ index 6c3625d..009f542 100644
-
def test_forced_io_encoding(self):
# Checks forced configuration of embedded interpreter IO streams
-- out, err = self.run_embedded_interpreter("forced_io_encoding")
+ env = dict(os.environ, PYTHONIOENCODING="utf-8:surrogateescape")
+ out, err = self.run_embedded_interpreter("forced_io_encoding", env=env)
- if support.verbose:
-+ env = dict(os.environ, PYTHONIOENCODING="utf-8:surrogateescape")
-+ out, err = self.run_embedded_interpreter("forced_io_encoding", env=env)
+ if support.verbose > 1:
print()
print(out)
print(err)
-- expected_errors = sys.__stdout__.errors
-- expected_stdin_encoding = sys.__stdin__.encoding
+ expected_stream_encoding = "utf-8"
+ expected_errors = "surrogateescape"
- expected_pipe_encoding = self._get_default_pipe_encoding()
-+ expected_stream_encoding = "utf-8"
-+ expected_errors = "surrogateescape"
expected_output = '\n'.join([
"--- Use defaults ---",
"Expected encoding: default",
-@@ -437,8 +434,8 @@ class EmbeddingTests(unittest.TestCase):
- "stdout: latin-1:replace",
- "stderr: latin-1:backslashreplace"])
- expected_output = expected_output.format(
-- in_encoding=expected_stdin_encoding,
-- out_encoding=expected_pipe_encoding,
-+ in_encoding=expected_stream_encoding,
-+ out_encoding=expected_stream_encoding,
- errors=expected_errors)
- # This is useful if we ever trip over odd platform behaviour
- self.maxDiff = None
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index ae2bcd4..0a302ff 100644
--- a/Lib/test/test_cmd_line.py
@@ -601,7 +563,7 @@ index ae2bcd4..0a302ff 100644
b'import locale; '
b'print(ascii("' + undecodable + b'"), '
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
-index df9ebd4..63145e4 100644
+index 7866a5c..b41239a 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -680,6 +680,7 @@ class SysModuleTest(unittest.TestCase):
@@ -613,7 +575,7 @@ index df9ebd4..63145e4 100644
'import sys',
'def dump(name):',
diff --git a/Modules/main.c b/Modules/main.c
-index dd50211..f20cf24 100644
+index b0fb78f..0d8590a 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -105,7 +105,11 @@ static const char usage_6[] =
@@ -630,16 +592,15 @@ index dd50211..f20cf24 100644
static int
usage(int exitcode, const wchar_t* program)
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
-index 3968399..1bd2bbf 100644
+index b0f9087..da892bf 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -1,4 +1,5 @@
--#include <Python.h>
-+#include "Python.h"
+ #include <Python.h>
+#include "pyconfig.h"
+ #include "pythread.h"
#include <stdio.h>
- /*********************************************************
diff --git a/Programs/python.c b/Programs/python.c
index a7afbc7..03f8295 100644
--- a/Programs/python.c
@@ -713,7 +674,7 @@ index a7afbc7..03f8295 100644
for (i = 0; i < argc; i++) {
PyMem_RawFree(argv_copy2[i]);
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
-index a4f7f82..3843297 100644
+index 640271f..2a22b24 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -167,6 +167,7 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors)
@@ -929,7 +890,7 @@ index a4f7f82..3843297 100644
#endif
if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0')
-@@ -1242,12 +1428,8 @@ initstdio(void)
+@@ -1251,12 +1437,8 @@ initstdio(void)
}
}
if (!errors && !(pythonioencoding && *pythonioencoding)) {
@@ -944,90 +905,11 @@ index a4f7f82..3843297 100644
}
}
-diff --git a/configure b/configure
-index 2915246..39e5a27 100755
---- a/configure
-+++ b/configure
-@@ -834,6 +834,8 @@ with_thread
- enable_ipv6
- with_doc_strings
- with_pymalloc
-+with_c_locale_coercion
-+with_c_locale_warning
- with_valgrind
- with_dtrace
- with_fpectl
-@@ -1527,6 +1529,12 @@ Optional Packages:
- deprecated; use --with(out)-threads
- --with(out)-doc-strings disable/enable documentation strings
- --with(out)-pymalloc disable/enable specialized mallocs
-+ --with(out)-c-locale-coercion
-+ disable/enable C locale coercion to a UTF-8 based
-+ locale
-+ --with(out)-c-locale-warning
-+ disable/enable locale compatibility warning in the C
-+ locale
- --with-valgrind Enable Valgrind support
- --with(out)-dtrace disable/enable DTrace support
- --with-fpectl enable SIGFPE catching
-@@ -11010,6 +11018,52 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5
- $as_echo "$with_pymalloc" >&6; }
-
-+# Check for --with-c-locale-coercion
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5
-+$as_echo_n "checking for --with-c-locale-coercion... " >&6; }
-+
-+# Check whether --with-c-locale-coercion was given.
-+if test "${with_c_locale_coercion+set}" = set; then :
-+ withval=$with_c_locale_coercion;
-+fi
-+
-+
-+if test -z "$with_c_locale_coercion"
-+then
-+ with_c_locale_coercion="yes"
-+fi
-+if test "$with_c_locale_coercion" != "no"
-+then
-+
-+$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5
-+$as_echo "$with_c_locale_coercion" >&6; }
-+
-+# Check for --with-c-locale-warning
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-warning" >&5
-+$as_echo_n "checking for --with-c-locale-warning... " >&6; }
-+
-+# Check whether --with-c-locale-warning was given.
-+if test "${with_c_locale_warning+set}" = set; then :
-+ withval=$with_c_locale_warning;
-+fi
-+
-+
-+if test -z "$with_c_locale_warning"
-+then
-+ with_c_locale_warning="yes"
-+fi
-+if test "$with_c_locale_warning" != "no"
-+then
-+
-+$as_echo "#define PY_WARN_ON_C_LOCALE 1" >>confdefs.h
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_warning" >&5
-+$as_echo "$with_c_locale_warning" >&6; }
-+
- # Check for Valgrind support
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5
- $as_echo_n "checking for --with-valgrind... " >&6; }
diff --git a/configure.ac b/configure.ac
-index 67dfba3..b9c9f04 100644
+index 601cc84..5cdc021 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3279,6 +3279,40 @@ then
+@@ -3310,6 +3310,40 @@ then
fi
AC_MSG_RESULT($with_pymalloc)
@@ -1068,23 +950,3 @@ index 67dfba3..b9c9f04 100644
# Check for Valgrind support
AC_MSG_CHECKING([for --with-valgrind])
AC_ARG_WITH([valgrind],
-diff --git a/pyconfig.h.in b/pyconfig.h.in
-index b10c57f..0a6f3e2 100644
---- a/pyconfig.h.in
-+++ b/pyconfig.h.in
-@@ -1244,9 +1244,15 @@
- /* Define as the preferred size in bits of long digits */
- #undef PYLONG_BITS_IN_DIGIT
-
-+/* Define if you want to coerce the C locale to a UTF-8 based locale */
-+#undef PY_COERCE_C_LOCALE
-+
- /* Define to printf format modifier for Py_ssize_t */
- #undef PY_FORMAT_SIZE_T
-
-+/* Define to emit a locale compatibility warning in the C locale */
-+#undef PY_WARN_ON_C_LOCALE
-+
- /* Define if you want to build an interpreter with many run-time checks. */
- #undef Py_DEBUG
-
diff --git a/python3.spec b/python3.spec
index 7495259..d6f9c43 100644
--- a/python3.spec
+++ b/python3.spec
@@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
-Version: %{pybasever}.3
-Release: 5%{?dist}
+Version: %{pybasever}.4
+Release: 1%{?dist}
License: Python
@@ -350,19 +350,6 @@ Patch273: 00273-skip-float-test.patch
# Upstream uses Debian-style architecture naming. Change to match Fedora.
Patch274: 00274-fix-arch-names.patch
-# 00277 #
-# Fix test_exception_errpipe_bad_data() and
-# test_exception_errpipe_normal() of test_subprocess: mock os.waitpid()
-# to avoid calling the real os.waitpid(0, 0) which is an unexpected
-# side effect of the test, which makes the koji builds hang.
-# Fixed upstream: https://github.com/python/cpython/commit/11045c9d8a21dd9bd182a3939189db02...
-Patch277: 00277-fix-test-subprocess-hanging-tests.patch
-
-# 00279 #
-# Fix memory corruption due to allocator mix
-# Fixed upstream: https://bugs.python.org/issue31532
-Patch279: 00279-fix-memory-corruption-due-to-allocator-mix.patch
-
# 00289 #
# Fix the compilation of the nis module, as glibc removed the
# interfaces related to Sun RPC and they are now provided
@@ -632,8 +619,6 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch273 -p1
%patch274 -p1
-%patch277 -p1
-%patch279 -p1
%patch289 -p1
@@ -1499,6 +1484,9 @@ fi
# ======================================================
%changelog
+* Mon Jan 15 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.4-1
+- Update to version 3.6.4
+
* Fri Jan 12 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-5
- Fix the compilation of the nis module.
diff --git a/sources b/sources
index 002f1fb..6b5ff13 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.6.3.tar.xz) = 32f24a3adcb7880003c7ecdc5e53e838e774adda76b308961d8215e28db630b2fa2828097817924c76afa4212b2df3362eb64d4e10f37c0147f512ec5aa8662b
+SHA512 (Python-3.6.4.tar.xz) = 09ba2103ac517ac4d262f00380c9aac836a53401ce252540c17fd821a3b92e1ddf32528d00772221eb3126b12cb95b62c3ac3e852f4951e6f2eb406c88c848a2
commit 6ff303ee104bbee32f1912eb012ae02c4a92ea99
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Fri Jan 12 16:06:48 2018 +0100
Fix the compilation of the nis module.
The headers required to build the nis module were removed
from glibc and they are now provided by the libtirpc and libnsl2
packages, thus adding their respective -devel subpackages as
BuildRequires and the upstream fix to search for the headers
and the shared libraries at the appropriate locations.
diff --git a/00289-fix-nis-compilation.patch b/00289-fix-nis-compilation.patch
new file mode 100644
index 0000000..4d4e3dc
--- /dev/null
+++ b/00289-fix-nis-compilation.patch
@@ -0,0 +1,83 @@
+diff --git a/setup.py b/setup.py
+index 3eb6ad1..3437e48 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1331,20 +1331,14 @@ class PyBuildExt(build_ext):
+ exts.append( Extension('termios', ['termios.c']) )
+ # Jeremy Hylton's rlimit interface
+ exts.append( Extension('resource', ['resource.c']) )
++ else:
++ missing.extend(['resource', 'termios'])
+
+- # Sun yellow pages. Some systems have the functions in libc.
+- if (host_platform not in ['cygwin', 'qnx6'] and
+- find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
+- if (self.compiler.find_library_file(lib_dirs, 'nsl')):
+- libs = ['nsl']
+- else:
+- libs = []
+- exts.append( Extension('nis', ['nismodule.c'],
+- libraries = libs) )
+- else:
+- missing.append('nis')
++ nis = self._detect_nis(inc_dirs, lib_dirs)
++ if nis is not None:
++ exts.append(nis)
+ else:
+- missing.extend(['nis', 'resource', 'termios'])
++ missing.append('nis')
+
+ # Curses support, requiring the System V version of curses, often
+ # provided by the ncurses library.
+@@ -2179,6 +2173,51 @@ class PyBuildExt(build_ext):
+ )
+ return ext
+
++ def _detect_nis(self, inc_dirs, lib_dirs):
++ if host_platform in {'win32', 'cygwin', 'qnx6'}:
++ return None
++
++ libs = []
++ library_dirs = []
++ includes_dirs = []
++
++ # Latest glibc has moved Sun RPC headers into tircp and nsl sub
++ # directories. rpc code has been moved to libtirpc.
++ rpcsvc_inc = find_file(
++ 'rpcsvc/yp_prot.h', inc_dirs,
++ ['/usr/local/include/nsl', '/usr/include/nsl']
++ )
++ rpc_inc = find_file(
++ 'rpc/rpc.h', inc_dirs,
++ ['/usr/local/include/tirpc', '/usr/include/tirpc']
++ )
++ 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
+ # directory, which is not in sys.path when running Python during
diff --git a/python3.spec b/python3.spec
index 8bb01e0..7495259 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well
Version: %{pybasever}.3
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
@@ -179,6 +179,8 @@ BuildRequires: glibc-devel
BuildRequires: gmp-devel
BuildRequires: libappstream-glib
BuildRequires: libffi-devel
+BuildRequires: libnsl2-devel
+BuildRequires: libtirpc-devel
BuildRequires: libGL-devel
BuildRequires: libX11-devel
BuildRequires: ncurses-devel
@@ -361,6 +363,15 @@ Patch277: 00277-fix-test-subprocess-hanging-tests.patch
# Fixed upstream: https://bugs.python.org/issue31532
Patch279: 00279-fix-memory-corruption-due-to-allocator-mix.patch
+# 00289 #
+# Fix the compilation of the nis module, as glibc removed the
+# interfaces related to Sun RPC and they are now provided
+# by libtirpc and libnsl2.
+# See: https://fedoraproject.org/wiki/Changes/SunRPCRemoval
+# and https://fedoraproject.org/wiki/Changes/NISIPv6
+# Fixed upstream: https://bugs.python.org/issue32521
+Patch289: 00289-fix-nis-compilation.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -623,6 +634,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch274 -p1
%patch277 -p1
%patch279 -p1
+%patch289 -p1
# Remove files that should be generated by the build
@@ -1487,6 +1499,9 @@ fi
# ======================================================
%changelog
+* Fri Jan 12 2018 Charalampos Stratakis <cstratak(a)redhat.com> - 3.6.3-5
+- Fix the compilation of the nis module.
+
* Tue Nov 21 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.6.3-4
- Raise the release of platform-python obsoletes for better maintainability
commit ec5f432a6e752b0fccc17b4e7a75a6378449164e
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Dec 4 17:53:50 2017 +0100
Remove a ppc64 segfault workaround which provided a larger stack for that
arch, as it doesn't seem to affect the build anymore.
diff --git a/python3.spec b/python3.spec
index 1f7907e..8bb01e0 100644
--- a/python3.spec
+++ b/python3.spec
@@ -996,14 +996,6 @@ done
# Running the upstream test suite
# ======================================================
-# For ppc64 we need a larger stack than default
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1292462
-%ifarch %{power64}
- ulimit -a
- ulimit -s 16384
-%endif
-
-
topdir=$(pwd)
CheckPython() {
ConfName=$1
commit 15a050eb4bccb5537f23371b1547ae92f02600a0
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Wed Nov 29 16:46:46 2017 +0100
Masc two macros in comments that were expanded.
Remove the commented out file for the time shared library.
diff --git a/python3.spec b/python3.spec
index 29a7d70..1f7907e 100644
--- a/python3.spec
+++ b/python3.spec
@@ -245,7 +245,7 @@ Patch1: 00001-rpath.patch
# 00102 #
# Change the various install paths to use /usr/lib64/ instead or /usr/lib
-# Only used when "%{_lib}" == "lib64"
+# Only used when "%%{_lib}" == "lib64"
# Not yet sent upstream.
Patch102: 00102-lib64.patch
@@ -1211,7 +1211,6 @@ fi
%{dynload_dir}/spwd.%{SOABI_optimized}.so
%{dynload_dir}/syslog.%{SOABI_optimized}.so
%{dynload_dir}/termios.%{SOABI_optimized}.so
-#%{dynload_dir}/time.%{SOABI_optimized}.so
%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
@@ -1441,7 +1440,6 @@ fi
%{dynload_dir}/spwd.%{SOABI_debug}.so
%{dynload_dir}/syslog.%{SOABI_debug}.so
%{dynload_dir}/termios.%{SOABI_debug}.so
-#%{dynload_dir}/time.%{SOABI_debug}.so
%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
%{dynload_dir}/unicodedata.%{SOABI_debug}.so
%{dynload_dir}/zlib.%{SOABI_debug}.so
@@ -1479,7 +1477,7 @@ fi
# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
#
-# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
+# The /usr/lib/rpm/redhat/macros defines %%__debug_package 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
commit 522ee16d1ae7749c0cb6edaa2c64593efeb4e5d1
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Wed Nov 29 16:32:41 2017 +0100
Remove python-gdb.py source file as it now gets installed from the upstream sources
diff --git a/python-gdb.py b/python-gdb.py
deleted file mode 100644
index dd6d462..0000000
--- a/python-gdb.py
+++ /dev/null
@@ -1,1380 +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 PyBytesObject* instances, we can
-generate a proxy value within the gdb process that is a list of bytes
-instances:
- [b"foo", b"bar", b"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.
-'''
-from __future__ import with_statement
-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_BYTES_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. (PyBytesObject*)
-
- 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':
- pyo_ptr = self._gdbval.cast(PyVarObjectPtr.get_gdb_type())
- return pyo_ptr.dereference()[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_BYTES_SUBCLASS:
- return PyBytesObjectPtr
- 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 PyVarObjectPtr(PyObjectPtr):
- _typename = 'PyVarObject'
-
-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 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 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 PyBoolObjectPtr(PyLongObjectPtr):
- """
- 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.
- """
- def proxyval(self, visited):
- if PyLongObjectPtr.proxyval(self, visited):
- return True
- else:
- return False
-
-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.proxyval(visited),
- self.current_line_num(),
- self.co_name.proxyval(visited)))
- 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 PyBytesObjectPtr(PyObjectPtr):
- _typename = 'PyBytesObject'
-
- 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", "PyUnicodeObject"):
- 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()
commit dd3cb47629970fe54d5dd87825c005d51e3070be
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Wed Nov 29 16:09:30 2017 +0100
Remove our downstream systemtap instrumentation as now upstream provides us
with dtrace hooks.
diff --git a/00055-systemtap.patch b/00055-systemtap.patch
deleted file mode 100644
index a48fe7c..0000000
--- a/00055-systemtap.patch
+++ /dev/null
@@ -1,762 +0,0 @@
-diff -up Python-3.3.0rc2/configure.ac.systemtap Python-3.3.0rc2/configure.ac
---- Python-3.3.0rc2/configure.ac.systemtap 2012-09-09 05:11:14.000000000 -0400
-+++ Python-3.3.0rc2/configure.ac 2012-09-10 09:17:21.114511781 -0400
-@@ -2678,6 +2678,23 @@ if test "$with_valgrind" != no; then
- OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
- fi
-
-+# Check for systemtap support
-+# On Linux, /usr/bin/dtrace is in fact a shim to SystemTap
-+AC_MSG_CHECKING([for --with-systemtap])
-+AC_ARG_WITH([systemtap],
-+ AC_HELP_STRING([--with(out)-systemtap], [disable/enable SystemTap support]),,
-+ with_systemtap=no)
-+AC_MSG_RESULT([$with_systemtap])
-+if test "$with_systemtap" != no; then
-+ AC_DEFINE(WITH_SYSTEMTAP, 1,
-+ [Define if you want to compile in SystemTap support])
-+ SYSTEMTAPOBJS="Python/pysystemtap.o"
-+ SYSTEMTAPDEPS="\$(srcdir)/Python/pysystemtap.h"
-+fi
-+
-+AC_SUBST(SYSTEMTAPOBJS)
-+AC_SUBST(SYSTEMTAPDEPS)
-+
- # -I${DLINCLDIR} is added to the compile rule for importdl.o
- AC_SUBST(DLINCLDIR)
- DLINCLDIR=.
-diff -up Python-3.3.0rc2/Doc/howto/index.rst.systemtap Python-3.3.0rc2/Doc/howto/index.rst
---- Python-3.3.0rc2/Doc/howto/index.rst.systemtap 2012-09-09 05:10:51.000000000 -0400
-+++ Python-3.3.0rc2/Doc/howto/index.rst 2012-09-10 09:17:21.117511779 -0400
-@@ -29,4 +29,5 @@ Currently, the HOWTOs are:
- argparse.rst
- ipaddress.rst
- clinic.rst
-+ instrumentation.rst
-
-diff -up Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap Python-3.3.0rc2/Doc/howto/instrumentation.rst
---- Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap 2012-09-10 09:17:21.117511779 -0400
-+++ Python-3.3.0rc2/Doc/howto/instrumentation.rst 2012-09-10 09:17:21.117511779 -0400
-@@ -0,0 +1,295 @@
-+.. _instrumentation:
-+
-+====================================
-+Instrumenting CPython with SystemTap
-+====================================
-+
-+:author: David Malcolm <dmalcolm(a)redhat.com>
-+
-+DTrace and SystemTap are monitoring tools, each providing a way to inspect
-+what the processes on a computer system are doing. They both use
-+domain-specific languages allowing a user to write scripts which:
-+
-+ - filter which processes are to be observed
-+ - gather data from the processes of interest
-+ - generate reports on the data
-+
-+As of Python 3.3, CPython can be built with embedded "markers" that can be
-+observed by a SystemTap script, making it easier to monitor what the CPython
-+processes on a system are doing.
-+
-+.. Potentially this document could be expanded to also cover DTrace markers.
-+ However, I'm not a DTrace expert.
-+
-+.. I'm using ".. code-block:: c" for SystemTap scripts, as "c" is syntactically
-+ the closest match that Sphinx supports
-+
-+
-+Enabling the static markers
-+---------------------------
-+
-+In order to build CPython with the embedded markers for SystemTap, the
-+SystemTap development tools must be installed.
-+
-+On a Fedora or Red Hat Enterprise Linux machine, this can be done via::
-+
-+ yum install systemtap-sdt-devel
-+
-+CPython must then be configured `--with-systemtap`::
-+
-+ checking for --with-systemtap... yes
-+
-+You can verify if the SystemTap static markers are present in the built
-+binary by seeing if it contains a ".note.stapsdt" section.
-+
-+.. code-block:: bash
-+
-+ $ eu-readelf -S ./python | grep .note.stapsdt
-+ [29] .note.stapsdt NOTE 0000000000000000 00308d78 000000b8 0 0 0 4
-+
-+If you've built python as a shared library (with --enable-shared), you need
-+to look instead within the shared library. For example:
-+
-+.. code-block:: bash
-+
-+ $ eu-readelf -S libpython3.3dm.so.1.0 | grep .note.stapsdt
-+ [28] .note.stapsdt NOTE 0000000000000000 00365b68 000000b8 0 0 0 4
-+
-+Earlier versions of SystemTap stored the markers in a ".probes" section.
-+
-+For the curious, you can see the metadata for the static markers using this
-+invocation.
-+
-+.. code-block:: bash
-+
-+ $ eu-readelf -x .note.stapsdt ./python
-+
-+ Hex dump of section [29] '.note.stapsdt', 184 bytes at offset 0x308d78:
-+ 0x00000000 08000000 45000000 03000000 73746170 ....E.......stap
-+ 0x00000010 73647400 d4664b00 00000000 4fc36600 sdt..fK.....O.f.
-+ 0x00000020 00000000 488d9000 00000000 70797468 ....H.......pyth
-+ 0x00000030 6f6e0066 756e6374 696f6e5f 5f656e74 on.function__ent
-+ 0x00000040 72790038 40257261 78203840 25726478 ry.8@%rax 8@%rdx
-+ 0x00000050 202d3440 25656378 00000000 08000000 -4@%ecx........
-+ 0x00000060 46000000 03000000 73746170 73647400 F.......stapsdt.
-+ 0x00000070 0d674b00 00000000 4fc36600 00000000 .gK.....O.f.....
-+ 0x00000080 4a8d9000 00000000 70797468 6f6e0066 J.......python.f
-+ 0x00000090 756e6374 696f6e5f 5f726574 75726e00 unction__return.
-+ 0x000000a0 38402572 61782038 40257264 78202d34 8@%rax 8@%rdx -4
-+ 0x000000b0 40256563 78000000 @%ecx...
-+
-+and a sufficiently modern eu-readelf can print the metadata:
-+
-+.. code-block:: bash
-+
-+ $ eu-readelf -n ./python
-+
-+ Note section [ 1] '.note.gnu.build-id' of 36 bytes at offset 0x190:
-+ Owner Data size Type
-+ GNU 20 GNU_BUILD_ID
-+ Build ID: a28f8db1b224530b0d38ad7b82a249cf7c3f18d6
-+
-+ Note section [27] '.note.stapsdt' of 184 bytes at offset 0x1ae884:
-+ Owner Data size Type
-+ stapsdt 70 Version: 3
-+ PC: 0xe0d3a, Base: 0x14b150, Semaphore: 0x3ae882
-+ Provider: python, Name: function__return, Args: '8@%rbx 8@%r13 -4@%eax'
-+ stapsdt 69 Version: 3
-+ PC: 0xe0f37, Base: 0x14b150, Semaphore: 0x3ae880
-+ Provider: python, Name: function__entry, Args: '8@%rbx 8@%r13 -4@%eax'
-+
-+The above metadata contains information for SystemTap describing how it can
-+patch strategically-placed machine code instructions to enable the tracing
-+hooks used by a SystemTap script.
-+
-+
-+Static markers
-+--------------
-+
-+The low-level way to use the SystemTap integration is to use the static
-+markers directly. This requires you to explicitly state the binary file
-+containing them.
-+
-+For example, this script can be used to show the call/return hierarchy of a
-+Python script:
-+
-+.. code-block:: c
-+
-+ probe process('python').mark("function__entry") {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+
-+ printf("%s => %s in %s:%d\\n",
-+ thread_indent(1), funcname, filename, lineno);
-+ }
-+
-+ probe process('python').mark("function__return") {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+
-+ printf("%s <= %s in %s:%d\\n",
-+ thread_indent(-1), funcname, filename, lineno);
-+ }
-+
-+It can be invoked like this:
-+
-+.. code-block:: bash
-+
-+ $ stap \
-+ show-call-hierarchy.stp \
-+ -c ./python test.py
-+
-+The output looks like this::
-+
-+ 11408 python(8274): => __contains__ in Lib/_abcoll.py:362
-+ 11414 python(8274): => __getitem__ in Lib/os.py:425
-+ 11418 python(8274): => encode in Lib/os.py:490
-+ 11424 python(8274): <= encode in Lib/os.py:493
-+ 11428 python(8274): <= __getitem__ in Lib/os.py:426
-+ 11433 python(8274): <= __contains__ in Lib/_abcoll.py:366
-+
-+where the columns are:
-+
-+ - time in microseconds since start of script
-+
-+ - name of executable
-+
-+ - PID of process
-+
-+and the remainder indicates the call/return hierarchy as the script executes.
-+
-+For a `--enable-shared` build of CPython, the markers are contained within the
-+libpython shared library, and the probe's dotted path needs to reflect this. For
-+example, this line from the above example::
-+
-+ probe process('python').mark("function__entry") {
-+
-+should instead read::
-+
-+ probe process('python').library("libpython3.3dm.so.1.0").mark("function__entry") {
-+
-+(assuming a debug build of CPython 3.3)
-+
-+.. I'm reusing the "c:function" type for markers
-+
-+.. c:function:: function__entry(str filename, str funcname, int lineno)
-+
-+ This marker indicates that execution of a Python function has begun. It is
-+ only triggered for pure-python (bytecode) functions.
-+
-+ The filename, function name, and line number are provided back to the
-+ tracing script as positional arguments, which must be accessed using
-+ `$arg1`, `$arg2`:
-+
-+ * `$arg1` : `(const char *)` filename, accessible using `user_string($arg1)`
-+
-+ * `$arg2` : `(const char *)` function name, accessible using
-+ `user_string($arg2)`
-+
-+ * `$arg3` : `int` line number
-+
-+ * `$arg4` : `(PyFrameObject *)`, the frame being executed
-+
-+.. c:function:: function__return(str filename, str funcname, int lineno)
-+
-+ This marker is the converse of `function__entry`, and indicates that
-+ execution of a Python function has ended (either via ``return``, or via an
-+ exception). It is only triggered for pure-python (bytecode) functions.
-+
-+ The arguments are the same as for `function__entry`
-+
-+
-+Tapsets
-+-------
-+
-+The higher-level way to use the SystemTap integration is to use a "tapset":
-+SystemTap's equivalent of a library, which hides some of the lower-level
-+details of the static markers.
-+
-+Here is a tapset file, based on a non-shared build of CPython:
-+
-+.. code-block:: c
-+
-+ /*
-+ Provide a higher-level wrapping around the function__entry and
-+ function__return markers:
-+ */
-+ probe python.function.entry = process("python").mark("function__entry")
-+ {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+ frameptr = $arg4
-+ }
-+ probe python.function.return = process("python").mark("function__return")
-+ {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+ frameptr = $arg4
-+ }
-+
-+If this file is installed in SystemTap's tapset directory (e.g.
-+`/usr/share/systemtap/tapset`), then these additional probepoints become
-+available:
-+
-+.. c:function:: python.function.entry(str filename, str funcname, int lineno, frameptr)
-+
-+ This probe point indicates that execution of a Python function has begun.
-+ It is only triggered for pure-python (bytecode) functions.
-+
-+.. c:function:: python.function.return(str filename, str funcname, int lineno, frameptr)
-+
-+ This probe point is the converse of `python.function.return`, and indicates
-+ that execution of a Python function has ended (either via ``return``, or
-+ via an exception). It is only triggered for pure-python (bytecode) functions.
-+
-+
-+Examples
-+--------
-+This SystemTap script uses the tapset above to more cleanly implement the
-+example given above of tracing the Python function-call hierarchy, without
-+needing to directly name the static markers:
-+
-+.. code-block:: c
-+
-+ 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);
-+ }
-+
-+
-+The following script uses the tapset above to provide a top-like view of all
-+running CPython code, showing the top 20 most frequently-entered bytecode
-+frames, each second, across the whole system:
-+
-+.. code-block:: c
-+
-+ 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 -up Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap Python-3.3.0rc2/Lib/test/test_systemtap.py
---- Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap 2012-09-10 09:17:21.117511779 -0400
-+++ Python-3.3.0rc2/Lib/test/test_systemtap.py 2012-09-10 09:17:21.117511779 -0400
-@@ -0,0 +1,234 @@
-+# Verify that systemtap static probes work
-+#
-+import subprocess
-+import sys
-+import sysconfig
-+import os
-+import unittest
-+
-+from test.support import run_unittest, TESTFN, unlink
-+
-+if '--with-systemtap' not in sysconfig.get_config_var('CONFIG_ARGS'):
-+ raise unittest.SkipTest("Python was not configured --with-systemtap")
-+
-+try:
-+ _, stap_version = subprocess.Popen(["stap", "-V"],
-+ stdout=subprocess.PIPE,
-+ stderr=subprocess.PIPE,
-+ ).communicate()
-+except OSError:
-+ # This is what "no stap" looks like. There may, however, be other
-+ # errors that manifest this way too.
-+ raise unittest.SkipTest("Couldn't find stap on the path")
-+
-+def invoke_systemtap_script(script, cmd):
-+ # Start a child process, probing with the given systemtap script
-+ # (passed as stdin to the "stap" tool)
-+ # The script should be a bytes instance
-+ # Return (stdout, stderr) pair
-+
-+ p = subprocess.Popen(["stap", "-", '-vv', '-c', cmd],
-+ stdin=subprocess.PIPE,
-+ stdout=subprocess.PIPE,
-+ stderr=subprocess.PIPE)
-+ out, err = p.communicate(input=script)
-+ return out, err
-+
-+# Verify that stap can run a simple "hello world"-style script
-+# This can fail for various reasons:
-+# - missing kernel headers
-+# - permissions (a non-root user needs to be in the "stapdev" group)
-+TRIVIAL_STAP_SCRIPT = b'probe begin { println("hello world") exit () }'
-+
-+out, err = invoke_systemtap_script(TRIVIAL_STAP_SCRIPT, 'true')
-+if out != b'hello world\n':
-+ raise unittest.SkipTest("Test systemtap script did not run; stderr was: %s" % err)
-+
-+# We don't expect stderr to be empty, since we're invoking stap with "-vv": stap
-+# will (we hope) generate debugging output on stderr.
-+
-+def invoke_python_under_systemtap(script, pythoncode=None, pythonfile=None):
-+ # Start a child python process, probing with the given systemtap script
-+ # (passed as stdin to the "stap" tool)
-+ # The script should be a bytes instance
-+ # Return (stdout, stderr) pair
-+
-+ if pythonfile:
-+ pythoncmd = '%s %s' % (sys.executable, pythonfile)
-+ else:
-+ pythoncmd = '%s -c %r' % (sys.executable, pythoncode)
-+
-+ # The process tree of a stap invocation of a command goes through
-+ # something like this:
-+ # stap ->fork/exec(staprun; exec stapio ->f/e(-c cmd); exec staprun -r)
-+ # and this trip through setuid leads to LD_LIBRARY_PATH being dropped,
-+ # which would lead to an --enable-shared build of python failing to be
-+ # find its libpython, with an error like:
-+ # error while loading shared libraries: libpython3.3dm.so.1.0: cannot
-+ # open shared object file: No such file or directory
-+ # Hence we need to jump through some hoops to expose LD_LIBRARY_PATH to
-+ # the invoked python process:
-+ LD_LIBRARY_PATH = os.environ.get('LD_LIBRARY_PATH', '')
-+ if LD_LIBRARY_PATH:
-+ pythoncmd = 'env LD_LIBRARY_PATH=%s ' % LD_LIBRARY_PATH + pythoncmd
-+
-+ return invoke_systemtap_script(script, pythoncmd)
-+
-+# When using the static markers, we need to supply the prefix of a systemtap
-+# dotted probe point that containing the marker.
-+# See http://sourceware.org/systemtap/langref/Probe_points.html
-+#
-+# We need to determine if this is a shared-library build
-+#
-+# Note that sysconfig can get this wrong; see:
-+# http://bugs.python.org/issue14774
-+#
-+if '--enable-shared' in sysconfig.get_config_var('CONFIG_ARGS'):
-+ # For a shared-library build, the markers are in library(INSTSONAME):
-+ INSTSONAME = sysconfig.get_config_var('INSTSONAME')
-+ probe_prefix = 'process("%s").library("%s")' % (sys.executable, INSTSONAME)
-+else:
-+ # For a non-shared-library build, we can simply use sys.executable:
-+ probe_prefix = 'process("%s")' % sys.executable
-+
-+# The following script ought to generate lots of lines showing recursive
-+# function entry and return, of the form:
-+# 11408 python(8274): => __contains__ in Lib/_abcoll.py:362
-+# 11414 python(8274): => __getitem__ in Lib/os.py:425
-+# 11418 python(8274): => encode in Lib/os.py:490
-+# 11424 python(8274): <= encode in Lib/os.py:493
-+# 11428 python(8274): <= __getitem__ in Lib/os.py:426
-+# 11433 python(8274): <= __contains__ in Lib/_abcoll.py:366
-+# where the column are:
-+# - time in microseconds since start of script
-+# - name of executable
-+# - PID of process
-+# and the remainder indicates the call/return hierarchy
-+
-+hierarchy_script = ('''
-+probe %s.mark("function__entry") {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+
-+ printf("%%s => %%s in %%s:%%d\\n", thread_indent(1), funcname, filename, lineno);
-+}
-+
-+probe %s.mark("function__return") {
-+ filename = user_string($arg1);
-+ funcname = user_string($arg2);
-+ lineno = $arg3;
-+
-+ printf("%%s <= %%s in %%s:%%d\\n", thread_indent(-1), funcname, filename, lineno);
-+}
-+''' % (probe_prefix, probe_prefix)).encode('utf-8')
-+
-+
-+class ErrorDumper:
-+ # A context manager that dumps extra information if an exception is raised,
-+ # to help track down why the problem occurred
-+ def __init__(self, out, err):
-+ self.out = out
-+ self.err = err
-+
-+ def __enter__(self):
-+ pass
-+
-+ def __exit__(self, type_, value, traceback):
-+ if type_:
-+ # an exception is being raised:
-+ print('stdout: %s' % out.decode())
-+ print('stderr: %s' % err.decode())
-+
-+class SystemtapTests(unittest.TestCase):
-+
-+ def test_invoking_python(self):
-+ # Ensure that we can invoke python under stap, with a trivial stap
-+ # script:
-+ out, err = invoke_python_under_systemtap(
-+ b'probe begin { println("hello from stap") exit () }',
-+ pythoncode="print('hello from python')")
-+ with ErrorDumper(out, err):
-+ self.assertIn(b'hello from stap', out)
-+ self.assertIn(b'hello from python', out)
-+
-+ def test_function_entry(self):
-+ # Ensure that the function_entry static marker works
-+ out, err = invoke_python_under_systemtap(hierarchy_script)
-+ # stdout ought to contain various lines showing recursive function
-+ # entry and return (see above)
-+
-+ # Uncomment this for debugging purposes:
-+ # print(out.decode('utf-8'))
-+
-+ # Executing the cmdline-supplied "pass":
-+ # 0 python(8274): => <module> in <string>:1
-+ # 5 python(8274): <= <module> in <string>:1
-+ with ErrorDumper(out, err):
-+ self.assertIn(b'=> <module> in <string>:1', out,
-+ msg="stdout: %s\nstderr: %s\n" % (out, err))
-+
-+ def test_function_encoding(self):
-+ # Ensure that function names containing non-Latin 1 code
-+ # points are handled:
-+ pythonfile = TESTFN
-+ try:
-+ unlink(pythonfile)
-+ f = open(pythonfile, "wb")
-+ f.write("""
-+# Sample script with non-ASCII filename, for use by test_systemtap.py
-+# Implicitly UTF-8
-+
-+def ():
-+ '''Function with non-ASCII identifier; I believe this reads "mojibake"'''
-+ print("hello world!")
-+
-+()
-+""".encode('utf-8'))
-+ f.close()
-+
-+ out, err = invoke_python_under_systemtap(hierarchy_script,
-+ pythonfile=pythonfile)
-+ out_utf8 = out.decode('utf-8')
-+ with ErrorDumper(out, err):
-+ self.assertIn('=> <module> in %s:5' % pythonfile, out_utf8)
-+ self.assertIn(' => in %s:5' % pythonfile, out_utf8)
-+ self.assertIn(' <= in %s:7' % pythonfile, out_utf8)
-+ self.assertIn('<= <module> in %s:9' % pythonfile, out_utf8)
-+ finally:
-+ unlink(pythonfile)
-+
-+ @unittest.skipIf(sys.getfilesystemencoding() == 'ascii',
-+ 'the test filename is not encodable with ASCII')
-+ def test_filename_encoding(self):
-+ # Ensure that scripts names containing non-Latin 1 code
-+ # points are handled:
-+ pythonfile = TESTFN + '_.py'
-+ try:
-+ unlink(pythonfile)
-+ f = open(pythonfile, "wb")
-+ f.write("""
-+def foo():
-+ '''Function with non-ASCII identifier; I believe this reads "mojibake"'''
-+ print("hello world!")
-+
-+foo()
-+""".encode('utf-8'))
-+ f.close()
-+
-+ out, err = invoke_python_under_systemtap(hierarchy_script,
-+ pythonfile=pythonfile)
-+ out_utf8 = out.decode('utf-8')
-+ with ErrorDumper(out, err):
-+ self.assertIn('=> <module> in %s:2' % pythonfile, out_utf8)
-+ self.assertIn(' => foo in %s:2' % pythonfile, out_utf8)
-+ self.assertIn(' <= foo in %s:4' % pythonfile, out_utf8)
-+ self.assertIn('<= <module> in %s:6' % pythonfile, out_utf8)
-+ finally:
-+ unlink(pythonfile)
-+
-+def test_main():
-+ run_unittest(SystemtapTests)
-+
-+if __name__ == "__main__":
-+ test_main()
-diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.in
---- Python-3.3.0rc2/Makefile.pre.in.systemtap 2012-09-09 05:11:05.000000000 -0400
-+++ Python-3.3.0rc2/Makefile.pre.in 2012-09-10 09:19:51.195501518 -0400
-@@ -363,6 +363,7 @@ PYTHON_OBJS= \
- Python/formatter_unicode.o \
- Python/fileutils.o \
- Python/$(DYNLOADFILE) \
-+ @SYSTEMTAPOBJS@ \
- $(LIBOBJS) \
- $(MACHDEP_OBJS) \
- $(THREADOBJ)
-@@ -713,7 +714,8 @@ Objects/setobject.o: $(srcdir)/Objects/s
- $(OPCODETARGETS_H): $(OPCODETARGETGEN_FILES)
- $(OPCODETARGETGEN) $(OPCODETARGETS_H)
-
--Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h
-+Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h \
-+ $(srcdir)/Python/ceval_systemtap.h @SYSTEMTAPDEPS@
-
- Python/frozen.o: Python/importlib.h Python/importlib_external.h
-
-@@ -724,6 +726,13 @@ Objects/typeobject.o: $(srcdir)/Objects/
- Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
- $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc
-
-+# Only needed with --with-systemtap; not a public header:
-+$(srcdir)/Python/pysystemtap.h: $(srcdir)/Python/pysystemtap.d
-+ dtrace -o $@ $(DFLAGS) -C -h -s $(srcdir)/Python/pysystemtap.d
-+
-+Python/pysystemtap.o: $(srcdir)/Python/pysystemtap.d Python/ceval.o
-+ dtrace -o $@ $(DFLAGS) -C -G -s $(srcdir)/Python/pysystemtap.d Python/ceval.o
-+
- ############################################################################
- # Header files
-
-@@ -1345,6 +1354,7 @@ clean: pycremoval
- -rm -f Lib/lib2to3/*Grammar*.pickle
- -rm -f Programs/_testembed Programs/_freeze_importlib
- -rm -rf build
-+ -rm -f $(srcdir)/Python/pysystemtap.h
-
- profile-removal:
- find . -name '*.gc??' -exec rm -f {} ';'
-diff -up Python-3.3.0rc2/pyconfig.h.in.systemtap Python-3.3.0rc2/pyconfig.h.in
---- Python-3.3.0rc2/pyconfig.h.in.systemtap 2012-09-09 05:11:14.000000000 -0400
-+++ Python-3.3.0rc2/pyconfig.h.in 2012-09-10 09:17:21.120511781 -0400
-@@ -1306,6 +1306,9 @@
- /* Define if you want to compile in Python-specific mallocs */
- #undef WITH_PYMALLOC
-
-+/* Define if you want to compile in SystemTap support */
-+#undef WITH_SYSTEMTAP
-+
- /* Define if you want to compile in rudimentary thread support */
- #undef WITH_THREAD
-
-diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
---- Python-3.3.0rc2/Python/ceval.c.systemtap 2012-09-09 05:11:12.000000000 -0400
-+++ Python-3.3.0rc2/Python/ceval.c 2012-09-10 09:17:21.122511781 -0400
-@@ -18,6 +18,8 @@
-
- #include <ctype.h>
-
-+#include "ceval_systemtap.h"
-+
- #ifndef WITH_TSC
-
- #define READ_TIMESTAMP(var)
-@@ -1160,6 +1162,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int
- }
- }
-
-+ if (PYTHON_FUNCTION_ENTRY_ENABLED()) {
-+ systemtap_function_entry(f);
-+ }
-+
- co = f->f_code;
- names = co->co_names;
- consts = co->co_consts;
-@@ -3077,6 +3083,11 @@ fast_yield:
-
- /* pop frame */
- exit_eval_frame:
-+
-+ if (PYTHON_FUNCTION_RETURN_ENABLED()) {
-+ systemtap_function_return(f);
-+ }
-+
- Py_LeaveRecursiveCall();
- f->f_executing = 0;
- tstate->frame = f->f_back;
-diff -up Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap Python-3.3.0rc2/Python/ceval_systemtap.h
---- Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap 2012-09-10 09:17:21.122511781 -0400
-+++ Python-3.3.0rc2/Python/ceval_systemtap.h 2012-09-10 09:17:21.122511781 -0400
-@@ -0,0 +1,86 @@
-+/*
-+ Support for SystemTap static markers
-+*/
-+
-+#ifdef WITH_SYSTEMTAP
-+
-+#include "pysystemtap.h"
-+
-+/*
-+ A struct to hold all of the information gathered when one of the traceable
-+ markers is triggered
-+*/
-+struct frame_marker_info
-+{
-+ PyObject *filename_obj;
-+ PyObject *funcname_obj;
-+ const char *filename;
-+ const char *funcname;
-+ int lineno;
-+};
-+
-+static void
-+get_frame_marker_info(PyFrameObject *f, struct frame_marker_info *fmi)
-+{
-+ PyObject *ptype;
-+ PyObject *pvalue;
-+ PyObject *ptraceback;
-+
-+ PyErr_Fetch(&ptype, &pvalue, &ptraceback);
-+
-+ fmi->filename_obj = PyUnicode_EncodeFSDefault(f->f_code->co_filename);
-+ if (fmi->filename_obj) {
-+ fmi->filename = PyBytes_AsString(fmi->filename_obj);
-+ } else {
-+ fmi->filename = NULL;
-+ }
-+
-+ fmi->funcname_obj = PyUnicode_AsUTF8String(f->f_code->co_name);
-+ if (fmi->funcname_obj) {
-+ fmi->funcname = PyBytes_AsString(fmi->funcname_obj);
-+ } else {
-+ fmi->funcname = NULL;
-+ }
-+
-+ fmi->lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
-+
-+ PyErr_Restore(ptype, pvalue, ptraceback);
-+
-+}
-+
-+static void
-+release_frame_marker_info(struct frame_marker_info *fmi)
-+{
-+ Py_XDECREF(fmi->filename_obj);
-+ Py_XDECREF(fmi->funcname_obj);
-+}
-+
-+static void
-+systemtap_function_entry(PyFrameObject *f)
-+{
-+ struct frame_marker_info fmi;
-+ get_frame_marker_info(f, &fmi);
-+ PYTHON_FUNCTION_ENTRY(fmi.filename, fmi.funcname, fmi.lineno, f);
-+ release_frame_marker_info(&fmi);
-+}
-+
-+static void
-+systemtap_function_return(PyFrameObject *f)
-+{
-+ struct frame_marker_info fmi;
-+ get_frame_marker_info(f, &fmi);
-+ PYTHON_FUNCTION_RETURN(fmi.filename, fmi.funcname, fmi.lineno, f);
-+ release_frame_marker_info(&fmi);
-+}
-+
-+#else /* #ifdef WITH_SYSTEMTAP */
-+
-+/*
-+ When configured --without-systemtap, everything compiles away to nothing:
-+*/
-+#define PYTHON_FUNCTION_ENTRY_ENABLED() 0
-+#define PYTHON_FUNCTION_RETURN_ENABLED() 0
-+#define systemtap_function_entry(f)
-+#define systemtap_function_return(f)
-+
-+#endif
-diff -up Python-3.3.0rc2/Python/pysystemtap.d.systemtap Python-3.3.0rc2/Python/pysystemtap.d
---- Python-3.3.0rc2/Python/pysystemtap.d.systemtap 2012-09-10 09:17:21.122511781 -0400
-+++ Python-3.3.0rc2/Python/pysystemtap.d 2012-09-10 09:17:21.122511781 -0400
-@@ -0,0 +1,4 @@
-+provider python {
-+ probe function__entry(const char *, const char *, int, PyFrameObject *);
-+ probe function__return(const char *, const char *, int, PyFrameObject *);
-+};
diff --git a/libpython.stp b/libpython.stp
deleted file mode 100644
index f41da80..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("python3").library("LIBRARY_PATH").mark("function__entry")
-{
- filename = user_string($arg1);
- funcname = user_string($arg2);
- lineno = $arg3;
-}
-probe python.function.return = process("python3").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/python3.spec b/python3.spec
index 9b8f122..29a7d70 100644
--- a/python3.spec
+++ b/python3.spec
@@ -47,9 +47,6 @@ License: Python
# Support for the GDB debugger
%bcond_without gdb_hooks
-# Support for systemtap instrumentation
-%bcond_with systemtap
-
# The dbm.gnu module (key-value database)
%bcond_without gdbm
@@ -192,12 +189,6 @@ BuildRequires: readline-devel
BuildRequires: sqlite-devel
BuildRequires: gdb
-%if %{with systemtap}
-BuildRequires: systemtap-devel
-BuildRequires: systemtap-sdt-devel
-%global tapsetdir /usr/share/systemtap/tapset
-%endif
-
BuildRequires: tar
BuildRequires: tcl-devel
BuildRequires: tix-devel
@@ -232,19 +223,6 @@ Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
# with different Python runtimes as necessary:
Source3: macros.pybytecompile%{pybasever}
-# 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
-Source5: libpython.stp
-
-# Example systemtap script using the tapset
-# Written by wcohen, mjw, dmalcolm; not yet sent upstream
-Source6: systemtap-example.stp
-
-# Another example systemtap script that uses the tapset
-# Written by dmalcolm; not yet sent upstream
-Source7: pyfuntop.stp
-
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
# Written by bkabrda
@@ -265,13 +243,6 @@ Source11: idle3.appdata.xml
# Was Patch0 in ivazquez' python3000 specfile:
Patch1: 00001-rpath.patch
-# 00055 #
-# Systemtap support: add statically-defined probe points
-# Patch sent upstream as http://bugs.python.org/issue14776
-# with some subsequent reworking to cope with LANG=C in an rpmbuild
-# (where sys.getfilesystemencoding() == 'ascii')
-Patch55: 00055-systemtap.patch
-
# 00102 #
# Change the various install paths to use /usr/lib64/ instead or /usr/lib
# Only used when "%{_lib}" == "lib64"
@@ -611,12 +582,6 @@ so extensions for both verisons can co-exist in the same directory.
%prep
%setup -q -n Python-%{version}%{?prerel}
-%if %{with systemtap}
-# Provide an example of usage of the tapset:
-cp -a %{SOURCE6} .
-cp -a %{SOURCE7} .
-%endif # with systemtap
-
# Remove bundled libraries to ensure that we're using the system copy.
rm -r Modules/expat
rm -r Modules/zlib
@@ -631,10 +596,6 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
#
%patch1 -p1
-%if %{with systemtap}
-%patch55 -p1 -b .systemtap
-%endif
-
%if "%{_lib}" == "lib64"
%patch102 -p1
%endif
@@ -733,9 +694,6 @@ BuildPython() {
--enable-loadable-sqlite-extensions \
--with-dtrace \
--with-lto \
-%if %{with systemtap}
- --with-systemtap \
-%endif
%if %{with valgrind}
--with-valgrind \
%endif
@@ -857,16 +815,6 @@ InstallPython() {
#endif
EOF
- # Systemtap hooks
-%if %{with systemtap}
- mkdir -p %{buildroot}%{tapsetdir}
- sed \
- -e "s|LIBRARY_PATH|%{_libdir}/${PyInstSoName}|" \
- -e 's|"python3"|"python3${Postfix}"|' \
- %{_sourcedir}/libpython.stp \
- > %{buildroot}%{tapsetdir}/libpython%{pybasever}${Postfix}-%{wordsize}.stp
-%endif # with systemtap
-
echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
}
@@ -1354,12 +1302,6 @@ fi
%{_libdir}/%{py_INSTSONAME_optimized}
%{_libdir}/libpython3.so
-%if %{with systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_optimized}
-%doc systemtap-example.stp pyfuntop.stp
-%endif
%files devel
%defattr(-,root,root)
@@ -1509,11 +1451,6 @@ fi
# now; they're listed below, under "-devel":
%{_libdir}/%{py_INSTSONAME_debug}
-%if %{with systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_debug}
-%endif
# Analog of the -devel subpackage's files:
%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
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);
-}
4 years, 8 months
Architecture specific change in rpms/nodejs-grunt-contrib-nodeunit.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs-grunt-contrib-nodeunit.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/nodejs-grunt-contrib-nodeunit.git....
Change:
+ExclusiveArch: %{ix86} x86_64 %{arm} noarch
Thanks.
Full change:
============
commit f2cf703e35bfc3383ccc247b848dcc04fd33c27e
Author: Mohan Boddu <mboddu(a)bhujji.com>
Date: Wed Aug 28 06:10:12 2019 -0400
Unretirement for https://pagure.io/releng/issue/8700
Revert "nodejs-grunt-contrib-nodeunit fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675492"
This reverts commit 865c0bbfef0cc71c6a1ff0c0e87ede59682606e5.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..92635fd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/nodejs-grunt-contrib-nodeunit-0.3.2.tar.gz
+/docs-v0.3.3.tar.bz2
+/grunt-contrib-nodeunit-0.3.3.tgz
+/tests-v0.3.3.tar.bz2
+/grunt-contrib-nodeunit-0.4.1.tar.gz
diff --git a/dead.package b/dead.package
deleted file mode 100644
index 7bf3ff5..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-nodejs-grunt-contrib-nodeunit fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675492
diff --git a/nodejs-grunt-contrib-nodeunit-junit.patch b/nodejs-grunt-contrib-nodeunit-junit.patch
new file mode 100644
index 0000000..bc1acb6
--- /dev/null
+++ b/nodejs-grunt-contrib-nodeunit-junit.patch
@@ -0,0 +1,32 @@
+commit 95c374348a50bd1b1a07a4f82f7f630d240bf843
+Author: Tom Hughes <tom(a)compton.nu>
+Date: Sun Nov 22 00:43:09 2015 +0000
+
+ Fix test for changes in junit reporter
+
+ I'm not clear why, but the junit reporter seems to report one
+ error and one failure now instead of two errors.
+
+diff --git a/test/nodeunit_test.js b/test/nodeunit_test.js
+index a5f8cbf..6ef069e 100644
+--- a/test/nodeunit_test.js
++++ b/test/nodeunit_test.js
+@@ -62,7 +62,7 @@ exports.nodeunit = {
+ });
+ },
+ junit: function(test) {
+- test.expect(4);
++ test.expect(5);
+ grunt.util.spawn({
+ grunt: true,
+ args: ['test-junit:fail', '--no-color'],
+@@ -73,7 +73,8 @@ exports.nodeunit = {
+ var junitContents = grunt.util.normalizelf(grunt.file.read(junitFile));
+
+ test.ok(junitContents.indexOf('<testsuite name="fail.js"') !== -1, 'testsuite element');
+- test.ok(junitContents.indexOf('errors="2"') !== -1, 'Two errors detected');
++ test.ok(junitContents.indexOf('errors="1"') !== -1, 'One errore detected');
++ test.ok(junitContents.indexOf('failures="1"') !== -1, 'One failure detected');
+ test.ok(junitContents.indexOf('AssertionError: this value should be truthy') !== -1, 'Assertion');
+ test.ok(junitContents.indexOf('fail - failSupertestError') !== -1, 'Failure message');
+
diff --git a/nodejs-grunt-contrib-nodeunit.spec b/nodejs-grunt-contrib-nodeunit.spec
new file mode 100644
index 0000000..261bc55
--- /dev/null
+++ b/nodejs-grunt-contrib-nodeunit.spec
@@ -0,0 +1,114 @@
+%{?nodejs_find_provides_and_requires}
+
+%global enable_tests 1
+
+Name: nodejs-grunt-contrib-nodeunit
+Version: 0.4.1
+Release: 9%{?dist}
+Summary: Run Nodeunit unit tests with grunt
+License: MIT
+URL: https://github.com/gruntjs/grunt-contrib-nodeunit
+Source0: https://github.com/gruntjs/grunt-contrib-nodeunit/archive/v%{version}/gru...
+Patch0: nodejs-grunt-contrib-nodeunit-junit.patch
+Patch1: nodejs-grunt-contrib-nodeunit_fix-operator-test.patch
+
+BuildArch: noarch
+%if 0%{?fedora} >= 19
+ExclusiveArch: %{nodejs_arches} noarch
+%else
+ExclusiveArch: %{ix86} x86_64 %{arm} noarch
+%endif
+
+BuildRequires: nodejs-packaging
+
+%if 0%{?enable_tests}
+BuildRequires: npm(grunt-cli)
+BuildRequires: npm(grunt-contrib-clean)
+BuildRequires: npm(grunt-contrib-internal)
+BuildRequires: npm(nodeunit)
+BuildRequires: npm(tap)
+%endif
+
+%description
+%{summary}.
+
+
+%prep
+%setup -q -n grunt-contrib-nodeunit-%{version}
+%patch0 -p1
+%patch1 -p1
+#find docs/ -size 0 -delete
+
+
+%build
+#nothing to do
+
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/grunt-contrib-nodeunit
+cp -pr package.json tasks/ \
+ %{buildroot}%{nodejs_sitelib}/grunt-contrib-nodeunit
+
+%nodejs_symlink_deps
+
+
+%check
+%nodejs_symlink_deps --check
+%if 0%{?enable_tests}
+%{_bindir}/grunt nodeunit
+%else
+%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
+%endif
+
+
+%files
+%doc README.md docs/
+%license LICENSE-MIT
+%{nodejs_sitelib}/grunt-contrib-nodeunit
+
+
+%changelog
+* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Feb 08 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Feb 22 2016 Jared Smith <jsmith(a)fedoraproject.org> - 0.4.1-3
+- Fix FTBFS for failing test
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Sun Nov 22 2015 Tom Hughes <tom(a)compton.nu> - 0.4.1-1
+- update to 0.4.1 upstream release
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.3.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.3.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Sat Apr 19 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.3.3-2
+- update to upstream release 0.3.3
+
+* Mon Feb 24 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.3.2-1
+- update to upstream release 0.3.2
+- take Source0 from GitHub as the NPM tarball is missing several useful files
+- add missing BuildRequires
+
+* Fri Jun 21 2013 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.2.0-1
+- initial package
+
diff --git a/nodejs-grunt-contrib-nodeunit_fix-operator-test.patch b/nodejs-grunt-contrib-nodeunit_fix-operator-test.patch
new file mode 100644
index 0000000..da63998
--- /dev/null
+++ b/nodejs-grunt-contrib-nodeunit_fix-operator-test.patch
@@ -0,0 +1,19 @@
+diff --git a/test/nodeunit_test.js b/test/nodeunit_test.js
+index a5f8cbf..9b4f4c0 100644
+--- a/test/nodeunit_test.js
++++ b/test/nodeunit_test.js
+@@ -10,12 +10,12 @@ exports.nodeunit = {
+ test.done();
+ },
+ fail: function(test) {
+- test.expect(3);
++ test.expect(2);
+ grunt.util.spawn({
+ grunt: true,
+ args: ['test:fail', '--no-color'],
+ }, function(err, result) {
+- test.ok(result.stdout.indexOf("Operator:") !== -1, 'Operator should display for multiline.');
++// test.ok(result.stdout.indexOf("Operator:") !== -1, 'Operator should display for multiline.');
+ test.ok(result.stdout.indexOf('Message: this value should be truthy') !== -1, 'Message should have been displayed.');
+ test.ok(result.stdout.indexOf('Error: undefined == true') !== -1, 'Error should have been displayed.');
+ test.done();
diff --git a/sources b/sources
new file mode 100644
index 0000000..856464f
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+c7f650df8c82ad44f6ad55156b032dac grunt-contrib-nodeunit-0.4.1.tar.gz
4 years, 8 months
Architecture specific change in rpms/nodeunit.git
by githook-noreply@fedoraproject.org
The package rpms/nodeunit.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/nodeunit.git/commit/?id=070f26161....
Change:
+ExclusiveArch: %{ix86} x86_64 %{arm} noarch
Thanks.
Full change:
============
commit 070f261614cf218a540fa15a8d2a37d18f4bb7c8
Author: Mohan Boddu <mboddu(a)bhujji.com>
Date: Wed Aug 28 06:09:26 2019 -0400
Unretirement for https://pagure.io/releng/issue/8700
Revert "nodeunit fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675547"
This reverts commit c562d1d714fd599d1d91639bf68e3d9bf5f6d65c.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cc6a5e0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/nodeunit-0.8.6.tgz
+/nodeunit-0.9.1.tgz
diff --git a/dead.package b/dead.package
deleted file mode 100644
index 1edc891..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-nodeunit fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675547
diff --git a/nodeunit-0.8.6-Load-system-modules.patch b/nodeunit-0.8.6-Load-system-modules.patch
new file mode 100644
index 0000000..fad5b45
--- /dev/null
+++ b/nodeunit-0.8.6-Load-system-modules.patch
@@ -0,0 +1,136 @@
+From b12f1c217b958a826c222de2a08765924636618b Mon Sep 17 00:00:00 2001
+From: Jamie Nguyen <j(a)jamielinux.com>
+Date: Sun, 23 Feb 2014 15:38:12 +0000
+Subject: [PATCH] Load system modules
+
+---
+ bin/nodeunit | 2 +-
+ examples/browser/nodeunit.js | 4 ++--
+ lib/core.js | 2 +-
+ lib/nodeunit.js | 2 +-
+ lib/reporters/junit.js | 4 ++--
+ lib/types.js | 2 +-
+ lib/utils.js | 2 +-
+ test/test-base.js | 2 +-
+ 8 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/bin/nodeunit b/bin/nodeunit
+index 4b3f4d5..f2c79ba 100755
+--- a/bin/nodeunit
++++ b/bin/nodeunit
+@@ -8,7 +8,7 @@ var
+ // lands in core.
+ //
+ // Until then, use console.log from npm (https://gist.github.com/1077544)
+-require('../deps/console.log');
++require('console.log');
+
+ //require.paths.push(process.cwd());
+ var args = (process.ARGV || process.argv).slice(2);
+diff --git a/examples/browser/nodeunit.js b/examples/browser/nodeunit.js
+index af7fd0b..bca5d1f 100644
+--- a/examples/browser/nodeunit.js
++++ b/examples/browser/nodeunit.js
+@@ -1457,7 +1457,7 @@ assert.ifError = function (err) { if (err) {throw err;}};
+ */
+
+ //var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER
+-// async = require('../deps/async'); //@REMOVE_LINE_FOR_BROWSER
++// async = require('async'); //@REMOVE_LINE_FOR_BROWSER
+
+
+ /**
+@@ -1647,7 +1647,7 @@ exports.options = function (opt) {
+ * Module dependencies
+ */
+
+-//var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER
++//var async = require('async'), //@REMOVE_LINE_FOR_BROWSER
+ // types = require('./types'); //@REMOVE_LINE_FOR_BROWSER
+
+
+diff --git a/lib/core.js b/lib/core.js
+index 8ff031b..483a662 100644
+--- a/lib/core.js
++++ b/lib/core.js
+@@ -13,7 +13,7 @@
+ * Module dependencies
+ */
+
+-var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER
++var async = require('async'), //@REMOVE_LINE_FOR_BROWSER
+ nodeunit = require('./nodeunit'), //@REMOVE_LINE_FOR_BROWSER
+ types = require('./types'); //@REMOVE_LINE_FOR_BROWSER
+
+diff --git a/lib/nodeunit.js b/lib/nodeunit.js
+index 7d33c7b..7212ade 100644
+--- a/lib/nodeunit.js
++++ b/lib/nodeunit.js
+@@ -8,7 +8,7 @@
+ * Module dependencies
+ */
+
+-var async = require('../deps/async'),
++var async = require('async'),
+ types = require('./types'),
+ utils = require('./utils'),
+ core = require('./core'),
+diff --git a/lib/reporters/junit.js b/lib/reporters/junit.js
+index 5400526..ac6d545 100644
+--- a/lib/reporters/junit.js
++++ b/lib/reporters/junit.js
+@@ -12,10 +12,10 @@ var nodeunit = require('../nodeunit'),
+ utils = require('../utils'),
+ fs = require('fs'),
+ path = require('path'),
+- async = require('../../deps/async'),
++ async = require('async'),
+ AssertionError = require('assert').AssertionError,
+ child_process = require('child_process'),
+- ejs = require('../../deps/ejs');
++ ejs = require('ejs');
+
+
+ /**
+diff --git a/lib/types.js b/lib/types.js
+index 879edd8..65956f5 100644
+--- a/lib/types.js
++++ b/lib/types.js
+@@ -14,7 +14,7 @@
+ */
+
+ var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER
+- async = require('../deps/async'); //@REMOVE_LINE_FOR_BROWSER
++ async = require('async'); //@REMOVE_LINE_FOR_BROWSER
+
+
+ /**
+diff --git a/lib/utils.js b/lib/utils.js
+index 898820f..dc8b736 100644
+--- a/lib/utils.js
++++ b/lib/utils.js
+@@ -8,7 +8,7 @@
+ * Module dependencies
+ */
+
+-var async = require('../deps/async'),
++var async = require('async'),
+ fs = require('fs'),
+ util = require('util'),
+ Script = require('vm').Script,
+diff --git a/test/test-base.js b/test/test-base.js
+index 5335046..b6ff611 100644
+--- a/test/test-base.js
++++ b/test/test-base.js
+@@ -10,7 +10,7 @@
+ */
+
+ var assert = require('assert'), // @REMOVE_LINE_FOR_BROWSER
+- async = require('../deps/async'), // @REMOVE_LINE_FOR_BROWSER
++ async = require('async'), // @REMOVE_LINE_FOR_BROWSER
+ nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER
+
+
+--
+1.8.5.3
+
diff --git a/nodeunit-0.8.6-Use-system-assert.js.patch b/nodeunit-0.8.6-Use-system-assert.js.patch
new file mode 100644
index 0000000..704fd71
--- /dev/null
+++ b/nodeunit-0.8.6-Use-system-assert.js.patch
@@ -0,0 +1,123 @@
+From 671b19bc318293063a1a636175a3c2b102a4bade Mon Sep 17 00:00:00 2001
+From: Jamie Nguyen <j(a)jamielinux.com>
+Date: Sun, 23 Feb 2014 15:45:48 +0000
+Subject: [PATCH] Use system assert.js
+
+---
+ lib/nodeunit.js | 2 +-
+ lib/reporters/default.js | 2 +-
+ lib/reporters/eclipse.js | 2 +-
+ lib/reporters/machineout.js | 2 +-
+ lib/reporters/nested.js | 2 +-
+ lib/reporters/verbose.js | 2 +-
+ lib/types.js | 2 +-
+ test/test-bettererrors.js | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/lib/nodeunit.js b/lib/nodeunit.js
+index 7212ade..3b5c527 100644
+--- a/lib/nodeunit.js
++++ b/lib/nodeunit.js
+@@ -13,7 +13,7 @@ var async = require('async'),
+ utils = require('./utils'),
+ core = require('./core'),
+ reporters = require('./reporters'),
+- assert = require('./assert'),
++ assert = require('assert'),
+ path = require('path'),
+ events = require('events');
+
+diff --git a/lib/reporters/default.js b/lib/reporters/default.js
+index 0de3f23..3102038 100644
+--- a/lib/reporters/default.js
++++ b/lib/reporters/default.js
+@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'),
+ fs = require('fs'),
+ track = require('../track'),
+ path = require('path'),
+- AssertionError = require('../assert').AssertionError;
++ AssertionError = require('assert').AssertionError;
+
+ /**
+ * Reporter info string
+diff --git a/lib/reporters/eclipse.js b/lib/reporters/eclipse.js
+index c56a4b8..1d3a64a 100644
+--- a/lib/reporters/eclipse.js
++++ b/lib/reporters/eclipse.js
+@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'),
+ fs = require('fs'),
+ track = require('../track'),
+ path = require('path'),
+- AssertionError = require('../assert').AssertionError;
++ AssertionError = require('assert').AssertionError;
+
+ /**
+ * Reporter info string
+diff --git a/lib/reporters/machineout.js b/lib/reporters/machineout.js
+index c58ee40..c35d451 100644
+--- a/lib/reporters/machineout.js
++++ b/lib/reporters/machineout.js
+@@ -17,7 +17,7 @@ var nodeunit = require('../nodeunit'),
+ fs = require('fs'),
+ track = require('../track'),
+ path = require('path'),
+- AssertionError = require('../assert').AssertionError;
++ AssertionError = require('assert').AssertionError;
+
+ /**
+ * Reporter info string
+diff --git a/lib/reporters/nested.js b/lib/reporters/nested.js
+index 62f3d79..8545614 100644
+--- a/lib/reporters/nested.js
++++ b/lib/reporters/nested.js
+@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'),
+ fs = require('fs'),
+ track = require('../track'),
+ path = require('path'),
+- AssertionError = require('../assert').AssertionError;
++ AssertionError = require('assert').AssertionError;
+
+ /**
+ * Reporter info string
+diff --git a/lib/reporters/verbose.js b/lib/reporters/verbose.js
+index 6c6083a..1d7e849 100644
+--- a/lib/reporters/verbose.js
++++ b/lib/reporters/verbose.js
+@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'),
+ fs = require('fs'),
+ track = require('../track'),
+ path = require('path');
+- AssertionError = require('../assert').AssertionError;
++ AssertionError = require('assert').AssertionError;
+
+ /**
+ * Reporter info string
+diff --git a/lib/types.js b/lib/types.js
+index 65956f5..1b3b181 100644
+--- a/lib/types.js
++++ b/lib/types.js
+@@ -13,7 +13,7 @@
+ * Module dependencies
+ */
+
+-var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER
++var assert = require('assert'), //@REMOVE_LINE_FOR_BROWSER
+ async = require('async'); //@REMOVE_LINE_FOR_BROWSER
+
+
+diff --git a/test/test-bettererrors.js b/test/test-bettererrors.js
+index 4cae570..e924d1a 100644
+--- a/test/test-bettererrors.js
++++ b/test/test-bettererrors.js
+@@ -2,7 +2,7 @@
+ * Test utils.betterErrors. utils.betterErrors should provide sensible error messages even when the error does not
+ * contain expected, actual or operator.
+ */
+-var assert = require("../lib/assert");
++var assert = require("assert");
+ var should = require("should");
+ var types = require("../lib/types");
+ var util = require('util');
+--
+1.8.5.3
+
diff --git a/nodeunit-0.9.1-Use-fs-stat.patch b/nodeunit-0.9.1-Use-fs-stat.patch
new file mode 100644
index 0000000..ad80b9a
--- /dev/null
+++ b/nodeunit-0.9.1-Use-fs-stat.patch
@@ -0,0 +1,28 @@
+commit a796685799f368964d76c788e6d41ca7dc59c295
+Author: Tom Hughes <tom(a)compton.nu>
+Date: Wed Jan 20 18:12:26 2016 +0000
+
+ Replace path.exists with fs.stat
+
+diff --git a/test/test-runfiles.js b/test/test-runfiles.js
+index ecbdfd8..2c276de 100644
+--- a/test/test-runfiles.js
++++ b/test/test-runfiles.js
+@@ -1,6 +1,5 @@
+ var assert = require('assert'),
+ fs = require('fs'),
+- path = require('path'),
+ nodeunit = require('../lib/nodeunit');
+
+
+@@ -116,8 +115,8 @@ exports.testEmptyDir = function (test) {
+ var dir2 = __dirname + '/fixtures/dir2';
+
+ // git doesn't like empty directories, so we have to create one
+- path.exists(dir2, function (exists) {
+- if (!exists) {
++ fs.stat(dir2, function (err) {
++ if (err) {
+ fs.mkdirSync(dir2, 0777);
+ }
+
diff --git a/nodeunit-0.9.1-Use-newer-should.patch b/nodeunit-0.9.1-Use-newer-should.patch
new file mode 100644
index 0000000..6c37c8c
--- /dev/null
+++ b/nodeunit-0.9.1-Use-newer-should.patch
@@ -0,0 +1,53 @@
+commit 3c5b085ca59478b68f6fa0d9425405b68104b5ac
+Author: Tom Hughes <tom(a)compton.nu>
+Date: Sat Nov 21 12:24:47 2015 +0000
+
+ Fix tests for newer versions of should
+
+diff --git a/test/test-bettererrors.js b/test/test-bettererrors.js
+index 35ac798..dc05e8f 100644
+--- a/test/test-bettererrors.js
++++ b/test/test-bettererrors.js
+@@ -15,9 +15,9 @@ function betterErrorStringFromError(error) {
+ }
+
+ function performBasicChecks(betterErrorString) {
+- betterErrorString.should.include("AssertionError");
+- betterErrorString.should.include("test-bettererrors");
+- //betterErrorString.should.not.include("undefined");
++ betterErrorString.should.containEql("AssertionError");
++ betterErrorString.should.containEql("test-bettererrors");
++ //betterErrorString.should.not.containEql("undefined");
+ }
+
+ /**
+@@ -30,9 +30,9 @@ exports.testEqual = function (test) {
+ } catch (error) {
+ var betterErrorString = betterErrorStringFromError(error);
+ performBasicChecks(betterErrorString);
+- betterErrorString.should.include("true");
+- betterErrorString.should.include("false");
+- betterErrorString.should.include("==");
++ betterErrorString.should.containEql("true");
++ betterErrorString.should.containEql("false");
++ betterErrorString.should.containEql("==");
+ test.done();
+ }
+ };
+@@ -66,11 +66,11 @@ exports.testErrorIsNotAssertion = function (test) {
+ throw new Error("test error");
+ } catch (error) {
+ var betterErrorString = betterErrorStringFromError(error);
+- betterErrorString.should.not.include("AssertionError");
+- betterErrorString.should.include("Error");
+- betterErrorString.should.include("test error");
+- betterErrorString.should.include("test-bettererrors");
+- betterErrorString.should.not.include("undefined");
++ betterErrorString.should.not.containEql("AssertionError");
++ betterErrorString.should.containEql("Error");
++ betterErrorString.should.containEql("test error");
++ betterErrorString.should.containEql("test-bettererrors");
++ betterErrorString.should.not.containEql("undefined");
+ test.done();
+ }
+ };
diff --git a/nodeunit.spec b/nodeunit.spec
new file mode 100644
index 0000000..cc8d261
--- /dev/null
+++ b/nodeunit.spec
@@ -0,0 +1,192 @@
+%{?nodejs_find_provides_and_requires}
+
+%global enable_tests 1
+
+Name: nodeunit
+Version: 0.9.1
+Release: 11%{?dist}
+Summary: Easy asynchronous unit testing framework for Node.js
+License: MIT
+URL: https://github.com/caolan/nodeunit
+Source0: https://registry.npmjs.org/nodeunit/-/nodeunit-%{version}.tgz
+Patch0: %{name}-0.8.6-Load-system-modules.patch
+Patch1: %{name}-0.8.6-Use-system-assert.js.patch
+Patch2: %{name}-0.9.1-Use-newer-should.patch
+Patch3: %{name}-0.9.1-Use-fs-stat.patch
+
+BuildArch: noarch
+%if 0%{?fedora} >= 19
+ExclusiveArch: %{nodejs_arches} noarch
+%else
+ExclusiveArch: %{ix86} x86_64 %{arm} noarch
+%endif
+
+BuildRequires: nodejs-packaging
+
+%if 0%{?enable_tests}
+BuildRequires: coffee-script
+BuildRequires: expresso
+BuildRequires: npm(async)
+BuildRequires: npm(console.log)
+BuildRequires: npm(ejs)
+BuildRequires: npm(paperboy)
+BuildRequires: npm(should)
+BuildRequires: npm(tap)
+%endif
+
+%description
+Nodeunit provides an easy asynchronous unit testing framework for Node.js:
+ - helps you avoid common pitfalls when testing asynchronous code
+ - easy to add test cases with setUp and tearDown functions if you wish
+ - flexible reporters for custom output
+ - built-in support for HTML and jUnit XML
+ - allows the use of mocks and stubs
+
+
+%prep
+%setup -q -n package
+# Remove bundled dependencies
+rm -rf deps/
+rm -f lib/assert.js
+# The requires need to be amended to use the unbundled dependencies.
+%patch0 -p1
+%patch1 -p1
+# Fix some tests for changes in npm(should)
+%patch2 -p1
+# Fix use of path.exists in tests
+%patch3 -p1
+
+%nodejs_fixdep async '^1.5.0'
+%nodejs_fixdep console.log '~0.1'
+%nodejs_fixdep ejs '~1.0'
+%nodejs_fixdep tap
+
+
+%build
+#nothing to do
+
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/nodeunit
+cp -pr package.json index.js lib/ \
+ %{buildroot}%{nodejs_sitelib}/nodeunit
+install -p -D -m0755 bin/nodeunit \
+ %{buildroot}%{nodejs_sitelib}/nodeunit/bin/nodeunit
+mkdir -p %{buildroot}%{_bindir}
+ln -sf %{nodejs_sitelib}/nodeunit/bin/nodeunit \
+ %{buildroot}%{_bindir}/nodeunit
+
+install -p -D -m0644 man1/nodeunit.1 \
+ %{buildroot}%{_mandir}/man1/nodeunit.1
+
+# Put non-javascript arch independent files in _datadir to comply with Node.js
+# packaging guidelines.
+mkdir -p %{buildroot}%{_datadir}/nodeunit/bin
+install -p -D -m0644 bin/nodeunit.json \
+ %{buildroot}%{_datadir}/nodeunit/bin/nodeunit.json
+cp -pr share/ %{buildroot}%{_datadir}/nodeunit
+mkdir -p %{buildroot}%{nodejs_sitelib}/nodeunit/bin
+ln -sf %{_datadir}/nodeunit/bin/nodeunit.json \
+ %{buildroot}%{nodejs_sitelib}/nodeunit/bin/nodeunit.json
+ln -sf %{_datadir}/nodeunit/share \
+ %{buildroot}%{nodejs_sitelib}/nodeunit/share
+
+
+%nodejs_symlink_deps
+
+
+%check
+%nodejs_symlink_deps --check
+%{__nodejs} -e 'require("./")'
+%if 0%{?enable_tests}
+# Fails in Koji
+rm -f test/test-httputil.js
+%__nodejs ./bin/nodeunit test --reporter tap
+%else
+%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
+%endif
+
+
+%files
+%doc CONTRIBUTORS.md README.md doc/ examples/
+%license LICENSE
+%{nodejs_sitelib}/nodeunit
+%{_bindir}/nodeunit
+%{_datadir}/nodeunit
+%{_mandir}/man1/nodeunit.1*
+
+
+%changelog
+* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Feb 08 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed Jul 13 2016 Jared Smith <jsmith(a)fedoraproject.org> - 0.9.1-5
+- Update npm(tap) version
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 20 2016 Tom Hughes <tom(a)compton.nu> - 0.9.1-3
+- Replace path.exists with fs.stat in tests
+
+* Sat Nov 21 2015 Tom Hughes <tom(a)compton.nu> - 0.9.1-2
+- Update npm(tap) dependency
+
+* Sat Nov 21 2015 Tom Hughes <tom(a)compton.nu> - 0.9.1-1
+- Update to 0.9.1 upstream release
+- Update npm(async) dependency
+- Fix tests for newer npm(should)
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.8.6-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.8.6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Sat Apr 19 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.6-4
+- fix version of npm(ejs) dependency
+
+* Sun Mar 02 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.6-3
+- fix broken symlink
+
+* Mon Feb 24 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.6-2
+- disable test/test-httputil.js as it fails in Koji
+
+* Sun Feb 23 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.6-1
+- update to upstream release 0.8.6
+- remove lib/assert.js
+
+* Sun Feb 23 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.1-3
+- fix summary and description
+- use patch instead of sed
+
+* Sun Feb 23 2014 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.1-2
+- remove nodejs-json2 dependency as it is not needed either for runtime or
+ for the unit tests
+
+* Wed Aug 28 2013 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.1-1
+- update to upstream release 0.8.1
+- remove patch that has been upstreamed
+- put non-javascript arch independent files in _datadir to comply with Node.js
+ packaging guidelines
+
+* Wed May 29 2013 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.8.0-1
+- update to upstream release 0.8.0
+
+* Sun Feb 17 2013 Jamie Nguyen <jamielinux(a)fedoraproject.org> - 0.7.4-1
+- initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..0aac8fc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+473d3dbc4a6e56345c8c6fd80a54325d nodeunit-0.9.1.tgz
4 years, 8 months
Architecture specific change in rpms/python37.git
by githook-noreply@fedoraproject.org
The package rpms/python37.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/python37.git/commit/?id=490fd6101....
Change:
+%ifnarch s390 %{mips} riscv64
Thanks.
Full change:
============
commit 490fd610110a818fef850110f04963149b7ea184
Author: Mohan Boddu <mboddu(a)bhujji.com>
Date: Wed Aug 28 05:06:56 2019 -0400
Unretirement for https://pagure.io/releng/issue/8674
Revert "Provided by the python3 package. Will be reintroduced when python3 is Python 3.8."
This reverts commit 239f1db3b6e271ea1e8c68f28e157b88291df632.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1107137
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/*.tar.*
+/*.src.rpm
+/results_python3*
diff --git a/00001-rpath.patch b/00001-rpath.patch
new file mode 100644
index 0000000..9fae54c
--- /dev/null
+++ b/00001-rpath.patch
@@ -0,0 +1,19 @@
+diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py
+--- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath 2009-09-04 17:29:34.000000000 -0400
++++ Python-3.1.1/Lib/distutils/unixccompiler.py 2009-09-04 17:49:54.000000000 -0400
+@@ -141,6 +141,15 @@ 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 = super()._fix_lib_args(
++ 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):
+ fixed_args = self._fix_compile_args(None, macros, include_dirs)
diff --git a/00102-lib64.patch b/00102-lib64.patch
new file mode 100644
index 0000000..b082083
--- /dev/null
+++ b/00102-lib64.patch
@@ -0,0 +1,192 @@
+diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
+index 0258d3d..4b969bf 100644
+--- a/Lib/distutils/command/install.py
++++ b/Lib/distutils/command/install.py
+@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
+ 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$abiflags/$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 e07a6c8..554740d 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -129,8 +129,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/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py
+index 287ab19..d4c05e0 100644
+--- a/Lib/distutils/tests/test_install.py
++++ b/Lib/distutils/tests/test_install.py
+@@ -57,8 +57,9 @@ class InstallTestCase(support.TempdirManager,
+ 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/Lib/site.py b/Lib/site.py
+index 7dc1b04..85016b4 100644
+--- a/Lib/site.py
++++ b/Lib/site.py
+@@ -334,11 +334,15 @@ def getsitepackages(prefixes=None):
+ seen.add(prefix)
+
+ if os.sep == '/':
++ sitepackages.append(os.path.join(prefix, "lib64",
++ "python" + sys.version[:3],
++ "site-packages"))
+ sitepackages.append(os.path.join(prefix, "lib",
+ "python%d.%d" % sys.version_info[:2],
+ "site-packages"))
+ 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/sysconfig.py b/Lib/sysconfig.py
+index 9ee4d31..53c8606 100644
+--- a/Lib/sysconfig.py
++++ b/Lib/sysconfig.py
+@@ -20,10 +20,10 @@ __all__ = [
+
+ _INSTALL_SCHEMES = {
+ 'posix_prefix': {
+- 'stdlib': '{installed_base}/lib/python{py_version_short}',
+- 'platstdlib': '{platbase}/lib/python{py_version_short}',
++ 'stdlib': '{installed_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':
+ '{installed_base}/include/python{py_version_short}{abiflags}',
+ 'platinclude':
+@@ -62,10 +62,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/Lib/test/test_site.py b/Lib/test/test_site.py
+index 266adf0..e8513b6 100644
+--- a/Lib/test/test_site.py
++++ b/Lib/test/test_site.py
+@@ -275,8 +275,8 @@ class HelperFunctionsTests(unittest.TestCase):
+ dirs = site.getsitepackages()
+ if os.sep == '/':
+ # OS X, Linux, FreeBSD, etc
+- self.assertEqual(len(dirs), 1)
+- wanted = os.path.join('xoxo', 'lib',
++ self.assertEqual(len(dirs), 2)
++ wanted = os.path.join('xoxo', 'lib64',
+ 'python%d.%d' % sys.version_info[:2],
+ 'site-packages')
+ self.assertEqual(dirs[0], wanted)
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 59ba9d4..5780ed8 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -133,7 +133,7 @@ LIBDIR= @libdir@
+ MANDIR= @mandir@
+ INCLUDEDIR= @includedir@
+ CONFINCLUDEDIR= $(exec_prefix)/include
+-SCRIPTDIR= $(prefix)/lib
++SCRIPTDIR= $(prefix)/lib64
+ ABIFLAGS= @ABIFLAGS@
+
+ # Detailed destination directories
+diff --git a/Modules/getpath.c b/Modules/getpath.c
+index 85e737b..2a1fc79 100644
+--- a/Modules/getpath.c
++++ b/Modules/getpath.c
+@@ -500,7 +500,7 @@ calculate_exec_prefix(const _PyCoreConfig *core_config,
+ "Could not find platform dependent libraries <exec_prefix>\n");
+ }
+ wcsncpy(exec_prefix, calculate->exec_prefix, MAXPATHLEN);
+- joinpath(exec_prefix, L"lib/lib-dynload");
++ joinpath(exec_prefix, L"lib64/lib-dynload");
+ }
+ /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
+ }
+@@ -742,7 +742,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix)
+ else {
+ wcsncpy(calculate->zip_path, calculate->prefix, MAXPATHLEN);
+ }
+- joinpath(calculate->zip_path, L"lib/python00.zip");
++ joinpath(calculate->zip_path, L"lib64/python00.zip");
+
+ /* Replace "00" with version */
+ size_t bufsz = wcslen(calculate->zip_path);
+@@ -867,7 +867,7 @@ calculate_init(PyCalculatePath *calculate,
+ if (!calculate->prefix) {
+ return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
+ }
+- calculate->lib_python = Py_DecodeLocale("lib/python" VERSION, &len);
++ calculate->lib_python = Py_DecodeLocale("lib64/python" VERSION, &len);
+ if (!calculate->lib_python) {
+ return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
+ }
+diff --git a/setup.py b/setup.py
+index f1933f7..450cd8a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -531,7 +531,7 @@ class PyBuildExt(build_ext):
+ # directories (i.e. '.' and 'Include') must be first. See issue
+ # 10520.
+ 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')
+ # only change this for cross builds for 3.3, issues on Mageia
+ if cross_compiling:
+@@ -830,11 +830,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:
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
new file mode 100644
index 0000000..5bfff87
--- /dev/null
+++ b/00111-no-static-lib.patch
@@ -0,0 +1,53 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 0eddd13..7ed4f3c 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -565,7 +565,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir)
+
+ # Build the interpreter
+-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
++$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY)
+ $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
+ platform: $(BUILDPYTHON) pybuilddir.txt
+@@ -609,12 +609,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+
+-
+-# Build static library
+-$(LIBRARY): $(LIBRARY_OBJS)
+- -rm -f $@
+- $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS)
+-
+ libpython$(LDVERSION).so: $(LIBRARY_OBJS)
+ if test $(INSTSONAME) != $(LDLIBRARY); then \
+ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
+@@ -702,7 +696,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
+ echo "-----------------------------------------------"; \
+ fi
+
+-Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
++Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY)
+ $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
+ ############################################################################
+@@ -1460,17 +1454,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
+ else true; \
+ fi; \
+ done
+- @if test -d $(LIBRARY); then :; else \
+- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
+- if test "$(SHLIB_SUFFIX)" = .dll; then \
+- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
+- else \
+- $(INSTALL_DATA) $(LIBRARY) $(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) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
+ $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch
new file mode 100644
index 0000000..77dc6ec
--- /dev/null
+++ b/00132-add-rpmbuild-hooks-to-unittest.patch
@@ -0,0 +1,46 @@
+diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py
+--- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
++++ Python-3.2.2/Lib/unittest/case.py 2011-09-09 06:35:16.365568382 -0400
+@@ -3,6 +3,7 @@
+ import sys
+ import functools
+ import difflib
++import os
+ import logging
+ import pprint
+ import re
+@@ -101,5 +102,21 @@ def expectedFailure(func):
+ raise self.test_case.failureException(msg)
+
++# 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
++
+ class _AssertRaisesBaseContext(_BaseTestCaseContext):
+
+ def __init__(self, expected, test_case, expected_regex=None):
+diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py
+--- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
++++ Python-3.2.2/Lib/unittest/__init__.py 2011-09-09 06:35:16.366568382 -0400
+@@ -57,7 +57,8 @@ __unittest = True
+
+ from .result import TestResult
+ from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
+- skipUnless, expectedFailure)
++ skipUnless, expectedFailure,
++ _skipInRpmBuild)
+ from .suite import BaseTestSuite, TestSuite
+ from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
+ findTestCases)
diff --git a/00155-avoid-ctypes-thunks.patch b/00155-avoid-ctypes-thunks.patch
new file mode 100644
index 0000000..f03890e
--- /dev/null
+++ b/00155-avoid-ctypes-thunks.patch
@@ -0,0 +1,15 @@
+diff -up Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 Python-3.2.3/Lib/ctypes/__init__.py
+--- Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 2012-04-20 15:12:49.017867692 -0400
++++ Python-3.2.3/Lib/ctypes/__init__.py 2012-04-20 15:15:09.501111408 -0400
+@@ -275,11 +275,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)
+
+ def create_unicode_buffer(init, size=None):
+ """create_unicode_buffer(aString) -> character array
diff --git a/00160-disable-test_fs_holes-in-rpm-build.patch b/00160-disable-test_fs_holes-in-rpm-build.patch
new file mode 100644
index 0000000..9fa91d5
--- /dev/null
+++ b/00160-disable-test_fs_holes-in-rpm-build.patch
@@ -0,0 +1,11 @@
+diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build cpython-59223da36dec/Lib/test/test_posix.py
+--- cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build 2012-08-07 17:15:59.000000000 -0400
++++ cpython-59223da36dec/Lib/test/test_posix.py 2012-08-07 17:16:53.528330330 -0400
+@@ -973,6 +973,7 @@ class PosixTester(unittest.TestCase):
+ posix.RTLD_GLOBAL
+ posix.RTLD_LOCAL
+
++ @unittest._skipInRpmBuild('running kernel may not match kernel in chroot')
+ @unittest.skipUnless(hasattr(os, 'SEEK_HOLE'),
+ "test needs an OS that reports file holes")
+ def test_fs_holes(self):
diff --git a/00163-disable-parts-of-test_socket-in-rpm-build.patch b/00163-disable-parts-of-test_socket-in-rpm-build.patch
new file mode 100644
index 0000000..0e28036
--- /dev/null
+++ b/00163-disable-parts-of-test_socket-in-rpm-build.patch
@@ -0,0 +1,11 @@
+diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds Python-3.3.0b1/Lib/test/test_socket.py
+--- Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds 2012-07-24 15:02:30.823355067 -0400
++++ Python-3.3.0b1/Lib/test/test_socket.py 2012-07-24 15:08:13.021354999 -0400
+@@ -2188,6 +2188,7 @@ class RecvmsgGenericStreamTests(RecvmsgG
+ # Tests which require a stream socket and can use either recvmsg()
+ # or recvmsg_into().
+
++ @unittest._skipInRpmBuild('fails intermittently when run within Koji')
+ def testRecvmsgEOF(self):
+ # Receive end-of-stream indicator (b"", peer socket closed).
+ msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, 1024)
diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch
new file mode 100644
index 0000000..c37e69c
--- /dev/null
+++ b/00170-gc-assertions.patch
@@ -0,0 +1,310 @@
+diff --git a/Include/object.h b/Include/object.h
+index c772dea..5729797 100644
+--- a/Include/object.h
++++ b/Include/object.h
+@@ -1098,6 +1098,49 @@ PyAPI_FUNC(void)
+ _PyObject_DebugTypeStats(FILE *out);
+ #endif /* ifndef Py_LIMITED_API */
+
++/*
++ 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)
++
++/*
++ Declare and define the entrypoint even when NDEBUG is defined, to avoid
++ causing compiler/linker errors when building extensions without NDEBUG
++ against a Python built with NDEBUG defined
++*/
++PyAPI_FUNC(void) _PyObject_AssertFailed(PyObject *, const char *,
++ const char *, const char *, int,
++ const char *);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
+index 904fc7d..288e242 100644
+--- a/Lib/test/test_gc.py
++++ b/Lib/test/test_gc.py
+@@ -1,10 +1,11 @@
+ import unittest
+ from test.support import (verbose, refcount_test, run_unittest,
+ strip_python_stderr, cpython_only, start_threads,
+- temp_dir, requires_type_collecting)
++ temp_dir, import_module, requires_type_collecting)
+ from test.support.script_helper import assert_python_ok, make_script
+
+ import sys
++import sysconfig
+ import time
+ import gc
+ import weakref
+@@ -46,6 +47,8 @@ class GC_Detector(object):
+ # gc collects it.
+ self.wr = weakref.ref(C1055820(666), it_happened)
+
++BUILD_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
++
+ @with_tp_del
+ class Uncollectable(object):
+ """Create a reference cycle with multiple __del__ methods.
+@@ -863,6 +866,50 @@ class GCCallbackTests(unittest.TestCase):
+ self.assertEqual(len(gc.garbage), 0)
+
+
++ @unittest.skipIf(BUILD_WITH_NDEBUG,
++ 'built with -NDEBUG')
++ def test_refcount_errors(self):
++ self.preclean()
++ # 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.assertRegex(stderr,
++ b'Modules/gcmodule.c:[0-9]+: visit_decref: Assertion "\(\(gc\)->gc.gc_refs >> \(1\)\) != 0" failed.')
++ self.assertRegex(stderr,
++ b'refcount was too small')
++ self.assertRegex(stderr,
++ b'object : \[\]')
++ self.assertRegex(stderr,
++ b'type : list')
++ self.assertRegex(stderr,
++ b'refcount: 1')
++ self.assertRegex(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 8ba1093..e795308 100644
+--- a/Modules/gcmodule.c
++++ b/Modules/gcmodule.c
+@@ -239,7 +239,8 @@ update_refs(PyGC_Head *containers)
+ {
+ PyGC_Head *gc = containers->gc.gc_next;
+ for (; gc != containers; gc = gc->gc.gc_next) {
+- assert(_PyGCHead_REFS(gc) == GC_REACHABLE);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) == GC_REACHABLE);
+ _PyGCHead_SET_REFS(gc, 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
+@@ -259,7 +260,8 @@ update_refs(PyGC_Head *containers)
+ * so serious that maybe this should be a release-build
+ * check instead of an assert?
+ */
+- assert(_PyGCHead_REFS(gc) != 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0);
+ }
+ }
+
+@@ -274,7 +276,9 @@ visit_decref(PyObject *op, void *data)
+ * generation being collected, which can be recognized
+ * because only they have positive gc_refs.
+ */
+- assert(_PyGCHead_REFS(gc) != 0); /* else refcount was too small */
++ PyObject_ASSERT_WITH_MSG(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0,
++ "refcount was too small"); /* else refcount was too small */
+ if (_PyGCHead_REFS(gc) > 0)
+ _PyGCHead_DECREF(gc);
+ }
+@@ -334,9 +338,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;
+@@ -378,7 +383,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
+ */
+ PyObject *op = FROM_GC(gc);
+ traverseproc traverse = Py_TYPE(op)->tp_traverse;
+- assert(_PyGCHead_REFS(gc) > 0);
++ PyObject_ASSERT(op, _PyGCHead_REFS(gc) > 0);
+ _PyGCHead_SET_REFS(gc, GC_REACHABLE);
+ (void) traverse(op,
+ (visitproc)visit_reachable,
+@@ -441,7 +446,7 @@ move_legacy_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_legacy_finalizer(op)) {
+@@ -517,7 +522,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)))
+@@ -538,9 +543,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 */
+
+@@ -574,7 +579,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.
+@@ -583,7 +588,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);
+@@ -599,11 +605,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);
+@@ -720,12 +726,14 @@ check_garbage(PyGC_Head *collectable)
+ for (gc = collectable->gc.gc_next; gc != collectable;
+ gc = gc->gc.gc_next) {
+ _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
+- assert(_PyGCHead_REFS(gc) != 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0);
+ }
+ subtract_refs(collectable);
+ for (gc = collectable->gc.gc_next; gc != collectable;
+ gc = gc->gc.gc_next) {
+- assert(_PyGCHead_REFS(gc) >= 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) >= 0);
+ if (_PyGCHead_REFS(gc) != 0)
+ return -1;
+ }
+diff --git a/Objects/object.c b/Objects/object.c
+index 220aa90..f6c7161 100644
+--- a/Objects/object.c
++++ b/Objects/object.c
+@@ -2177,6 +2177,35 @@ _PyTrash_thread_destroy_chain(void)
+ --tstate->trash_delete_nesting;
+ }
+
++PyAPI_FUNC(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();
++}
++
+ #ifndef Py_TRACE_REFS
+ /* For Py_LIMITED_API, we need an out-of-line version of _Py_Dealloc.
+ Define this here, so we can undefine the macro. */
diff --git a/00178-dont-duplicate-flags-in-sysconfig.patch b/00178-dont-duplicate-flags-in-sysconfig.patch
new file mode 100644
index 0000000..fc49b30
--- /dev/null
+++ b/00178-dont-duplicate-flags-in-sysconfig.patch
@@ -0,0 +1,30 @@
+diff -r 39b9b05c3085 Lib/distutils/sysconfig.py
+--- a/Lib/distutils/sysconfig.py Wed Apr 10 00:27:23 2013 +0200
++++ b/Lib/distutils/sysconfig.py Wed Apr 10 10:14:18 2013 +0200
+@@ -362,7 +362,10 @@
+ done[n] = item = ""
+ if found:
+ after = value[m.end():]
+- value = value[:m.start()] + item + after
++ value = value[:m.start()]
++ if item.strip() not in value:
++ value += item
++ value += after
+ if "$" in after:
+ notdone[name] = value
+ else:
+diff -r 39b9b05c3085 Lib/sysconfig.py
+--- a/Lib/sysconfig.py Wed Apr 10 00:27:23 2013 +0200
++++ b/Lib/sysconfig.py Wed Apr 10 10:14:18 2013 +0200
+@@ -296,7 +296,10 @@
+
+ if found:
+ after = value[m.end():]
+- value = value[:m.start()] + item + after
++ value = value[:m.start()]
++ if item.strip() not in value:
++ value += item
++ value += after
+ if "$" in after:
+ notdone[name] = value
+ else:
diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch
new file mode 100644
index 0000000..d8ba671
--- /dev/null
+++ b/00189-add-rewheel-module.patch
@@ -0,0 +1,245 @@
+diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
+index 7ff938b..8c3d062 100644
+--- a/Lib/ensurepip/__init__.py
++++ b/Lib/ensurepip/__init__.py
+@@ -1,8 +1,10 @@
+ import os
+ import os.path
+ import pkgutil
++import shutil
+ import sys
+ import tempfile
++from ensurepip import rewheel
+
+
+ __all__ = ["version", "bootstrap"]
+@@ -24,8 +26,15 @@ 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
++ if args[0] in ["install", "list", "wheel"]:
++ args.append('--pre')
++ return main(args)
+
+
+ def version():
+@@ -88,20 +97,39 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
+ # omit pip and easy_install
+ os.environ["ENSUREPIP_OPTIONS"] = "install"
+
++ whls = []
++ rewheel_dir = None
++ # try to see if we have system-wide versions of _PROJECTS
++ dep_records = rewheel.find_system_records([p[0] for p in _PROJECTS])
++ # TODO: check if system-wide versions are the newest ones
++ # if --upgrade is used?
++ if all(dep_records):
++ # if we have all _PROJECTS installed system-wide, we'll recreate
++ # wheels from them and install those
++ rewheel_dir = tempfile.TemporaryDirectory()
++ for dr in dep_records:
++ new_whl = rewheel.rewheel_from_record(dr, rewheel_dir.name)
++ whls.append(os.path.join(rewheel_dir.name, new_whl))
++ else:
++ # if we don't have all the _PROJECTS installed system-wide,
++ # let's just fall back to bundled wheels
++ for project, version in _PROJECTS:
++ whl = os.path.join(
++ os.path.dirname(__file__),
++ "_bundled",
++ "{}-{}-py2.py3-none-any.whl".format(project, version)
++ )
++ whls.append(whl)
++
+ with tempfile.TemporaryDirectory() as tmpdir:
+ # Put our bundled wheels into a temporary directory and construct the
+ # additional paths that need added to sys.path
+ 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)
+-
+- additional_paths.append(os.path.join(tmpdir, wheel_name))
++ for whl in whls:
++ shutil.copy(whl, tmpdir)
++ additional_paths.append(os.path.join(tmpdir, os.path.basename(whl)))
++ if rewheel_dir:
++ rewheel_dir.cleanup()
+
+ # Construct the arguments to be passed to the pip command
+ args = ["install", "--no-index", "--find-links", tmpdir]
+diff --git a/Lib/ensurepip/rewheel/__init__.py b/Lib/ensurepip/rewheel/__init__.py
+new file mode 100644
+index 0000000..753c764
+--- /dev/null
++++ b/Lib/ensurepip/rewheel/__init__.py
+@@ -0,0 +1,143 @@
++import argparse
++import codecs
++import csv
++import email.parser
++import os
++import io
++import re
++import site
++import subprocess
++import sys
++import zipfile
++
++def run():
++ parser = argparse.ArgumentParser(description='Recreate wheel of package with given RECORD.')
++ parser.add_argument('record_path',
++ help='Path to RECORD file')
++ parser.add_argument('-o', '--output-dir',
++ help='Dir where to place the wheel, defaults to current working dir.',
++ dest='outdir',
++ default=os.path.curdir)
++
++ ns = parser.parse_args()
++ retcode = 0
++ try:
++ print(rewheel_from_record(**vars(ns)))
++ except BaseException as e:
++ print('Failed: {}'.format(e))
++ retcode = 1
++ sys.exit(1)
++
++def find_system_records(projects):
++ """Return list of paths to RECORD files for system-installed projects.
++
++ If a project is not installed, the resulting list contains None instead
++ of a path to its RECORD
++ """
++ records = []
++ # get system site-packages dirs
++ sys_sitepack = site.getsitepackages([sys.base_prefix, sys.base_exec_prefix])
++ sys_sitepack = [sp for sp in sys_sitepack if os.path.exists(sp)]
++ # try to find all projects in all system site-packages
++ for project in projects:
++ path = None
++ for sp in sys_sitepack:
++ dist_info_re = os.path.join(sp, project) + r'-[^\{0}]+\.dist-info'.format(os.sep)
++ candidates = [os.path.join(sp, p) for p in os.listdir(sp)]
++ # filter out candidate dirs based on the above regexp
++ filtered = [c for c in candidates if re.match(dist_info_re, c)]
++ # if we have 0 or 2 or more dirs, something is wrong...
++ if len(filtered) == 1:
++ path = filtered[0]
++ if path is not None:
++ records.append(os.path.join(path, 'RECORD'))
++ else:
++ records.append(None)
++ return records
++
++def rewheel_from_record(record_path, outdir):
++ """Recreates a whee of package with given record_path and returns path
++ to the newly created wheel."""
++ site_dir = os.path.dirname(os.path.dirname(record_path))
++ record_relpath = record_path[len(site_dir):].strip(os.path.sep)
++ to_write, to_omit = get_records_to_pack(site_dir, record_relpath)
++ new_wheel_name = get_wheel_name(record_path)
++ new_wheel_path = os.path.join(outdir, new_wheel_name + '.whl')
++
++ new_wheel = zipfile.ZipFile(new_wheel_path, mode='w', compression=zipfile.ZIP_DEFLATED)
++ # we need to write a new record with just the files that we will write,
++ # e.g. not binaries and *.pyc/*.pyo files
++ new_record = io.StringIO()
++ writer = csv.writer(new_record)
++
++ # handle files that we can write straight away
++ for f, sha_hash, size in to_write:
++ new_wheel.write(os.path.join(site_dir, f), arcname=f)
++ writer.writerow([f, sha_hash,size])
++
++ # rewrite the old wheel file with a new computed one
++ writer.writerow([record_relpath, '', ''])
++ new_wheel.writestr(record_relpath, new_record.getvalue())
++
++ new_wheel.close()
++
++ return new_wheel.filename
++
++def get_wheel_name(record_path):
++ """Return proper name of the wheel, without .whl."""
++
++ wheel_info_path = os.path.join(os.path.dirname(record_path), 'WHEEL')
++ with codecs.open(wheel_info_path, encoding='utf-8') as wheel_info_file:
++ wheel_info = email.parser.Parser().parsestr(wheel_info_file.read())
++
++ metadata_path = os.path.join(os.path.dirname(record_path), 'METADATA')
++ with codecs.open(metadata_path, encoding='utf-8') as metadata_file:
++ metadata = email.parser.Parser().parsestr(metadata_file.read())
++
++ # construct name parts according to wheel spec
++ distribution = metadata.get('Name')
++ version = metadata.get('Version')
++ build_tag = '' # nothing for now
++ lang_tag = []
++ for t in wheel_info.get_all('Tag'):
++ lang_tag.append(t.split('-')[0])
++ lang_tag = '.'.join(lang_tag)
++ abi_tag, plat_tag = wheel_info.get('Tag').split('-')[1:3]
++ # leave out build tag, if it is empty
++ to_join = filter(None, [distribution, version, build_tag, lang_tag, abi_tag, plat_tag])
++ return '-'.join(list(to_join))
++
++def get_records_to_pack(site_dir, record_relpath):
++ """Accepts path of sitedir and path of RECORD file relative to it.
++ Returns two lists:
++ - list of files that can be written to new RECORD straight away
++ - list of files that shouldn't be written or need some processing
++ (pyc and pyo files, scripts)
++ """
++ record_file_path = os.path.join(site_dir, record_relpath)
++ with codecs.open(record_file_path, encoding='utf-8') as record_file:
++ record_contents = record_file.read()
++ # temporary fix for https://github.com/pypa/pip/issues/1376
++ # we need to ignore files under ".data" directory
++ data_dir = os.path.dirname(record_relpath).strip(os.path.sep)
++ data_dir = data_dir[:-len('dist-info')] + 'data'
++
++ to_write = []
++ to_omit = []
++ for l in record_contents.splitlines():
++ spl = l.split(',')
++ if len(spl) == 3:
++ # new record will omit (or write differently):
++ # - abs paths, paths with ".." (entry points),
++ # - pyc+pyo files
++ # - the old RECORD file
++ # TODO: is there any better way to recognize an entry point?
++ if os.path.isabs(spl[0]) or spl[0].startswith('..') or \
++ spl[0].endswith('.pyc') or spl[0].endswith('.pyo') or \
++ spl[0] == record_relpath or spl[0].startswith(data_dir):
++ to_omit.append(spl)
++ else:
++ to_write.append(spl)
++ else:
++ pass # bad RECORD or empty line
++ return to_write, to_omit
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index d07b312..1c6720e 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1301,7 +1301,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
+ test/test_asyncio \
+ collections concurrent concurrent/futures encodings \
+ email email/mime test/test_email test/test_email/data \
+- ensurepip ensurepip/_bundled \
++ ensurepip ensurepip/_bundled ensurepip/rewheel \
+ html json test/test_json http dbm xmlrpc \
+ sqlite3 sqlite3/test \
+ logging csv wsgiref urllib \
diff --git a/00205-make-libpl-respect-lib64.patch b/00205-make-libpl-respect-lib64.patch
new file mode 100644
index 0000000..3e7c797
--- /dev/null
+++ b/00205-make-libpl-respect-lib64.patch
@@ -0,0 +1,12 @@
+diff -up Python-3.5.0/Makefile.pre.in.lib Python-3.5.0/Makefile.pre.in
+--- Python-3.5.0/Makefile.pre.in.lib 2015-09-21 15:39:47.928286620 +0200
++++ Python-3.5.0/Makefile.pre.in 2015-09-21 15:42:58.004042762 +0200
+@@ -1340,7 +1340,7 @@ inclinstall:
+
+ # Install the library and miscellaneous stuff needed for extending/embedding
+ # This goes into $(exec_prefix)
+-LIBPL= @LIBPL@
++LIBPL= $(LIBDEST)/config-$(LDVERSION)-$(MULTIARCH)
+
+ # pkgconfig directory
+ LIBPC= $(LIBDIR)/pkgconfig
diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch
new file mode 100644
index 0000000..4104449
--- /dev/null
+++ b/00251-change-user-install-location.patch
@@ -0,0 +1,46 @@
+diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
+index 0258d3d..4ebf50a 100644
+--- a/Lib/distutils/command/install.py
++++ b/Lib/distutils/command/install.py
+@@ -418,8 +418,19 @@ class install(Command):
+ raise DistutilsOptionError(
+ "must not supply exec-prefix without prefix")
+
+- self.prefix = os.path.normpath(sys.prefix)
+- self.exec_prefix = os.path.normpath(sys.exec_prefix)
++ # self.prefix is set to sys.prefix + /local/
++ # if neither RPM build nor virtual environment is
++ # detected to make pip and distutils install packages
++ # into the separate location.
++ if (not (hasattr(sys, 'real_prefix') or
++ sys.prefix != sys.base_prefix) and
++ 'RPM_BUILD_ROOT' not in os.environ):
++ addition = "/local"
++ else:
++ addition = ""
++
++ self.prefix = os.path.normpath(sys.prefix) + addition
++ self.exec_prefix = os.path.normpath(sys.exec_prefix) + addition
+
+ else:
+ if self.exec_prefix is None:
+diff --git a/Lib/site.py b/Lib/site.py
+index 0fc9200..c95202e 100644
+--- a/Lib/site.py
++++ b/Lib/site.py
+@@ -322,7 +322,14 @@ def getsitepackages(prefixes=None):
+ return sitepackages
+
+ def addsitepackages(known_paths, prefixes=None):
+- """Add site-packages to sys.path"""
++ """Add site-packages to sys.path
++
++ '/usr/local' is included in PREFIXES if RPM build is not detected
++ to make packages installed into this location visible.
++
++ """
++ if ENABLE_USER_SITE and 'RPM_BUILD_ROOT' not in os.environ:
++ PREFIXES.insert(0, "/usr/local")
+ for sitedir in getsitepackages(prefixes):
+ if os.path.isdir(sitedir):
+ addsitedir(sitedir, known_paths)
diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch
new file mode 100644
index 0000000..c8e53c1
--- /dev/null
+++ b/00274-fix-arch-names.patch
@@ -0,0 +1,59 @@
+diff --git a/config.sub b/config.sub
+index ba37cf9..52a9ec6 100755
+--- a/config.sub
++++ b/config.sub
+@@ -1042,7 +1042,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/configure.ac b/configure.ac
+index 2535969..9fb3193 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -765,9 +765,9 @@ cat >> conftest.c <<EOF
+ alpha-linux-gnu
+ # elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
+- arm-linux-gnueabihf
++ arm-linux-gnueabi
+ # else
+- armeb-linux-gnueabihf
++ armeb-linux-gnueabi
+ # endif
+ # elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
+@@ -807,7 +807,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64el-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64el-linux-gnuabi64
++ mips64el-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -817,7 +817,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64-linux-gnuabi64
++ mips64-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -827,9 +827,9 @@ cat >> conftest.c <<EOF
+ powerpc-linux-gnuspe
+ # elif defined(__powerpc64__)
+ # if defined(__LITTLE_ENDIAN__)
+- powerpc64le-linux-gnu
++ ppc64le-linux-gnu
+ # else
+- powerpc64-linux-gnu
++ ppc64-linux-gnu
+ # endif
+ # elif defined(__powerpc__)
+ powerpc-linux-gnu
diff --git a/00291-setup-Link-ctypes-against-dl-explicitly.patch b/00291-setup-Link-ctypes-against-dl-explicitly.patch
new file mode 100644
index 0000000..4bf4801
--- /dev/null
+++ b/00291-setup-Link-ctypes-against-dl-explicitly.patch
@@ -0,0 +1,25 @@
+From aae2ef0bace0e38f4ee5aaa4642aa32450a84216 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Tue, 23 Jan 2018 14:43:43 +0100
+Subject: [PATCH] setup: Link ctypes against dl explicitly
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index c23628a2a9..9e40bb53e6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1935,7 +1935,7 @@ class PyBuildExt(build_ext):
+ self.use_system_libffi = False
+ include_dirs = []
+ extra_compile_args = []
+- extra_link_args = []
++ extra_link_args = ['-ldl']
+ sources = ['_ctypes/_ctypes.c',
+ '_ctypes/callbacks.c',
+ '_ctypes/callproc.c',
+--
+2.16.1
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..42bf07d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# python37
+
+The python37 package
\ No newline at end of file
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
new file mode 100644
index 0000000..262a985
--- /dev/null
+++ b/check-pyc-and-pyo-timestamps.py
@@ -0,0 +1,62 @@
+"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
+
+import importlib.util
+import os
+import sys
+
+# list of test and other files that we expect not to have bytecode
+not_compiled = [
+ '/usr/bin/pathfix.py',
+ 'test/bad_coding.py',
+ 'test/bad_coding2.py',
+ 'test/badsyntax_3131.py',
+ 'test/badsyntax_future3.py',
+ 'test/badsyntax_future4.py',
+ 'test/badsyntax_future5.py',
+ 'test/badsyntax_future6.py',
+ 'test/badsyntax_future7.py',
+ 'test/badsyntax_future8.py',
+ 'test/badsyntax_future9.py',
+ 'test/badsyntax_future10.py',
+ 'test/badsyntax_async1.py',
+ 'test/badsyntax_async2.py',
+ 'test/badsyntax_async3.py',
+ 'test/badsyntax_async4.py',
+ 'test/badsyntax_async5.py',
+ 'test/badsyntax_async6.py',
+ 'test/badsyntax_async7.py',
+ 'test/badsyntax_async8.py',
+ 'test/badsyntax_async9.py',
+ 'test/badsyntax_pep3120.py',
+ 'lib2to3/tests/data/bom.py',
+ 'lib2to3/tests/data/crlf.py',
+ 'lib2to3/tests/data/different_encoding.py',
+ 'lib2to3/tests/data/false_encoding.py',
+ 'lib2to3/tests/data/py2_test_grammar.py',
+ '.debug-gdb.py',
+]
+failed = 0
+
+
+def bytecode_expected(source):
+ for f in not_compiled:
+ if source.endswith(f):
+ return False
+ return True
+
+
+compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
+for f in compiled:
+ # check both pyo and pyc
+ to_check = map(lambda b: importlib.util.cache_from_source(f, b), (True, False))
+ f_mtime = os.path.getmtime(f)
+ for c in to_check:
+ c_mtime = os.path.getmtime(c)
+ if c_mtime < f_mtime:
+ sys.stderr.write('Failed bytecompilation timestamps check: ')
+ sys.stderr.write('Bytecode file {} is older than source file {}.\n'.format(c, f))
+ failed += 1
+
+if failed:
+ sys.stderr.write('\n{} files failed bytecompilation timestamps check.\n'.format(failed))
+ sys.exit(1)
diff --git a/dead.package b/dead.package
deleted file mode 100644
index f3293b6..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-Provided by the python3 package. Will be reintroduced when python3 is Python 3.8.
diff --git a/idle3.appdata.xml b/idle3.appdata.xml
new file mode 100644
index 0000000..94f87a2
--- /dev/null
+++ b/idle3.appdata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Copyright 2017 Zbigniew Jdrzejewski-Szmek -->
+<application>
+ <id type="desktop">idle3.desktop</id>
+ <name>IDLE3</name>
+ <metadata_licence>CC0</metadata_licence>
+ <project_license>Python-2.0</project_license>
+ <summary>Python 3 Integrated Development and Learning Environment</summary>
+ <description>
+ <p>
+ IDLE is Pythons Integrated Development and Learning Environment.
+ The GUI is uniform between Windows, Unix, and Mac OS X.
+ IDLE provides an easy way to start writing, running, and debugging
+ Python code.
+ </p>
+ <p>
+ IDLE is written in pure Python, and uses the tkinter GUI toolkit.
+ It provides:
+ </p>
+ <ul>
+ <li>a Python shell window (interactive interpreter) with colorizing of code input, output, and error messages,</li>
+ <li>a multi-window text editor with multiple undo, Python colorizing, smart indent, call tips, auto completion, and other features,</li>
+ <li>search within any window, replace within editor windows, and search through multiple files (grep),</li>
+ <li>a debugger with persistent breakpoints, stepping, and viewing of global and local namespaces.</li>
+ </ul>
+ </description>
+ <url type="homepage">https://docs.python.org/3/library/idle.html</url>
+ <screenshots>
+ <screenshot type="default">http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-main-window.png</screenshot>
+ <screenshot>http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-class-browser.png</screenshot>
+ <screenshot>http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-code-viewer.png</screenshot>
+ </screenshots>
+ <update_contact>zbyszek(a)in.waw.pl</update_contact>
+</application>
diff --git a/idle3.desktop b/idle3.desktop
new file mode 100644
index 0000000..dc1d3c3
--- /dev/null
+++ b/idle3.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=IDLE 3
+Comment=Python 3 Integrated Development and Learning Environment
+Exec=idle3 %F
+TryExec=idle3
+Terminal=false
+Type=Application
+Icon=idle3
+Categories=Development;IDE;
+MimeType=text/x-python;
\ No newline at end of file
diff --git a/python37.rpmlintrc b/python37.rpmlintrc
new file mode 100644
index 0000000..6c1ce83
--- /dev/null
+++ b/python37.rpmlintrc
@@ -0,0 +1,75 @@
+# KNOWN BUGS:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1489816
+addFilter(r'crypto-policy-non-compliance-openssl')
+
+
+# TESTS:
+addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
+
+
+# OTHER DELIBERATES:
+# chroot function
+addFilter(r'missing-call-to-chdir-with-chroot')
+
+# intentionally unversioned and selfobsoleted
+addFilter(r'unversioned-explicit-obsoletes python')
+addFilter(r'self-obsoletion python3\d obsoletes python3\d')
+
+# intentionally hardcoded
+addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})')
+
+# intentional for our pythonXY package
+addFilter(r'python3\d\.[^:]+: (E|W): devel-file-in-non-devel-package')
+
+# we have non binary stuff, python files
+addFilter(r'only-non-binary-in-usr-lib')
+
+# some devel files that are deliberately needed
+addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\dm/pyconfig-(32|64)\.h')
+addFilter(r'devel-file-in-non-devel-package /usr/lib64/python3\.\d/distutils/tests/xxmodule\.c')
+
+
+# SORRY, NOT SORRY:
+# manual pages
+addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix\.py)')
+addFilter(r'no-manual-page-for-binary python3.*-config$')
+addFilter(r'no-manual-page-for-binary python3.\dd?m$')
+
+# missing documentation from subpackages
+addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')
+
+# platform python is obsoleted, but not provided
+addFilter(r'obsolete-not-provided platform-python')
+
+
+# RPMLINT IMPERFECTIONS
+# https://github.com/rpm-software-management/rpmlint/issues/123
+addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3393')
+# https://github.com/rpm-software-management/rpmlint/pull/133
+addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3394')
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1550562
+# https://github.com/rpm-software-management/rpmlint/issues/128
+addFilter(r'python-bytecode-inconsistent-mtime .* 1970')
+
+# debugsource
+addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')
+
+# debuginfo
+addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')
+
+# this is OK for F28+
+addFilter(r'library-without-ldconfig-post')
+
+# debug package contains devel and non-devel files
+addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package')
+
+# this goes to other subpackage, hence not actually dangling, the read error is bogus
+addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc python-3\.\d\.pc')
+addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')
+
+# we need this macro to evaluate, even if the line starts with #
+addFilter(r'macro-in-comment %\{_pyconfig(32|64)_h\}')
+
+# SPELLING ERRORS
+addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')
diff --git a/python37.spec b/python37.spec
new file mode 100644
index 0000000..c43b59e
--- /dev/null
+++ b/python37.spec
@@ -0,0 +1,1626 @@
+# ==================
+# Top-level metadata
+# ==================
+
+%global pybasever 3.7
+
+# pybasever without the dot:
+%global pyshortver 37
+
+Name: python%{pyshortver}
+Summary: Version %{pybasever} of the Python interpreter
+URL: https://www.python.org/
+
+
+# WARNING When rebasing to a new Python version,
+# remember to update the python3-docs package as well
+Version: %{pybasever}.0
+Release: 1%{?dist}
+License: Python
+
+
+# ==================================
+# Conditionals 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"
+
+
+# Flat package, i.e. python36, python37, python38 for tox etc.
+# warning: changes some other defaults
+# in Fedora, never turn this on for the python3 package
+# and always keep it on for python37 etc.
+# WARNING: This does not change the package name and summary above
+%bcond_without flatpackage
+
+
+# Expensive optimizations (mainly, profile-guided optimizations)
+%ifarch %{ix86} x86_64
+%bcond_without optimizations
+%else
+# On some architectures, the optimized build takes tens of hours, possibly
+# longer than Koji's 24-hour timeout. Disable optimizations here.
+%bcond_with optimizations
+%endif
+
+# Run the test suite in %%check
+%bcond_without tests
+
+# Ability to reuse RPM-installed pip using rewheel
+%if %{with flatpackage}
+%bcond_with rewheel
+%else
+%bcond_without rewheel
+%endif
+
+# Extra build for debugging the interpreter or C-API extensions
+# (the -debug subpackages)
+%if %{with flatpackage}
+%bcond_with debug_build
+%else
+%bcond_without debug_build
+%endif
+
+# Support for the GDB debugger
+%bcond_without gdb_hooks
+
+# The dbm.gnu module (key-value database)
+%bcond_without gdbm
+
+# Main interpreter loop optimization
+%bcond_without computed_gotos
+
+# Support for the Valgrind debugger/profiler
+%ifnarch s390 %{mips} riscv64
+%bcond_without valgrind
+%else
+# Some arches don't have valgrind, disable support for it there.
+%bcond_with valgrind
+%endif
+
+
+# ==================================
+# Notes from bootstraping Python 3.6
+# ==================================
+#
+# New Python major version (3.X) break ABI and bytecode compatibility,
+# so all packages depending on it need to be rebuilt.
+#
+# Due to a dependency cycle between Python, gdb, rpm, pip, setuptools, wheel,
+# and other packages, this isn't straightforward.
+# Build in the following order:
+#
+# 1. At the same time:
+# - gdb without python support (add %%global _without_python 1 on top of
+# gdb's SPEC file)
+# - python-rpm-generators
+# (this can be done also during step 2., but should be done before 3.)
+# 2. python3 without rewheel (use %%bcond_with rewheel instead of
+# %%bcond_without)
+# 3. gdb with python support (remove %%global _without_python 1 on top of
+# gdb's SPEC file)
+# 4. rpm
+# 5. python-setuptools with bootstrap set to 1
+# 6. python-pip with build_wheel set to 0
+# 7. python-wheel with %%bcond_without bootstrap
+# 8. python-setuptools with bootstrap set to 0 and also with_check set to 0
+# 9. python-pip with build_wheel set to 1
+# 10. pyparsing
+# 11. python3 with rewheel
+#
+# Then the most important packages have to be built, in dependency order.
+# These were:
+# python-sphinx, pytest, python-requests, cloud-init, dnf, anaconda, abrt
+#
+# After these have been built, a targeted rebuild should be done for the rest.
+
+
+# =====================
+# General global macros
+# =====================
+
+%global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
+# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+# All bytecode files are in a __pycache__ subdirectory, with a name
+# reflecting the version of the bytecode.
+# See PEP 3147: http://www.python.org/dev/peps/pep-3147/
+# For example,
+# foo/bar.py
+# has bytecode at:
+# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
+# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
+%global bytecode_suffixes .cpython-%{pyshortver}*.pyc
+
+# 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%{LDVERSION_optimized}.so.%{py_SOVERSION}
+%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
+
+# Disable automatic bytecompilation. The python3 binary is not yet be
+# available in /usr/bin when Python is built. Also, the bytecompilation fails
+# on files that test invalid syntax.
+%undefine py_auto_byte_compile
+
+# For multilib support, files that are different between 32- and 64-bit arches
+# need different filenames. Use "64" or "32" according to the word size.
+# Currently, the best way to determine an architecture's word size happens to
+# be checking %%{_lib}.
+%if "%{_lib}" == "lib64"
+%global wordsize 64
+%else
+%global wordsize 32
+%endif
+
+
+# =======================
+# Build-time requirements
+# =======================
+
+# (keep this list alphabetized)
+
+BuildRequires: autoconf
+BuildRequires: bluez-libs-devel
+BuildRequires: bzip2
+BuildRequires: bzip2-devel
+BuildRequires: desktop-file-utils
+BuildRequires: expat-devel
+
+BuildRequires: findutils
+BuildRequires: gcc-c++
+%if %{with gdbm}
+BuildRequires: gdbm-devel >= 1:1.13
+%endif
+BuildRequires: glibc-devel
+BuildRequires: gmp-devel
+BuildRequires: libappstream-glib
+BuildRequires: libffi-devel
+BuildRequires: libnsl2-devel
+BuildRequires: libtirpc-devel
+BuildRequires: libGL-devel
+BuildRequires: libuuid-devel
+BuildRequires: libX11-devel
+BuildRequires: ncurses-devel
+
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: sqlite-devel
+BuildRequires: gdb
+
+BuildRequires: tar
+BuildRequires: tcl-devel
+BuildRequires: tix-devel
+BuildRequires: tk-devel
+
+%if %{with valgrind}
+BuildRequires: valgrind-devel
+%endif
+
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+BuildRequires: /usr/bin/dtrace
+
+# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
+BuildRequires: /usr/sbin/ifconfig
+
+%if %{with rewheel}
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%endif
+
+
+# =======================
+# Source code and patches
+# =======================
+
+Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+
+# A simple script to check timestamps of bytecode files
+# Run in check section with Python that is currently being built
+# Written by bkabrda
+Source8: check-pyc-and-pyo-timestamps.py
+
+# Desktop menu entry for idle3
+Source10: idle3.desktop
+
+# AppData file for idle3
+Source11: idle3.appdata.xml
+
+# 00001 #
+# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
+# Was Patch0 in ivazquez' python3000 specfile:
+Patch1: 00001-rpath.patch
+
+# 00102 #
+# Change the various install paths to use /usr/lib64/ instead or /usr/lib
+# Only used when "%%{_lib}" == "lib64"
+# Not yet sent upstream.
+Patch102: 00102-lib64.patch
+
+# 00111 #
+# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
+# a libpythonMAJOR.MINOR.a
+# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
+# Downstream only: not appropriate for upstream
+Patch111: 00111-no-static-lib.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
+
+# 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
+# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
+Patch155: 00155-avoid-ctypes-thunks.patch
+
+# 00160 #
+# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
+# header files in the build chroot, but may not be supported in the running
+# kernel, hence we disable this test in an rpm build.
+# Adding these was upstream issue http://bugs.python.org/issue10142
+# Not yet sent upstream
+Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
+
+# 00163 #
+# Some tests within test_socket fail intermittently when run inside Koji;
+# disable them using unittest._skipInRpmBuild
+# Not yet sent upstream
+Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.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)
+# The new macros/functions within gcmodule.c are hidden to avoid exposing
+# them within the extension API.
+# Sent upstream: http://bugs.python.org/issue9263
+# See https://bugzilla.redhat.com/show_bug.cgi?id=614680
+Patch170: 00170-gc-assertions.patch
+
+# 00178 #
+# Don't duplicate various FLAGS in sysconfig values
+# http://bugs.python.org/issue17679
+# Does not affect python2 AFAICS (different sysconfig values initialization)
+Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
+
+# 00189 #
+# Add the rewheel module, allowing to recreate wheels from already installed
+# ones
+# https://github.com/bkabrda/rewheel
+Patch189: 00189-add-rewheel-module.patch
+
+# 00205 #
+# LIBPL variable in makefile takes LIBPL from configure.ac
+# but the LIBPL variable defined there doesn't respect libdir macro
+Patch205: 00205-make-libpl-respect-lib64.patch
+
+# 00251
+# Set values of prefix and exec_prefix in distutils install command
+# to /usr/local if executable is /usr/bin/python* and RPM build
+# is not detected to make pip and distutils install into separate location
+# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
+Patch251: 00251-change-user-install-location.patch
+
+# 00274 #
+# Upstream uses Debian-style architecture naming. Change to match Fedora.
+Patch274: 00274-fix-arch-names.patch
+
+# 00291 #
+# Build fails with undefined references to dlopen / dlsym otherwise.
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1537489
+# and: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
+Patch291: 00291-setup-Link-ctypes-against-dl-explicitly.patch
+
+# (New patches go here ^^^)
+#
+# When adding new patches to "python" 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
+
+
+# ==========================================
+# Descriptions, and metadata for subpackages
+# ==========================================
+
+%if %{without flatpackage}
+
+# Packages with Python modules in standard locations automatically
+# depend on python(abi). Provide that here.
+Provides: python(abi) = %{pybasever}
+
+# For backward compatibility only, remove in F29:
+Provides: system-python(abi) = %{pybasever}
+Provides: system-python = %{version}-%{release}
+Provides: system-python%{?_isa} = %{version}-%{release}
+Obsoletes: system-python < %{version}-%{release}
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+# In order to support multiple Python interpreters for development purposes,
+# packages with the naming scheme flatpackage (e.g. python35) exist for
+# non-default versions of Python 3.
+# For consistency, and to keep the upgrade path clean, we Provide/Obsolete
+# these names here.
+Provides: python%{pyshortver} = %{version}-%{release}
+# Note that using Obsoletes without package version is not standard practice.
+# Here we assert that *any* version of the system's default interpreter is
+# preferable to an "extra" interpreter. For example, python3-3.6.1 will
+# replace python36-3.6.2.
+Obsoletes: python%{pyshortver}
+
+# Shall be removed in Fedora 31
+# The release is bumped to 20, so we can do f27 platform-python updates
+# If the release in f27 ever goes >= 20, raise it here
+# If platform-python is ever reintroduced, make it higher version than this:
+%global platpyver 3.6.2-20
+Obsoletes: platform-python < %{platpyver}
+
+%if %{with rewheel}
+Requires: python3-setuptools
+Requires: python3-pip
+%endif
+
+# This prevents ALL subpackages built from this spec to require
+# /usr/bin/python3*. Granularity per subpackage is impossible.
+# It's intended for the libs package not to drag in the interpreter, see
+# https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+# All others require %%{name} anyway.
+%global __requires_exclude ^/usr/bin/python3
+
+
+# The description used both for the SRPM and the main `python3` subpackage:
+%description
+Python is an accessible, high-level, dynamically typed, interpreted programming
+language, designed with an emphasis on code readability.
+It includes an extensive standard library, and has a vast ecosystem of
+third-party libraries.
+
+The %{name} package provides the "python3" executable: the reference
+interpreter for the Python language, version 3.
+The majority of its standard library is provided in the %{name}-libs package,
+which should be installed automatically along with %{name}.
+The remaining parts of the Python standard library are broken out into the
+%{name}-tkinter and %{name}-test packages, which may need to be installed
+separately.
+
+Documentation for Python is provided in the %{name}-docs package.
+
+Packages containing additional libraries for Python are generally named with
+the "%{name}-" prefix.
+
+
+%package libs
+Summary: Python runtime libraries
+
+# The "enum" module is included in the standard library.
+# Provide an upgrade path from the external library.
+Provides: python3-enum34 = 1.0.4-5%{?dist}
+Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
+
+# Python 3 built with glibc >= 2.24.90-26 needs to require it
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1410644
+Requires: glibc%{?_isa} >= 2.24.90-26
+
+%if %{with gdbm}
+# When built with this (as guarded by the BuildRequires above), require it
+Requires: gdbm%{?_isa} >= 1:1.13
+%endif
+
+# There are files in the standard library that have python shebang.
+# We've filtered the automatic requirement out so libs are installable without
+# the main package. This however makes it pulled in by default.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
+Recommends: %{name}%{?_isa} = %{version}-%{release}
+
+# For backward compatibility only, remove in F29:
+Provides: system-python-libs = %{version}-%{release}
+Provides: system-python-libs%{?_isa} = %{version}-%{release}
+Obsoletes: system-python-libs < %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-libs < %{platpyver}
+Obsoletes: platform-python-libs-devel < %{platpyver}
+
+%description libs
+This package contains runtime libraries for use by Python:
+- the majority of the Python standard library
+- a dynamically linked library for use by applications that embed Python as
+ a scripting language, and by the main "python3" executable
+
+
+%package devel
+Summary: Libraries and header files needed for Python development
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: python-rpm-macros
+Requires: python-rpm-macros
+Requires: python3-rpm-macros
+
+%if %{with rewheel}
+# without rewheel is used to bootstrap setuptools+pip
+# python3-rpm-generators needs python3-setuptools, so we cannot have it yet
+Requires: python3-rpm-generators
+%endif
+
+# 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
+
+Provides: %{name}-2to3 = %{version}-%{release}
+Provides: 2to3 = %{version}-%{release}
+
+Conflicts: %{name} < %{version}-%{release}
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1111275
+# /usr/bin/2to3 was moved from python2-tools to python3-tools
+# TODO Remove in Fedora 29
+Conflicts: python2-tools < 2.7.13-17
+Conflicts: python-tools < 2.7.13-17
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+# /usr/bin/2to3 was moved from python3-tools to python3-devel
+# TODO Remove in Fedora 30
+Conflicts: python3-tools < 3.7
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-devel < %{platpyver}
+
+%description devel
+This package contains the header files and configuration needed to compile
+Python extension modules (typically written in C or C++), to embed Python
+into other programs, and to make binary distributions for Python libraries.
+
+It also contains the necessary macros to build RPM packages with Python modules
+and 2to3 tool, an automatic source converter from Python 2.X.
+
+
+%package idle
+Summary: A basic graphical development environment for Python
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tkinter = %{version}-%{release}
+
+Provides: idle3 = %{version}-%{release}
+
+Provides: %{name}-tools = %{version}-%{release}
+Provides: %{name}-tools%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-tools < %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-tools < %{platpyver}
+
+%description idle
+IDLE is Pythons Integrated Development and Learning Environment.
+
+IDLE has the following features: Python shell window (interactive
+interpreter) with colorizing of code input, output, and error messages;
+multi-window text editor with multiple undo, Python colorizing,
+smart indent, call tips, auto completion, and other features;
+search within any window, replace within editor windows, and
+search through multiple files (grep); debugger with persistent
+breakpoints, stepping, and viewing of global and local namespaces;
+configuration, browsers, and other dialogs.
+
+
+%package tkinter
+Summary: A GUI toolkit for Python
+Requires: %{name} = %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-tkinter < %{platpyver}
+
+%description tkinter
+The Tkinter (Tk interface) library is a graphical user interface toolkit for
+the Python programming language.
+
+
+%package test
+Summary: The self-test suite for the main python3 package
+Requires: %{name} = %{version}-%{release}
+
+# Shall be removed in Fedora 31
+Obsoletes: platform-python-test < %{platpyver}
+
+%description test
+The self-test suite for the Python interpreter.
+
+This is only useful to test Python itself. For testing general Python code,
+you should use the unittest module from %{name}-libs, or a library such as
+%{name}-pytest or %{name}-nose.
+
+
+%if %{with debug_build}
+%package debug
+Summary: Debug version of the Python runtime
+
+# 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: %{name}-tkinter%{?_isa} = %{version}-%{release}
+Requires: %{name}-idle%{?_isa} = %{version}-%{release}
+
+%description debug
+python3-debug provides a version of the Python 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 build,
+but is useful for tracking down reference-counting issues and other bugs.
+
+The bytecode format is unchanged, so that .pyc files are compatible between
+this and the standard version of Python, but the debugging features mean that
+C/C++ extension modules are ABI-incompatible and must be built for each version
+separately.
+
+The debug build shares installation directories with the standard Python
+runtime, so that .py and .pyc files can be shared.
+Compiled extension modules use a special ABI flag ("d") in the filename,
+so extensions for both versions can co-exist in the same directory.
+%endif # with debug_build
+
+%else # with flatpackage
+
+Requires: redhat-rpm-config
+
+# We'll not provide this, on purpose
+# No package in Fedora shall ever depend on flatpackage via this
+%global __requires_exclude ^python\\(abi\\) = 3\\..$
+%global __provides_exclude ^python\\(abi\\) = 3\\..$
+
+# We keep those inside on purpose
+Provides: bundled(python3-pip) = 10.0.1
+Provides: bundled(python3-setuptools) = 39.0.1
+
+# The description for the flat package
+%description
+Python %{pybasever} package for developers.
+
+This package exists to allow developers to test their code against a newer
+version of Python. This is not a full Python stack and if you wish to run
+your applications with Python %{pybasever}, update your Fedora to a newer
+version once Python %{pybasever} is stable.
+
+%endif # with flatpackage
+
+# ======================================================
+# The prep phase of the build:
+# ======================================================
+
+%prep
+%setup -q -n Python-%{version}%{?prerel}
+
+# Remove bundled libraries to ensure that we're using the system copy.
+rm -r Modules/expat
+
+%if %{with rewheel}
+%global pip_version %(pip3 --version | cut -d' ' -f2)
+sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
+%endif
+
+#
+# Apply patches:
+#
+%patch1 -p1
+
+%if "%{_lib}" == "lib64"
+%patch102 -p1
+%endif
+%patch111 -p1
+%patch132 -p1
+%patch155 -p1
+%patch160 -p1
+%patch163 -p1
+%patch170 -p1
+%patch178 -p1
+
+%if %{with rewheel}
+%patch189 -p1
+%endif
+
+%patch205 -p1
+%patch251 -p1
+%patch274 -p1
+%patch291 -p1
+
+
+# Remove files that should be generated by the build
+# (This is after patching, so that we can use patches directly from upstream)
+rm configure pyconfig.h.in
+
+
+# ======================================================
+# Configuring and building the code:
+# ======================================================
+
+%build
+
+# Regenerate the configure script and pyconfig.h.in
+autoconf
+autoheader
+
+# Remember the current directory (which has sources and the configure script),
+# so we can refer to it after we "cd" elsewhere.
+topdir=$(pwd)
+
+# Get proper option names from bconds
+%if %{with computed_gotos}
+%global computed_gotos_flag yes
+%else
+%global computed_gotos_flag no
+%endif
+
+%if %{with optimizations}
+%global optimizations_flag "--enable-optimizations"
+%else
+%global optimizations_flag "--disable-optimizations"
+%endif
+
+# Set common compiler/linker flags
+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 CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"
+export LDFLAGS="$RPM_LD_FLAGS -g $(pkg-config --libs-only-L openssl)"
+
+# We can build several different configurations of Python: regular and debug.
+# Define a common function that does one build:
+BuildPython() {
+ ConfName=$1
+ ExtraConfigArgs=$2
+ MoreCFlags=$3
+
+ # Each build is done in its own directory
+ ConfDir=build/$ConfName
+ echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ # Normally, %%configure looks for the "configure" script in the current
+ # directory.
+ # Since we changed directories, we need to tell %%configure where to look.
+ %global _configure $topdir/configure
+
+%configure \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos=%{computed_gotos_flag} \
+ --with-dbmliborder=gdbm:ndbm:bdb \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-loadable-sqlite-extensions \
+ --with-dtrace \
+ --with-lto \
+ --with-ssl-default-suites=openssl \
+%if %{with valgrind}
+ --with-valgrind \
+%endif
+ $ExtraConfigArgs \
+ %{nil}
+
+ # Invoke the build
+ make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
+
+ popd
+ echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Call the above to build each configuration.
+
+%if %{with debug_build}
+BuildPython debug \
+ "--without-ensurepip --with-pydebug" \
+ "-O0"
+%endif # with debug_build
+
+BuildPython optimized \
+ "--without-ensurepip %{optimizations_flag}" \
+ ""
+
+# ======================================================
+# Installing the built code:
+# ======================================================
+
+%install
+
+# As in %%build, remember the current directory
+topdir=$(pwd)
+
+# We install a collection of hooks for gdb that make it easier to debug
+# executables linked against libpython3* (such as /usr/bin/python3 itself)
+#
+# These hooks are implemented in Python itself (though they are for the version
+# of python that gdb is linked with)
+#
+# gdb-archer looks for them in the same path as the ELF file or its .debug
+# file, with a -gdb.py suffix.
+# We put them next to the debug file, because ldconfig would complain if
+# it found non-library files directly in /usr/lib/
+# (see https://bugzilla.redhat.com/show_bug.cgi?id=562980)
+#
+# We'll put these files in the debuginfo package by installing them to e.g.:
+# /usr/lib/debug/usr/lib/libpython3.2.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
+
+%if %{with gdb_hooks}
+DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
+mkdir -p %{buildroot}$DirHoldingGdbPy
+%endif # with gdb_hooks
+
+# Multilib support for pyconfig.h
+# 32- and 64-bit versions of pyconfig.h are different. For multilib support
+# (making it possible to install 32- and 64-bit versions simultaneously),
+# we need to install them under different filenames, and to make the common
+# "pyconfig.h" include the right file based on architecture.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=192747
+# Filanames are defined here:
+%global _pyconfig32_h pyconfig-32.h
+%global _pyconfig64_h pyconfig-64.h
+%global _pyconfig_h pyconfig-%{wordsize}.h
+
+# Use a common function to do an install for all our configurations:
+InstallPython() {
+
+ ConfName=$1
+ PyInstSoName=$2
+ MoreCFlags=$3
+ LDVersion=$4
+
+ # Switch to the directory with this configuration's built files
+ ConfDir=build/$ConfName
+ echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+ pushd $ConfDir
+
+ make \
+ DESTDIR=%{buildroot} \
+ INSTALL="install -p" \
+ EXTRA_CFLAGS="$MoreCFlags" \
+ install
+
+ popd
+
+%if %{with gdb_hooks}
+ # See comment on $DirHoldingGdbPy above
+ PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
+ cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
+%endif # with gdb_hooks
+
+ # Rename the -devel script that differs on different arches to arch specific name
+ mv %{buildroot}%{_bindir}/python${LDVersion}-{,`uname -m`-}config
+ echo -e '#!/bin/sh\nexec `dirname $0`/python'${LDVersion}'-`uname -m`-config "$@"' > \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ echo '[ $? -eq 127 ] && echo "Could not find python'${LDVersion}'-`uname -m`-config. Look around to see available arches." >&2' >> \
+ %{buildroot}%{_bindir}/python${LDVersion}-config
+ chmod +x %{buildroot}%{_bindir}/python${LDVersion}-config
+
+ # Make python3-devel multilib-ready
+ mv %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h \
+ %{buildroot}%{_includedir}/python${LDVersion}/%{_pyconfig_h}
+ cat > %{buildroot}%{_includedir}/python${LDVersion}/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
+
+ echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Install the "debug" build first; any common files will be overridden with
+# later builds
+%if %{with debug_build}
+InstallPython debug \
+ %{py_INSTSONAME_debug} \
+ -O0 \
+ %{LDVERSION_debug}
+%endif # with debug_build
+
+# Now the optimized build:
+InstallPython optimized \
+ %{py_INSTSONAME_optimized} \
+ "" \
+ %{LDVERSION_optimized}
+
+# Install directories for additional packages
+install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
+%if "%{_lib}" == "lib64"
+# The 64-bit version needs to create "site-packages" in /usr/lib/ (for
+# pure-Python modules) as well as in /usr/lib64/ (for packages with extension
+# modules).
+# Note that rpmlint will complain about hardcoded library path;
+# this is intentional.
+install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
+%endif
+
+%if %{without flatpackage}
+# add idle3 to menu
+install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
+install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/idle3.png
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
+
+# Install and validate appdata file
+mkdir -p %{buildroot}%{_metainfodir}
+cp -a %{SOURCE11} %{buildroot}%{_metainfodir}
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/idle3.appdata.xml
+%endif
+
+# Make sure distutils looks at the right pyconfig.h file
+# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
+# 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 (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
+#
+# 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
+
+# Install pathfix.py to bindir
+# See https://github.com/fedora-python/python-rpm-porting/issues/24
+cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/
+
+# Switch all shebangs to refer to the specific Python version.
+# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
+# so handle files named using other naming scheme separately.
+LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
+ Tools/scripts/pathfix.py \
+ -i "%{_bindir}/python%{pybasever}" -pn \
+ %{buildroot} \
+ %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
+
+# Remove tests for python3-tools which was removed in
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312030
+rm -rf %{buildroot}%{pylibdir}/test/test_tools
+
+# Remove shebang lines from .py files that aren't executable, and
+# remove executability from .py files that don't have a shebang line:
+find %{buildroot} -name \*.py \
+ \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
+ -print -exec sed -i '1d' {} \; \) -o \( \
+ -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
+ -exec chmod a-x {} \; \) \)
+
+# Get rid of DOS batch files:
+find %{buildroot} -name \*.bat -exec rm {} \;
+
+# Get rid of backup files:
+find %{buildroot}/ -name "*~" -exec rm -f {} \;
+find . -name "*~" -exec rm -f {} \;
+
+# Get rid of a stray copy of the license:
+rm %{buildroot}%{pylibdir}/LICENSE.txt
+
+# Do bytecompilation with the newly installed interpreter.
+# This is similar to the script in macros.pybytecompile
+# 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} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
+
+# Since we have pathfix.py in bindir, this is created, but we don't want it
+rm -rf %{buildroot}%{_bindir}/__pycache__
+
+# Fixup permissions for shared libraries from non-standard 555 to standard 755:
+find %{buildroot} -perm 555 -exec chmod 755 {} \;
+
+# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
+# avoid the user having to know the precise version and ABI flags.
+# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
+%if %{with debug_build} && %{without flatpackage}
+ln -s \
+ %{_bindir}/python%{LDVERSION_debug} \
+ %{buildroot}%{_bindir}/python3-debug
+%endif
+
+# System Python: Link the executable to libexec
+# This is for backwards compatibility only and should be removed in Fedora 29
+%if %{without flatpackage}
+mkdir -p %{buildroot}%{_libexecdir}
+ln -s %{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
+%endif
+
+# There's 2to3-X.X executable and 2to3 soft link to it.
+# No reason to have both, so keep only 2to3 as an executable.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
+mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
+
+%if %{with flatpackage}
+# Remove stuff that would conflict with python3 package
+rm %{buildroot}%{_bindir}/python3
+rm %{buildroot}%{_bindir}/pydoc3
+rm %{buildroot}%{_bindir}/pathfix.py
+rm %{buildroot}%{_bindir}/idle3
+rm %{buildroot}%{_bindir}/python3-*
+rm %{buildroot}%{_bindir}/pyvenv
+rm %{buildroot}%{_bindir}/2to3
+rm %{buildroot}%{_libdir}/libpython3.so
+rm %{buildroot}%{_mandir}/man1/python3.1*
+rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+%endif
+
+
+# ======================================================
+# Checks for packaging issues
+# ======================================================
+
+%check
+
+# first of all, check timestamps of bytecode files
+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} %{SOURCE8}
+
+# Ensure that the curses module was linked against libncursesw.so, rather than
+# libncurses.so
+# See https://bugzilla.redhat.com/show_bug.cgi?id=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
+ *.%{SOABI_debug})
+ ldd $Module | grep %{py_INSTSONAME_optimized} &&
+ (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
+
+ ;;
+ *.%{SOABI_optimized})
+ ldd $Module | grep %{py_INSTSONAME_debug} &&
+ (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
+ ;;
+ esac
+done
+
+
+# ======================================================
+# Running the upstream test suite
+# ======================================================
+
+topdir=$(pwd)
+CheckPython() {
+ ConfName=$1
+ ConfDir=$(pwd)/build/$ConfName
+
+ 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.
+
+ # 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= \
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
+ -wW --slowest --findleaks \
+ -x test_distutils \
+ -x test_bdist_rpm \
+ %ifarch %{mips64}
+ -x test_ctypes \
+ %endif
+ %ifarch %{power64} s390 s390x armv7hl %{mips}
+ -x test_gdb \
+ %endif
+ %ifarch ppc64le
+ -x test_buffer \
+ %endif
+
+ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+}
+
+%if %{with tests}
+
+# Check each of the configurations:
+%if %{with debug_build}
+CheckPython debug
+%endif # with debug_build
+CheckPython optimized
+
+%endif # with tests
+
+
+%files
+%license LICENSE
+%doc README.rst
+
+%if %{without flatpackage}
+%{_bindir}/pydoc*
+%{_bindir}/python3
+%{_bindir}/pyvenv
+# Remove in Fedora 29:
+%{_libexecdir}/system-python
+%else
+%{_bindir}/pydoc%{pybasever}
+%endif
+
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
+%{_bindir}/pyvenv-%{pybasever}
+%{_mandir}/*/*
+
+
+%if %{without flatpackage}
+%files libs
+%license LICENSE
+%doc README.rst
+%endif
+
+%dir %{pylibdir}
+%dir %{dynload_dir}
+
+%{pylibdir}/lib2to3
+%if %{without flatpackage}
+%exclude %{pylibdir}/lib2to3/tests
+%endif
+
+%dir %{pylibdir}/unittest/
+%dir %{pylibdir}/unittest/__pycache__/
+%{pylibdir}/unittest/*.py
+%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/asyncio/
+%dir %{pylibdir}/asyncio/__pycache__/
+%{pylibdir}/asyncio/*.py
+%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/venv/
+%dir %{pylibdir}/venv/__pycache__/
+%{pylibdir}/venv/*.py
+%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/venv/scripts
+
+%{pylibdir}/wsgiref
+%{pylibdir}/xmlrpc
+
+%dir %{pylibdir}/ensurepip/
+%dir %{pylibdir}/ensurepip/__pycache__/
+%{pylibdir}/ensurepip/*.py
+%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
+%exclude %{pylibdir}/ensurepip/_bundled
+%else
+%dir %{pylibdir}/ensurepip/_bundled
+%{pylibdir}/ensurepip/_bundled/*.whl
+%endif
+
+%if %{with rewheel}
+%dir %{pylibdir}/ensurepip/rewheel/
+%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
+%{pylibdir}/ensurepip/rewheel/*.py
+%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
+%endif
+
+%dir %{pylibdir}/test/
+%dir %{pylibdir}/test/__pycache__/
+%dir %{pylibdir}/test/support/
+%dir %{pylibdir}/test/support/__pycache__/
+%{pylibdir}/test/__init__.py
+%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
+%{pylibdir}/test/support/__init__.py
+%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/
+%dir %{pylibdir}/concurrent/__pycache__/
+%{pylibdir}/concurrent/*.py
+%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/futures/
+%dir %{pylibdir}/concurrent/futures/__pycache__/
+%{pylibdir}/concurrent/futures/*.py
+%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/pydoc_data
+
+%{dynload_dir}/_blake2.%{SOABI_optimized}.so
+%{dynload_dir}/_md5.%{SOABI_optimized}.so
+%{dynload_dir}/_sha1.%{SOABI_optimized}.so
+%{dynload_dir}/_sha256.%{SOABI_optimized}.so
+%{dynload_dir}/_sha3.%{SOABI_optimized}.so
+%{dynload_dir}/_sha512.%{SOABI_optimized}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
+%{dynload_dir}/_bisect.%{SOABI_optimized}.so
+%{dynload_dir}/_bz2.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
+%{dynload_dir}/_contextvars.%{SOABI_optimized}.so
+%{dynload_dir}/_crypt.%{SOABI_optimized}.so
+%{dynload_dir}/_csv.%{SOABI_optimized}.so
+%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
+%{dynload_dir}/_curses.%{SOABI_optimized}.so
+%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
+%{dynload_dir}/_dbm.%{SOABI_optimized}.so
+%{dynload_dir}/_decimal.%{SOABI_optimized}.so
+%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
+%{dynload_dir}/_heapq.%{SOABI_optimized}.so
+%{dynload_dir}/_json.%{SOABI_optimized}.so
+%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
+%{dynload_dir}/_lzma.%{SOABI_optimized}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
+%{dynload_dir}/_opcode.%{SOABI_optimized}.so
+%{dynload_dir}/_pickle.%{SOABI_optimized}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
+%{dynload_dir}/_queue.%{SOABI_optimized}.so
+%{dynload_dir}/_random.%{SOABI_optimized}.so
+%{dynload_dir}/_socket.%{SOABI_optimized}.so
+%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
+%{dynload_dir}/_ssl.%{SOABI_optimized}.so
+%{dynload_dir}/_struct.%{SOABI_optimized}.so
+%{dynload_dir}/array.%{SOABI_optimized}.so
+%{dynload_dir}/audioop.%{SOABI_optimized}.so
+%{dynload_dir}/binascii.%{SOABI_optimized}.so
+%{dynload_dir}/cmath.%{SOABI_optimized}.so
+%{dynload_dir}/_datetime.%{SOABI_optimized}.so
+%{dynload_dir}/fcntl.%{SOABI_optimized}.so
+%{dynload_dir}/grp.%{SOABI_optimized}.so
+%{dynload_dir}/math.%{SOABI_optimized}.so
+%{dynload_dir}/mmap.%{SOABI_optimized}.so
+%{dynload_dir}/nis.%{SOABI_optimized}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
+%{dynload_dir}/parser.%{SOABI_optimized}.so
+%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
+%{dynload_dir}/readline.%{SOABI_optimized}.so
+%{dynload_dir}/resource.%{SOABI_optimized}.so
+%{dynload_dir}/select.%{SOABI_optimized}.so
+%{dynload_dir}/spwd.%{SOABI_optimized}.so
+%{dynload_dir}/syslog.%{SOABI_optimized}.so
+%{dynload_dir}/termios.%{SOABI_optimized}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
+%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
+%{dynload_dir}/_uuid.%{SOABI_optimized}.so
+%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
+%{dynload_dir}/zlib.%{SOABI_optimized}.so
+
+%dir %{pylibdir}/site-packages/
+%dir %{pylibdir}/site-packages/__pycache__/
+%{pylibdir}/site-packages/README.txt
+%{pylibdir}/*.py
+%dir %{pylibdir}/__pycache__/
+%{pylibdir}/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/collections/
+%dir %{pylibdir}/collections/__pycache__/
+%{pylibdir}/collections/*.py
+%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/ctypes/
+%dir %{pylibdir}/ctypes/__pycache__/
+%{pylibdir}/ctypes/*.py
+%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/ctypes/macholib
+
+%{pylibdir}/curses
+
+%dir %{pylibdir}/dbm/
+%dir %{pylibdir}/dbm/__pycache__/
+%{pylibdir}/dbm/*.py
+%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/distutils/
+%dir %{pylibdir}/distutils/__pycache__/
+%{pylibdir}/distutils/*.py
+%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/distutils/README
+%{pylibdir}/distutils/command
+%exclude %{pylibdir}/distutils/command/wininst-*.exe
+
+%dir %{pylibdir}/email/
+%dir %{pylibdir}/email/__pycache__/
+%{pylibdir}/email/*.py
+%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/email/mime
+%doc %{pylibdir}/email/architecture.rst
+
+%{pylibdir}/encodings
+
+%{pylibdir}/html
+%{pylibdir}/http
+
+%dir %{pylibdir}/importlib/
+%dir %{pylibdir}/importlib/__pycache__/
+%{pylibdir}/importlib/*.py
+%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/json/
+%dir %{pylibdir}/json/__pycache__/
+%{pylibdir}/json/*.py
+%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/logging
+%{pylibdir}/multiprocessing
+
+%dir %{pylibdir}/sqlite3/
+%dir %{pylibdir}/sqlite3/__pycache__/
+%{pylibdir}/sqlite3/*.py
+%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+
+%if %{without flatpackage}
+%exclude %{pylibdir}/turtle.py
+%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%endif
+
+%{pylibdir}/urllib
+%{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
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
+%endif
+
+# "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):
+%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%dir %{_includedir}/python%{LDVERSION_optimized}/
+%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+
+%{_libdir}/%{py_INSTSONAME_optimized}
+%if %{without flatpackage}
+%{_libdir}/libpython3.so
+%endif
+
+
+%if %{without flatpackage}
+%files devel
+%{_bindir}/2to3
+%endif
+
+%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
+%if %{without flatpackage}
+%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%endif
+%{pylibdir}/distutils/command/wininst-*.exe
+%{_includedir}/python%{LDVERSION_optimized}/*.h
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+
+%if %{without flatpackage}
+%{_bindir}/python3-config
+%{_libdir}/pkgconfig/python3.pc
+%{_bindir}/pathfix.py
+%endif
+
+%{_bindir}/python%{pybasever}-config
+%{_bindir}/python%{LDVERSION_optimized}-config
+%{_bindir}/python%{LDVERSION_optimized}-*-config
+%{_libdir}/libpython%{LDVERSION_optimized}.so
+%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
+%{_libdir}/pkgconfig/python-%{pybasever}.pc
+
+
+%if %{without flatpackage}
+%files idle
+
+%{_bindir}/idle*
+%else
+%{_bindir}/idle%{pybasever}
+%endif
+
+%{pylibdir}/idlelib
+
+%if %{without flatpackage}
+%{_metainfodir}/idle3.appdata.xml
+%{_datadir}/applications/idle3.desktop
+%{_datadir}/icons/hicolor/*/apps/idle3.*
+%endif
+
+%if %{without flatpackage}
+%files tkinter
+%endif
+
+%{pylibdir}/tkinter
+%if %{without flatpackage}
+%exclude %{pylibdir}/tkinter/test
+%endif
+%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
+%{pylibdir}/turtle.py
+%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%dir %{pylibdir}/turtledemo
+%{pylibdir}/turtledemo/*.py
+%{pylibdir}/turtledemo/*.cfg
+%dir %{pylibdir}/turtledemo/__pycache__/
+%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+
+
+%if %{without flatpackage}
+%files test
+%endif
+
+%{pylibdir}/ctypes/test
+%{pylibdir}/distutils/tests
+%{pylibdir}/sqlite3/test
+%{pylibdir}/test
+%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
+%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
+%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
+%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so
+%{pylibdir}/lib2to3/tests
+%{pylibdir}/tkinter/test
+%{pylibdir}/unittest/test
+
+
+# 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}
+%if %{without flatpackage}
+%files debug
+%{_bindir}/python3-debug
+%endif
+
+# Analog of the core subpackage's files:
+%{_bindir}/python%{LDVERSION_debug}
+
+# Analog of the -libs subpackage's files:
+# ...with debug builds of the built-in "extension" modules:
+
+%{dynload_dir}/_blake2.%{SOABI_debug}.so
+%{dynload_dir}/_md5.%{SOABI_debug}.so
+%{dynload_dir}/_sha1.%{SOABI_debug}.so
+%{dynload_dir}/_sha256.%{SOABI_debug}.so
+%{dynload_dir}/_sha3.%{SOABI_debug}.so
+%{dynload_dir}/_sha512.%{SOABI_debug}.so
+
+%{dynload_dir}/_asyncio.%{SOABI_debug}.so
+%{dynload_dir}/_bisect.%{SOABI_debug}.so
+%{dynload_dir}/_bz2.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
+%{dynload_dir}/_contextvars.%{SOABI_debug}.so
+%{dynload_dir}/_crypt.%{SOABI_debug}.so
+%{dynload_dir}/_csv.%{SOABI_debug}.so
+%{dynload_dir}/_ctypes.%{SOABI_debug}.so
+%{dynload_dir}/_curses.%{SOABI_debug}.so
+%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
+%{dynload_dir}/_dbm.%{SOABI_debug}.so
+%{dynload_dir}/_decimal.%{SOABI_debug}.so
+%{dynload_dir}/_elementtree.%{SOABI_debug}.so
+%if %{with gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_debug}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_debug}.so
+%{dynload_dir}/_heapq.%{SOABI_debug}.so
+%{dynload_dir}/_json.%{SOABI_debug}.so
+%{dynload_dir}/_lsprof.%{SOABI_debug}.so
+%{dynload_dir}/_lzma.%{SOABI_debug}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
+%{dynload_dir}/_opcode.%{SOABI_debug}.so
+%{dynload_dir}/_pickle.%{SOABI_debug}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
+%{dynload_dir}/_queue.%{SOABI_debug}.so
+%{dynload_dir}/_random.%{SOABI_debug}.so
+%{dynload_dir}/_socket.%{SOABI_debug}.so
+%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
+%{dynload_dir}/_ssl.%{SOABI_debug}.so
+%{dynload_dir}/_struct.%{SOABI_debug}.so
+%{dynload_dir}/array.%{SOABI_debug}.so
+%{dynload_dir}/audioop.%{SOABI_debug}.so
+%{dynload_dir}/binascii.%{SOABI_debug}.so
+%{dynload_dir}/cmath.%{SOABI_debug}.so
+%{dynload_dir}/_datetime.%{SOABI_debug}.so
+%{dynload_dir}/fcntl.%{SOABI_debug}.so
+%{dynload_dir}/grp.%{SOABI_debug}.so
+%{dynload_dir}/math.%{SOABI_debug}.so
+%{dynload_dir}/mmap.%{SOABI_debug}.so
+%{dynload_dir}/nis.%{SOABI_debug}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
+%{dynload_dir}/parser.%{SOABI_debug}.so
+%{dynload_dir}/pyexpat.%{SOABI_debug}.so
+%{dynload_dir}/readline.%{SOABI_debug}.so
+%{dynload_dir}/resource.%{SOABI_debug}.so
+%{dynload_dir}/select.%{SOABI_debug}.so
+%{dynload_dir}/spwd.%{SOABI_debug}.so
+%{dynload_dir}/syslog.%{SOABI_debug}.so
+%{dynload_dir}/termios.%{SOABI_debug}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
+%{dynload_dir}/unicodedata.%{SOABI_debug}.so
+%{dynload_dir}/_uuid.%{SOABI_debug}.so
+%{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so
+%{dynload_dir}/zlib.%{SOABI_debug}.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}
+
+# Analog of the -devel subpackage's files:
+%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
+%{_includedir}/python%{LDVERSION_debug}
+%{_bindir}/python%{LDVERSION_debug}-config
+%{_bindir}/python%{LDVERSION_debug}-*-config
+%{_libdir}/libpython%{LDVERSION_debug}.so
+%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
+%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
+
+# Analog of the -tools subpackage's files:
+# None for now; we could build precanned versions that have the appropriate
+# shebang if needed
+
+# Analog of the tkinter subpackage's files:
+%{dynload_dir}/_tkinter.%{SOABI_debug}.so
+
+# Analog of the -test subpackage's files:
+%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
+%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
+%{dynload_dir}/_testcapi.%{SOABI_debug}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
+
+%endif # with debug_build
+
+# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
+# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
+#
+# The /usr/lib/rpm/redhat/macros defines %%__debug_package 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 https://bugzilla.redhat.com/show_bug.cgi?id=1476593
+%undefine _debuginfo_subpackages
+
+# ======================================================
+# Finally, the changelog:
+# ======================================================
+
+%changelog
+* Wed Jun 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-1
+- Update to 3.7.0 final
+
+* Tue Jun 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.20.rc1
+- Update to 3.7.0rc1
+
+* Thu May 31 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.19.b5
+- Update to 3.7.0b5
+
+* Sat May 12 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.18.b4
+- Bump the bundled pip version to 10.0.1
+
+* Thu May 10 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.17.b4
+- Update to 3.7.0b4
+
+* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.16.b3
+- Fix multiprocessing regression on newer glibcs
+- Enable test_multiprocessing_fork(server) and _spawn again
+Resolves: rhbz#1569933
+
+* Thu Apr 19 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.15.b3
+- Skip test_multiprocessing_fork(server) and _spawn for now
+
+* Thu Mar 29 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.14.b3
+- Update to 3.7.0b3
+
+* Sat Mar 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.13.b2
+- Fix broken macro invocation and broken building of C Python extensions
+Resolves: rhbz#1560103
+
+* Wed Feb 28 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.12.b2
+- Update to 3.7.0b2
+
+* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.11.b1
+- Fix the py_byte_compile macro to work on Python 2
+- Remove the pybytecompile macro file from the flat package
+Resolves: rhbz#1484993
+
+* Wed Feb 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.10.b1
+- Filter out automatic /usr/bin/python3.X requirement,
+ recommend the main package from libs instead
+Resolves: rhbz#1547131
+
+* Thu Feb 15 2018 Michal Cyprian <mcyprian(a)redhat.com> - 3.7.0-0.9.b1
+- Remove sys.executable check from change-user-install-location patch
+Resolves: rhbz#1532287
+
+* Wed Feb 14 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.8.b1
+- Readd ldconfig scriplets via macro (later removed on F28+ only)
+
+* Mon Feb 12 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.7.0-0.7.b1
+- Update to 3.7.0b1
+- Define TLS cipher suite on build time
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.0-0.6.a4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Fri Jan 26 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 3.7.0-0.5.a4
+- Remove the python3-tools package (#rhbz 1312030)
+- Move /usr/bin/2to3 to python3-devel
+- Move /usr/bin/idle and idlelib to python3-idle
+- Provide python3-tools from python3-idle
+
+* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.7.0-0.4.a4
+- Rebuilt for switch to libxcrypt
+
+* Thu Jan 18 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.3.a4
+- Remove /usr/bin/python37 (#1526129)
+- Move install stuff from %%check to %%install, where it belongs (oops)
+
+* Tue Jan 09 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.2.a4
+- Update to 3.7.0 alpha 4
+- Fix the compilation of the nis module
+
+* Tue Nov 28 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.7.0-0.1.a2
+- Update to 3.7.0 alpha 2
+- Removed merged patches 262, 277, 279
diff --git a/sources b/sources
new file mode 100644
index 0000000..099b345
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (Python-3.7.0.tar.xz) = 8bb11233fb67ee9ab8ed1b72f8fdc62f66e26a6beaaeb92448bce681cf065269833b1658d3ed2459127f25ba43adb0eab73cf27c59834a2a803fb529b4216739
4 years, 8 months
Architecture specific change in rpms/waypipe.git
by githook-noreply@fedoraproject.org
The package rpms/waypipe.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/waypipe.git/commit/?id=2cbd090ad3....
Change:
-ExcludeArch: s390x
Thanks.
Full change:
============
commit 2cbd090ad3ab7c448eb05d68c211f35d2ad27ad3
Author: Lubomir Rintel <lkundrak(a)v3.sk>
Date: Wed Aug 28 09:01:13 2019 +0200
Update to version 0.6.1
diff --git a/.gitignore b/.gitignore
index b352bc2..b384c5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/waypipe-v0.6.0.tar.gz
+/waypipe-v0.6.1.tar.gz
diff --git a/sources b/sources
index a3dd7c5..2850742 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (waypipe-v0.6.0.tar.gz) = 6264b1a0fc49b131d8710fb1a62ebc53ac23585071c50620f6c31e19066da952a5a9a55dccd0193521066fd11bede53f4c1c59790f58fb0300bda7ee1b5ec135
+SHA512 (waypipe-v0.6.1.tar.gz) = 7b7cdc6d808f8f9e3720425af6ca1a75b81ffadc990e181f52940320efab6d5c6b55dcc10adb36c90b784426a71fab2a037206f4cb2634775628b52dc27cb830
diff --git a/waypipe.spec b/waypipe.spec
index 3ee1f4e..356aef1 100644
--- a/waypipe.spec
+++ b/waypipe.spec
@@ -1,5 +1,5 @@
Name: waypipe
-Version: 0.6.0
+Version: 0.6.1
Release: 1%{?dist}
Summary: Wayland forwarding proxy
@@ -19,9 +19,6 @@ BuildRequires: pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-server)
-# https://gitlab.freedesktop.org/mstoeckl/waypipe/issues/15
-ExcludeArch: s390x
-
%description
Waypipe is a proxy for Wayland clients. It forwards Wayland messages and
serializes changes to shared memory buffers over a single socket. This makes
@@ -53,5 +50,8 @@ application forwarding similar to "ssh -X" feasible.
%changelog
+* Wed Aug 28 2019 Lubomir Rintel <lkundrak(a)v3.sk> - 0.6.1-1
+- Update to version 0.6.1
+
* Thu Aug 22 2019 Lubomir Rintel <lkundrak(a)v3.sk> - 0.6.0-1
- Initial packaging
4 years, 8 months