FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.36k stars 72 forks source link

make fails on ubuntu 16.04 #18

Closed spicemint closed 2 years ago

spicemint commented 2 years ago

when running "make" it fails on ubuntu 16.04, libplist-dev is installed (" libplist-dev is already the newest version (1.12-3.1ubuntu0.16.04.1)."

Linux SAT 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

[100%] Linking CXX executable uxplay lib/libairplay.a(raop.c.o): In function raop_handler_setup': /home/jody/UxPlay/lib/raop_handlers.h:349: undefined reference to PLIST_IS_DATA' /home/jody/UxPlay/lib/raop_handlers.h:397: undefined reference to PLIST_IS_ARRAY' /home/jody/UxPlay/lib/raop_handlers.h:349: undefined reference to PLIST_IS_DATA' collect2: error: ld returned 1 exit status CMakeFiles/uxplay.dir/build.make100 recipe for target 'uxplay' failed make[2]: [uxplay] Error 1 CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/uxplay.dir/all' failed make[1]: [CMakeFiles/uxplay.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2

fduncanh commented 2 years ago

I verified that current uxplay builds correctly on ubuntu 20.04.

AHA! On ubuntu 20.04 sudo apt install libplist-dev "libplist-dev is already the newest version (2.1.0-4build2).

If I uninstall libplist-dev, I get an error telling me its missing when cmake is run, and the Makefile doesnt get built. so that isnt the error.

But you have libplist 1.12 which I believe is far too old sudo apt remove libplist-dev

Try to install libplist 2.1 from ubuntu 20.04.

Or see the macOS build instructions in README to easily build libplist from source.

I'll fix CMakeLists.txt to warn about a too-old libplist.

fduncanh commented 2 years ago

from README for macOS builds:

If you have have the standard GNU toolset (autoconf, automake, libtool, etc.) installed, you can also download and compile the source code for these libraries

Similarly, for libplist, download the source as a zipfile from github as libplist-master.zip, then unpack ("unzip libplist-master.zip ; cd libplist-master"), build/install ("./autogen.sh ; make ; sudo make install")

I'll check if you can uninstall libplist afterwards (probably not, unlike macOS case, which is a static build). Edit: leave it installed, create a file /etc/ld.so.conf.d/libplist.conf containing "/usr/local/lib" and run "sudo ldconfig" This allows uxplay to find the shared libplist library when it runs on ubuntu. (or just copy the libplist files from /usr/local/lib to /usr/lib) Some python-devel package is probably needed for you to build libplist , as well as automake, autoconf, libtool.

fduncanh commented 2 years ago

maybe this might work?

libplist-dev_2.0.0-2ubuntu1_amd64.deb 18.04 LTS Download [Search domain ubuntu.pkgs.org] https://ubuntu.pkgs.org › 18.04 › ubuntu-main-amd64 › libplist-dev_2.0.0-2ubuntu1_amd64.deb.html Download libplist-dev_2..-2ubuntu1_amd64.deb for 18.04 LTS from Ubuntu Main repository.

spicemint commented 2 years ago

maybe this might work?

libplist-dev_2.0.0-2ubuntu1_amd64.deb 18.04 LTS Download [Search domain ubuntu.pkgs.org] https://ubuntu.pkgs.org › 18.04 › ubuntu-main-amd64 › libplist-dev_2.0.0-2ubuntu1_amd64.deb.html Download libplist-dev_2..-2ubuntu1_amd64.deb for 18.04 LTS from Ubuntu Main repository.

that certainly helped me to get it working, it is indeed a version issue. I grabbed the liblist-dev https://download.nus.edu.sg/mirror/ubuntu/ubuntu/pool/main/libp/libplist/libplist-dev_2.0.0-2ubuntu1_amd64.deb installing it with

dpkg -i libplist-dev_2.0.0-2ubuntu1_amd64.deb

gave an error that it needs libplist3 so grabbed that too: https://download.nus.edu.sg/mirror/ubuntu/ubuntu/pool/main/libp/libplist/libplist3_2.0.0-2ubuntu1_amd64.deb then dpkg -i libplist3_2.0.0-2ubuntu1_amd64.deb now dpkg -i libplist-dev_2.0.0-2ubuntu1_amd64.deb and then "make" works problem solved, thanks :)