Compare commits

...
Sign in to create a new pull request.

39 commits

Author SHA1 Message Date
Fedora Release Engineering
2d9588a73a Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 17:43:48 +00:00
Fedora Release Engineering
220270b17a Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 05:48:51 +00:00
Fedora Release Engineering
ccb7e36330 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 06:11:57 +00:00
Fedora Release Engineering
a917e60b3d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 10:54:34 +00:00
Miroslav Suchý
3b56561b1d convert GPLv3+ license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-07-25 12:46:22 +02:00
Fedora Release Engineering
d42bd3575a Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 08:35:02 +00:00
Fedora Release Engineering
70991afa89 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 00:13:29 +00:00
Fedora Release Engineering
b60ef75ace Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 22:26:37 +00:00
Fedora Release Engineering
2c5e2ef8dd Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 06:22:46 +00:00
Fedora Release Engineering
453d2f6712 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 10:21:43 +00:00
Fedora Release Engineering
65881aad92 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 15:29:48 +00:00
Fedora Release Engineering
36c7cd88bd - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 09:31:48 +00:00
Fedora Release Engineering
5a7d2a2134 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 04:08:17 +00:00
Miro Hrončok
f7f4020534 Fix FTBFS: Macro %python_sitelib failed to expand
See https://fedoraproject.org/wiki/Changes/PythonMacroError

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1974327
2021-07-13 17:23:11 +02:00
Fedora Release Engineering
8a380cf32e - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 08:38:51 +00:00
Fedora Release Engineering
f7efb0971b - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 23:04:17 +00:00
Fedora Release Engineering
aca2e5bf33 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 09:50:19 +00:00
Petr Sklenar
315dcc9be1 bump the version only 2019-11-14 14:11:50 +01:00
Petr Sklenar
46dbc07176 python3 specialities a_b a,b 2019-11-14 14:10:57 +01:00
Petr Sklenar
cae60a5c67 change the name of the file 2019-11-14 10:40:57 +01:00
Petr Sklenar
618621f42f change the name of the file 2019-11-14 10:35:39 +01:00
Petr Sklenar
b082022bf4 sources changed 2019-11-14 10:30:58 +01:00
Petr Sklenar
09061f64b8 bump the version 2019-11-14 10:23:04 +01:00
Petr Sklenar
353352c2e5 used python3 now 2019-11-14 10:18:09 +01:00
Petr Sklenar
7c8d3edaf2 f30 build issues 2019-11-13 11:00:15 +01:00
Petr Sklenar
4cc3dd5c55 build fixed 2019-11-13 10:53:47 +01:00
Petr Sklenar
b7e3e33212 built for f31 fixed 2019-11-13 10:45:51 +01:00
Petr Sklenar
ad19ca1e23 build fixed 2019-11-13 10:44:52 +01:00
Petr Sklenar
62a14b15db built fixed 2019-11-13 10:31:41 +01:00
Petr Sklenar
570f51b516 python shebang added, built fixed 2019-11-13 10:29:38 +01:00
Fedora Release Engineering
9be1a40e45 proxyfuzz fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675687 2019-08-08 16:18:21 +00:00
Fedora Release Engineering
a14477598a - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 11:22:54 +00:00
Fedora Release Engineering
02a27b31c8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 04:53:00 +00:00
097eb0d4a5 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:38 +01:00
Fedora Release Engineering
9f8927f835 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 22:54:26 +00:00
Jason Tibbitts
81552d4c8f Remove needless use of %defattr 2018-07-10 02:15:34 -05:00
3c90abb02f
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 08:40:44 +01:00
Fedora Release Engineering
44dea1ee94 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 05:50:22 +00:00
Iryna Shcherbina
950b64c454 Update Python 2 dependency declarations to new packaging standards 2018-02-07 07:30:19 +01:00
6 changed files with 336 additions and 267 deletions

0
.gitignore vendored
View file

View file

@ -16,7 +16,7 @@ ProxyFuzz 0.1, Simple fuzzing proxy by Rodrigo Marcos
usage():
python proxyfuzz -l -r -p [options]
python3 proxyfuzz -l -r -p [options]
[options]

View file

@ -1,7 +0,0 @@
--- a/proxyfuzz.py.txt 2011-08-31 15:58:55.987848740 +0200
+++ b/proxyfuzz.py.txt 2011-08-31 14:52:40.040845307 +0200
@@ -1,3 +1,4 @@
+#!/usr/bin/python
# Proxyfuzz - On the fly TCP and UDP network fuzzer
# Copyright (C) 2011 Rodrigo Marcos
#

