Ergebnis 1 bis 18 von 18
  1. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #1

    Standard woinc - Eine Alternative zu boincmgr

    Hi,

    um es kurz zu machen, es geht um woinc, eine Reimplementierung von boinccmd und boincmgr + eine Library die die Kommunikation mit den BOINC-Clients implementiert.
    Die nicht ganz aktuellen Screenshots findet ihr hier: http://83.169.22.26/tmp/woinc/

    Warum?
    - modernes C++ lernen
    - Qt lernen
    - ich bin kein Fan von wx und will das nicht auf meinem Rechner haben, boincmgr hat das aber als Dependency ..

    Bestandteile:
    - woinc: Die Core-Library um mit den BOINC-Clients zu kommunizieren (Ordner lib/)
    - woincui: Die Verwaltung mehrere Clients + Anstossen jeglicher Requests; woincui ist komplett asynchron! (Ordner libui/)
    - woinccmd: Reimplementierung von boinccmd (nutzt nur woinc, nicht woincui, weil synchron die Antwort erwartet wird) (Ordner ui/cli)
    - woincqt: Reimplementierung von boincmgr mit dem Qt-Framework und woincui; es sind nicht alle Features realisiert, wuerde ich aber auch nur bei Bedarf und damit einer Nachfrage nachholen (Ordner ui/qt)

    Status:
    - Mit einem aktuellen Qt und Compiler kompiliert das. Das ist C++14, wobei ich zeitnah auf C++17 wechsel.
    - woincui unterstuetzt mehrere Clients, woincqt noch(?) nicht.
    - woincqt entspricht dem, was ich selber nutze (mal abgesehen von den Stats, das war eher Spielerei). wenn ihr da mehr wollt, sagt mir das
    - woinccmd hat ein paar extra Optionen gegenueber boinccmd .. die sind bei moderneren Installationen mehr oder weniger obsolet. Eine davon ist fuer Challanges ok, wobei dabei aber die Ressourcen nicht beachtet werden. Seht diese Optionen eher als Spielzeug fuer mich. Die sind per Default deaktiviert, kann man aktivieren mit -DWOINC_CLI_COMMANDS=ON beim cmake Aufruf.

    Abhaenigkeiten:
    Laufzeit:
    • qt 5.?; mit qt >= 5.9 kann man kompilieren, Versionen davor nicht getestet; ich empfehle >=5.12; gerne eine Rueckmeldungen an mich, mit welchen Versionen ihr das getestet hattet.
      Komponenten von Qt:
      • Qt5Widgets: fuer das UI eben
      • Qt5Charts: fuer das Statistik- und das Diks-Tab, die Qt-Komponente ist relativ neu und noch nicht sehr verbreitet; Spielerei, kann ich bei Bedarf optional machen
      • Qt5Network: Um Images in den News nachzuladen; Spielerei, kann ich bei Bedarf optional machen
    • pugixml (sicher mit 1.9.*, 1.10 noch nicht getestet)

    Compilierungzeit:
    - Alle Laufzeitabhaenigkeiten
    - cmake >= 3.8
    - make, Ninja oder aehnliches, was du als Makefile-Generator an cmake uebergeben kannst. in den Bsp hier immer make

    Woher bekomme ich das?
    https://github.com/vmc-coding/woinc

    Das ganze ist ein Hobbybprojekt, bitte bei Rueckfragen immer mit beachten.

    edit 30.06.2020
    Das ist schon auf C++14, wollte auf C++17 updaten; im Text angepasst.
    Geändert von vmc (11.07.2020 um 00:19 Uhr)

  2. Die folgenden 2 Benutzer haben sich bei vmc bedankt für diesen nützlichen Beitrag:

    No_Name (29.06.2020), oki (28.06.2020)

  3. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #2

    Standard

    Hallo vmc,

    nachdem ich eine ganze Reihe Qt5-stuff nachinstalliert habe, sagt er

    $ > cmake .
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/me/adds/woinc


    Und nun? Ich habe von C++ und cmake keine Ahnung.

    Schöne Grüße

  4. Avatar von Dennis-TW
    Titel
    Gold Member

    Bewertung

    Registriert am
    25.01.2008

    Ort
    Taiwan

    Beiträge
    1.153

    Danke
    Danke gesagt 4   Danke erhalten 62

    #3

    Standard

    Bin interessiert, da ich zufällig gestern komplett neu mit Linux Mint 20 (Cinnamon) angefangen habe.

    Allerdings bin ich ohne Installationsanleitung bei sowas aufgeschmissen. Git habe ich installiert und das Repository auch erfolgreich geklont. Jetzt weiß ich allerdings nicht weiter.
    Grüße aus dem fernen Taiwan

  5. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #4

    Standard

    Ja sorry, das Readme inkl. Installationsanleitung wollte ich schreiben, wurde dann aber abgelenkt und haja, heute nicht dazu gekommen. Hole ich hoffentlich diese Woche noch nach

    Hier mein Gedankengang wie man das baut. Bitte alles lesen und nicht einfach nur Zeug kopieren und ausfuehren!


    Ich verwende ueblicherweise meine dev-configs, die sind ein bisschen anders, aber werde beschreiben was zu tun ist. Die Dev-Configs kommen aber am Ende wieder

    Code:
    git clone https://github.com/vmc-coding/woinc.git woinc
    mkdir -p woinc/build && cd woinc/build
    cmake ..
    make -j$(nproc)
    Ueblicherweise will man noch den Installpfad angeben, dann uebergibt man dem cmake -DCMAKE_INSTALL_PREFIX
    Also sowas
    Code:
    cmake -DCMAKE_INSTALL_PREFIX=~/bin/woinc ..
    Compilerflags kann man natuerlich auch angeben:
    Code:
    cmake -DCMAKE_CXX_FLAGS="-march=native -O2" ..
    Hier nochmal zusammengefasst, wie gesagt, eine echtes Readme kommt hoffentlich diese Woche noch:
    Code:
    git clone https://github.com/vmc-coding/woinc.git woinc
    mkdir -p woinc/build && cd woinc/build
    cmake  -DCMAKE_INSTALL_PREFIX=~/bin/woinc -DCMAKE_CXX_FLAGS="-march=native -O2" ..
    make -j$(nproc) install
    In dem Beispiel sind die beiden Binaries (woinccmd und woincqt) dann unter ~/bin/woinc/bin installiert und solltet ihr unter Angabe des Pfades aufrufen koennen. Intern sind die statisch gelinkt, die Deps von aussen dynamisch. Heisst, ihr solltet die auch aus dem Ordner nach zB ~/bin verschieben koennen und sie sollten tun.

    Falls ihr euch nicht mit CXX_FLAGS rumschlagen wollt, meine Dev-Configs sind als Buildconfig hinterlegt. Ich schalte da meist ziemlich aggressiv die Warnings ein, spiele aber auch mit LTO. Fuer Dev-Debug:
    Code:
    cmake -DCMAKE_BUILD_TYPE=dev_debug -DCMAKE_INSTALL_PREFIX=~/bin/woinc ..
    oder Dev-Release:
    Code:
    cmake -DCMAKE_BUILD_TYPE=dev_release -DCMAKE_INSTALL_PREFIX=~/bin/woinc ..
    Nachdem ich bisher nur auf meinem Rechner getestet habe, wollt ihr vllt. sogar das Dev-Debug-Profil aktivieren. Das wuerde mir bei Analysen helfen, wenn bei euch Fehler zur Laufzeit auftreten. Dafuer muesste man die Anwendung aber aus einem Terminal starten und dieses nicht schliessen (oder den stderr-Output in eine Datei umleiten). Einen Logger gibt es nicht, das fand ich nicht notwendig.

    Danke euch Beiden fuers Antesten

    - - - Aktualisiert - - -

    Aufruf von woinccmd ist analog boinccmd, ich habe es aber noch nicht geschafft ::1 zu unterstuetzen (deswegen btw, der Debug-Output im initial Import .., pullt mal bitte ). Muss man halt doch localhost eintippern .. so what. Einfache Textersetzung will ich da sicherlich nicht.

    Aufruf von woincqt hat einen Fallback, man kann das aus der cli aufrufen: woincqt <password>. Funktioniert natuerlich nur lokal, aber ist einfach fuer Dev, damit ich das nicht ueber die UI machen muss. Problem: andere User auf dem Rechner sehen das Passwort!
    Eine Art Host + Passwort merken habe ich mir schon ueberlegt, bin mir aber noch unschluessig. Plaintext will ich das nicht iwie abspeichern, Master-Password ist aber auch nur so semi gut. Wobei das eine Loesung waere, wenn das UI mal mehr als einen Client unterstuetzt. Habe noch nicht geschaut wie der boincmgr das macht und noch nicht entschieden wir woinc das tun wird.

    - - - Aktualisiert - - -

    @Dennis: Bei dir klingt dass danach, dass du einen Nachbau vom boincclient in woinc erwartest, also das Programm was WUs ausfuehrt. Dem ist nicht der Fall, woinc stellt nur die Tools bereit um (remote) mit diesen Clients zu kommunizieren.
    Geändert von vmc (30.06.2020 um 03:16 Uhr)

  6. Avatar von Dennis-TW
    Titel
    Gold Member

    Bewertung

    Registriert am
    25.01.2008

    Ort
    Taiwan

    Beiträge
    1.153

    Danke
    Danke gesagt 4   Danke erhalten 62

    #5

    Standard

    Zitat Zitat von vmc Beitrag anzeigen
    @Dennis: Bei dir klingt dass danach, dass du einen Nachbau vom boincclient in woinc erwartest, also das Programm was WUs ausfuehrt. Dem ist nicht der Fall, woinc stellt nur die Tools bereit um (remote) mit diesen Clients zu kommunizieren.
    Ähm....nö, der Unterschied von boinc-client und boinc-manager ist mir schon bekannt. Ging mir darum, dass der boinc-manager in Sachen Darstellung auch bei mir oft schlecht wegkommt. Bislang hab ich dann Boinctasks als Alternative genommen, aber dafür immer extra wine zu installieren ist auch nicht so toll (obwohl es funktioniert). Hab allerdings erst wieder am Wochenende Zeit zum testen.
    Grüße aus dem fernen Taiwan

  7. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #6

    Standard

    Zitat Zitat von Dennis-TW Beitrag anzeigen
    Ähm....nö, der Unterschied von boinc-client und boinc-manager ist mir schon bekannt. Ging mir darum, dass der boinc-manager in Sachen Darstellung auch bei mir oft schlecht wegkommt. Bislang hab ich dann Boinctasks als Alternative genommen, aber dafür immer extra wine zu installieren ist auch nicht so toll (obwohl es funktioniert). Hab allerdings erst wieder am Wochenende Zeit zum testen.
    Ui, wenn ich dann damit helfen kann/konnte, gerne An Sowas habe ich da bei der Entwicklung nicht gedacht, aber hey .

  8. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #7

    Standard

    Auf meiner openSUSE-gcc-per-yast-out-of-the-box bekomme ich jetzt diese Fehlermeldung:




    me@pc:~/add >
    git clone https://github.com/vmc-coding/woinc.git
    Klone nach 'woinc' ...
    remote: Enumerating objects: 156, done.
    remote: Counting objects: 100% (156/156), done.
    remote: Compressing objects: 100% (110/110), done.
    remote: Total 156 (delta 40), reused 152 (delta 39), pack-reused 0
    Empfange Objekte: 100% (156/156), 194.27 KiB | 1009.00 KiB/s, Fertig.
    Löse Unterschiede auf: 100% (40/40), Fertig.

    me@pc:~/add >
    mkdir -p woinc/build && cd woinc/build

    me@pc:~/add/woinc/build
    cmake ..
    -- The CXX compiler identification is GNU 7.4.1
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Looking for C++ include pthread.h
    -- Looking for C++ include pthread.h - found
    -- Looking for pthread_create
    -- Looking for pthread_create - not found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/me/add/woinc/build

    me@pc:~/add/woinc/build >
    make -j$(nproc)
    Scanning dependencies of target woinc_ui_common
    Scanning dependencies of target woinc
    [ 4%] Building CXX object ui/common/CMakeFiles/woinc_ui_common.dir/types_to_string.cc.o
    [ 4%] Building CXX object lib/CMakeFiles/woinc.dir/src/md5.cc.o
    [ 6%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_command.cc.o
    [ 8%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_connection.cc.o
    [ 8%] Built target woinc_ui_common
    [ 10%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_parsing.cc.o
    In file included from /usr/include/c++/7/cassert:44:0,
    from /home/me/add/woinc/lib/src/rpc_command.cc:22:
    /home/me/add/woinc/lib/src/rpc_command.cc: In function ‘constexpr woinc::rpc::COMMAND_STATUS {anonymous}::map__(woinc::rpc::CONNECTION_STATUS)’ :
    /home/me/add/woinc/lib/src/rpc_command.cc:50:5: error: call to non-constexpr function ‘void __assert_fail(const char*, const char*, unsigned int, const char*)’
    assert(false);
    ^
    [ 12%] Building CXX object lib/CMakeFiles/woinc.dir/src/socket_posix.cc.o
    [ 14%] Building CXX object lib/CMakeFiles/woinc.dir/src/types.cc.o
    make[2]: *** [lib/CMakeFiles/woinc.dir/build.make:87: lib/CMakeFiles/woinc.dir/src/rpc_command.cc.o] Fehler 1
    make[2]: *** Es wird auf noch nicht beendete Prozesse gewartet....
    make[1]: *** [CMakeFiles/Makefile2:88: lib/CMakeFiles/woinc.dir/all] Fehler 2
    make: *** [Makefile:141: all] Fehler 2

    me@pc:~/add/woinc/build >

    Schöne Grüße

  9. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #8

    Standard

    wtf? bei GCC 7.4.1 scheint assert(false); keine constexpr zu sein. Hm, ok, wegpatchen will ich das an der Stelle aber auch nicht, zumal das bestimmt noch andere Stellen betrifft. Wenn du moechtest, kannst du die Assertions (und damit den kompletten assert()-Aufruf) via Preprocessor deaktivieren:
    Code:
    cmake -DCMAKE_CXX_FLAGS="-DNDEBUG" ..
    Ansonsten muesste man halt das constexpr weg machen, lib/src/rpc_command.cc in Zeile 41. Aber wie gesagt, ich vermute dass das nicht die einzige Stelle sein wird.

    Das constexpr kannst du auch global wegmachen([1]), das ist nur ein Hint an den Compiler[2], aendert nichts an der Logik. Sowas wie 'sed -i "s/constexpr //g" */*/*.h */*/*/*.h */*/*.cc */*/*/*.cc'. Ich sag nicht, dass man das tun sollte, waere da fuer andere Loesungsfindungen, aber als Schnellloesung machbar ..

    Und ich schau mal, was der GCC-7.4.1 von C++-14 alles unterstuetzt. Das koennte noch mehr Probleme geben, weil halt doch schon alt der Compiler :/

    - - - Aktualisiert - - -

    Kompilier mal bitte mit make VERBOSE=1. Ich brauch nicht alles, nur eine dieser 'Building CXX object' Zeilen + ein paar Zeilen danach. Der g++-Aufruf sollte zu sehen sein.

    Verwendest du cmake >= 3.8?

    Q&A: Warum ist es ok Assertions zu deaktivieren und warum tu ich das nicht per Default?

    Das ist eine Hilfe zur Entwicklungszeit. Damit kann man Vorbedingungen, Invarianten, Nachbedingungen im Code beschreiben und Fehler fruehzeitig finden. Ueblicherweise deaktiviert man die fuer den Releasebuild und hat sie per Default aktiviert, weil das der Regelfall in der Softwareentwicklung ist. Einen Releasebuild gibt es eher selten. Ist btw Default der C-Lib (des C-Standards), nicht von mir.
    Du baust keinen Releasebuild, deswegen sind die aktiv. Tut aber nicht weh die zu deaktiveren, aendert nichts an der Logik des Programms, es fallen nur Laufzeitchecks weg.
    Du koenntest natuerlich auch ein Release bauen Am Ende passiert da aber genau das Gleiche (-DNDEBUG), nur dass noch Optimierungsflags (-O2 oder was auch immer du angibst) aktiv sind, s. auch das Bsp mit Buildprofile dev_release, wo das hardcoded im Setupfile passiert.

    [1]: Das geht hier, weil ich das nicht fuer die Berechnung von zum Kompilerzeitpunkt notwendigen Werten/Konstanten verwende. Diese Expression hier einfach wegzumachen ist ein gluecklicher Umstand und gilt fuer andere Projekte nicht.
    [2] Stimmt nicht ganz, es gibt da schon einen Sinn dahinter, der trifft hier nur nicht zu. Deswegen sehr vereinfacht dargestellt.
    Geändert von vmc (02.07.2020 um 22:48 Uhr)

  10. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #9

    Standard

    Hab mir mal paar Compiler installiert und auch eine VM mit GCC-7.4 und Qt-5.9. Hoffe, ich habe die Kompilierungs- und Linkerfehler alle erwischt .

    Der Workaround von oben ist nicht mehr notwendig, war dann tatsaechlich auch nur die eine Stelle betroffen. Das war ein Bug bei GCC und wurde mit Version 9 gefixt.

    Die Rueckmeldung vom make benoetige ich nicht mehr.

    So, dafuer immer noch keine Readme commited .. naja, vllt. morgen

    *edit*
    Aso, falls ihr das Repo nicht neu cloned (wie in dem Bsp oben), dann ein git pull ausfuehren.
    Geändert von vmc (04.07.2020 um 00:34 Uhr)

  11. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #10

    Standard



    me@pc:~/add >
    git clone https://github.com/vmc-coding/woinc.git
    Klone nach 'woinc' ...
    remote: Enumerating objects: 200, done.
    remote: Counting objects: 100% (200/200), done.
    remote: Compressing objects: 100% (131/131), done.
    remote: Total 200 (delta 72), reused 184 (delta 59), pack-reused 0
    Empfange Objekte: 100% (200/200), 201.05 KiB | 1009.00 KiB/s, Fertig.
    Löse Unterschiede auf: 100% (72/72), Fertig.

    me@pc:~/add >
    mkdir -p woinc/build && cd woinc/build

    me@pc:~/add/woinc/build >
    cmake ..
    -- The CXX compiler identification is GNU 7.4.1
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Looking for C++ include pthread.h
    -- Looking for C++ include pthread.h - found
    -- Looking for pthread_create
    -- Looking for pthread_create - not found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/heiko/adds/woinc/build

    me@pc:~/add/woinc/build >
    make -j$(nproc)
    Scanning dependencies of target woinc_ui_common
    Scanning dependencies of target woinc
    [ 2%] Building CXX object ui/common/CMakeFiles/woinc_ui_common.dir/types_to_string.cc.o
    [ 6%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_command.cc.o
    [ 6%] Building CXX object lib/CMakeFiles/woinc.dir/src/md5.cc.o
    [ 8%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_connection.cc.o
    [ 8%] Built target woinc_ui_common
    [ 10%] Building CXX object lib/CMakeFiles/woinc.dir/src/rpc_parsing.cc.o
    [ 12%] Building CXX object lib/CMakeFiles/woinc.dir/src/socket_posix.cc.o
    [ 14%] Building CXX object lib/CMakeFiles/woinc.dir/src/types.cc.o
    [ 17%] Building CXX object lib/CMakeFiles/woinc.dir/src/xml.cc.o
    [ 19%] Building CXX object lib/CMakeFiles/woinc.dir/src/version.cc.o
    [ 21%] Linking CXX static library libwoinc.a
    [ 21%] Built target woinc
    Scanning dependencies of target woincui
    Scanning dependencies of target woinccmd
    [ 23%] Building CXX object libui/CMakeFiles/woincui.dir/src/client.cc.o
    [ 25%] Building CXX object ui/cli/CMakeFiles/woinccmd.dir/main.cc.o
    [ 27%] Building CXX object libui/CMakeFiles/woincui.dir/src/configuration.cc.o
    [ 29%] Building CXX object libui/CMakeFiles/woincui.dir/src/controller.cc.o
    [ 31%] Building CXX object libui/CMakeFiles/woincui.dir/src/handler_registry.cc.o
    [ 34%] Building CXX object libui/CMakeFiles/woincui.dir/src/host_controller.cc.o
    [ 36%] Building CXX object libui/CMakeFiles/woincui.dir/src/job_queue.cc.o
    [ 38%] Building CXX object libui/CMakeFiles/woincui.dir/src/jobs.cc.o
    [ 40%] Linking CXX executable woinccmd
    [ 42%] Building CXX object libui/CMakeFiles/woincui.dir/src/periodic_tasks_scheduler.cc.o
    [ 42%] Built target woinccmd
    [ 44%] Linking CXX static library libwoincui.a
    [ 44%] Built target woincui
    Scanning dependencies of target woincqt_autogen
    [ 46%] Automatic MOC for target woincqt
    [ 46%] Built target woincqt_autogen
    Scanning dependencies of target woincqt
    [ 48%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/adapter.cc.o
    [ 53%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/gui.cc.o
    [ 53%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/controller.cc.o
    [ 55%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/main.cc.o
    [ 57%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/menu.cc.o
    [ 59%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/model.cc.o
    [ 61%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/model_handler.cc.o
    [ 63%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs_widget.cc.o
    [ 65%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/types.cc.o
    [ 68%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/utils.cc.o
    [ 70%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/dialogs/preferences_dialog.cc.o
    [ 72%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/dialogs/project_properties_dialog.cc.o
    [ 74%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/dialogs/select_computer_dialog.cc.o
    [ 76%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/dialogs/task_properties_dialog.cc.o
    [ 78%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/delegates.cc.o
    [ 80%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/disk_tab.cc.o
    [ 82%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/events_tab.cc.o
    [ 85%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/notices_tab.cc.o
    [ 87%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/projects_tab.cc.o
    [ 89%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/proxy_models.cc.o
    [ 91%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/statistics_tab.cc.o
    [ 93%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/tasks_tab.cc.o
    [ 95%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/tabs/transfers_tab.cc.o
    [ 97%] Building CXX object ui/qt/CMakeFiles/woincqt.dir/woincqt_autogen/mocs_compilation.cpp.o
    [100%] Linking CXX executable woincqt
    [100%] Built target woincqt

    me@pc:~/add/woinc/build >
    cd ..

    me@pc:~/add/woinc >
    find . -iname woincqt
    ./build/ui/qt/woincqt

    me@pc:~/add/woinc >
    ./build/ui/qt/woincqt

    # -----------------------
    # woincqt window erscheint, typing Ctrl-Q
    # -----------------------

    me@pc:~/add/woinc >







    - - - Aktualisiert - - -



    me@pc:~/add/woinc >
    ./build/ui/qt/woincqt

    ------------------------------------
    Crtl-Shift-I
    127.0.0.1
    *password*
    <OK>
    ## An error occured: Connection to host "127.0.0.1" lost.

    #### QXcbConnection: XCB error: 3 (BadWindow), sequence: 1164, resource id: 14217189, major code: 40 (TranslateCoords), minor code: 0

    Ctrl-q
    ------------------------------------
    me@pc:~/add/woinc >




    Jo, compiliert und window kommt!
    Verbindung zum boinc-client habe ich noch nicht.

    - - - Aktualisiert - - -

    Ist mein Fehler, mit dem BOINC-manager bekomme ich jetzt, nachdem ich die gui_rpc_auth.cfg geändert habe auch keine Verbindung mehr ...

    Muss ich später noch mal bei!

    - - - Aktualisiert - - -

    ================================================== ====
    ./build/ui/qt/woincqt
    Child node "download_backoff" of parent "project" not found!
    Child node "upload_backoff" of parent "project" not found!
    Child node "venue" of parent "project" not found!
    Child node "plan_class" of parent "app_version" not found!
    Child node "signal" of parent "result" not found!
    Child node "resources" of parent "result" not found!
    Child node "scheduler_wait_reason" of parent "result" not found!
    Controller::save_global_preferences on non existing host "localhost" called
    Controller::save_global_preferences on non existing host "localhost" called
    QXcbConnection: XCB error: 3 (BadWindow), sequence: 6233, resource id: 13682850, major code: 40 (TranslateCoords), minor code: 0
    QXcbConnection: XCB error: 3 (BadWindow), sequence: 8044, resource id: 13647217, major code: 40 (TranslateCoords), minor code: 0
    Child node "project_backoff" of parent "file_transfer" not found!
    ================================================== ====

    Verbindung steht, alles wird angezeigt, in allen Tabs, (auch die Minecraft-Kakteen ) )
    * GPU ein/ausschalten: ok.
    * Project aktualisieren: ok.
    * Project suspend/resume: ok.
    * Abort task: ok.
    * use at most 100% of the CPUs: not connected to localhost. (XXX global_prefs_override.xml wird geschrieben, aber nicht mit den neuen Werten XXX)

    Gut finde ich, dass die Meldungen kein extra Fenster auf machen, sondern einen eigenen Tab haben!

    woincqt verbraucht deutlich weniger CPU-Zeit als der boinc-manager, ich finde ihn in der top-liste kaum!



    ================================================== ====
    Geändert von oki (04.07.2020 um 09:40 Uhr)
    Schöne Grüße

  12. Avatar von DeleteNull
    Titel
    Gold Member

    Bewertung

    Registriert am
    18.10.2007

    Ort
    38440 Wolfsburg

    Beiträge
    1.050

    Danke
    Danke gesagt 0   Danke erhalten 29

    #11

    Standard

    Guter Versuch C++ zu lernen.
    Aber wie alle C++ Anwendung leidet es leider auch eben an den Limitierungen dieser Sprache.

    Hab das Teil auch mal kompiliert (Opensuse Tumbleweed), was gar nicht so ohne ist/war.
    Mein Desktop ist eben nicht KDE, sondern zumeist LXDE.
    Also um es bauen zu können musste ich mir das halbe Internet an QT-Quark herunter laden, dann gings.
    Läuft soweit, GUI sieht nach den goldenen 90ern aus (Ohne KDE), und es läuft alles soweit bis auf die Fortschrittsanzeige der Tasks, die steht immer bei 0. Bei den Projekten wiederum funktionierts mit den Prozentwerten.

    Nachteil: Kopiert man das Teil auf einen anderen PC, so zeigt ldd einige fehlende Abhängigkeiten, also es läuft nur auf dem PC wo man es gebaut hat.

    Soweit erst mal ein Zwischenstand. Für einen ersten Wurf doch ganz ordentlich.
    ----------
    Gruss
    Wolfgang

  13. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #12

    Standard

    @oki:

    Schoen, dass es geklappt hat Und super, dass dir das mit der Performance aufgefallen ist, da hatte ich durchaus Acht drauf gegen. Du hast immer noch den Debugbuild am Laufen, das wird noch besser im Releasebuild

    Diese "Child node xy not found" Meldungen bitte ignorieren. Die seht ihr gerade, weil ihr einen Debugbuild baut, haben aber keinerlei Mehrwert fuer euch. Vllt. doch mal eine Art Debug oder Log-Level einfuehren.

    Interessant ist aber die Meldung
    Code:
    Controller::save_global_preferences on non existing host "localhost" called
    Hmmm, habe ich da vllt. noch ein hardcoded "localhost" irgendwo stehen? Ich schau mal Warum vermute ich das? Es kann immer passieren, dass ein Client disconnected und gleichzeitig ein Anwender was im UI triggert. Das kann man auch nicht verhindern und auf dieser Ebene auch keine Locks einsetzen. Die libui erkennt das aber terminiert nicht, damit das Programm nicht abschmiert in solchen Faellen. Finde ich in Ordnung, es wurde eine Aktion auf einem nicht mehr verbundenen Client ausgefuehrt, also kann man auch einfach nichts machen. Diese Meldung ist dafuer da, damit man das wenigstens auf der Console/im Log sieht. Das erscheint mir aber sehr unwahrscheinlich, dass genau das hier aufgetreten sein soll, deswegen vermute ich ein hardcoded "localhost".

    * use at most 100% of the CPUs: not connected to localhost. (XXX global_prefs_override.xml wird geschrieben, aber nicht mit den neuen Werten XXX)
    s.o., wobei das bei mir auch nicht mehr tut, hm. Ich schau mal, da hatte ich in letzter Zeit nichts geaendert.

    - - - Aktualisiert - - -
    @DeleteNull
    Zitat Zitat von DeleteNull Beitrag anzeigen
    Guter Versuch C++ zu lernen.
    Aber wie alle C++ Anwendung leidet es leider auch eben an den Limitierungen dieser Sprache.
    Ich kannte C++ vorher schon, aber halt den 98er-Std. und wollte den 11er lernen. Ich wusste auch, was mich erwarten wird

    Kann da ja nur rein interpretieren was du mit "Limitierungen dieser Sprache" meinst, weil es einfach eine sehr maechtige Sprache ist. Komplex ja, aber maechtig und sicherlich nicht limitiert.
    Ich gehe davon aus, dass es um die Verteilung des Kompilats geht, weil du das weiter unten ausfuehrst. Ja, du musstest das halbe Internet runterladen, weil du kein Qt hattest. Ich habe die libui deswegen geschrieben, damit man das auch nach GTK porten kann. Habe mit woincqt halt mit Qt angefangen. Spricht nichts dagegen, das auch mit GTK zu bauen. Und muesste ja nicht mal C++ sein, ne GTK-Oberflaeche in Python kann auch die woincui-Lib nutzen. Zur Not bau ich da noch Bindings fuer.


    Zitat Zitat von DeleteNull Beitrag anzeigen
    Hab das Teil auch mal kompiliert (Opensuse Tumbleweed), was gar nicht so ohne ist/war.
    Mein Desktop ist eben nicht KDE, sondern zumeist LXDE.
    Also um es bauen zu können musste ich mir das halbe Internet an QT-Quark herunter laden, dann gings.
    Ach aber schoen das es funktioniert hat. Welche Qt-Version?
    Und laedst du sonst nicht das halbe Internet runter? JavaScript? Java? Python? .NET?.

    Zitat Zitat von DeleteNull Beitrag anzeigen
    Läuft soweit, GUI sieht nach den goldenen 90ern aus (Ohne KDE), und es läuft alles soweit bis auf die Fortschrittsanzeige der Tasks, die steht immer bei 0. Bei den Projekten wiederum funktionierts mit den Prozentwerten.
    Magst du das Aussehen der Anwendung an sich nicht oder magst du nicht, wie Qt bei dir das rendert? Keine Ahnung was Qt bei dir als Default-Theme verwendet, bei mir schaut die Anwendung bei Weitem besser aus als das was boincmgr da fabriziert (was aber vermutlich auch da ein lokales Theme-Problem ist).
    Das mit der Fortschrittsanzeige bei den Tasks kann ich mir noch nicht erklaeren. Nutzt die gleiche UI-Komponente wie das Projects-Tab. Ach wobei ja nicht mal der Frotschritt haengen bleibt, scheint ja immer 0 zu sein. Hmm, das klingt nach einem Mappingproblem. Aber warum nur bei dir und nicht bei allen? Ich schau mal was da schief gehen kann, auf wenn ich da noch etwas ideenlos bin ...
    Zitat Zitat von DeleteNull Beitrag anzeigen
    Nachteil: Kopiert man das Teil auf einen anderen PC, so zeigt ldd einige fehlende Abhängigkeiten, also es läuft nur auf dem PC wo man es gebaut hat.

    Soweit erst mal ein Zwischenstand. Für einen ersten Wurf doch ganz ordentlich.
    Na das ist es aber doch immer wenn man Shared-Libraries verwendet. Seien das nun .so oder .dll Dateien, egal. Finde nicht, dass man das der Anwendung ankreiden kann. Klar koennte man versuchen da alles statisch rein zu linken, wie Apps das machen, aber das will ich nicht.

    Danke auch Dir fuers Antesten
    Geändert von vmc (04.07.2020 um 23:50 Uhr)

  14. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #13

    Standard



    top -n1 |egrep 'PID|woincqt'
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    7609 me 20 0 1297176 74908 44200 S 6,250 0,919 57:41.37 woincqt



    woincqt läuft seit einigen Tagen , soweit alles ok.

    Viele Funktionen sind noch nicht freigeschaltet bzw. implementiert, zB das Hinzufügen von Projekten.

    Schöne Grüße

  15. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #14

    Standard

    Viele Funktionen sind noch nicht freigeschaltet bzw. implementiert, zB das Hinzufügen von Projekten.
    Das geht schon, halt ueber die CLI und nicht ueber die GUI Aber ja, hast schon Recht. Im Menu sind noch diverse Eintraege deaktiviert, obwohl die Lib das koennte. Das ist reine Fleißarbeit, muss ich mal Zeit und Muse finden

    Das mit dem hardcoded "localhost" habe ich eben gefixt. Diese euch nichts sagenden Logs sind nun per default deaktiviert und via Flag aktivierbar.
    Geändert von vmc (11.07.2020 um 00:35 Uhr)

  16. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #15

    Standard

    Alles klar, ok, danke!
    Schöne Grüße

  17. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #16

    Standard

    Hab mir mal angeschaut wie beim boincmgr ueber die UI Projekte hinzugefuegt werden. Da passiert dann doch mehr als erwartet.

    Also erstmal wird eine Liste aller Projekte geladen und in einem Wizard zur Auswahl gezeigt. Man kann aber auch via Freitext eine URL eingeben. Den Part habe ich inzwischen implementiert.

    Dann wird bei dem Projekt mal angeklopft, wie denn in etwa die Registrierung/Anmeldung ablaufen soll. Die Calls habe ich in der Lib und CLI, aber noch nicht in der UI.

    Da passiert dann noch viel mehr, zB kann man sich dort auch registrieren. Das alles erscheint mir viel zu viel Overhead fuer eine 'Advanced' Oberflaeche zu sein. Weiterhin laesst die boincmgr nur Passwoerter zu, keine (short) account keys, wtf?

    Wenn keine Einwaende kommen, werde ich den Wizard verwerfen und das so einfach wie moeglich halten, Dialogfenster mit:
    - Dropdown mit bekannten Projekten; bei Auswahl wuerde das naechste Eingabefeld vorbelegt werden
    - Eingabefeld: url
    - Eingabefeld: identifier
    - Eingabefeld: credentials (Password wenn identifier gegeben ist, sonst Key)
    - Ok, Cancel buttons

    Damit ist dann natuerlich nur die Anmeldung, keine Registierung, moeglich.

    Gibt es Meinungen dazu? Spricht da aus eurer Sicht was dagegen?

    *edit*
    Aso, das Tools-Menu habe ich deaktiviert. Da gab es bisher nur deaktivierte Eintraege. Mit dem 'Add porject'-Wizard waere da ein aktiver Eintrag vorhanden, der aber noch WIP ist. Es war leichter den ganzen Menueintrag zu deaktivieren als nur den einen Beitrag (war schon in der Datei ..)
    Geändert von vmc (25.07.2020 um 09:58 Uhr)

  18. Avatar von vmc
    Titel
    Senior Member

    Bewertung

    Registriert am
    20.08.2009

    Ort
    Nürnberg

    Beiträge
    490

    Danke
    Danke gesagt 11   Danke erhalten 3

    #17

    Standard

    Wenn ich mir das Forum so anschaue, moechte man diesen Thread vllt. in die Technikecke verschieben, Subsubforum Software.

  19. Avatar von oki
    Titel
    Freie Cruncher

    Bewertung

    Registriert am
    27.11.2010

    Ort
    Tief im grünen Norden! (SG-Bezirksgruppe HH)

    Beiträge
    464

    Danke
    Danke gesagt 46   Danke erhalten 5

    #18

    Standard

    Ich bin Deiner Meinung:
    * Registrierung ist selten und geht gut per Browser.
    * Anmeldung dieses/meines Client per woincqt/GUI statt TUI wäre schon schön.
    * Ein Feld in dem man die Projektadresse eingeben/hineinkopieren kann ist dann notwendig.
    * Die Liste mit allen Projekten aus denen man dann eins auswählen kann ist dann kann-Bonus.

    Schöne Grüße

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 12.06.2015, 11:01
  2. Antworten: 9
    Letzter Beitrag: 02.06.2012, 23:33
  3. Alternative zu Seti
    Von ssy im Forum Das Hauptforum
    Antworten: 9
    Letzter Beitrag: 31.01.2010, 15:43
  4. PC fährt nicht herunter / BOINCMGR.EXE
    Von [SG-SPEG]stefan78 im Forum Software - Installation, Probleme usw.
    Antworten: 2
    Letzter Beitrag: 30.09.2007, 16:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Single Sign On provided by vBSSO