martim01 / pam

Audio Monitoring Software designed to run on a Raspberry pi with touchscreen
GNU General Public License v3.0
147 stars 12 forks source link

Incorrect NMOS installation #66

Closed Twister10000 closed 2 years ago

Twister10000 commented 2 years ago

Hello Martim

I have noticed the following problem. In the CMakeLists.txt file the queries for the NMOS installation are missing. If you want to install NMOS separately, the following error message always appears during the build:

`10%] Building CXX object /home/pi/nmos/build/CMakeFiles/nmos.dir/src/ioresource.cpp.o [ 10%] Building CXX object /home/pi/nmos/build/CMakeFiles/nmos.dir/src/is04server.cpp.o [ 10%] Building CXX object /home/pi/nmos/build/CMakeFiles/nmos.dir/src/is05server.cpp.o [ 10%] Building CXX object /home/pi/nmos/build/CMakeFiles/nmos.dir/src/log.cpp.o [ 10%] Building CXX object /home/pi/nmos/build/CMakeFiles/nmos.dir/src/microserver.cpp.o /home/pi/nmos/src/microserver.cpp: In member function ‘virtual bool MicroServer::Init()’: /home/pi/nmos/src/microserver.cpp:201:80: error: invalid conversion from ‘int ()(void, MHD_Connection, const char, const char, const char, const char, size_t, void)’ {aka ‘int ()(void, MHD_Connection, const char, const char, const char, const char, unsigned int, void)’} to ‘MHD_AccessHandlerCallback’ {aka ‘MHD_Result ()(void, MHD_Connection, const char, const char, const char, const char, unsigned int, void**)’} [-fpermissive] 201 m_pmhd = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY, m_nPort, NULL, NULL, &MicroServer::AnswerToConnection, this, MHD_OPTION_NOTIFY_COMPLETED, RequestCompleted, NULL, MHD_OPTION_END); ^~~~~~~~
int ()(void, MHD_Connection, const char, const char, const char, const char, size_t, void) {aka int ()(void, MHD_Connection, const char, const char, const char, const char, unsigned int, void)}

In file included from /home/pi/nmos/include/server.h:4, from /home/pi/nmos/include/microserver.h:2, from /home/pi/nmos/src/microserver.cpp:1: /usr/include/microhttpd.h:2443:45: note: initializing argument 5 of ‘MHD_Daemon MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void, MHD_AccessHandlerCallback, void, ...)’ 2443 | MHD_AccessHandlerCallback dh, void dh_cls, | ~~~~~~^~ gmake[2]: [/home/pi/nmos/build/CMakeFiles/nmos.dir/build.make:459: /home/pi/nmos/build/CMakeFiles/nmos.dir/src/microserver.cpp.o] Error 1 gmake[1]: [CMakeFiles/Makefile2:931: /home/pi/nmos/build/CMakeFiles/nmos.dir/all] Error 2 gmake: *** [Makefile:149: all] Error 2 `

I just used the CMakeLists.txt from the nmos Branch for this error message.

martim01 commented 2 years ago

Hi, The "nmos" branch of PAM was dependant on the "development" branch of my NMOS library. This morning I merged the development branch back in to the main branch. So the nmos branch of PAM should now build correctly. At some point once I've finished documentation I intend to merge the "nmos" PAM branch in to its main branch.

Twister10000 commented 2 years ago

Hello

Thank you very much for this quick fix. I will test it today or tomorrow on my system. I would then post the feedback in the issue.

martim01 commented 2 years ago

Thanks - the NMOS build is still a bit of a work in progress so any feedback will be very helpful

Twister10000 commented 2 years ago

Hello,

I will get back to you. I have now tried it out. The logs I am sending are from a system where PAM is already installed so some outputs are strange. When cmake ... -DNMOS=ON everything worked fine it fetched all libaries from Github including NMOS.

