After adding append-cxxflags -std=c++11 it fails with errors like: In file included from gspeakersobject.cc:18:0: gspeakersobject.h:21:27: fatal error: sigc++/object.h: No such file or directory #include <sigc++/object.h> ^ compilation terminated. Makefile:480: recipe for target 'gspeakersobject.o' failed make[2]: *** [gspeakersobject.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from part.h:25:0, from part.cc:18: gspeakersobject.h:21:27: fatal error: sigc++/object.h: No such file or directory #include <sigc++/object.h> ^ compilation terminated. Makefile:480: recipe for target 'part.o' failed make[2]: *** [part.o] Error 1 In file included from net.h:26:0, from net.cc:23: gspeakersobject.h:21:27: fatal error: sigc++/object.h: No such file or directory #include <sigc++/object.h> ^ compilation terminated. Makefile:480: recipe for target 'net.o' failed make[2]: *** [net.o] Error 1 In file included from box.h:30:0, from boxeditor.h:30, from enclosurepaned.h:24, from mainwindow.h:27, from main.cc:9: gspeakersobject.h:21:27: fatal error: sigc++/object.h: No such file or directory #include <sigc++/object.h>
Dropping the sigc++/object.h calls should be enough
Bleh, after dropping the inherits it later fails with: In file included from gspeakersobject.cc:18:0: gspeakersobject.h:28:32: error: 'sigc' has not been declared class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:28:38: error: expected '{' before 'trackable' class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:29:1: error: invalid type in declaration before '{' token { ^ gspeakersobject.h:30:1: error: expected primary-expression before 'public' public: ^ gspeakersobject.h:30:1: error: expected '}' before 'public' gspeakersobject.h:30:1: error: expected ',' or ';' before 'public' gspeakersobject.h:48:1: error: expected unqualified-id before 'protected' protected: ^ gspeakersobject.h:52:1: error: expected declaration before '}' token }; ^ Makefile:480: recipe for target 'gspeakersobject.o' failed make[2]: *** [gspeakersobject.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from part.h:25:0, from part.cc:18: gspeakersobject.h:28:32: error: 'sigc' has not been declared class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:28:38: error: expected '{' before 'trackable' class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:29:1: error: invalid type in declaration before '{' token { ^ gspeakersobject.h:30:1: error: expected primary-expression before 'public' public: ^ gspeakersobject.h:30:1: error: expected '}' before 'public' gspeakersobject.h:30:1: error: expected ',' or ';' before 'public' gspeakersobject.h:48:1: error: expected unqualified-id before 'protected' protected: ^ gspeakersobject.h:52:1: error: expected declaration before '}' token }; ^ Makefile:480: recipe for target 'part.o' failed make[2]: *** [part.o] Error 1 In file included from net.h:26:0, from net.cc:23: gspeakersobject.h:28:32: error: 'sigc' has not been declared class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:28:38: error: expected '{' before 'trackable' class GSpeakersObject : public sigc::trackable ^ gspeakersobject.h:29:1: error: invalid type in declaration before '{' token { ^ gspeakersobject.h:30:1: error: expected primary-expression before 'public' public: ^ gspeakersobject.h:30:1: error: expected '}' before 'public' gspeakersobject.h:30:1: error: expected ',' or ';' before 'public' gspeakersobject.h:48:1: error: expected unqualified-id before 'protected' protected: ^ gspeakersobject.h:52:1: error: expected declaration before '}' token }; ^ Makefile:480: recipe for target 'net.o' failed make[2]: *** [net.o] Error 1 main.cc: In function 'int main(int, char**)': main.cc:70:22: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result] system(s.c_str()); ^ main.cc:72:22: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result] system(s.c_str()); ^ make[2]: Leaving directory '/var/tmp/portage/sci-electronics/gspeakers-0.11-r1/work/gspeakers-0.11/src' Makefile:464: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/portage/sci-electronics/gspeakers-0.11-r1/work/gspeakers-0.11' Makefile:361: recipe for target 'all' failed make: *** [all] Error 2 I also see this is dead since 2004, also, no other distribution is providing this, maybe this should simply be treecleaned finally :/
Created attachment 422382 [details] emerge-log
Builds fine for me here today (see attachment). also .. http://www.diyaudio.com/forums/software-tools/220039-linux-speaker-design-software-2.html on ubuntu. Will adopt if needed.
It builds for you because you are using the older libsigc++ version :|
(In reply to Pacho Ramos from comment #5) > It builds for you because you are using the older libsigc++ version :| [ 3:02pm] root@ds-miche2 ~ # emerge -pv libsigc++ These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-libs/libsigc++-2.4.1:2::gentoo [2.3.1:2::gentoo] USE="-doc -static-libs {-test}" ABI_X86="(64%*) -32% (-x32)" 3,537 KiB Total: 1 package (1 upgrade), Size of downloads: 3,537 KiB What version are -you- using ... ?! I'll check after updating to 2.4... when's 2.4 slated for removal, we can put a dependency on the ebuild temporarily.
Pacho, I've just rebuilt this successfully with libsigc++ v2.4.1 as detailed above. As I see you're maintainer for libsigc++ could I ask a favour, that you would check the changelog for v2.6 against v2.4 and if there's anything notable in there that might affect this package? I'm inclined to submit a revised ebuild with a dependency flag set, and once we find a solution, revbump it again. Unless you have another suggestion? Michael.
It breaks with 2.6 versions
Created attachment 424634 [details, diff] Patched ebuild for gspeakers-0.11 This is a patch for the ebuild that allows it to build with modern libsigc++. Two additional patches are required and will be attached.
Created attachment 424636 [details, diff] gspeakers-0.11-fix-sigc-includes.patch This patch fixes the sigc include files to match 2.6 version. Contributed originally by floppym in #gentoo-proxy-maint channel.
Created attachment 424638 [details, diff] gspeakers-0.11-c++11.patch This patch was written by me to update gspeakers to be compatible with the C++11 standard. Since 'bind' is now a standard library method, calls to libsigc++'s version must be prefixed with the namespace sigc::.
Removing PMASK as have confirmed changes submitted by awilfox do indeed work fine with the 1.4 libsigc++ libs too. Change incoming to portage tree via P-M shortly.
Correction: confirmed working with patches above and dev-libs/libsigc++-2.4.1.
(It's still pmasked until we finally commit the fixes and drop its entry from package.mask)
[master 75c42db] sci-electronics/gspeakers: Fixes for compatibility with libsigc++-2.6 and cxx11 (#569540 by Andrew Wilcox (awilfox)) 1 file changed, 42 insertions(+) create mode 100644 sci-electronics/gspeakers/gspeakers-0.11-r2.ebuild
The Soldering-Iron Brotherhood ????
In commit 64b81f8edad3aaa8a3a84ca799e5737c66682fdc, the ebuild was modified to apply the 2 patches attached to this bug, but the patch files were not added to the files directory. So currently gspeakers fails to build because of the missing patch files. After adding those patches, I can confirm that the ebuild works. Should this issue be reopened, or a new one raised?