Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compile error (--with-airplay-2) #1341

Closed
b247 opened this issue Nov 20, 2021 · 18 comments
Closed

compile error (--with-airplay-2) #1341

b247 opened this issue Nov 20, 2021 · 18 comments

Comments

@b247
Copy link

b247 commented Nov 20, 2021

Hi, I try to compile shairport-sync (https://github.com/mikebrady/shairport-sync/blob/development/BUILDFORAP2.md) on a debian10 arm powered device (osmc on a rpi3) but got this during the make process (make -j)
rtsp.c: In function ‘handle_get_info’: rtsp.c:1510:34: error: ‘plists_get_info_response_xml’ undeclared (first use in this function); did you mean ‘pair_verify_response2’? plist_from_xml((const char *)plists_get_info_response_xml, plists_get_info_response_xml_len, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ pair_verify_response2 rtsp.c:1510:34: note: each undeclared identifier is reported only once for each function it appears in rtsp.c:1510:64: error: ‘plists_get_info_response_xml_len’ undeclared (first use in this function) plist_from_xml((const char *)plists_get_info_response_xml, plists_get_info_response_xml_len, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@mikebrady
Copy link
Owner

Thanks for the report. Is libplist installed? What version it it? It must be 2.0.0 or later.

@b247
Copy link
Author

b247 commented Nov 20, 2021 via email

@mikebrady
Copy link
Owner

Thanks. Could you post the ./configure options you used, please?

@b247
Copy link
Author

b247 commented Nov 21, 2021 via email

@mikebrady
Copy link
Owner

Thanks. I tried to get started with OSMC on a Pi 3 from the command line and couldn't even ssh into it -- the Mac ssh client hung up after entering the password.

@mikebrady
Copy link
Owner

mikebrady commented Nov 21, 2021

So, I spun up a minimal arm64 based Debian 11 and built nqptp and Shairport Sync without any difficulties. Therefore, I think it must be something specific to the OSMC image -- I suggest you talk to the OSMC guys.

@b247
Copy link
Author

b247 commented Nov 21, 2021

Thank You Mike. I am using OSMC 2020.11-1 (debian 10 buster - armhf [32bit] ) version on a RPI 3 armv7l CPU. Could be a problem that I am using a 32bit OS (debian 10/11 armhf)?

@mikebrady
Copy link
Owner

I'm afraid I am unable to test for that. A 32-bit OS shouldn't be a problem per se. After all, the Raspberry Pi OS is still 32-bit. (FWIW, Shairport Sync also builds on an arm64 based Debian 10.)

@b247
Copy link
Author

b247 commented Nov 21, 2021 via email

@Lorilandly
Copy link

Hi, I found out that this problem is because the generated plist_xml_strings.h is empty. This is caused by a command in the makefile not executed. One can encounter this issue if xxd is not installed on the system the first time shairport-sync is compiled, stops on line 1605 in the makefile, resulted in an empty plist_xml_strings.h. Compile again after xxd is installed by the user, the makefile sees that plist_xml_strings.h already exists and will not attempt to add the rest of the code to it. Thus, compilation breaks. You can solve the problem if you run manually the line xxd -i plists/get_info_response.xml >> plist_xml_strings.h before building.

@b247
Copy link
Author

b247 commented Dec 8, 2021 via email

@mikebrady
Copy link
Owner

Hi, I found out that this problem is because the generated plist_xml_strings.h is empty. This is caused by a command in the makefile not executed. One can encounter this issue if xxd is not installed on the system the first time shairport-sync is compiled, stops on line 1605 in the makefile, resulted in an empty plist_xml_strings.h. Compile again after xxd is installed by the user, the makefile sees that plist_xml_strings.h already exists and will not attempt to add the rest of the code to it. Thus, compilation breaks. You can solve the problem if you run manually the line xxd -i plists/get_info_response.xml >> plist_xml_strings.h before building.

Many thanks for finding this and for providing a PR to fix it!

@github-actions
Copy link

github-actions bot commented Feb 7, 2022

This issue has been inactive for 45 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.

@anatol
Copy link

anatol commented Nov 1, 2022

I hit the same issue at Arch Linux.

It would be nice if the build system failed early in case xxd is absent.

@duhow
Copy link

duhow commented Dec 1, 2022

Same here, just faced this issue.. @mikebrady ?

@mikebrady
Copy link
Owner

Thanks for the update. Is there something missing from the build guide?

@duhow
Copy link

duhow commented Dec 1, 2022

Ideally, if xxd program is missing, the Makefile build command should warn the user of this.
I'm currently building shairport in Docker image builder, and needed to install this application due to Airplay2.

@mikebrady
Copy link
Owner

mikebrady commented Dec 1, 2022

That should be fixed now in the development branch. Thanks for the reminder. If you got a chance to check it, that would be very useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants