Your message dated Thu, 14 Aug 2025 13:52:43 +0200 with message-id <906e549b-f761-4c21-b196-54e704c4bee0@debian.org> and subject line close all open unblock requests, the trixie release happened has caused the Debian Bug report #1109894, regarding unblock: rkward/0.8.0-4.2 (pre-approval) to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 1109894: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1109894 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian BTS <submit@bugs.debian.org>
- Subject: unblock: rkward/0.8.0-4.2 (pre-approval)
- From: Santiago Vila <sanvila@debian.org>
- Date: Fri, 25 Jul 2025 21:37:17 +0200
- Message-id: <06f1af2b-061a-4776-8fa6-6cfd5331659f@debian.org>
Package: release.debian.org Severity: normal X-Debbugs-Cc: rkward@packages.debian.org, sanvila@debian.org, edd@debian.org Control: affects -1 + src:rkward User: release.debian.org@packages.debian.org Usertags: unblock Please unblock package rkward (pre-approval) [ Reason ] This should fix #1103204 and *also* allow the package to propagate to testing. [ Impact ] The package in testing currently FTBFS. [ Tests ] Version 0.8.0-4.1 has been in unstable for 25 days, and there are no real code changes from 0.8.0-4.1 to 0.8.0-4.2. [ Risks ] Low risk. We are merely changing the overly strict depends line so that the package can enter testing. [ Checklist ] [X] all changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in testing [ Other info ] This NMU upload was prepared by Dirk Eddelbuettel. I'm helping him to fix the package by filing this report and doing the final upload. We will wait for approval before upload. The usual maintainers (in x-debbugs-Cc) are more than welcome to take over and upload 0.8.0-5 instead, but they should show up before the final upload. unblock rkward/0.8.0-4.2diff --git a/debian/.gitattributes b/debian/.gitattributes deleted file mode 100644 index 6a03163..0000000 --- a/debian/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -changelog merge=dpkg-mergechangelogs diff --git a/debian/changelog b/debian/changelog index eb916ca..9d4b492 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +rkward (0.8.0-4.2) unstable; urgency=medium + + * Non-maintainer upload. + * debian/control: Set depends to (hardcoded) 'r-base-core (>= 4.5.0-3)' to + permit transition to testing for upcoming release. + + -- Dirk Eddelbuettel <edd@debian.org> Fri, 25 Jul 2025 12:17:47 -0500 + +rkward (0.8.0-4.1) unstable; urgency=medium + + * Non-maintainer upload. + * Backport upstream fixes for R 4.5. (Closes: #1103204) + + -- Adrian Bunk <bunk@debian.org> Mon, 30 Jun 2025 15:53:42 +0300 + rkward (0.8.0-4) unstable; urgency=medium * Team upload. diff --git a/debian/control b/debian/control index eb68c50..187172f 100644 --- a/debian/control +++ b/debian/control @@ -42,7 +42,7 @@ Package: rkward Architecture: any Depends: rkward-data (= ${source:Version}), ${misc:Depends}, - ${rvers}, + r-base-core (>= 4.5.0-3), ${rapivers}, ${rgraphicsenginevers}, ${shlibs:Depends} diff --git a/debian/patches/0001-Adjust-to-the-removal-of-Rf_addTaskCallback-in-R-dev.patch b/debian/patches/0001-Adjust-to-the-removal-of-Rf_addTaskCallback-in-R-dev.patch new file mode 100644 index 0000000..b70b7e1 --- /dev/null +++ b/debian/patches/0001-Adjust-to-the-removal-of-Rf_addTaskCallback-in-R-dev.patch @@ -0,0 +1,145 @@ +From 9fc53972f94bcc6e22ba0ffc2bd246cdee1bf119 Mon Sep 17 00:00:00 2001 +From: Thomas Friedrichsmeier <thomas.friedrichsmeier@kdemail.net> +Date: Sun, 28 Jul 2024 15:51:08 +0200 +Subject: Adjust to the removal of Rf_addTaskCallback() in R (devel) 4.5 + +--- + rkward/autotests/core_test.cpp | 28 ++++++++++++++++++++ + rkward/rbackend/rkrapi.h | 1 - + rkward/rbackend/rkrbackend.cpp | 47 +++++----------------------------- + 3 files changed, 35 insertions(+), 41 deletions(-) + +diff --git a/rkward/autotests/core_test.cpp b/rkward/autotests/core_test.cpp +index a3514ff61..e8daf14e7 100644 +--- a/rkward/autotests/core_test.cpp ++++ b/rkward/autotests/core_test.cpp +@@ -303,6 +303,34 @@ private Q_SLOTS: + cleanGlobalenv(); + } + ++ void userCommandTest() { ++ // Two commands submitted on one user line should both be run ++ runCommandWithTimeout(new RCommand("print('first'); print('second')", RCommand::User), nullptr, [](RCommand *command) { ++ QVERIFY(!command->failed()); ++ QVERIFY(command->fullOutput().contains("first")); ++ QVERIFY(command->fullOutput().contains("second")); ++ }); ++ // Also, of course for commands on separate lines: ++ runCommandWithTimeout(new RCommand("print('first')\nprint('second')", RCommand::User), nullptr, [](RCommand *command) { ++ QVERIFY(!command->failed()); ++ QVERIFY(command->fullOutput().contains("first")); ++ QVERIFY(command->fullOutput().contains("second")); ++ }); ++ // or multi-line commands: ++ runCommandWithTimeout(new RCommand("{ print('first')\nprint('second') }", RCommand::User), nullptr, [](RCommand *command) { ++ QVERIFY(!command->failed()); ++ QVERIFY(command->fullOutput().contains("first")); ++ QVERIFY(command->fullOutput().contains("second")); ++ }); ++ // However, if a partial command fails, the next part should not get parsed: ++ runCommandWithTimeout(new RCommand("stop('first'); print('second')", RCommand::User), nullptr, [](RCommand *command) { ++ QVERIFY(command->failed()); ++ QVERIFY(command->fullOutput().contains("first")); ++ QVERIFY(!command->fullOutput().contains("second")); ++ }); ++ // TODO: verify that calls to readline() and browser() are handled, correctly ++ } ++ + void commandOrderAndOutputTest() { + // commands shall run in the order 1, 3, 2, 5, 4, but also, of course, all different types of output shall be captured + QStringList output; +diff --git a/rkward/rbackend/rkrapi.h b/rkward/rbackend/rkrapi.h +index cb68aa4ad..643ac8983 100644 +--- a/rkward/rbackend/rkrapi.h ++++ b/rkward/rbackend/rkrapi.h +@@ -228,7 +228,6 @@ IMPORT_R_API(Rf_GetOption); + IMPORT_R_API(Rf_GetOption1); + IMPORT_R_API(Rf_KillAllDevices); + IMPORT_R_API(Rf_ScalarInteger); +-IMPORT_R_API(Rf_addTaskCallback); + IMPORT_R_API(Rf_allocList); + IMPORT_R_API(Rf_allocVector); + IMPORT_R_API(Rf_asChar); +diff --git a/rkward/rbackend/rkrbackend.cpp b/rkward/rbackend/rkrbackend.cpp +index 6130f18c1..5eea2bd20 100644 +--- a/rkward/rbackend/rkrbackend.cpp ++++ b/rkward/rbackend/rkrbackend.cpp +@@ -133,38 +133,6 @@ void RKRBackend::clearPendingInterrupt () { + extern SEXP RKWard_RData_Tag; + + // ############## R Standard callback overrides BEGIN #################### +-Rboolean RKToplevelStatementFinishedCallback (SEXP expr, SEXP value, Rboolean succeeded, Rboolean visible, void *) { +- RK_TRACE (RBACKEND); +- Q_UNUSED (expr); +- Q_UNUSED (value); +- Q_UNUSED (visible); +- +- if ((RKRBackend::repl_status.eval_depth == 0) && (!RKRBackend::repl_status.browser_context)) { // Yes, toplevel-handlers _do_ get called in a browser context! +- RK_ASSERT (RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandRunning); +- if (succeeded) { +- RKRBackend::repl_status.user_command_successful_up_to = RKRBackend::repl_status.user_command_parsed_up_to; +- if (RKRBackend::repl_status.user_command_completely_transmitted) { +- RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::NoUserCommand; +- RKRBackend::this_pointer->commandFinished (); +- } else RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandTransmitted; +- } else { +- // well, this point of code is never reached with R up to 2.12.0. Instead failed user commands are handled in doError(). +- RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandFailed; +- } +- } +- +- return (Rboolean) true; +-} +- +-void RKInsertToplevelStatementFinishedCallback (void *) { +- RK_TRACE (RBACKEND); +- +- if (RKRBackend::this_pointer->r_running) { +- int pos; +- RFn::Rf_addTaskCallback(&RKToplevelStatementFinishedCallback, nullptr, &RKInsertToplevelStatementFinishedCallback, "_rkward_main_callback", &pos); +- } +-} +- + void RKTransmitNextUserCommandChunk (unsigned char* buf, int buflen) { + RK_TRACE (RBACKEND); + +@@ -284,7 +252,7 @@ int RReadConsole (const char* prompt, unsigned char* buf, int buflen, int hist) + // This can mean three different things: + // 1) User called readline () + // 2) User called browser () +- // 3) R jumped us back to toplevel behind our backs. ++ // 3) The user command has finished (successfully or not) + // Let's find out, which one it is. + if (hist && (RKRBackend::default_global_context != ROb(R_GlobalContext))) { + break; // this looks like a call to browser(). Will be handled below. +@@ -296,13 +264,13 @@ int RReadConsole (const char* prompt, unsigned char* buf, int buflen, int hist) + n_frames = dummy->intVector ().at (0); + } + // What the ??? Why does this simple version always return 0? +- //int n_frames = RKRSupport::SEXPToInt (RKRSupport::callSimpleFun0 (RFn::Rf_install ("sys.nframe"), ROb(R_GlobalEnv))); ++ //int n_frames = RKRSupport::SEXPToInt (RKRSupport::callSimpleFun0 (RFn::Rf_install ("sys.nframe"), ROb(R_GlobalEnv); + if (n_frames < 1) { +- // No active frames? This can't be a call to readline(), then, so probably R jumped us back to toplevel, behind our backs. +- // For safety, let's reset and start over. +- RKRBackend::this_pointer->current_command->status |= RCommand::Failed | RCommand::ErrorOther; +- RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::ReplIterationKilled; +- RFn::Rf_error(""); // to discard the buffer ++ // No active frames? This can't be a call to readline(), so the previous command must have finished. ++ if (RKRBackend::repl_status.user_command_completely_transmitted) { ++ RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::NoUserCommand; ++ RKRBackend::this_pointer->commandFinished (); ++ } else RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandTransmitted; + } else { + // A call to readline(). Will be handled below + break; +@@ -1108,7 +1076,6 @@ bool RKRBackend::startR () { + RFn::R_registerRoutines(RFn::R_getEmbeddingDllInfo(), nullptr, callMethods, nullptr, nullptr); + + connectCallbacks(); +- RKInsertToplevelStatementFinishedCallback(nullptr); + RKREventLoop::setRKEventHandler(doPendingPriorityCommands); + default_global_context = ROb(R_GlobalContext); + #ifdef Q_OS_WIN +-- +2.30.2 + diff --git a/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch b/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch new file mode 100644 index 0000000..82ed346 --- /dev/null +++ b/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch @@ -0,0 +1,39 @@ +From 51b0b0bf5a15d742f20922713018125036df9aa3 Mon Sep 17 00:00:00 2001 +From: Thomas Friedrichsmeier <thomas.friedrichsmeier@kdemail.net> +Date: Mon, 29 Jul 2024 14:58:22 +0200 +Subject: Adjust to hiding for R_checkActivityEx in R-devel (for R 4.5) + +--- + rkward/rbackend/rkrapi.h | 2 +- + rkward/rbackend/rkreventloop.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/rkward/rbackend/rkrapi.h b/rkward/rbackend/rkrapi.h +index 643ac8983..e72f817e2 100644 +--- a/rkward/rbackend/rkrapi.h ++++ b/rkward/rbackend/rkrapi.h +@@ -323,7 +323,7 @@ IMPORT_R_API(ptr_R_WriteConsoleEx); + + IMPORT_R_API(R_InputHandlers); + IMPORT_R_API(R_PolledEvents); +-IMPORT_R_API(R_checkActivityEx); ++IMPORT_R_API(R_checkActivity); + IMPORT_R_API(R_runHandlers); + IMPORT_R_API(addInputHandler); + +diff --git a/rkward/rbackend/rkreventloop.cpp b/rkward/rbackend/rkreventloop.cpp +index 8671cc725..19a510479 100644 +--- a/rkward/rbackend/rkreventloop.cpp ++++ b/rkward/rbackend/rkreventloop.cpp +@@ -19,7 +19,7 @@ static void processX11EventsWorker (void *) { + #ifndef Q_OS_WIN + for (;;) { + fd_set *what; +- what = RFn::R_checkActivityEx(ROb(R_wait_usec) > 0 ? ROb(R_wait_usec) : 50, 1, RK_doIntr); ++ what = RFn::R_checkActivity(ROb(R_wait_usec) > 0 ? ROb(R_wait_usec) : 50, 1); + RFn::R_runHandlers(ROb(R_InputHandlers), what); + if (!what) break; + } +-- +2.30.2 + diff --git a/debian/patches/series b/debian/patches/series index c115b3f..6dda6d9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,5 @@ upstream_Also-set-file-modes-when-creating-reproducible-archi.patch upstream_Make-it-possible-to-build-against-system-kdsingleapp.patch tests-disable-encodingtest.diff +0001-Adjust-to-the-removal-of-Rf_addTaskCallback-in-R-dev.patch +0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch
--- End Message ---
--- Begin Message ---
- To: 1107884-close@bugs.debian.org, 1108984-close@bugs.debian.org, 1109180-close@bugs.debian.org, 1109211-close@bugs.debian.org, 1109260-close@bugs.debian.org, 1109532-close@bugs.debian.org, 1109533-close@bugs.debian.org, 1109534-close@bugs.debian.org, 1109535-close@bugs.debian.org, 1109786-close@bugs.debian.org, 1109789-close@bugs.debian.org, 1109894-close@bugs.debian.org, 1109996-close@bugs.debian.org, 1110018-close@bugs.debian.org, 1110092-close@bugs.debian.org, 1110104-close@bugs.debian.org, 1110207-close@bugs.debian.org, 1110259-close@bugs.debian.org, 1110302-close@bugs.debian.org, 1110315-close@bugs.debian.org, 1110338-close@bugs.debian.org, 1110471-close@bugs.debian.org, 1110518-close@bugs.debian.org, 1110538-close@bugs.debian.org, 1110539-close@bugs.debian.org
- Subject: close all open unblock requests, the trixie release happened
- From: Paul Gevers <elbrus@debian.org>
- Date: Thu, 14 Aug 2025 13:52:43 +0200
- Message-id: <906e549b-f761-4c21-b196-54e704c4bee0@debian.org>
Hi,I'm sorry we couldn't unblock your request in time for trixie. I'm closing all open unblock requests in one go, so I'm not going into details of the particular request, but reasons are typically as follow:- the request came after the deadline of 2025-07-30 - the request came late and we just didn't have the time to deal with it - the request was waiting for action from the submitter (moreinfo tag) - the request didn't appear to be in line with the freeze policy and we didn't have the energy to engage (sorry for that, see our FAQ [1]) - there was discussion in the unblock request but no agreement was reached in time for the release. Paul [1] https://release.debian.org/trixie/FAQ.htmlAttachment: OpenPGP_signature.asc
Description: OpenPGP digital signature
--- End Message ---