Hello!
I'm trying to use ympd on Fedora 32 on armhf (Raspberry Pi 3B+). The precompiled ympd does not support multiple mpd outputs (AFAICT). I've previously used a custom-compiled ympd that does, but it was compiled for aarch64. Raspberry Pi 3 code is almost always armhf, so I'm trying to stick with that. A glance at the current notandy/ympd head shows that the multiple output code is there, so it should simply be a case of the binary being out of date.
No problem: I'll compile it myself. Here's what I've done on a new Fedora 32 minimal install (with RPMFusion repo added):
dnf groupinstall 'Development Tools'
dnf install unzip cmake libmpdclient-devel openssl-devel
wget https://github.com/notandy/ympd/archive/master.zip
unzip master.zip
cd ympd-master
mkdir build; cd build
mkdir install
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=./install
make
And here's the error that I get (after all compiles complete successfully):
[100%] Linking C executable ympd
/usr/bin/ld: CMakeFiles/ympd.dir/src/mpd_client.c.o:(.bss+0x0): multiple definition of `mpd'; CMakeFiles/ympd.dir/src/ympd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/ympd.dir/src/mpd_client.c.o:(.bss+0x1909c): multiple definition of `dirble_api_token'; CMakeFiles/ympd.dir/src/ympd.c.o:(.bss+0x1909c): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ympd.dir/build.make:206: ympd] Error 1
make[1]: *** [CMakeFiles/Makefile2:98: CMakeFiles/ympd.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
[root@mimhq-music build]#
In case there was a problem with the libmpdclient-devel package installed by Fedora/RPMFusion, I also tried compiling that from source as well:
dnf remove libmpdclient-devel
dnf install meson ninja-build
wget https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.18.tar.xz
tar -xvf libmpdclient-2.18.tar.xz
cd libmpdclient-2.18
meson . output
ninja -C output
ninja -C output install
No errors here, and lots of files were copied to /usr/local/include/mpd as expected.
Previous experience tells me that this error is probably a problem with conflicting / duplicate header includes. A glance showed me that the likely headers have include guards in place. I'm not familiar with ympd or libmpdclient code, so before I spend a lot of time ripping the headers apart, I would ask: Am I missing something?
Please let me know how I can help. Thank you very much for any information you can provide. My test environment will stay ready for whatever you need me to do! :)
Hello!
I'm trying to use ympd on Fedora 32 on armhf (Raspberry Pi 3B+). The precompiled ympd does not support multiple mpd outputs (AFAICT). I've previously used a custom-compiled ympd that does, but it was compiled for aarch64. Raspberry Pi 3 code is almost always armhf, so I'm trying to stick with that. A glance at the current notandy/ympd head shows that the multiple output code is there, so it should simply be a case of the binary being out of date.
No problem: I'll compile it myself. Here's what I've done on a new Fedora 32 minimal install (with RPMFusion repo added):
And here's the error that I get (after all compiles complete successfully):
In case there was a problem with the libmpdclient-devel package installed by Fedora/RPMFusion, I also tried compiling that from source as well:
No errors here, and lots of files were copied to /usr/local/include/mpd as expected.
Previous experience tells me that this error is probably a problem with conflicting / duplicate header includes. A glance showed me that the likely headers have include guards in place. I'm not familiar with ympd or libmpdclient code, so before I spend a lot of time ripping the headers apart, I would ask: Am I missing something?
Please let me know how I can help. Thank you very much for any information you can provide. My test environment will stay ready for whatever you need me to do! :)