263
proxyfuzz.py Normal file
View file

@ -0,0 +1,263 @@
#!/usr/bin/python3
# Proxyfuzz - On the fly TCP and UDP network fuzzer
# Copyright (C) 2011 Rodrigo Marcos
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Proxyfuzz: a TCP and UDP proxy man-in-the-middle fuzzer
# v 0.1
# By Rodrigo Marcos
# http://www.secforce.co.uk
from twisted.protocols import portforward
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
import getopt, sys
from random import randint, randrange
# UDP Proxy stuff
class Client(DatagramProtocol):
def __init__(self, server, host, port):
self.server = server
self.host = host
self.port = port
def startProtocol(self):
self.transport.connect(desthost, destport)
def datagramReceived(self, data, host_port):
global verbose
global notuntil
global request
global testclient
if testclient:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print("Server ------> Client")
print(data)
addr=(self.host, self.port)
self.server.transport.write(data, addr)
class Server(DatagramProtocol):
client = None
def datagramReceived(self, data, host_port):
host, port = host_port
if not self.client or self.client.host != host or self.client.port != port:
self.client = Client(self, host, port)
reactor.listenUDP(0, self.client)
global verbose
global notuntil
global request
global testserver
if testserver:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print("Client ------> Server")
print(data)
addr=(desthost, destport)
self.client.transport.write(data, addr)
# TCP proxy stuff
def server_dataReceived(self, data):
global verbose
global notuntil
global request
global testserver
if testserver:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print("Client ------> server")
print(data)
portforward.Proxy.dataReceived(self, data)
portforward.ProxyServer.dataReceived = server_dataReceived
def client_dataReceived(self, data):
global verbose
global notuntil
global request
global testclient
if testclient:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print("Server ------> Client")
print(data)
portforward.Proxy.dataReceived(self, data)
portforward.ProxyClient.dataReceived = client_dataReceived
overflowstrings = ["A" * 255, "A" * 256, "A" * 257, "A" * 420, "A" * 511, "A" * 512, "A" * 1023, "A" * 1024, "A" * 2047,
"A" * 2048, "A" * 4096, "A" * 4097, "A" * 5000, "A" * 10000, "A" * 20000, "A" * 32762, "A" * 32763,
"A" * 32764, "A" * 32765, "A" * 32766, "A" * 32767, "A" * 32768, "A" * 65534, "A" * 65535,
"A" * 65536, "%x" * 1024, "%n" * 1025, "%s" * 2048, "%s%n%x%d" * 5000, "%s" * 30000, "%s" * 40000,
"%.1024d", "%.2048d", "%.4096d", "%.8200d", "%99999999999s", "%99999999999d", "%99999999999x",
"%99999999999n", "%99999999999s" * 1000, "%99999999999d" * 1000, "%99999999999x" * 1000,
"%99999999999n" * 1000, "%08x" * 100, "%%20s" * 1000, "%%20x" * 1000, "%%20n" * 1000, "%%20d" * 1000,
"%#0123456x%08x%x%s%p%n%d%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%a%C%S%08x%%#0123456x%%x%%s%%p%%n%%d%%o%%u%%c%%h%%l%%q%%j%%z%%Z%%t%%i%%e%%g%%f%%a%%C%%S%%08x"]
def bitflipping(data):
l = len(data)
n = int(l * 7 / 100) # 7% of the bytes to be modified
for i in range(0, n): # We change the bytes
r = randint(0, l - 1)
data = data[0:r] + str.encode(chr(randrange(0, 255))) + data[r + 1:]
return data
def bofinjection(data):
l = len(data)
r = randint(0, len(overflowstrings) - 1)
data = data[0:r] + str.encode(overflowstrings[r]) + data[r - l:]
return data
def fuzz(data):
r = randint(0, 5)
if r == 0:
data = bitflipping(data)
r = randint(0, 5)
if r == 0:
data = bofinjection(data)
return data
def startudpproxy():
reactor.listenUDP(localport, Server())
reactor.run()
def starttcpproxy():
reactor.listenTCP(localport, portforward.ProxyFactory(desthost, destport))
reactor.run()
def usage():
# print "###############################################################"
print('')
print("ProxyFuzz 0.1, Simple fuzzing proxy by Rodrigo Marcos")
print("http://www.secforce.co.uk")
print('')
print("usage():")
print('')
print("proxyfuzz -l <localport> -r <remotehost> -p <remoteport> [options]")
print('')
print(" [options]")
print(" -c: Fuzz only client side (both otherwise)")
print(" -s: Fuzz only server side (both otherwise)")
print(" -w: Number of requests to send before start fuzzing")
print(" -u: UDP protocol (otherwise TCP is used)")
print(" -v: Verbose (outputs network traffic)")
print(" -h: Help page")
verbose = False
notuntil = 0
request = 0
proto = "tcp"
localport = 0
desthost = ""
destport = 0
testclient = 1
testserver = 1
def main():
global verbose
global notuntil
global proto
global localport
global desthost
global destport
global testclient
global testserver
try:
opts, args = getopt.getopt(sys.argv[1:], "uvhcsl:r:p:w:", ["help"])
except getopt.GetoptError:
usage()
sys.exit(2)
try:
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
if o == "-l":
localport = int(a)
if o == "-r":
desthost = a
if o == "-p":
destport = int(a)
if o == "-v":
verbose = True
if o == "-w":
notuntil = int(a)
if o == "-u":
proto = "udp"
if o == "-c": # Only client
testserver = 0
if o == "-s": # Only server
testclient = 0
except:
usage()
sys.exit(2)
if testserver == 0 and testclient == 0:
usage()
sys.exit(2)
elif localport == 0 or desthost == "" or destport == 0:
usage()
sys.exit(2)
else:
if proto == "tcp":
starttcpproxy()
else: # UDP
startudpproxy()
if __name__ == "__main__":
main()

