From 7d93f3f03118be896eae71cc05d72eed5df9a933 Mon Sep 17 00:00:00 2001 From: Jakub Filak Date: Jan 14 2016 10:53:39 +0000 Subject: New upstream release 1.13 --- diff --git a/.gitignore b/.gitignore index d8901cd..e667148 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /retrace-server-1.10.tar.gz /retrace-server-1.11.tar.gz /retrace-server-1.12.tar.gz +/retrace-server-1.13.tar.gz diff --git a/0001-Set-crash-inside-get_crash_cmd-file-if-the-file-does.patch b/0001-Set-crash-inside-get_crash_cmd-file-if-the-file-does.patch new file mode 100644 index 0000000..f691f68 --- /dev/null +++ b/0001-Set-crash-inside-get_crash_cmd-file-if-the-file-does.patch @@ -0,0 +1,63 @@ +From 561ae94fe6e03e9af82f260dd438863037f61030 Mon Sep 17 00:00:00 2001 +From: Dave Wysochanski +Date: Tue, 6 Oct 2015 11:35:11 -0400 +Subject: [PATCH] Set "crash" inside get_crash_cmd file if the file does not + exist, fix get_use_mock typeo. + +This patch fixes a couple oversights in the previous patcheset to introduce crash_cmd and use_mock. + +First, for older tasks which do not have a 'crash_cmd' file, we need to create one by +default. Otherwise, any retrace-server-worker or retrace-server-interact command may +fail as follows: +Traceback (most recent call last): + File "/usr/bin/retrace-server-interact", line 117, in + crash_cmd = task.get_crash_cmd().split() +AttributeError: 'NoneType' object has no attribute 'split' + +Second, retrace-server-interact contained a 'get_use_mock' function rather than 'use_mock' +This caused the following: +$ retrace-server-interact 757071668 shell +Traceback (most recent call last): + File "/usr/bin/retrace-server-interact", line 138, in + if task.get_use_mock(kernelver): +AttributeError: RetraceTask instance has no attribute 'get_use_mock' + +Signed-off-by: Dave Wysochanski +--- + src/lib/retrace.py | 6 +++++- + src/retrace-server-interact | 2 +- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/lib/retrace.py b/src/lib/retrace.py +index 9074786..8664788 100644 +--- a/src/lib/retrace.py ++++ b/src/lib/retrace.py +@@ -2160,7 +2160,11 @@ class RetraceTask: + + def get_crash_cmd(self): + """Gets the contents of CRASH_CMD_FILE""" +- return self.get(RetraceTask.CRASH_CMD_FILE, maxlen=1 << 22) ++ result = self.get(RetraceTask.CRASH_CMD_FILE, maxlen=1 << 22) ++ if result is None: ++ self.set_crash_cmd("crash") ++ return "crash" ++ return result + + def set_crash_cmd(self, data): + """Writes data to CRASH_CMD_FILE""" +diff --git a/src/retrace-server-interact b/src/retrace-server-interact +index 5b26c8a..e518531 100755 +--- a/src/retrace-server-interact ++++ b/src/retrace-server-interact +@@ -135,7 +135,7 @@ if __name__ == "__main__": + os.execvp(cmdline[0], cmdline) + + if args.action == "shell": +- if task.get_use_mock(kernelver): ++ if task.use_mock(kernelver): + cmdline = ["/usr/bin/mock", "--configdir", + os.path.join(CONFIG["SaveDir"], "%d-kernel" % task.get_taskid()), "shell"] + +-- +2.7.0 + diff --git a/0003-update-fedora-plugin.patch b/0003-update-fedora-plugin.patch new file mode 100644 index 0000000..b2c7b6f --- /dev/null +++ b/0003-update-fedora-plugin.patch @@ -0,0 +1,52 @@ +From b0bada96ed01bc2ebb3de8abc9215a03ab0f3f34 Mon Sep 17 00:00:00 2001 +From: Richard Marko +Date: Thu, 8 Oct 2015 15:40:34 +0200 +Subject: [PATCH] update fedora plugin + +--- + src/plugins/fedora.py | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/src/plugins/fedora.py b/src/plugins/fedora.py +index a18366a..a12f918 100644 +--- a/src/plugins/fedora.py ++++ b/src/plugins/fedora.py +@@ -5,23 +5,27 @@ abrtparser = re.compile("^Fedora release ([0-9]+) \(([^\)]+)\)$") + guessparser = re.compile("\.fc([0-9]+)") + repos = [ + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/releases/$VER/Everything/$ARCH/os/Packages/*", +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/development/$VER/$ARCH/os/Packages/*/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/releases/$VER/Everything/$ARCH/os/Packages/*/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/development/$VER/$ARCH/os/Packages/*/*.rpm", + ], + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/releases/$VER/Everything/$ARCH/debug/*", +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/development/$VER/$ARCH/debug/*/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/releases/$VER/Everything/$ARCH/debug/*/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/development/$VER/$ARCH/debug/*/*.rpm", + ], + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/*/*.rpm", + ], + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/debug/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/debug/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/$VER/$ARCH/debug/*/*.rpm", + ], + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/*/*.rpm", + ], + [ +- "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/debug/*", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/debug/*.rpm", ++ "rsync://dl.fedoraproject.org/fedora-enchilada/linux/updates/testing/$VER/$ARCH/debug/*/*.rpm", + ], + ] +-- +2.7.0 + diff --git a/retrace-server-add-ppc64le-aarch64.patch b/retrace-server-add-ppc64le-aarch64.patch deleted file mode 100644 index 856cef4..0000000 --- a/retrace-server-add-ppc64le-aarch64.patch +++ /dev/null @@ -1,75 +0,0 @@ -From d796769e317081f41f4185360969f40e5117e207 Mon Sep 17 00:00:00 2001 -From: Michal Toman -Date: Tue, 3 Mar 2015 09:30:43 +0100 -Subject: [PATCH 2/2] add support for ppc64le and aarch64 - -Signed-off-by: Michal Toman ---- - src/lib/retrace.py | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/src/lib/retrace.py b/src/lib/retrace.py -index debd4a6..772b638 100644 ---- a/src/lib/retrace.py -+++ b/src/lib/retrace.py -@@ -75,7 +75,7 @@ INPUT_ARCH_PARSER = re.compile("^[a-zA-Z0-9_]+$") - #name-version-arch (fedora-16-x86_64, rhel-6.2-i386, opensuse-12.1-x86_64) - INPUT_RELEASEID_PARSER = re.compile("^[a-zA-Z0-9]+\-[0-9a-zA-Z\.]+\-[a-zA-Z0-9_]+$") - --CORE_ARCH_PARSER = re.compile("core file,? .*(x86-64|80386|ARM|IBM S/390|64-bit PowerPC)") -+CORE_ARCH_PARSER = re.compile("core file,? .*(x86-64|80386|ARM|aarch64|IBM S/390|64-bit PowerPC)") - PACKAGE_PARSER = re.compile("^(.+)-([0-9]+(\.[0-9]+)*-[0-9]+)\.([^-]+)$") - DF_OUTPUT_PARSER = re.compile("^([^ ^\t]*)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+%)[ \t]+(.*)$") - DU_OUTPUT_PARSER = re.compile("^([0-9]+)") -@@ -202,9 +202,10 @@ STATUS = [ - ] - - ARCHITECTURES = set(["src", "noarch", "i386", "i486", "i586", "i686", "x86_64", -- "s390", "s390x", "ppc", "ppc64", "ppc64iseries", -+ "s390", "s390x", "ppc", "ppc64", "ppc64le", "ppc64iseries", - "armel", "armhfp", "armv5tel", "armv7l", "armv7hl", -- "armv7hnl", "sparc", "sparc64", "mips4kec", "ia64"]) -+ "armv7hnl", "aarch64", "sparc", "sparc64", "mips4kec", -+ "ia64"]) - - # armhfp is not correct, but there is no way to distinguish armv5/armv6/armv7 coredumps - # as armhfp (RPM armv7hl) is the only supported now, let's approximate arm = armhfp -@@ -218,6 +219,8 @@ ARCH_MAP = { - "x86_64": set(["x86_64"]), - "s390x": set(["s390x"]), - "ppc64": set(["ppc64"]), -+ "ppc64le": set(["ppc64le"]), -+ "aarch64": set(["aarch64"]), - } - - def now(): -@@ -335,9 +338,14 @@ def guess_arch(coredump_path): - # version the coredump is. At the moment we only support - # armv7hl / armhfp - let's approximate arm = armhfp - return "armhfp" -+ elif match.group(1) == "aarch64": -+ return "aarch64" - elif match.group(1) == "IBM S/390": - return "s390x" - elif match.group(1) == "64-bit PowerPC": -+ if "LSB" in output: -+ return "ppc64le" -+ - return "ppc64" - - result = None -@@ -357,6 +365,11 @@ def guess_arch(coredump_path): - child.kill() - child.stdout.close() - -+ # "ppc64le" matches both ppc64 and ppc64le -+ # if file magic says little endian, fix it -+ if result == "ppc64" and "LSB" in output: -+ result = "ppc64le" -+ - return result - - def guess_release(package, plugins): --- -2.1.0 - diff --git a/retrace-server-fix-the-invocation-of-mock-shell.patch b/retrace-server-fix-the-invocation-of-mock-shell.patch deleted file mode 100644 index 4c00155..0000000 --- a/retrace-server-fix-the-invocation-of-mock-shell.patch +++ /dev/null @@ -1,170 +0,0 @@ -From d344a5ade872ba59ab18fdc73bff1de6ddf1fbc9 Mon Sep 17 00:00:00 2001 -From: Michal Toman -Date: Wed, 11 Mar 2015 09:23:36 +0000 -Subject: [PATCH] fix the invocation of mock shell - -Formerly mock shell has taken all the excessive arguments -from the command line and merged them into the resulting -command executed in the chrooted shell. This changed -and mock shell now only accepts a single command line -argument - the whole command line to be forwarded to -the chrooted shell. - -Signed-off-by: Michal Toman ---- - src/lib/retrace.py | 12 ++++++------ - src/retrace-server-worker | 24 ++++++++++++------------ - 2 files changed, 18 insertions(+), 18 deletions(-) - -diff --git a/src/lib/retrace.py b/src/lib/retrace.py -index 772b638..392d1cd 100644 ---- a/src/lib/retrace.py -+++ b/src/lib/retrace.py -@@ -419,21 +419,21 @@ def run_gdb(savedir): - - with open(os.devnull, "w") as null: - child = Popen(["/usr/bin/mock", "shell", "--configdir", savedir, -- "--", "ls", "'%s'" % executable], -+ "--", "ls '%s'" % executable], - stdout=PIPE, stderr=null) - output = child.communicate()[0] - if output.strip() != executable: - raise Exception("The appropriate package set could not be installed") - - chmod = call(["/usr/bin/mock", "shell", "--configdir", savedir, -- "--", "/bin/chmod", "a+r", "'%s'" % executable], -+ "--", "/bin/chmod a+r '%s'" % executable], - stdout=null, stderr=null) - - if chmod != 0: - raise Exception, "Unable to chmod the executable" - - child = Popen(["/usr/bin/mock", "shell", "--configdir", savedir, -- "--", "ls", "'%s'" % EXPLOITABLE_PLUGIN_PATH], -+ "--", "ls '%s'" % EXPLOITABLE_PLUGIN_PATH], - stdout=PIPE, stderr=null) - add_exploitable = child.communicate()[0].strip() == EXPLOITABLE_PLUGIN_PATH - -@@ -461,13 +461,13 @@ def run_gdb(savedir): - raise Exception("Unable to copy GDB launcher into chroot") - - chmod = call(["/usr/bin/mock", "--configdir", savedir, "shell", -- "--", "/bin/chmod", "a+rx", "/var/spool/abrt/gdb.sh"], -+ "--", "/bin/chmod a+rx /var/spool/abrt/gdb.sh"], - stdout=null, stderr=null) - if chmod: - raise Exception("Unable to chmod GDB launcher") - - child = Popen(["/usr/bin/mock", "shell", "--configdir", savedir, -- "--", "su", "mockbuild", "-c", "'/bin/sh /var/spool/abrt/gdb.sh'", -+ "--", "su mockbuild -c '/bin/sh /var/spool/abrt/gdb.sh'", - # redirect GDB's stderr, ignore mock's stderr - "2>&1"], stdout=PIPE, stderr=null) - -@@ -712,7 +712,7 @@ def prepare_debuginfo(vmcore, chroot=None, kernelver=None): - if chroot: - with open(os.devnull, "w") as null: - child = Popen(["/usr/bin/mock", "--configdir", chroot, "shell", -- "--", "crash", "-s", vmcore, vmlinux], -+ "--", "crash -s %s %s" % (vmcore, vmlinux)], - stdin=PIPE, stdout=PIPE, stderr=null) - else: - child = Popen(["crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=STDOUT) -diff --git a/src/retrace-server-worker b/src/retrace-server-worker -index dd1e10f..931888a 100755 ---- a/src/retrace-server-worker -+++ b/src/retrace-server-worker -@@ -335,10 +335,10 @@ def start_retrace(): - retrace_run(25, ["/usr/bin/mock", "init", "--configdir", task.get_savedir()]) - if CONFIG["UseFafPackages"]: - retrace_run(26, ["/usr/bin/mock", "--configdir", task.get_savedir(), "shell", "--", -- "bash", "-c", "'for PKG in /packages/*; do rpm2cpio \\$PKG | " \ -- "cpio -muid --quiet; done'"]) -+ "bash -c 'for PKG in /packages/*; " -+ "do rpm2cpio $PKG | cpio -muid --quiet; done'"]) - retrace_run(27, ["/usr/bin/mock", "--configdir", task.get_savedir(), "shell", -- "--", "chgrp", "-R", "mockbuild", "/var/spool/abrt/crash"]) -+ "--", "chgrp -R mockbuild /var/spool/abrt/crash"]) - - # generate backtrace - task.set_status(STATUS_BACKTRACE) -@@ -405,7 +405,7 @@ def mock_find_vmlinux(cfgdir, candidates): - with open(os.devnull, "w") as null: - for cand in candidates: - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "test", "-f", cand, "&&", "echo", cand], stdout=PIPE, stderr=null) -+ "test -f %s && echo %s" % (cand, cand)], stdout=PIPE, stderr=null) - output = child.communicate()[0].strip() - child.wait() - if output == cand: -@@ -517,14 +517,14 @@ def start_vmcore(): - # generate the log - with open(os.devnull, "w") as null: - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "--minimal", "-s", vmcore, vmlinux], -+ "crash --minimal -s %s %s" % (vmcore, vmlinux)], - stdin=PIPE, stdout=PIPE, stderr=null) - kernellog = child.communicate("log\nquit\n")[0] - if child.wait(): - log_warn("crash 'log' exitted with %d" % child.returncode) - - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_bt_a = child.communicate("bt -a\nquit\n")[0] - if child.wait(): - log_warn("crash 'bt -a' exitted with %d" % child.returncode) -@@ -533,7 +533,7 @@ def start_vmcore(): - crash_kmem_f = None - if CONFIG["VmcoreRunKmem"] == 1: - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_kmem_f = child.communicate("kmem -f\nquit\n")[0] - if child.wait(): - log_warn("crash 'kmem -f' exitted with %d" % child.returncode) -@@ -541,7 +541,7 @@ def start_vmcore(): - - if CONFIG["VmcoreRunKmem"] == 2: - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_kmem_f = child.communicate("set hash off\nkmem -f\nset hash on\nquit\n")[0] - if child.wait(): - log_warn("crash 'kmem -f' exitted with %d" % child.returncode) -@@ -550,28 +550,28 @@ def start_vmcore(): - crash_kmem_z = None - if CONFIG["VmcoreRunKmem"] == 3: - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_kmem_z = child.communicate("kmem -z\nquit\n")[0] - if child.wait(): - log_warn("crash 'kmem -z' exitted with %d" % child.returncode) - crash_kmem_z = None - - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_sys = child.communicate("sys\nquit\n")[0] - if child.wait(): - log_warn("crash 'sys' exitted with %d" % child.returncode) - crash_sys = None - - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_sys_c = child.communicate("sys -c\nquit\n")[0] - if child.wait(): - log_warn("crash 'sys -c' exitted with %d" % child.returncode) - crash_sys_c = None - - child = Popen(["/usr/bin/mock", "--configdir", cfgdir, "shell", "--", -- "crash", "-s", vmcore, vmlinux], stdin=PIPE, stdout=PIPE, stderr=null) -+ "crash -s %s %s" % (vmcore, vmlinux)], stdin=PIPE, stdout=PIPE, stderr=null) - crash_foreach_bt = child.communicate("foreach bt\nquit\n")[0] - if child.wait(): - log_warn("crash 'foreach bt' exitted with %d" % child.returncode) --- -2.1.0 - diff --git a/retrace-server-manager-fix-kernelver.patch b/retrace-server-manager-fix-kernelver.patch deleted file mode 100644 index ff22036..0000000 --- a/retrace-server-manager-fix-kernelver.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 702a09da52b59edf712c23e80770964af4381688 Mon Sep 17 00:00:00 2001 -From: Harshula Jayasuriya -Date: Tue, 23 Sep 2014 11:49:00 +1000 -Subject: [PATCH 1/2] manager.wsgi: Don't treat a string as an object - -Error: - Traceback (most recent call last): - File "/usr/share/retrace-server/manager.wsgi", line 125, in application - arch = kernelver.arch - AttributeError: 'str' object has no attribute 'arch' - -Grab the arch from kernelver before it's made into a string. ---- - src/manager.wsgi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/manager.wsgi b/src/manager.wsgi -index fcd4b7e..d1765f3 100644 ---- a/src/manager.wsgi -+++ b/src/manager.wsgi -@@ -121,8 +121,8 @@ def application(environ, start_response): - except Exception as ex: - return response(start_response, "403 Forbidden", _("Please use VRA format for kernel version (e.g. 2.6.32-287.el6.x86_64)")) - -- kernelver = str(kernelver) - arch = kernelver.arch -+ kernelver = str(kernelver) - - if "notify" in get: - task.set_notify(filter(None, set(n.strip() for n in get["notify"][0].replace(";", ",").split(",")))) --- -2.1.0 - diff --git a/retrace-server.spec b/retrace-server.spec index 82af29c..6842fe0 100644 --- a/retrace-server.spec +++ b/retrace-server.spec @@ -2,15 +2,18 @@ Summary: Application for remote coredump analysis Name: retrace-server -Version: 1.12 -Release: 4%{?dist} +Version: 1.13 +Release: 1%{?dist} License: GPLv2+ Group: Applications/System URL: https://fedorahosted.org/abrt/wiki/AbrtRetraceServer Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz -Patch0: %{name}-manager-fix-kernelver.patch -Patch1: %{name}-add-ppc64le-aarch64.patch -Patch2: %{name}-fix-the-invocation-of-mock-shell.patch + +# git format-patch -N -M --topo-order %%{version} +Patch0001: 0001-Set-crash-inside-get_crash_cmd-file-if-the-file-does.patch +#Patch0002: 0002-spec-add-sqlite-and-cron-to-requirements.patch +Patch0003: 0003-update-fedora-plugin.patch + BuildArch: noarch @@ -34,6 +37,7 @@ Requires: createrepo Requires: mod_wsgi Requires: mod_ssl Requires: python-webob +Requires: sqlite Requires: yum-utils Requires: crash >= 5.1.7 Requires: wget @@ -41,6 +45,7 @@ Requires: kexec-tools Requires: python-magic Requires(preun): /sbin/install-info Requires(post): /sbin/install-info +Requires(post): /usr/bin/crontab Obsoletes: abrt-retrace-server < 2.0.3 Provides: abrt-retrace-server = 2.0.3 @@ -51,9 +56,9 @@ generation service over a network using HTTP protocol. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 +%patch0001 -p1 +#%%patch0002 -p1 +%patch0003 -p1 %build autoconf @@ -138,6 +143,10 @@ fi %doc COPYING INSTALL README TODO %changelog +* Thu Jan 14 2016 Jakub Filak - 1.13-1 +- New upstream release 1.13 +- Add sqlite and /usr/bin/crontab to Requires + * Wed Mar 11 2015 Michal Toman 1.12-4 - fix the invocation of mock shell diff --git a/sources b/sources index a4f9f4d..4b3df9e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -86debe45e66022a609115d33761a43a0 retrace-server-1.12.tar.gz +128fbe53ba38d0f83af8cef5f987a9ad retrace-server-1.13.tar.gz