Package: release.debian.org User: release.debian....@packages.debian.org Usertags: unblock
Hi Release Team Please unblock package boinc unblock boinc/7.6.33+dfsg-12 We refactored a little bit with the upstream version a patch already in Stretch, and I removed the fglrx package, uninstallable because fglrx is now dead debdiff here: diff -Nru boinc-7.6.33+dfsg/debian/changelog boinc-7.6.33+dfsg/debian/changelog --- boinc-7.6.33+dfsg/debian/changelog 2017-04-04 08:08:14.000000000 +0200 +++ boinc-7.6.33+dfsg/debian/changelog 2017-05-30 11:40:51.000000000 +0200 @@ -1,3 +1,22 @@ +boinc (7.6.33+dfsg-12) unstable; urgency=medium + + [ Steffen Moeller ] + * Added dependency on lsb-base (>= 3.0-6) of boinc-client for the init + script. Thanks to Lintian and the Package Tracker for spotting that. + + [ Gianfranco Costamagna ] + * Update the previous boinc-issue-1177.patch with the upstream merged patch. + * Remove boinc-client-fglrx: dead, depends on removed fglrx libraries. + (Closes: #863699) + + -- Gianfranco Costamagna <locutusofb...@debian.org> Tue, 30 May 2017 11:39:31 +0200 + +boinc (7.6.33+dfsg-11exp1) experimental; urgency=medium + + * Upload to experimental again, with the boinc-server-* packages. + + -- Gianfranco Costamagna <locutusofb...@debian.org> Tue, 04 Apr 2017 08:10:03 +0200 + boinc (7.6.33+dfsg-11) unstable; urgency=medium * Upload to unstable diff -Nru boinc-7.6.33+dfsg/debian/control boinc-7.6.33+dfsg/debian/control --- boinc-7.6.33+dfsg/debian/control 2017-04-04 08:09:03.000000000 +0200 +++ boinc-7.6.33+dfsg/debian/control 2017-05-30 11:41:46.000000000 +0200 @@ -103,37 +103,16 @@ non-free section to the regular boinc package. This also meant this binary package to be redistributed in the contrib section of Debian. -Package: boinc-client-fglrx -Architecture: amd64 i386 -Section: contrib/net -Priority: extra -Breaks: boinc-nvidia-cuda -Replaces: boinc-nvidia-cuda -Depends: ${misc:Depends}, boinc-client -Recommends: libfglrx | fglrx-updates | fglrx -Description: metapackage for AMD/ATI fglrx-savvy BOINC client and manager - The Berkeley Open Infrastructure for Network Computing (BOINC) is a - software platform for distributed computing: several initiatives of - various scientific disciplines all compete for the idle time of - desktop computers. The developers' web site at the University of - Berkeley serves as a common portal to the otherwise independently run - projects. - . - Regular users (righteously) often find it an unbearable nuisance to - care for the configuration of BOINC for the fglrx-savvy AMD/ATI - graphics cards. This package adds a series of dependencies from the - non-free section to the regular boinc package. This also meant this - binary package to be redistributed in the contrib section of Debian. - Package: boinc-client Architecture: any Depends: adduser, ca-certificates, + lsb-base (>= 3.0-6), libboinc7 (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} -Suggests: boinc-client-opencl, boinc-client-fglrx, boinc-client-nvidia-cuda, boinc-manager, x11-xserver-utils +Suggests: boinc-client-opencl, boinc-client-nvidia-cuda, boinc-manager, x11-xserver-utils Description: core client for the BOINC distributed computing infrastructure The Berkeley Open Infrastructure for Network Computing (BOINC) is a software platform for distributed computing: several initiatives of diff -Nru boinc-7.6.33+dfsg/debian/control.in boinc-7.6.33+dfsg/debian/control.in --- boinc-7.6.33+dfsg/debian/control.in 2017-03-14 12:22:46.000000000 +0100 +++ boinc-7.6.33+dfsg/debian/control.in 2017-05-30 11:38:56.000000000 +0200 @@ -103,37 +103,16 @@ @ non-free section to the regular boinc package. This also meant this @ binary package to be redistributed in the contrib section of Debian. @ -@Package: boinc-client-fglrx -@Architecture: amd64 i386 -@Section: contrib/net -@Priority: extra -@Breaks: boinc-nvidia-cuda -@Replaces: boinc-nvidia-cuda -@Depends: ${misc:Depends}, boinc-client -@Recommends: libfglrx | fglrx-updates | fglrx -@Description: metapackage for AMD/ATI fglrx-savvy BOINC client and manager -@ The Berkeley Open Infrastructure for Network Computing (BOINC) is a -@ software platform for distributed computing: several initiatives of -@ various scientific disciplines all compete for the idle time of -@ desktop computers. The developers' web site at the University of -@ Berkeley serves as a common portal to the otherwise independently run -@ projects. -@ . -@ Regular users (righteously) often find it an unbearable nuisance to -@ care for the configuration of BOINC for the fglrx-savvy AMD/ATI -@ graphics cards. This package adds a series of dependencies from the -@ non-free section to the regular boinc package. This also meant this -@ binary package to be redistributed in the contrib section of Debian. -@ @Package: boinc-client @Architecture: any @Depends: adduser, @ ca-certificates, +@ lsb-base (>= 3.0-6), @ libboinc7 (= ${binary:Version}), @ ${misc:Depends}, @ ${python:Depends}, @ ${shlibs:Depends} -@Suggests: boinc-client-opencl, boinc-client-fglrx, boinc-client-nvidia-cuda, boinc-manager, x11-xserver-utils +@Suggests: boinc-client-opencl, boinc-client-nvidia-cuda, boinc-manager, x11-xserver-utils @Description: core client for the BOINC distributed computing infrastructure @ The Berkeley Open Infrastructure for Network Computing (BOINC) is a @ software platform for distributed computing: several initiatives of diff -Nru boinc-7.6.33+dfsg/debian/patches/boinc-issue-1177.patch boinc-7.6.33+dfsg/debian/patches/boinc-issue-1177.patch --- boinc-7.6.33+dfsg/debian/patches/boinc-issue-1177.patch 2017-03-15 17:53:00.000000000 +0100 +++ boinc-7.6.33+dfsg/debian/patches/boinc-issue-1177.patch 2017-05-08 17:16:51.000000000 +0200 @@ -1,58 +1,111 @@ -Description: Fix for the new process spawn -Author: Christian Beer +From 31e8427469ede148249796fed05be0165e321d23 Mon Sep 17 00:00:00 2001 +From: Christian Beer <christian.b...@aei.mpg.de> +Date: Thu, 16 Mar 2017 18:28:08 +0100 +Subject: [PATCH 1/2] Manager/Lib: fix 'New Manager window' function on Linux -Bug-Ubuntu: https://launchpad.net/bugs/1115607 -Forwarded: https://github.com/BOINC/boinc/issues/1177 +This was not working because the manager was not detecting its own executable name and path so it couldn't start a new instance of itself. Windows and Mac use different codepaths so it worked there. +The new library function can be extended for Windows and Mac to avoid code duplication. +--- + clientgui/BOINCGUIApp.cpp | 21 +++++++++++++++++++++ + configure.ac | 5 +++++ + lib/util.cpp | 17 +++++++++++++++++ + lib/util.h | 2 ++ + 4 files changed, 45 insertions(+) ---- a/clientgui/AdvancedFrame.cpp -+++ b/clientgui/AdvancedFrame.cpp -@@ -1601,7 +1601,7 @@ void CAdvancedFrame::OnLaunchNewInstance(wxCommandEvent& WXUNUSED(event)) { - wxString strExecutable = wxGetApp().GetRootDirectory() + wxGetApp().GetExecutableName(); - - run_program( -- wxGetApp().GetRootDirectory().mb_str(), -+ wxGetApp().GetDataDirectory().mb_str(), - strExecutable.mb_str(), - argc, - argv, -diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp -index 434769b5e4..b5c0b8a45b 100644 ---- a/clientgui/BOINCGUIApp.cpp -+++ b/clientgui/BOINCGUIApp.cpp -@@ -721,6 +721,17 @@ void CBOINCGUIApp::DetectExecutableName() { +Index: boinc/clientgui/BOINCGUIApp.cpp +=================================================================== +--- boinc.orig/clientgui/BOINCGUIApp.cpp ++++ boinc/clientgui/BOINCGUIApp.cpp +@@ -765,6 +765,16 @@ // Store the root directory for later use. m_strBOINCMGRExecutableName = pszProg; -+#else ++#elif defined(__WXGTK__) + char path[PATH_MAX]; -+ memset(path,0,sizeof(path)); -+ int ret = readlink("/proc/self/exe", path, PATH_MAX); -+ if ( ret >= 0) { -+ path[ret] = '\0'; // readlink does not null terminate -+ char* name = strrchr(path, '/') + 1; -+ m_strBOINCMGRExecutableName = name; -+ } else { -+ perror("readlink"); ++ if (!get_real_executable_path(path, PATH_MAX)) { ++ // find filename component ++ char* name = strrchr(path, '/'); ++ if (name) { ++ name++; ++ m_strBOINCMGRExecutableName = name; ++ } + } #endif } -@@ -742,6 +753,18 @@ void CBOINCGUIApp::DetectRootDirectory() { +@@ -786,6 +796,17 @@ // Store the root directory for later use. m_strBOINCMGRRootDirectory = szPath; -+#else ++#elif defined(__WXGTK__) + char path[PATH_MAX]; -+ memset(path,0,sizeof(path)); -+ int ret = readlink("/proc/self/exe", path, PATH_MAX); ++ if (!get_real_executable_path(path, PATH_MAX)) { ++ // find path component ++ char* name = strrchr(path, '/'); ++ if (name) { ++ name++; ++ *name = '\0'; ++ m_strBOINCMGRRootDirectory = path; ++ } ++ } + #endif + } + +Index: boinc/configure.ac +=================================================================== +--- boinc.orig/configure.ac ++++ boinc/configure.ac +@@ -1026,6 +1026,11 @@ + AC_DEFINE(HAVE__PROC_SELF_STAT, 1, [Define to 1 if /proc/self/stat exists]) + fi + ++dnl Check for /proc/self/exe (Linux) ++if test -e "/proc/self/exe"; then ++ AC_DEFINE(HAVE__PROC_SELF_EXE, 1, [Define to 1 if /proc/self/exe exists]) ++fi ++ + dnl Check for /proc/meminfo (Linux) + if test -e "/proc/meminfo"; then + AC_DEFINE(HAVE__PROC_MEMINFO, 1, [Define to 1 if /proc/meminfo exists]) +Index: boinc/lib/util.cpp +=================================================================== +--- boinc.orig/lib/util.cpp ++++ boinc/lib/util.cpp +@@ -617,3 +617,24 @@ + cached = true; + return z*cos(PI2*u2); + } ++ ++// determines the real path and filename of the current process ++// not the current working directory ++// ++int get_real_executable_path(char* path, size_t max_len) { ++#ifdef HAVE__PROC_SELF_EXE ++ int ret = readlink("/proc/self/exe", path, max_len); + if ( ret >= 0) { + path[ret] = '\0'; // readlink does not null terminate -+ char* name = strrchr(path, '/') + 1; -+ *name = '\0'; -+ m_strBOINCMGRRootDirectory = path; ++ return 0; + } else { ++#ifdef _USING_FCGI_ ++ FCGI::perror("readlink"); ++#else + perror("readlink"); ++#endif ++ return ERR_PROC_PARSE; + } - #endif - } ++#endif ++ return ERR_NOT_IMPLEMENTED; ++} +Index: boinc/lib/util.h +=================================================================== +--- boinc.orig/lib/util.h ++++ boinc/lib/util.h +@@ -110,6 +110,8 @@ + + extern int wait_client_mutex(const char* dir, double timeout); ++extern int get_real_executable_path(char* path, size_t max_len); ++ + #ifdef GCL_SIMULATOR + extern double simtime; + #define time(x) ((int)simtime)
signature.asc
Description: OpenPGP digital signature