Hydranode is a P2P multinetwork framework. It is evolving fast and recently reached v0.1 At the moment only ed2k is supported but development on other modules is in progress. Reproducible: Always Steps to Reproduce: 1. 2. 3.
Created attachment 59862 [details] net-p2p/hydranode-0.1.1.ebuild This is my first hydranode ebuild, I've some problem with boost (I think)... the emerge die with: if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I ../include -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -O3 -I/usr/include/boost/ -pthread -W -Wall -Wno-return-type -Wno-long-long -Wpointer-arith -pedantic -DNDEBUG -DNTRACE -MT workthread.o -MD -MP -MF ".deps/workthread.Tpo" -c -o workthread.o workthread.cpp; \ then mv -f ".deps/workthread.Tpo" ".deps/workthread.Po"; else rm -f ".deps/workthread.Tpo"; exit 1; fi make[3]: *** No rule to make target `/usr/include/boost//libs/thread/src/xtime.cpp', needed by `xtime.o'. Stop. make[3]: Leaving directory `/root/hydranode-0.1.1/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/root/hydranode-0.1.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/hydranode-0.1.1' make: *** [all] Error 2 The file '/usr/include/boost//libs/thread/src/xtime.cpp' doesn't exist (all the dir /usr/include/boost/libs doesn't exist) but it is in the boost sources tarball :?
Hydranode configure script attempts to find a usable configuration of Boost libraries installed on system, and falls back to built-in boost library sources (which it looks for in --with-boost=PATH location) if no system-wide Boost libraries are found. This behaviour is done to allow building Hydranode from source without installing any libraries system-wide. Hydranode ebuild should depend on Boost libraries, including multi-threaded configurations of boost_thread, boost_program_options, boost_filesystem, boost_date_time and boost_signals. If any of those isn't present (or they are not multi-thread-enabled versions - SuSE 9.3, for example, ships most of them in single-threaded configuration), the configure script refuses to use them. Madcat.
Created attachment 60102 [details] net-p2p/hydranode-0.1.1-r1.ebuild Ok for now I don't use system wide boost-libs... The new ebuild works, but probably we need a patch for a best cflags, ccflags, etc. management, actually I simple use --disable-optimization (enabling this simple add a -O3 to my flags) but seems that the configure script filter some flags like -O2; I need to investigate... When devs will release the first gui, we probably need a pair init.d/conf.d for start hydranode as daemon ;)
Created attachment 65770 [details] hydranode-0.1.2 The ebuild.
Created attachment 65771 [details, diff] qt4.jam-patch for hn 0.1.2 This patch is used by 65770: hydranode-0.1.2 Strictly speaking, it isn't needed right now. But if you want to edit the ebuild and uncomment a few lines to enable QT. Then they are needed.
Created attachment 65772 [details, diff] project-root.jam-patch for hn 0.1.2 as with the other patch.. needed for QT4, which is currently disabled
The ebuild in the current state will never get into portage. Please refer to http://dev.gentoo.org/~ciaranm/docs/mw-faq/ for information about how to write proper ebuilds.
Sorry, didn't check back here till now. i've added myself to the CC now. Before wednesday i'll make an ebuild for 0.3 which supports use flag for QT(with gui). After i have it posted here i'll see if i can find out how to do it properly so it can get into portage.
id love to see hydranode in the official portage tree
i made an ebuild for 0.3-r2998 (current release from homepage, maybe i made a typo in -r part somewhere) my ebuild has one serious issue now - when building core and qt4 gui the gui part fails due to file permissions. but when building qt4 gui only - everything goes fine...? so i made the ebuild to use two USE flags "core" and "qt4" for building gui and core respectively. i'll post it here in a couple of hours, right now i'm still looking for this weird error...also the install part needs some work. just wanted to let you know that there is someone working on it :D
Created attachment 90037 [details] initial 0.3 ebuild - very buggy it builds and installs, however still needs refining. e.g. it does not patch two bjam makefiles but copies them over. (i was lazy) gcc4 patch is included, but applying it breaks gcc3 most probably (i didn't implement a gcc-check in the ebuild, which difnitely should be done) when installed it cannot find its libraries which are installed in /opt/hydranode/lib. some of them collide with boost libraries (same names). then again, it finds its plugins in /opt/hydranode/plugins without problems ... ? also running qt4 gui crashes the core, after a few seconds. that's probably an issue with this snapshot :/
okay, a better version. issues with libs are resolved via LD_LIBRARY_PATH variable, and everything works. i even made some initscripts, based on those from amuled. still TODO: 1. gcc4 check in an ebuild. gcc3 probably does not support -ffriend-injector flag, which is required to build hydranode with gcc4. (in project-root.jam file, at the end). so if gcc4 is not being used - -ffriend-injector flag should not be added to project-root.jam 2. initscript needs a lot of tweaking. most importantly, core does not always start, and it has to be adjusted to use /home/p2p as its base dir. 3. gui crashes if no core is running. running core first with -b (fork to bg) parameter fixes the problem. normally gui should spawn its own core process. the pre-built version does. the compiled one does not. 4. debug version of the gui requires qt4 to be build with "debug" USE flag. i don't know how to implement it in ebuild yet. 5. project-root.jam and Jamrules files are overwritten instead of being patched. 6. source package filename is somewhat hardcoded into the ebuild 7. maybe some more.
Created attachment 90634 [details] hydranode-0.3 - a bit better. it builds and seems to work.
please attach the files in plain text.
hydranode fails... "g++" -Wall -ftemplate-depth-100 -ffriend-injection -O3 -finline-functions -Wno-inline -fPIC -Wno-long-long -pedantic -pthread -DBOOST_ALL_DYN_LINK=1 -DB OOST_ALL_NO_LIB -DNDEBUG -D_CRT_SECURE_NO_DEPRECATE -D_FILE_OFFSET_BITS=64 -D_IN TEGRAL_MAX_BITS=64 -D_LARGE_FILES -D_SCL_SECURE_NO_DEPRECATE -D__HTTP_IMPORTS__ -I"." -I"/var/tmp/portage/hydranode-0.3/homedir/boost_1_33_1" -c -o "bin/hncor e/http/gcc/release/threading-multi/httpget.o" "hncore/http/httpget.cpp" ...failed gcc.compile.c++ bin/hncore/http/gcc/release/threading-multi/httpget.o. .. ...skipped <prelease>httpget for lack of <pbin/hncore/http/gcc/release/threading -multi>httpget.o... gcc.compile.c++ bin/hncore/gcc/release/threading-multi/main.o cc1plus: error: unrecognized command line option "-ffriend-injection" "g++" -Wall -ftemplate-depth-100 -ffriend-injection -O3 -finline-functions -Wno-inline -fPIC -Wno-long-long -pedantic -pthread -DBOOST_ALL_DYN_LINK=1 -DB OOST_ALL_NO_LIB -DNDEBUG -D_CRT_SECURE_NO_DEPRECATE -D_FILE_OFFSET_BITS=64 -D_IN TEGRAL_MAX_BITS=64 -D_LARGE_FILES -D_SCL_SECURE_NO_DEPRECATE -I"." -I"/var/tmp/ portage/hydranode-0.3/homedir/boost_1_33_1" -c -o "bin/hncore/gcc/release/threa ding-multi/main.o" "hncore/main.cpp" ...failed gcc.compile.c++ bin/hncore/gcc/release/threading-multi/main.o... ...skipped <prelease>hydranode for lack of <pbin/hncore/gcc/release/threading-mu lti>main.o... ...failed updating 136 targets... ...skipped 33 targets... ...updated 63 targets... !!! ERROR: net-p2p/hydranode-0.3 failed. Call stack: ebuild.sh, line 1539: Called dyn_compile ebuild.sh, line 939: Called src_compile hydranode-0.3.ebuild, line 45: Called die
(In reply to comment #15) > "g++" -Wall -ftemplate-depth-100 -ffriend-injection -O3 -finline-functions > -Wno-inline -fPIC -Wno-long-long -pedantic -pthread ... > gcc.compile.c++ bin/hncore/gcc/release/threading-multi/main.o > cc1plus: error: unrecognized command line option "-ffriend-injection" Check your CFLAGS!
Ops... sorry my mistake ;) Check TODO list (Comment#12)... 1. gcc4 check in an ebuild. gcc3 probably does not support -ffriend-injector flag, which is required to build hydranode with gcc4. (in project-root.jam file, at the end). so if gcc4 is not being used - -ffriend-injector flag should not be added to project-root.jam Probably this is the problem...
Created attachment 112252 [details] Ebuild with check of bjam boost flag Compile failed if boost compiled without bjam flag. Check added in this ebuild.
(this is an automated message based on filtering criteria that matched this bug) 'EBUILD' is in the KEYWORDS which should mean that there is a ebuild attached to this bug. This bug is assigned to maintainer-wanted which means that it is not in the main tree. Hello, The Gentoo Team would like to firstly thank you for your ebuild submission. We also apologize for not being able to accommodate you in a timely manner. There are simply too many new packages. Allow me to use this opportunity to introduce you to Gentoo Sunrise. The sunrise overlay[1] is a overlay for Gentoo which we allow trusted users to commit to and all users can have ebuilds reviewed by Gentoo devs for entry into the overlay. So, the sunrise team is suggesting that you look into this and submit your ebuild to the overlay where even *you* can commit to. =) Because this is a mass message, we are also asking you to be patient with us. We anticipate a large number of requests in a short time. Thanks, On behalf of the Gentoo Sunrise Team, Jeremy. [1]: http://www.gentoo.org/proj/en/sunrise/ [2]: http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq