Hello community, here is the log from the commit of package lyx for openSUSE:Factory checked in at 2013-08-04 16:58:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lyx (Old) and /work/SRC/openSUSE:Factory/.lyx.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lyx" Changes: -------- --- /work/SRC/openSUSE:Factory/lyx/lyx.changes 2013-05-13 15:08:47.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.lyx.new/lyx.changes 2013-08-04 16:58:15.000000000 +0200 @@ -1,0 +2,7 @@ +Thu Aug 1 21:22:25 UTC 2013 - corne...@solcon.nl + +- Added lyx-2.0.6-fix_zombies.patch to fix http://www.lyx.org/trac/ticket/8774. +- Updated name for xdg-open patch (was updated for 2.0.6). +- Added texlive-nomencl to Requires as it is also supported by LyX. + +------------------------------------------------------------------- Old: ---- lyx-2.0.1-xdg_open.patch New: ---- lyx-2.0.6-fix_zombies.patch lyx-2.0.6-xdg_open.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lyx.spec ++++++ --- /var/tmp/diff_new_pack.aZw04P/_old 2013-08-04 16:58:15.000000000 +0200 +++ /var/tmp/diff_new_pack.aZw04P/_new 2013-08-04 16:58:16.000000000 +0200 @@ -38,7 +38,9 @@ Source3: lyxrc.dist # xdg patch # This was rejected by upstream (http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg133878.html) -Patch0: lyx-2.0.1-xdg_open.patch +Patch0: lyx-2.0.6-xdg_open.patch +# PATCH-FIX-UPSTREAM fix for http://www.lyx.org/trac/ticket/8774 (fixed in 2.1) +Patch1: lyx-2.0.6-fix_zombies.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} < 1230 Requires: ImageMagick @@ -54,6 +56,7 @@ Requires: texlive-collection-luatex Requires: texlive-collection-xetex Requires: texlive-endnotes +Requires: texlive-nomencl Requires: texlive-pdfsync Requires: texlive-splitindex Requires: xindy @@ -74,6 +77,7 @@ %prep %setup -q %patch0 +%patch1 -p1 # Remove build time references so build-compare can do its work FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%H:%%M') FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y') ++++++ lyx-2.0.6-fix_zombies.patch ++++++ >From 254c5fa439df319e8c71212f946ba74a104be16e Mon Sep 17 00:00:00 2001 From: Guy Rutenberg <guyrutenb...@gmail.com> Date: Sat, 6 Jul 2013 16:09:50 +0300 Subject: [PATCH] Prevent zobmie process. Using Systemcall::startscript() with Starttype::DontWait used to create zombie process, as nobody would collect them. This patch start those process as detached, hence preventing them from becoming zombies. --- src/support/Systemcall.cpp | 26 ++++++++++++++++---------- src/support/SystemcallPrivate.h | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/support/Systemcall.cpp b/src/support/Systemcall.cpp index ca80409..f689c0b 100644 --- a/src/support/Systemcall.cpp +++ b/src/support/Systemcall.cpp @@ -251,19 +251,17 @@ int Systemcall::startscript(Starttype how, string const & what, SystemcallPrivate d(outfile, errfile); - d.startProcess(cmd, path); - if (!d.waitWhile(SystemcallPrivate::Starting, process_events, -1)) { + d.startProcess(cmd, path, how == DontWait); + if (how == DontWait && d.state == SystemcallPrivate::Running) { + return 0; + } + if (d.state == SystemcallPrivate::Error + || !d.waitWhile(SystemcallPrivate::Starting, process_events, -1)) { LYXERR0("Systemcall: '" << cmd << "' did not start!"); LYXERR0("error " << d.errorMessage()); return 10; } - if (how == DontWait) { - QProcess* released = d.releaseProcess(); - (void) released; // TODO who deletes it? - return 0; - } - if (!d.waitWhile(SystemcallPrivate::Running, process_events, os::timeout_min() * 60 * 1000)) { LYXERR0("Systemcall: '" << cmd << "' did not finish!"); @@ -349,10 +347,18 @@ SystemcallPrivate::SystemcallPrivate(std::string const & sf, } -void SystemcallPrivate::startProcess(QString const & cmd, string const & path) +void SystemcallPrivate::startProcess(QString const & cmd, string const & path, bool detached) { cmd_ = cmd; - if (process_) { + if (detached) { + state = SystemcallPrivate::Running; + if (!QProcess::startDetached(toqstr(latexEnvCmdPrefix(path)) + cmd_)) { + state = SystemcallPrivate::Error; + return; + } + QProcess* released = releaseProcess(); + delete released; + } else if (process_) { state = SystemcallPrivate::Starting; process_->start(toqstr(latexEnvCmdPrefix(path)) + cmd_); } diff --git a/src/support/SystemcallPrivate.h b/src/support/SystemcallPrivate.h index b8dc17a..6534d07 100644 --- a/src/support/SystemcallPrivate.h +++ b/src/support/SystemcallPrivate.h @@ -45,7 +45,7 @@ public: State state; bool waitWhile(State, bool processEvents, int timeout = -1); - void startProcess(QString const & cmd, std::string const & path); + void startProcess(QString const & cmd, std::string const & path, bool detach); int exitCode(); -- 1.7.9.5 ++++++ lyx-2.0.1-xdg_open.patch -> lyx-2.0.6-xdg_open.patch ++++++ -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org