View file

@ -1,243 +0,0 @@
# Proxyfuzz - On the fly TCP and UDP network fuzzer
# Copyright (C) 2011 Rodrigo Marcos
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Proxyfuzz: a TCP and UDP proxy man-in-the-middle fuzzer
# v 0.1
# By Rodrigo Marcos
# http://www.secforce.co.uk
from twisted.protocols import portforward
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
import getopt, sys
from random import randint
# UDP Proxy stuff
class Client(DatagramProtocol):
def __init__(self, server, host, port):
self.server = server
self.host = host
self.port = port
def startProtocol(self):
self.transport.connect(desthost, destport)
def datagramReceived(self, data, (host, port)):
global verbose
global notuntil
global request
global testclient
if testclient:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print "Server ------> Client"
print "%r" % data
self.server.transport.write(data, (self.host, self.port))
class Server(DatagramProtocol):
client = None
def datagramReceived(self, data, (host, port)):
if not self.client or self.client.host != host or self.client.port != port:
self.client = Client(self, host, port)
reactor.listenUDP(0, self.client)
global verbose
global notuntil
global request
global testserver
if testserver:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print "Client ------> Server"
print "%r" % data
self.client.transport.write(data, (desthost, destport))
# TCP proxy stuff
def server_dataReceived(self, data):
global verbose
global notuntil
global request
global testserver
if testserver:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print "Client ------> server"
print "%r" % data
portforward.Proxy.dataReceived(self, data)
portforward.ProxyServer.dataReceived = server_dataReceived
def client_dataReceived(self, data):
global verbose
global notuntil
global request
global testclient
if testclient:
if request < notuntil:
request = request + 1
else:
data = fuzz(data)
if verbose:
print "Server ------> Client"
print "%r" % data
portforward.Proxy.dataReceived(self, data)
portforward.ProxyClient.dataReceived = client_dataReceived
overflowstrings = ["A" * 255, "A" * 256, "A" * 257, "A" * 420, "A" * 511, "A" * 512, "A" * 1023, "A" * 1024, "A" * 2047, "A" * 2048, "A" * 4096, "A" * 4097, "A" * 5000, "A" * 10000, "A" * 20000, "A" * 32762, "A" * 32763, "A" * 32764, "A" * 32765, "A" * 32766, "A" * 32767, "A" * 32768, "A" * 65534, "A" * 65535, "A" * 65536, "%x" * 1024, "%n" * 1025 , "%s" * 2048, "%s%n%x%d" * 5000, "%s" * 30000, "%s" * 40000, "%.1024d", "%.2048d", "%.4096d", "%.8200d", "%99999999999s", "%99999999999d", "%99999999999x", "%99999999999n", "%99999999999s" * 1000, "%99999999999d" * 1000, "%99999999999x" * 1000, "%99999999999n" * 1000, "%08x" * 100, "%%20s" * 1000,"%%20x" * 1000,"%%20n" * 1000,"%%20d" * 1000, "%#0123456x%08x%x%s%p%n%d%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%a%C%S%08x%%#0123456x%%x%%s%%p%%n%%d%%o%%u%%c%%h%%l%%q%%j%%z%%Z%%t%%i%%e%%g%%f%%a%%C%%S%%08x"]
def bitflipping(data):
l = len(data)
n = int(l*7/100) # 7% of the bytes to be modified
for i in range(0,n): # We change the bytes
r = randint(0,l-1)
data = data[0:r] + chr(randint(0,255)) + data[r+1:]
return data
def bofinjection(data):
l = len(data)
r = randint(0,len(overflowstrings)-1)
data = data[0:r] + overflowstrings[r] + data[r-l:]
return data
def fuzz(data):
r = randint(0,5)
if r==0:
data = bitflipping(data)
r = randint(0,5)
if r==0:
data = bofinjection(data)
return data
def startudpproxy():
reactor.listenUDP(localport, Server())
reactor.run()
def starttcpproxy():
reactor.listenTCP(localport, portforward.ProxyFactory(desthost, destport))
reactor.run()
def usage():
#print "###############################################################"
print
print "ProxyFuzz 0.1, Simple fuzzing proxy by Rodrigo Marcos"
print "http://www.secforce.co.uk"
print
print "usage():"
#print
print "python proxyfuzz -l <localport> -r <remotehost> -p <remoteport> [options]"
print
print " [options]"
print " -c: Fuzz only client side (both otherwise)"
print " -s: Fuzz only server side (both otherwise)"
print " -w: Number of requests to send before start fuzzing"
print " -u: UDP protocol (otherwise TCP is used)"
print " -v: Verbose (outputs network traffic)"
print " -h: Help page"
verbose = False
notuntil = 0
request = 0
proto = "tcp"
localport = 0
desthost = ""
destport = 0
testclient = 1
testserver = 1
def main():
global verbose
global notuntil
global proto
global localport
global desthost
global destport
global testclient
global testserver
try:
opts, args = getopt.getopt(sys.argv[1:], "uvhcsl:r:p:w:", ["help"])
except getopt.GetoptError:
usage()
sys.exit(2)
try:
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
if o == "-l":
localport=int(a)
if o == "-r":
desthost=a
if o == "-p":
destport=int(a)
if o == "-v":
verbose = True
if o == "-w":
notuntil=int(a)
if o == "-u":
proto="udp"
if o == "-c": # Only client
testserver=0
if o == "-s": # Only server
testclient=0
except:
usage()
sys.exit(2)
if testserver==0 and testclient==0:
usage()
sys.exit(2)
elif localport==0 or desthost=="" or destport==0:
usage()
sys.exit(2)
else:
if proto=="tcp":
starttcpproxy()
else: # UDP
startudpproxy()
if __name__ == "__main__":
main()

