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

[Problem]: NanoPi NEO Plus2 with old (?) version of Linux. #1852

Open
1 of 2 tasks
theEagleFly opened this issue May 15, 2024 · 4 comments
Open
1 of 2 tasks

[Problem]: NanoPi NEO Plus2 with old (?) version of Linux. #1852

theEagleFly opened this issue May 15, 2024 · 4 comments

Comments

@theEagleFly
Copy link

What happened?

Dear my friends:

Now I am using Neo Plus2 with ubuntu and tyring to install shairport-sync.
I used the "--with-airplay-2" to do ./configure
when I start to "make", the program went wrong.
Please check the info and the steps below.

These were steps I used:

  1. apt-get update && apt-get upgrade

  2. install the tools, the guild page mentioned (except xxd, because the apt-get cannot find xxd.

  3. install xxd from https://github.com/ckormanyos/xxd.git

  4. install nqptp as the guild page tell me.

  5. install libplist from https://github.com/libimobiledevice/libplist.git
    because the libplist version from apt-get is lower than 2.0
    (by the way, apt-get can not install higher version than 2.0)

  6. git clone https://github.com/mikebrady/shairport-sync.git
    and used the "--with-airplay-2" to do ./configure
    then make, and got the errors.

Relevant log output

root@NanoPi-NEO-Plus2:~/shairport-sync# make
printf "// Do not edit!\n" > gitversion.h
printf "// This file is automatically generated by 'git describe --tags --dirty --broken', if available.\n" >> gitversion.h
printf "  char git_version_string[] = \"" >> gitversion.h
git describe --tags --dirty --broken | tr -d '[[:space:]]' >> gitversion.h
error: unknown option `broken'
usage: git describe [<options>] [<commit-ish>...]
   or: git describe [<options>] --dirty

    --contains            find the tag that comes after the commit
    --debug               debug search strategy on stderr
    --all                 use any ref
    --tags                use any tag, even unannotated
    --long                always use long format
    --first-parent        only follow first parent
    --abbrev[=<n>]        use <n> digits to display SHA-1s
    --exact-match         only output exact matches
    --candidates <n>      consider <n> most recent tags (default: 10)
    --match <pattern>     only consider tags matching <pattern>
    --always              show abbreviated commit object as fallback
    --dirty[=<mark>]      append <mark> on dirty working tree (default: "-dirty")

printf "\";\n" >> gitversion.h
touch gitversion.c
printf "// Do not edit!\n" > plist_xml_strings.h
printf "// This file is automatically generated from files in the plists folder.\n\n" >> plist_xml_strings.h
xxd -i ./plists/get_info_response.xml - | sed -e 's/[^ ]*plists_get_info_response_xml/plists_get_info_response_xml/g' >> plist_xml_strings.h
printf "\n" >> plist_xml_strings.h
touch plist_xml_strings.c
make  all-am
make[1]: Entering directory '/root/shairport-sync'
gcc -DHAVE_CONFIG_H -I.    -Wall -g -DCONFIG_GCRYPT -pthread -I/usr/include/uuid -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu  -I/usr/local/include    -g -O2 -MT pair_ap/lib_pair_ap_a-pair.o -MD -MP -MF pair_ap/.deps/lib_pair_ap_a-pair.Tpo -c -o pair_ap/lib_pair_ap_a-pair.o `test -f 'pair_ap/pair.c' || echo './'`pair_ap/pair.c
mv -f pair_ap/.deps/lib_pair_ap_a-pair.Tpo pair_ap/.deps/lib_pair_ap_a-pair.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -DCONFIG_GCRYPT -pthread -I/usr/include/uuid -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu  -I/usr/local/include    -g -O2 -MT pair_ap/lib_pair_ap_a-pair_fruit.o -MD -MP -MF pair_ap/.deps/lib_pair_ap_a-pair_fruit.Tpo -c -o pair_ap/lib_pair_ap_a-pair_fruit.o `test -f 'pair_ap/pair_fruit.c' || echo './'`pair_ap/pair_fruit.c
mv -f pair_ap/.deps/lib_pair_ap_a-pair_fruit.Tpo pair_ap/.deps/lib_pair_ap_a-pair_fruit.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -DCONFIG_GCRYPT -pthread -I/usr/include/uuid -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu  -I/usr/local/include    -g -O2 -MT pair_ap/lib_pair_ap_a-pair_homekit.o -MD -MP -MF pair_ap/.deps/lib_pair_ap_a-pair_homekit.Tpo -c -o pair_ap/lib_pair_ap_a-pair_homekit.o `test -f 'pair_ap/pair_homekit.c' || echo './'`pair_ap/pair_homekit.c
pair_ap/pair_homekit.c: In function ‘encrypt_chacha’:
pair_ap/pair_homekit.c:983:29: error: ‘GCRY_CIPHER_CHACHA20’ undeclared (first use in this function); did you mean ‘GCRY_CIPHER_SALSA20’?
  983 |   if (gcry_cipher_open(&hd, GCRY_CIPHER_CHACHA20, GCRY_CIPHER_MODE_POLY1305, 0) != GPG_ERR_NO_ERROR)
      |                             ^~~~~~~~~~~~~~~~~~~~
      |                             GCRY_CIPHER_SALSA20
pair_ap/pair_homekit.c:983:29: note: each undeclared identifier is reported only once for each function it appears in
pair_ap/pair_homekit.c:983:51: error: ‘GCRY_CIPHER_MODE_POLY1305’ undeclared (first use in this function); did you mean ‘GCRY_CIPHER_MODE_OFB’?
  983 |   if (gcry_cipher_open(&hd, GCRY_CIPHER_CHACHA20, GCRY_CIPHER_MODE_POLY1305, 0) != GPG_ERR_NO_ERROR)
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                   GCRY_CIPHER_MODE_OFB
pair_ap/pair_homekit.c: In function ‘decrypt_chacha’:
pair_ap/pair_homekit.c:1049:29: error: ‘GCRY_CIPHER_CHACHA20’ undeclared (first use in this function); did you mean ‘GCRY_CIPHER_SALSA20’?
 1049 |   if (gcry_cipher_open(&hd, GCRY_CIPHER_CHACHA20, GCRY_CIPHER_MODE_POLY1305, 0) != GPG_ERR_NO_ERROR)
      |                             ^~~~~~~~~~~~~~~~~~~~
      |                             GCRY_CIPHER_SALSA20
pair_ap/pair_homekit.c:1049:51: error: ‘GCRY_CIPHER_MODE_POLY1305’ undeclared (first use in this function); did you mean ‘GCRY_CIPHER_MODE_OFB’?
 1049 |   if (gcry_cipher_open(&hd, GCRY_CIPHER_CHACHA20, GCRY_CIPHER_MODE_POLY1305, 0) != GPG_ERR_NO_ERROR)
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                   GCRY_CIPHER_MODE_OFB
Makefile:981: recipe for target 'pair_ap/lib_pair_ap_a-pair_homekit.o' failed
make[1]: *** [pair_ap/lib_pair_ap_a-pair_homekit.o] Error 1
make[1]: Leaving directory '/root/shairport-sync'
Makefile:670: recipe for target 'all' failed
make: *** [all] Error 2

System Information.

some info:
uname -a
Linux NanoPi-NEO-Plus2 4.14.0 #33 SMP Fri Sep 28 22:12:44 PDT 2018 aarch64 aarch64 aarch64 GNU/Linux

Configuration Information.

git clone https://github.com/mikebrady/shairport-sync.git 
cd shairport-sync  
git checkout development 
autoreconf -fi
./configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2
make

PulseAudio or PipeWire installed?

  • Check if your system uses a Sound Server.

How did you install Shairport Sync?

Built from source

Check previous issues

  • Confirm
@mikebrady
Copy link
Owner

Thanks for the post. I looks like your Linux -- and consequently the toolsets and libraries -- is pretty old. Could that be the cause of the problems?

@theEagleFly
Copy link
Author

Thanks for your fast reply.
The old version might be the reason.
But I wrote a lot code for the old version and i am trying to make it work.
the main problem is the version of xxd and libplist in the old version of apt-get
Is it possible to make it work ?

@mikebrady
Copy link
Owner

I really don't know, TBH, but I guess not for AirPlay 2. xxd might be okay, but libplist has had many improvements. It might be worth trying to build Classic AirPlay rather than AirPlay 2, though.

@theEagleFly
Copy link
Author

Thank you, i will try to fix it, or upgrad ubuntu if i couldnt.

@mikebrady mikebrady changed the title [Problem]: [Problem]: NanoPi NEO Plus2 with old (?) version of Linux. May 17, 2024
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

2 participants