With cmake --build . everything is also built successfully. pi@raspberrypi-PAM:/pam-nmos/build $ cmake --build . -- Build Type: Release -- NMOS: ON -- Find external libraries -- Find pml::log -- log found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Find pml::ptpmonkey -- ptpmonkey found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Find pml::sapserver -- sapserver found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Find pml::dnssd -- pml::dnssd found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Find pml::nmos -- nmos found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Configure pml::log -- Configure pml::sapserver -- Restgoose - pml::log being build elsewhere -- Look for asio in /home/pi/asio -- asio found -- Configure pml::ptpmonkey -- Find pml::log -- log found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Restgoose - pml::log being build elsewhere -- asio found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Configure pml::dnssd -- dnssd - pml::log being build elsewhere -- Configure pml::nmos -- nmos - pml::log being build elsewhere -- nmos - pml::dnssd being built elsewhere -- jsoncpp found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- mongoose found - update to latest version hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Already up to date. -- Restgoose - pml::log being build elsewhere -- Configure nmos_base -- Found libcurl -- Configure nmos_node -- Configure nmos_client -- Configure pambase /home/pi/pam-nmos/pambase -- Found portaudio -- Found sndfile -- Configure pamfft -- Configure pamlevel -- Found libsamplerate -- Configure plugin anglemeters -- Configure plugin aoip -- Configure plugin channeldelay -- Configure plugin distortion -- Configure plugin fft -- Configure plugin fftphase -- Configure plugin identify -- Configure plugin levels -- Configure plugin lineup -- Configure plugin lissajou -- Configure plugin LTC -- Configure plugin LTCGenerator -- Configure plugin meters -- Configure plugin peakcount -- Configure plugin peaklog -- Configure plugin polarscope -- Configure plugin ptp -- Configure plugin r128 -- Configure plugin radar -- Configure plugin record -- Configure plugin scope -- Configure plugin spectogram -- Configure plugin InputAlign -- Configure plugin waveform -- Configure pam2 -- Configuring done -- Generating done -- Build files have been written to: /home/pi/pam-nmos/build [ 0%] Built target pml_log [ 2%] Built target sapserver [ 4%] Built target ptpmonkey [ 5%] Built target pml_dnssd [ 6%] Built target restgoose [ 12%] Built target nmos_base [ 14%] Built target nmos_node [ 15%] Built target nmos_client [ 17%] Built target groupsock [ 49%] Built target liveMedia [ 50%] Built target BasicUsageEnvironment [ 51%] Built target UsageEnvironment [ 64%] Built target pambase [ 66%] Built target pamfft [ 66%] Built target pamlevel [ 67%] Built target anglemeters [ 68%] Built target aoipinfo [ 69%] Built target channeldelay [ 70%] Built target distortion [ 72%] Built target fft [ 73%] Built target fftphase [ 74%] Built target identify [ 74%] Built target levels [ 75%] Built target lineup [ 77%] Built target lissajou [ 79%] Built target LTC [ 80%] Built target LTCGenerator [ 81%] Built target meters [ 82%] Built target peakcount [ 83%] Built target peaklog [ 84%] Built target polarscope [ 85%] Built target ptp [ 87%] Built target r128 [ 88%] Built target radar [ 89%] Built target record [ 90%] Built target scope [ 92%] Built target spectogram [ 92%] Built target InputAlign [ 93%] Built target waveform [100%] Built target pam2 However with sudo cmake --build . --target install, the NMOS and Mongose libaries are not listed. pi@raspberrypi-PAM:~/pam-nmos/build $ sudo cmake --build . --target install [ 0%] Built target pml_log [ 2%] Built target sapserver [ 4%] Built target ptpmonkey [ 5%] Built target pml_dnssd [ 6%] Built target restgoose [ 12%] Built target nmos_base [ 14%] Built target nmos_node [ 15%] Built target nmos_client [ 17%] Built target groupsock [ 49%] Built target liveMedia [ 50%] Built target BasicUsageEnvironment [ 51%] Built target UsageEnvironment [ 64%] Built target pambase [ 66%] Built target pamfft [ 66%] Built target pamlevel [ 67%] Built target anglemeters [ 68%] Built target aoipinfo [ 69%] Built target channeldelay [ 70%] Built target distortion [ 72%] Built target fft [ 73%] Built target fftphase [ 74%] Built target identify [ 74%] Built target levels [ 75%] Built target lineup [ 77%] Built target lissajou [ 79%] Built target LTC [ 80%] Built target LTCGenerator [ 81%] Built target meters [ 82%] Built target peakcount [ 83%] Built target peaklog [ 84%] Built target polarscope [ 85%] Built target ptp [ 87%] Built target r128 [ 88%] Built target radar [ 89%] Built target record [ 90%] Built target scope [ 92%] Built target spectogram [ 92%] Built target InputAlign [ 93%] Built target waveform [100%] Built target pam2 Install the project... -- Install configuration: "Release" -- Up-to-date: /usr/local/lib/libpml_log.so -- Up-to-date: /usr/local/lib/libsapserver.so -- Up-to-date: /usr/local/lib/libptpmonkey.so -- Up-to-date: /usr/local/lib/libpml_dnssd.so -- Up-to-date: /usr/local/lib/pam2/libpambase.so -- Up-to-date: /usr/local/lib/pam2/libpamfft.so -- Up-to-date: /usr/local/lib/pam2/libpamlevel.so -- Up-to-date: /usr/local/lib/pam2/monitor/libanglemeters.so -- Up-to-date: /usr/local/lib/pam2/monitor/libaoipinfo.so -- Up-to-date: /usr/local/lib/pam2/test/libchanneldelay.so -- Up-to-date: /usr/local/lib/pam2/test/libdistortion.so -- Up-to-date: /usr/local/lib/pam2/monitor/libfft.so -- Up-to-date: /usr/local/lib/pam2/monitor/libfftphase.so -- Up-to-date: /usr/local/lib/pam2/monitor/libidentify.so -- Up-to-date: /usr/local/lib/pam2/test/liblevels.so -- Up-to-date: /usr/local/lib/pam2/test/liblineup.so -- Up-to-date: /usr/local/lib/pam2/monitor/liblissajou.so -- Up-to-date: /usr/local/lib/pam2/monitor/libLTC.so -- Up-to-date: /usr/local/lib/pam2/monitor/libLTCGenerator.so -- Up-to-date: /usr/local/lib/pam2/monitor/libmeters.so -- Up-to-date: /usr/local/lib/pam2/monitor/libpeakcount.so -- Up-to-date: /usr/local/lib/pam2/monitor/libpeaklog.so -- Up-to-date: /usr/local/lib/pam2/monitor/libpolarscope.so -- Up-to-date: /usr/local/lib/pam2/monitor/libptp.so -- Up-to-date: /usr/local/lib/pam2/monitor/libr128.so -- Up-to-date: /usr/local/lib/pam2/monitor/libradar.so -- Up-to-date: /usr/local/lib/pam2/monitor/librecord.so -- Up-to-date: /usr/local/lib/pam2/monitor/libscope.so -- Up-to-date: /usr/local/lib/pam2/monitor/libspectogram.so -- Up-to-date: /usr/local/lib/pam2/test/libInputAlign.so -- Up-to-date: /usr/local/lib/pam2/monitor/libwaveform.so -- Up-to-date: /usr/local/bin/pam2

Also, when I try to run pam it always gives the following error message: pi@raspberrypi-PAM:/pam-nmos/build $ pam2 pam2: error while loading shared libraries: libnmos_node.so: cannot open shared object file: No such file or directory pi@raspberrypi-PAM:~/pam-nmos/build $

Can you take a look at this I assume it will be a bug in the CMake config. MobaXterm_pi_20211216_082852.pdf

martim01 commented 2 years ago

I'd forgotten to add the install step to the nmos CMake files so they weren't being copied to /usr/local/lib correctly. This has been corrected

Twister10000 commented 2 years ago

It works now