View file

@ -1,23 +1,22 @@
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
Name: proxyfuzz
Version: 20110923
Release: 9%{?dist}
Version: 20190404
Release: 31%{?dist}
Summary: Man-in-the-middle non-deterministic network fuzzer
Group: Applications/Internet
License: GPLv3+
URL: http://www.secforce.co.uk/research/tools.html
Source0: http://www.secforce.co.uk/media/tools/proxyfuzz.py.txt
# Automatically converted from old format: GPLv3+ - review is highly recommended.
License: GPL-3.0-or-later
URL: https://github.com/SECFORCE
Source0: proxyfuzz.py
Source1: README-Fedora
BuildArch: noarch
Requires: python-twisted-core
BuildRequires: python2-devel
Requires: python3-twisted
BuildRequires: python3-devel
%if 0%{?with_python3}
BuildRequires: python3-devel
%endif # if with_python3
Patch0: make-executable.patch
#Patch0: make-executable.patch
%description
ProxyFuzz is a man-in-the-middle non-deterministic network fuzzier written in
@ -29,27 +28,84 @@ fuzz any network communication.
%prep
cp -p %{SOURCE0} .
cp -p %{SOURCE1} .
%patch0 -p1 -b .make-executable
#%patch0 -p1 -b .make-executable
%build
%install
rm -rf $RPM_BUILD_ROOT
install -m 755 -p -d ${RPM_BUILD_ROOT}/%{_sbindir}
install -m 755 -p proxyfuzz.py.txt ${RPM_BUILD_ROOT}/%{_sbindir}/proxyfuzz
install -m 755 -p proxyfuzz.py ${RPM_BUILD_ROOT}/%{_sbindir}/proxyfuzz
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc README-Fedora
%{_sbindir}/proxyfuzz
%changelog
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 25 2024 Miroslav Suchý <msuchy@redhat.com> - 20190404-27
- convert license to SPDX
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190404-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20110923-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20110923-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20110923-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Feb 07 2018 Iryna Shcherbina <ishcherb@redhat.com> - 20110923-10
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20110923-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild