diff --git a/.gitignore b/.gitignore index e976c88..5a1df18 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ uudeview-0.5.20.tar.gz -/uudeview-7ef9e26532b39bdcedd319c07b6b77fc70e270dd.tar.gz -/uudeview-7640bc56aa5016cdc9c139eb1ab3ec874e47c744.tar.gz diff --git a/matherr.patch b/matherr.patch new file mode 100644 index 0000000..c80f52b --- /dev/null +++ b/matherr.patch @@ -0,0 +1,17 @@ +--- a/uudeview-0.5.20/tcl/uutcl.c 2018-03-15 20:53:21.698000000 +0000 ++++ b/uudeview-0.5.20/tcl/uutcl.c 2018-03-15 20:53:32.646000000 +0000 +@@ -48,14 +48,6 @@ + #include + #endif + +-/* +- * The following variable is a special hack that is needed in order for +- * Sun shared libraries to be used for Tcl. +- */ +- +-extern int matherr(); +-int *tclDummyMathPtr = (int *) matherr; +- + #include + #include + #include diff --git a/sources b/sources index a0ef2ee..6300e06 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (uudeview-7640bc56aa5016cdc9c139eb1ab3ec874e47c744.tar.gz) = ae307e7b2488c3b61462dadfc45c80e98b0e0eb7387f1ce1b7ba5501d64b29ab19de4b4a4f5e3c148682de5d244b3c4b775b92b6b8c642346c6eb1325c1ec20b +0161abaec3658095044601eae82bbc5b uudeview-0.5.20.tar.gz diff --git a/uudeview-debian-patches.patch b/uudeview-debian-patches.patch new file mode 100644 index 0000000..b5165c3 --- /dev/null +++ b/uudeview-debian-patches.patch @@ -0,0 +1,372 @@ +--- uudeview-0.5.20.orig/uulib/uulib.c ++++ uudeview-0.5.20/uulib/uulib.c +@@ -872,7 +872,10 @@ + } + + /* +- * decode file first to temp file, then copy it to a final location ++ * Decode file first to temp file, then copy it to a final location. ++ * A move is preferable to a copy. If the file is on the same ++ * partition, no copy is performed. This is important for large ++ * files. + */ + + int UUEXPORT +@@ -978,6 +981,12 @@ + return UURET_IOERR; + } + ++ if (rename(thefile->binfile, uugen_fnbuffer) == 0) { ++ fclose(source); ++ close(fildes); ++ goto finish_ok; ++ } ++ + if ((target = fdopen (fildes, "wb")) == NULL) { + progress.action = 0; + UUMessage (uulib_id, __LINE__, UUMSG_ERROR, +@@ -1042,6 +1051,8 @@ + thefile->binfile, + strerror (uu_errno = errno)); + } ++ ++ finish_ok: + _FP_free (thefile->binfile); + thefile->binfile = NULL; + thefile->state &= ~UUFILE_TMPFILE; +@@ -1103,9 +1114,9 @@ + + while (!feof (inpfile) && + (uu_fast_scanning || ftell(inpfile) < maxpos)) { +- if (_FP_fgets (uugen_inbuffer, 511, inpfile) == NULL) ++ if (_FP_fgets (uugen_inbuffer, 1023, inpfile) == NULL) + break; +- uugen_inbuffer[511] = '\0'; ++ uugen_inbuffer[1023] = '\0'; + + if (ferror (inpfile)) + break; +--- uudeview-0.5.20.orig/uulib/uuscan.c ++++ uudeview-0.5.20/uulib/uuscan.c +@@ -387,10 +387,10 @@ + *attribute != '(' && *attribute != ')' && + *attribute != '<' && *attribute != '>' && + *attribute != '@' && *attribute != ',' && +- /* *attribute != ';' && */ *attribute != ':' && +- *attribute != '\\' &&*attribute != '"' && +- *attribute != '/' && /* *attribute != '[' && +- *attribute != ']' && */ *attribute != '?' && ++ *attribute != ';' && *attribute != ':' && ++ *attribute != '\\' && *attribute != '"' && ++ *attribute != '/' && *attribute != '[' && ++ *attribute != ']' && *attribute != '?' && + *attribute != '=' && length < 255) { + *ptr++ = *attribute++; + length++; +--- uudeview-0.5.20.orig/uulib/uustring.h ++++ uudeview-0.5.20/uulib/uustring.h +@@ -36,3 +36,4 @@ + #define S_MIME_B_NOT_FOUND 35 + #define S_MIME_MULTI_DEPTH 36 + #define S_MIME_PART_MULTI 37 ++#define S_OPEN_FILE 38 +--- uudeview-0.5.20.orig/uulib/uunconc.c ++++ uudeview-0.5.20/uulib/uunconc.c +@@ -1311,6 +1311,12 @@ + char *mode, *ntmp; + uufile *iter; + size_t bytes; ++#define HAVE_MKSTEMP ++#ifdef HAVE_MKSTEMP ++ int tmpfd; ++ const char *tmpprefix = "uuXXXXXX"; ++ char *tmpdir = NULL; ++#endif /* HAVE_MKSTEMP */ + + if (data == NULL || data->thisfile == NULL) + return UURET_ILLVAL; +@@ -1325,17 +1331,39 @@ + return UURET_NODATA; + + if (data->uudet == PT_ENCODED) +- mode = "wt"; /* open text files in text mode */ ++ mode = "wtx"; /* open text files in text mode */ + else +- mode = "wb"; /* otherwise in binary */ ++ mode = "wbx"; /* otherwise in binary */ + ++#ifdef HAVE_MKSTEMP ++ if ((getuid()==geteuid()) && (getgid()==getegid())) { ++ tmpdir=getenv("TMPDIR"); ++ } ++ ++ if (!tmpdir) { ++ tmpdir = "/tmp"; ++ } ++ data->binfile = malloc(strlen(tmpdir)+strlen(tmpprefix)+2); ++ ++ if (!data->binfile) { ++#else + if ((data->binfile = tempnam (NULL, "uu")) == NULL) { ++#endif /* HAVE_MKSTEMP */ + UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, + uustring (S_NO_TEMP_NAME)); + return UURET_NOMEM; + } + ++#ifdef HAVE_MKSTEMP ++ strcpy(data->binfile, tmpdir); ++ strcat(data->binfile, "/"); ++ strcat(data->binfile, tmpprefix); ++ ++ if ((tmpfd = mkstemp(data->binfile)) == -1 || ++ (dataout = fdopen(tmpfd, mode)) == NULL) { ++#else + if ((dataout = fopen (data->binfile, mode)) == NULL) { ++#endif /* HAVE_MKSTEMP */ + /* + * we couldn't create a temporary file. Usually this means that TMP + * and TEMP aren't set +@@ -1343,6 +1371,12 @@ + UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, + uustring (S_WR_ERR_TARGET), + data->binfile, strerror (uu_errno = errno)); ++#ifdef HAVE_MKSTEMP ++ if (tmpfd != -1) { ++ unlink(data->binfile); ++ close(tmpfd); ++ } ++#endif /* HAVE_MKSTEMP */ + _FP_free (data->binfile); + data->binfile = NULL; + uu_errno = errno; +@@ -1437,6 +1471,9 @@ + res = UURET_IOERR; + break; + } ++ UUMessage (uunconc_id, __LINE__, UUMSG_MESSAGE, ++ uustring (S_OPEN_FILE), ++ iter->data->sfname); + _FP_strncpy (uugen_fnbuffer, iter->data->sfname, 1024); + } + +@@ -1496,13 +1533,19 @@ + */ + + if (data->uudet == BH_ENCODED && data->binfile) { ++#ifdef HAVE_MKSTEMP ++ ntmp = malloc(strlen(tmpdir)+strlen(tmpprefix)+2); ++ ++ if (ntmp == NULL) { ++#else + if ((ntmp = tempnam (NULL, "uu")) == NULL) { ++#endif /* HAVE_MKSTEMP */ + UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, + uustring (S_NO_TEMP_NAME)); + progress.action = 0; + return UURET_NOMEM; + } +- if ((datain = fopen (data->binfile, "rb")) == NULL) { ++ if ((datain = fopen (data->binfile, "rbx")) == NULL) { + UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, + uustring (S_NOT_OPEN_FILE), + data->binfile, strerror (uu_errno = errno)); +@@ -1510,12 +1553,27 @@ + free (ntmp); + return UURET_IOERR; + } ++ ++#ifdef HAVE_MKSTEMP ++ strcpy(ntmp, tmpdir); ++ strcat(ntmp, "/"); ++ strcat(ntmp, tmpprefix); ++ if ((tmpfd = mkstemp(ntmp)) == -1 || ++ (dataout = fdopen(tmpfd, "wb")) == NULL) { ++#else + if ((dataout = fopen (ntmp, "wb")) == NULL) { ++#endif /* HAVE_MKSTEMP */ + UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, + uustring (S_NOT_OPEN_TARGET), + ntmp, strerror (uu_errno = errno)); + progress.action = 0; + fclose (datain); ++#ifdef HAVE_MKSTEMP ++ if (tmpfd != -1) { ++ unlink(ntmp); ++ close(tmpfd); ++ } ++#endif /* HAVE_MKSTEMP */ + free (ntmp); + return UURET_IOERR; + } +--- uudeview-0.5.20.orig/uulib/uustring.c ++++ uudeview-0.5.20/uulib/uustring.c +@@ -107,6 +107,7 @@ + { S_MIME_B_NOT_FOUND, "Boundary expected on Multipart message but found EOF" }, + { S_MIME_MULTI_DEPTH, "Multipart message nested too deep" }, + { S_MIME_PART_MULTI, "Handling partial multipart message as plain text" }, ++ { S_OPEN_FILE, "Opened file %s" }, + + { 0, "" } + }; +--- uudeview-0.5.20.orig/unix/uudeview.c ++++ uudeview-0.5.20/unix/uudeview.c +@@ -443,18 +443,46 @@ + FILE *target; + size_t bytes; + int res; ++#define HAVE_MKSTEMP ++#ifdef HAVE_MKSTEMP ++ int tmpfd; ++ const char *tmpprefix = "uuXXXXXX"; ++ char *tmpdir = NULL; ++#endif /* HAVE_MKSTEMP */ + + if (stdinput) { + fprintf (stderr, "proc_stdin: cannot process stdin twice\n"); + return 0; + } + ++#ifdef HAVE_MKSTEMP ++ if ((getuid()==geteuid()) && (getgid()==getegid())) { ++ tmpdir=getenv("TMPDIR"); ++ } ++ ++ if (!tmpdir) { ++ tmpdir = "/tmp"; ++ } ++ stdfile = malloc(strlen(tmpdir)+strlen(tmpprefix)+2); ++ ++ if (!stdfile) { ++#else + if ((stdfile = tempnam (NULL, "uu")) == NULL) { ++#endif + fprintf (stderr, "proc_stdin: cannot get temporary file\n"); + return 0; + } + +- if ((target = fopen (stdfile, "wb")) == NULL) { ++#ifdef HAVE_MKSTEMP ++ strcpy(stdfile, tmpdir); ++ strcat(stdfile, "/"); ++ strcat(stdfile, tmpprefix); ++ ++ if ((tmpfd = mkstemp(stdfile)) == -1 || ++ (target = fdopen(tmpfd, "wbx")) == NULL) { ++#else ++ if ((target = fopen (stdfile, "wbx")) == NULL) { ++#endif + fprintf (stderr, "proc_stdin: cannot open temp file %s for writing: %s\n", + stdfile, strerror (errno)); + _FP_free (stdfile); +@@ -657,9 +685,6 @@ + else switch (*(argv[number] + 1)) { + case '\0': + interact = 0; +- if (overwrite == 0) { +- overwrite = 1; +- } + proc_stdin (); + break; + case 'a': +@@ -699,10 +724,7 @@ + fprintf (stderr, "WARNING: cannot interact when reading from stdin\n"); + } + else { +- interact = (*argv[number] == '+') ? 1 : 0; +- if (overwrite == 0 && *argv[number] == '-') { +- overwrite = 1; +- } ++ interact = (*argv[number] == '+') ? 1 : 0; + } + break; + case 'm': +@@ -773,6 +795,8 @@ + break; + } + } ++ if (overwrite == 0 && interact == 0 && autoren == 0) ++ overwrite = 1; + + return 1; + } +--- uudeview-0.5.20.orig/man/uudeview.1 ++++ uudeview-0.5.20/man/uudeview.1 +@@ -164,6 +164,16 @@ + verbosity. Normally, the program prints some status messages + while reading the input files, which can be very helpful if something + should go wrong. Use if these messages disturb you. ++Disables progress bars. See ++.B -n ++option. ++.TP ++.B -v ++(disables Verbosity) Disables verbose messages, i.e. notes are not ++displayed, but does not remove warnings and errors. Is not as quiet as ++the ++.B -q ++(Quiet) option. + .TP + .B -n + No progress bars. Normally, UUDeview prints ASCII bars crawling up +--- uudeview-0.5.20.orig/tcl/xdeview ++++ uudeview-0.5.20/tcl/xdeview +@@ -59,8 +59,8 @@ + # MIME configuration + # + +-ifndef MIMEGlobalTypes "" +-ifndef MIMEGlobalCap "" ++ifndef MIMEGlobalTypes "/etc/mime.types" ++ifndef MIMEGlobalCap "/etc/mailcap" + if { ! [ catch { set env(HOME) } ] } { + ifndef MIMELocalTypes $env(HOME)/.mime.types + ifndef MIMELocalCap $env(HOME)/.mailcap +--- uudeview-0.5.20.orig/man/uuwish.1 ++++ uudeview-0.5.20/man/uuwish.1 +@@ -0,0 +1,45 @@ ++.\" Copyright (c) 1999 Roland Rosenfeld ++.\" changes Copyright (c) 2001 Chris Hanson ++.\" ++.\" 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 2 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, write to the Free Software ++.\" Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++.\" ++.\" This manual page is written especially for Debian Linux. ++.\" ++.TH UUWISH 1 "February 2001" "Debian Project" "Debian GNU/Linux" ++.SH NAME ++uuwish \- A minimal wish extended by the UU commands ++.SH SYNOPSIS ++.B uuwish ++is a minimal ++.BR wish (1) ++extended by the UU commands that are available in ++.BR uudeview (1) ++and ++.BR uuenview (1). ++.B uuwish ++isn't meant to be called directly; it is a Tcl/Tk script interpreter, ++which is meant to be used by ++.BR xdeview (1). ++.SH "SEE ALSO" ++.BR xdeview (1), ++.BR uudeview (1), ++.BR uuenview (1), ++.BR wish (1). ++.SH AUTHOR ++.B uuwish ++was written by Frank Pilhofer . ++.PP ++This manual page was written by Roland Rosenfeld , ++for the Debian GNU/Linux system (but may be used by others). diff --git a/uudeview-format-security.patch b/uudeview-format-security.patch new file mode 100644 index 0000000..42d9f9f --- /dev/null +++ b/uudeview-format-security.patch @@ -0,0 +1,22 @@ +diff --git a/unix/uuenview.c b/unix/uuenview.c +index 7acfd3b..726a2a6 100644 +--- a/unix/uuenview.c ++++ b/unix/uuenview.c +@@ -310,7 +310,7 @@ SendMkCommand (char **rcptlist, char *towhom, char *subject, int isemail) + } + + if ((*rcptlist = (char *) malloc (strlen (towhom) + 16)) == NULL) { +- fprintf (stderr, "error: Out of memory allocating %d bytes\n", ++ fprintf (stderr, "error: Out of memory allocating %zd bytes\n", + strlen (towhom)+16); + _FP_free (command); + return NULL; +@@ -483,7 +483,7 @@ AttachFiles (char *towhom, char *subject, + if (_FP_stristr (input, "multipart") != NULL) { + /* it is already a multipart posting. grab the boundary */ + if ((ptr = _FP_stristr (input, "boundary=")) != NULL) { +- fprintf(thepipe, input); ++ fprintf(thepipe, "%s", input); + strcpy (boundary, ParseValue (ptr)); + hadmulti = 1; + } diff --git a/uudeview-threads.patch b/uudeview-threads.patch deleted file mode 100644 index 91f9e04..0000000 --- a/uudeview-threads.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up uudeview-7ef9e26532b39bdcedd319c07b6b77fc70e270dd/configure.ac.threads uudeview-7ef9e26532b39bdcedd319c07b6b77fc70e270dd/configure.ac ---- uudeview-7ef9e26532b39bdcedd319c07b6b77fc70e270dd/configure.in.threads 2025-01-15 12:34:54.094758034 -0500 -+++ uudeview-7ef9e26532b39bdcedd319c07b6b77fc70e270dd/configure.in 2025-01-15 14:03:10.795382171 -0500 -@@ -171,11 +171,7 @@ if test "x$have_tcl" != "xno" ; then - AC_MSG_RESULT(found in $tcl_lib_dir) - fi - -- case $TCL_DEFS in -- *TCL_THREADS*) -- CFLAGS="-D_REENTRANT $CFLAGS" -- ;; -- esac -+ CFLAGS="-std=gnu17 -D_REENTRANT $CFLAGS" - fi - - # diff --git a/uudeview.spec b/uudeview.spec index d660dc7..7547a56 100644 --- a/uudeview.spec +++ b/uudeview.spec @@ -1,36 +1,18 @@ -%global _hardened_build 1 -%global snapshot 1 -%global OWNER hannob -%global PROJECT uudeview -%global commit 7640bc56aa5016cdc9c139eb1ab3ec874e47c744 -%global commitdate 20250320 -#global gittag 0.5.20 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - Name: uudeview -Version: 0.5.20%{?snapshot:^%{commitdate}git%{shortcommit}} -Release: 1%{?dist} +Version: 0.5.20 +Release: 43%{?dist} -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -%if 0%{?snapshot} -Source0: https://github.com/%{OWNER}/%{PROJECT}/archive/%{commit}/%{name}-%{commit}.tar.gz -BuildRequires: autoconf -%else -Source0: http://www.fpx.de/fp/Software/UUDeview/download/uudeview-%{version}.tar.gz -%endif +License: GPLv2+ +Source: http://www.fpx.de/fp/Software/UUDeview/download/uudeview-0.5.20.tar.gz Source1: xdeview.desktop -ExcludeArch: %{ix86} -Patch0: uudeview-threads.patch +Patch0: uudeview-debian-patches.patch +Patch1: uudeview-format-security.patch +Patch2: matherr.patch URL: http://www.fpx.de/fp/Software/UUDeview/ Summary: Applications for uuencoding, uudecoding, ... -BuildRequires: desktop-file-utils -BuildRequires: make BuildRequires: inews BuildRequires: texlive-collection-latexextra -BuildRequires: texlive-courier -BuildRequires: texlive-times -BuildRequires: transfig +BuildRequires: transfig, desktop-file-utils BuildRequires: tk-devel BuildRequires: gcc Requires: %{_sbindir}/sendmail @@ -56,12 +38,11 @@ This package contains header files and static libraries for uulib. %prep -%if 0%{?snapshot} -%autosetup -p1 -n %{name}-%{commit} -autoreconf -i -%else -%autosetup -p1 -%endif +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p2 +%{__sed} -i -e "s,psfig,epsfig,g" doc/library.ltx %{__sed} -i -e "s,for ff_subdir in lib,for ff_subdir in %{_lib},g" configure %build @@ -86,7 +67,7 @@ install -p -m 0644 uulib/libuu.a $RPM_BUILD_ROOT/%{_libdir}/ %files -%doc COPYING HISTORY IAFA-PACKAGE README.md uudeview.lsm +%doc COPYING HISTORY IAFA-PACKAGE README uudeview.lsm %{_mandir}/man1/*.1* %{_bindir}/uudeview %{_bindir}/uuenview @@ -100,71 +81,6 @@ install -p -m 0644 uulib/libuu.a $RPM_BUILD_ROOT/%{_libdir}/ %{_libdir}/*.a %changelog -* Wed Jul 22 2026 Charles R. Anderson - 0.5.20^20250320git7640bc5-1 -- Update to latest git snapshot - -* Fri Jul 17 2026 Fedora Release Engineering - 0.5.20^20241111git7ef9e26-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Sat Jan 17 2026 Fedora Release Engineering - 0.5.20^20241111git7ef9e26-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Jul 25 2025 Fedora Release Engineering - 0.5.20^20241111git7ef9e26-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Feb 3 2025 Jaroslav Škarvada - 0.5.20^20241111git7ef9e26-4 -- Rebuilt for tcl/tk - -* Sun Jan 19 2025 Fedora Release Engineering - 0.5.20^20241111git7ef9e26-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jan 15 2025 Charles R. Anderson - 0.5.20^20241111git7ef9e26-2 -- Rebuilt for Tcl/Tk 9.0 (#2337805) -- Patch to always set -D_REENTRANT since Tcl 9.0 no longer sets TCL_THREADS, - and add -std=gnu17 to CFLAGS since GCC 15 changed to gnu23 which fails. - -* Fri Jan 03 2025 Charles R. Anderson - 0.5.20^20241111git7ef9e26-1 -- Update to git snapshot to resolve FTBFS with Tcl_CreateCommand - -* Fri Jul 26 2024 Miroslav Suchý - 0.5.20-56 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 0.5.20-55 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 0.5.20-54 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 0.5.20-53 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Apr 26 2023 Florian Weimer - 0.5.20-52 -- Port configure script to C99 (#2189809) - -* Sat Jan 21 2023 Fedora Release Engineering - 0.5.20-51 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 0.5.20-50 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 0.5.20-49 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 0.5.20-48 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 0.5.20-47 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 0.5.20-46 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 0.5.20-45 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 0.5.20-44 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - * Sun Feb 03 2019 Fedora Release Engineering - 0.5.20-43 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild