Compare commits

..

No commits in common. "rawhide" and "f22" have entirely different histories.

6 changed files with 26 additions and 544 deletions

View file

@ -1,22 +0,0 @@
--- src/reaper.c~ 2011-08-16 16:52:48.000000000 -0500
+++ src/reaper.c 2024-01-31 11:42:45.581345843 -0600
@@ -85,7 +85,7 @@
return g_object_ref (singleton_reaper);
} else {
GObject *obj;
- obj = G_OBJECT_CLASS (vte_reaper_parent_class)->constructor (type, n_construct_properties, construct_properties);
+ obj = (GObject *)(G_OBJECT_CLASS (vte_reaper_parent_class)->constructor (type, n_construct_properties, construct_properties));
singleton_reaper = VTE_REAPER (obj);
return obj;
}
--- src/reaper.c~ 2024-01-31 12:12:15.260939495 -0600
+++ src/reaper.c 2024-01-31 13:03:55.397334625 -0600
@@ -82,7 +82,7 @@
GObjectConstructParam *construct_properties)
{
if (singleton_reaper) {
- return g_object_ref (singleton_reaper);
+ return (GObject *)(g_object_ref (singleton_reaper));
} else {
GObject *obj;
obj = (GObject *)(G_OBJECT_CLASS (vte_reaper_parent_class)->constructor (type, n_construct_properties, construct_properties));

View file

@ -1,22 +0,0 @@
--- o/src/vte.c 2018-05-03 20:53:16.000000000 +0200
+++ n/src/vte.c 2018-05-03 20:57:48.764010197 +0200
@@ -7513,17 +7513,10 @@
event->button, x, y);
switch (event->button) {
case 1:
- /* If Shift is held down, or we're not in events mode,
- * copy the selected text. */
- if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
- !terminal->pvt->mouse_tracking_mode)
- handled = _vte_terminal_maybe_end_selection (terminal);
+ handled = _vte_terminal_maybe_end_selection (terminal);
break;
case 2:
- if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
- !terminal->pvt->mouse_tracking_mode) {
- handled = TRUE;
- }
+ handled = TRUE;
break;
case 3:
default:

View file

@ -1,84 +0,0 @@
commit 8cff105a2b280ed738b296955724590b9cd348ce
commit ef34977b6765be1036ea8cd016861199033e2231
commit 49e3433dea9a32d7ab9972b719484b49ca7f6b81
commit 94b6ca416d4e5b54be084a057ec1341bcfddabe1
commit ecb9fcc8cfb73207bcda93889e3e2564d41f79c9
--- origsrc/vte-0.28.2/src/pty.c 2011-08-16 16:52:48.000000000 -0500
+++ src/vte-0.28.2/src/pty.c 2015-08-03 14:01:55.151226800 -0500
@@ -616,7 +616,7 @@ __vte_pty_fork(VtePty *pty,
* @pty: a #VtePty
* @rows: the desired number of rows
* @columns: the desired number of columns
- * @error: (allow-none); return location to store a #GError, or %NULL
+ * @error: (allow-none): return location to store a #GError, or %NULL
*
* Attempts to resize the pseudo terminal's window size. If successful, the
* OS kernel will send #SIGWINCH to the child process group.
--- origsrc/vte-0.28.2/src/vte.c 2015-08-03 13:56:24.348720200 -0500
+++ src/vte-0.28.2/src/vte.c 2015-08-03 16:15:52.185800500 -0500
@@ -2474,7 +2474,7 @@ _vte_terminal_set_pointer_visible(VteTer
*
* Creates a new terminal widget.
*
- * Returns: (transfer full) (type Vte.Terminal): a new #VteTerminal object
+ * Returns: (transfer none) (type Vte.Terminal): a new #VteTerminal object
*/
GtkWidget *
vte_terminal_new(void)
@@ -3680,7 +3680,7 @@ vte_terminal_watch_child (VteTerminal *t
* Gets the user's shell, or %NULL. In the latter case, the
* system default (usually "/bin/sh") should be used.
*
- * Returns: (tranfer full) (type filename): a newly allocated string with the
+ * Returns: (transfer full) (type filename): a newly allocated string with the
* user's shell, or %NULL
*
* Since: 0.28
@@ -4615,8 +4615,8 @@ out:
/**
* vte_terminal_feed:
* @terminal: a #VteTerminal
- * @data: a string in the terminal's current encoding
- * @length: the length of the string
+ * @data: (array length=length) (element-type guint8): a string in the terminal's current encoding
+ * @length the length of the string
*
* Interprets @data as if it were data received from a child process. This
* can either be used to drive the terminal without a child process, or just
@@ -6233,7 +6233,7 @@ vte_terminal_copy_cb(GtkClipboard *clipb
* @start_col: first column to search for data
* @end_row: last row to search for data
* @end_col: last column to search for data
- * @is_selected: a #VteSelectionFunc callback
+ * @is_selected: (scope call): a #VteSelectionFunc callback
* @user_data: (closure): user data to be passed to the callback
* @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text attributes
*
@@ -6432,7 +6432,7 @@ vte_terminal_get_text_maybe_wrapped(VteT
/**
* vte_terminal_get_text:
* @terminal: a #VteTerminal
- * @is_selected: a #VteSelectionFunc callback
+ * @is_selected: (scope call): a #VteSelectionFunc callback
* @user_data: (closure): user data to be passed to the callback
* @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text attributes
*
@@ -6462,7 +6462,7 @@ vte_terminal_get_text(VteTerminal *termi
/**
* vte_terminal_get_text_include_trailing_spaces:
* @terminal: a #VteTerminal
- * @is_selected: a #VteSelectionFunc callback
+ * @is_selected: (scope call): a #VteSelectionFunc callback
* @user_data: (closure): user data to be passed to the callback
* @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text attributes
*
@@ -6497,7 +6497,7 @@ vte_terminal_get_text_include_trailing_s
* vte_terminal_get_cursor_position:
* @terminal: a #VteTerminal
* @column: (out) (allow-none): a location to store the column, or %NULL
- * @row : (out) (allow-none): a location to store the row, or %NULL
+ * @row: (out) (allow-none): a location to store the row, or %NULL
*
* Reads the location of the insertion cursor and returns it. The row
* coordinate is absolute.

View file

@ -1,268 +0,0 @@
--- vte-0.28.2-clean/src/mev.c 2011-08-16 23:52:48.000000000 +0200
+++ vte-0.28.2-clean/src/mev.c 2018-05-03 22:07:30.275915172 +0200
@@ -42,7 +42,9 @@
tracking_mouse = 1000,
tracking_hilite = 1001,
tracking_cell_motion = 1002,
- tracking_all_motion = 1003
+ tracking_all_motion = 1003,
+ tracking_xterm_ext = 1006,
+ tracking_urxvt = 1015
} tracking_mode = 0;
static void
@@ -59,6 +61,8 @@
decset(tracking_hilite, FALSE);
decset(tracking_cell_motion, FALSE);
decset(tracking_all_motion, FALSE);
+ decset(tracking_xterm_ext, FALSE);
+ decset(tracking_urxvt, FALSE);
fflush(stdout);
}
@@ -93,6 +97,14 @@
fprintf(stdout, "All motion tracking enabled.\r\n");
decset(tracking_all_motion, TRUE);
break;
+ case tracking_xterm_ext:
+ fprintf(stdout, "Xterm 1006 mouse tracking extension enabled.\r\n");
+ decset(tracking_xterm_ext, TRUE);
+ break;
+ case tracking_urxvt:
+ fprintf(stdout, "rxvt-unicode 1015 mouse tracking extension enabled.\r\n");
+ decset(tracking_urxvt, TRUE);
+ break;
default:
fprintf(stdout, "Tracking disabled.\r\n");
break;
@@ -102,6 +114,8 @@
fprintf(stdout, "C - Hilite tracking [FIXME: NOT IMPLEMENTED].\r\n");
fprintf(stdout, "D - Cell motion tracking.\r\n");
fprintf(stdout, "E - All motion tracking.\r\n");
+ fprintf(stdout, "F - Xterm 1006 extension.\r\n");
+ fprintf(stdout, "G - rxvt-unicode extension.\r\n");
fprintf(stdout, "%s", _VTE_CAP_ESC "8");
fflush(stdout);
}
@@ -153,6 +167,18 @@
0 : tracking_all_motion;
i++;
break;
+ case 'F':
+ case 'f':
+ tracking_mode = (tracking_mode == tracking_xterm_ext) ?
+ 0 : tracking_xterm_ext;
+ i++;
+ break;
+ case 'G':
+ case 'g':
+ tracking_mode = (tracking_mode == tracking_urxvt) ?
+ 0 : tracking_urxvt;
+ i++;
+ break;
case 'Q':
case 'q':
ret = TRUE;
--- vte-0.28.2-clean/src/vte.c 2018-05-03 22:04:27.780199219 +0200
+++ vte-0.28.2-clean/src/vte.c 2018-05-03 22:07:30.277915158 +0200
@@ -5816,21 +5816,20 @@
}
static void
-vte_terminal_get_mouse_tracking_info (VteTerminal *terminal,
- int button,
- long col,
- long row,
- unsigned char *pb,
- unsigned char *px,
- unsigned char *py)
+vte_terminal_feed_mouse_event(VteTerminal *terminal,
+ int button,
+ gboolean is_drag,
+ gboolean is_release,
+ long col,
+ long row)
{
- unsigned char cb = 0, cx = 0, cy = 0;
+ unsigned char cb = 0;
+ long cx, cy;
+ char buf[LINE_MAX];
+ gint len = 0;
/* Encode the button information in cb. */
switch (button) {
- case 0: /* Release/no buttons. */
- cb = 3;
- break;
case 1: /* Left. */
cb = 0;
break;
@@ -5847,7 +5846,12 @@
cb = 65; /* Scroll down. */
break;
}
- cb += 32; /* 32 for normal */
+
+ /* With the exception of the 1006 mode, button release is also encoded here. */
+ /* Note that if multiple extensions are enabled, the 1006 is used, so it's okay to check for only that. */
+ if (is_release && !terminal->pvt->mouse_xterm_extension) {
+ cb = 3;
+ }
/* Encode the modifiers. */
if (terminal->pvt->modifiers & GDK_SHIFT_MASK) {
@@ -5860,38 +5864,46 @@
cb |= 16;
}
- /* Encode the cursor coordinates. */
- cx = 32 + CLAMP(1 + col,
- 1, terminal->column_count);
- cy = 32 + CLAMP(1 + row,
- 1, terminal->row_count);;
-
- *pb = cb;
- *px = cx;
- *py = cy;
+ /* Encode a drag event. */
+ if (is_drag) {
+ cb |= 32;
+ }
+
+ /* Clamp the cursor coordinates. Make them 1-based. */
+ cx = CLAMP(1 + col,
+ 1, terminal->column_count);
+ cy = CLAMP(1 + row,
+ 1, terminal->row_count);
+
+ /* Check the extensions in decreasing order of preference. Encoding the release event above assumes that 1006 comes first. */
+ if (terminal->pvt->mouse_xterm_extension) {
+ /* xterm's extended mode (1006) */
+ len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "<%d;%ld;%ld%c", cb, cx, cy, is_release ? 'm' : 'M');
+ } else if (terminal->pvt->mouse_urxvt_extension) {
+ /* urxvt's extended mode (1015) */
+ len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "%d;%ld;%ldM", 32 + cb, cx, cy);
+ } else if (cx <= 231 && cy <= 231) {
+ /* legacy mode */
+ len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "M%c%c%c", 32 + cb, 32 + (guchar)cx, 32 + (guchar)cy);
+ }
+
+ /* Send event direct to the child, this is binary not text data */
+ vte_terminal_feed_child_binary(terminal, buf, len);
}
static void
vte_terminal_send_mouse_button_internal(VteTerminal *terminal,
int button,
+ gboolean is_release,
long x,
long y)
{
- unsigned char cb, cx, cy;
- char buf[LINE_MAX];
- gint len;
int width = terminal->char_width;
int height = terminal->char_height;
long col = (x - terminal->pvt->inner_border.left) / width;
long row = (y - terminal->pvt->inner_border.top) / height;
- vte_terminal_get_mouse_tracking_info (terminal,
- button, col, row,
- &cb, &cx, &cy);
-
- /* Send event direct to the child, this is binary not text data */
- len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "M%c%c%c", cb, cx, cy);
- vte_terminal_feed_child_binary(terminal, buf, len);
+ vte_terminal_feed_mouse_event(terminal, button, FALSE /* not drag */, is_release, col, row);
}
/* Send a mouse button click/release notification. */
@@ -5919,7 +5931,8 @@
}
vte_terminal_send_mouse_button_internal(terminal,
- (event->type == GDK_BUTTON_PRESS) ? event->button : 0,
+ event->button,
+ event->type == GDK_BUTTON_RELEASE,
event->x, event->y);
}
@@ -5927,9 +5940,6 @@
static void
vte_terminal_maybe_send_mouse_drag(VteTerminal *terminal, GdkEventMotion *event)
{
- unsigned char cb, cx, cy;
- char buf[LINE_MAX];
- gint len;
int width = terminal->char_width;
int height = terminal->char_height;
long col = ((long) event->x - terminal->pvt->inner_border.left) / width;
@@ -5958,14 +5968,9 @@
break;
}
- vte_terminal_get_mouse_tracking_info (terminal,
- terminal->pvt->mouse_last_button, col, row,
- &cb, &cx, &cy);
- cb += 32; /* for movement */
-
- /* Send event direct to the child, this is binary not text data */
- len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "M%c%c%c", cb, cx, cy);
- vte_terminal_feed_child_binary(terminal, buf, len);
+ vte_terminal_feed_mouse_event(terminal, terminal->pvt->mouse_last_button,
+ TRUE /* drag */, FALSE /* not release */,
+ col, row);
}
/* Clear all match hilites. */
@@ -11384,6 +11389,7 @@
/* Encode the parameters and send them to the app. */
vte_terminal_send_mouse_button_internal(terminal,
button,
+ FALSE /* not release */,
event->x,
event->y);
}
@@ -14091,6 +14097,8 @@
pvt->mouse_last_button = 0;
pvt->mouse_last_x = 0;
pvt->mouse_last_y = 0;
+ pvt->mouse_xterm_extension = FALSE;
+ pvt->mouse_urxvt_extension = FALSE;
/* Clear modifiers. */
pvt->modifiers = 0;
/* Reset miscellaneous stuff. */
--- vte-0.28.2-clean/src/vte-private.h 2018-05-03 22:04:27.773199268 +0200
+++ vte-0.28.2-clean/src/vte-private.h 2018-05-03 22:07:30.275915172 +0200
@@ -305,6 +305,8 @@
long mouse_last_x, mouse_last_y;
gboolean mouse_autohide;
guint mouse_autoscroll_tag;
+ gboolean mouse_xterm_extension;
+ gboolean mouse_urxvt_extension;
/* State variables for handling match checks. */
char *match_contents;
--- vte-0.28.2-clean/src/vteseq.c 2018-05-03 22:04:27.773199268 +0200
+++ vte-0.28.2-clean/src/vteseq.c 2018-05-03 22:07:30.277915158 +0200
@@ -685,10 +685,20 @@
GINT_TO_POINTER(0),
GINT_TO_POINTER(MOUSE_TRACKING_ALL_MOTION_TRACKING),
NULL, NULL,},
+ /* 1006: Extended mouse coordinates. */
+ {1006, &terminal->pvt->mouse_xterm_extension, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
/* 1010/rxvt: disallowed, scroll-on-output is set by user. */
{1010, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
/* 1011/rxvt: disallowed, scroll-on-keypress is set by user. */
{1011, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1015/urxvt: Extended mouse coordinates. */
+ {1015, &terminal->pvt->mouse_urxvt_extension, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
/* 1035: disallowed, don't know what to do with it. */
{1035, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
/* 1036: Meta-sends-escape. */

View file

@ -1,11 +0,0 @@
--- o/src/vte.c 2018-05-03 20:53:16.000000000 +0200
+++ o/src/vte.c 2018-05-03 20:57:48.764010197 +0200
@@ -4520,7 +4520,7 @@
if (max_bytes) {
max_bytes = terminal->pvt->max_input_bytes / max_bytes;
} else {
- max_bytes = VTE_MAX_INPUT_READ;
+ max_bytes = terminal->pvt->max_input_bytes;
}
bytes = terminal->pvt->input_bytes;

161
vte.spec
View file

@ -4,9 +4,10 @@
Name: vte
Version: 0.28.2
Release: 47%{?dist}
Release: 14%{?dist}
Summary: A terminal emulator
License: LGPL-2.0-or-later
License: LGPLv2+
Group: User Interface/X
#VCS: git:git://git.gnome.org/vte
URL: http://developer.gnome.org/vte/
Source: http://download.gnome.org/sources/vte/0.28/%{name}-%{version}.tar.xz
@ -27,44 +28,31 @@ Patch4: vte-0.28.2-control.patch
# Fix mc paste
# https://bugzilla.redhat.com/show_bug.cgi?id=1114301
Patch5: vte-0.28.2-paste-fix.diff
# Backport introspection fixes
# https://bugzilla.redhat.com/show_bug.cgi?id=1256535
Patch6: vte-0.28.2-introspection-fixes.patch
# Backport "cat bigfile" speedup
# https://bugzilla.gnome.org/show_bug.cgi?id=721944
Patch7: vte-0.28.2-performance.patch
# Backport shift-mouse grab "hang" fix
# https://bugzilla.gnome.org/show_bug.cgi?id=683730
Patch8: vte-0.28.2-683730.patch
# Backport extended xterm/urxvt mouse tracking support
# https://bugzilla.gnome.org/show_bug.cgi?id=681329
Patch9: vte-0.28.2-mouse-tracking.patch
Patch10: pointer-types.patch
BuildRequires: make
BuildRequires: gtk2-devel >= %{gtk2_version}
BuildRequires: pango-devel >= %{pango_version}
BuildRequires: glib2-devel >= %{glib2_version}
BuildRequires: ncurses-devel
BuildRequires: pygtk2-devel, python-devel, ncurses-devel
BuildRequires: gettext
BuildRequires: libXt-devel
BuildRequires: intltool
# Work around broken perl / perl-Carp
BuildRequires: perl-Carp
BuildRequires: gobject-introspection-devel
# systemd creates the utmp group
Requires: systemd
# initscripts creates the utmp group
Requires: initscripts
%description
VTE is a terminal emulator widget for use with GTK+ 2.0.
%package devel
Summary: Files needed for developing applications which use vte
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: gtk2-devel
Requires: ncurses-devel
Requires: pkgconfig
Requires: pygtk2-devel
%description devel
The vte-devel package includes the header files and developer docs
@ -75,28 +63,23 @@ vte.
%prep
%setup -q
%patch -P 0 -p1
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p2
%patch -P 7 -p1
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p0
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
PYTHON=%{_bindir}/python`%{__python} -c "import sys ; print sys.version[:3]"`
export PYTHON
%configure \
--enable-shared \
--enable-static \
--enable-introspection \
--with-gtk=2.0 \
--libexecdir=%{_libdir}/%{name} \
--without-glX \
--disable-gtk-doc \
--disable-python
--disable-gtk-doc
make %{?_smp_mflags}
%install
@ -112,7 +95,12 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/*.a
%find_lang vte-0.0
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files -f vte-0.0.lang
%defattr(-,root,root)
%doc COPYING HACKING NEWS README
%doc src/iso2022.txt
%doc doc/utmpwtmp.txt doc/boxes.txt doc/openi18n/UTF-8.txt doc/openi18n/wrap.txt
@ -120,121 +108,22 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/*.a
%dir %{_libdir}/vte
%attr(2711,root,utmp) %{_libdir}/vte/gnome-pty-helper
%{_datadir}/%{name}
%{_libdir}/girepository-1.0
%{_libdir}/python*/site-packages/*
#rpmlint gives:
#vte.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/gtk-2.0/vtemodule.so vtemodule.so()(64bit)
# This is not used by anything except possibly third party scripts, so we're leaving it in place.
%files devel
%defattr(-,root,root)
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*
%{_bindir}/%{name}
%{_datadir}/gir-1.0
%{_datadir}/pygtk/2.0/defs/vte.defs
%doc %{_datadir}/gtk-doc/html/vte-0.0
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-47
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-46
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-45
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-44
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-43
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jan 31 2024 Gwyn Ciesla <gwync@protonmail.com> - 0.28.2-42
- PAtch for modern C.
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-41
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-40
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Mar 04 2023 Gwyn Ciesla <gwync@protonmail.com> - 0.28.2-39
- migrated to SPDX license
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-37
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-35
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Feb 10 2021 Petr Viktorin <pviktori@redhat.com> - 0.28.2-34
- Remove Requires on pygtk2
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Oct 05 2019 Lumír Balhar <lbalhar@redhat.com> - 0.28.2-30
- Disable Python 2 bindings
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jul 17 2019 Kevin Fenzi <kevin@scrye.com> - 0.28.2-28
- Fix last python unversioned deps.
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jun 18 2018 Kevin Fenzi <kevin@scrye.com> - 0.28.2-25
- Depend on systemd for utmp group, not initscripts anymore. Fixes bug #1592402
* Sun May 06 2018 Kevin Fenzi <kevin@scrye.com> - 0.28.2-24
- Add backported patches for various issues. Fixes bug #1574683
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Feb 05 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.28.2-22
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.28.2-18
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.28.2-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Aug 24 2015 Yaakov Selkowitz <yselkowi@redhat.com> - 0.28.2-16
- Enable GObject Introspection (#1256535)
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.28.2-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.28.2-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild