EliaCereda / shairport-sync-PKGBUILD

Arch Linux package files for shairport-sync
5 stars 6 forks source link

Makefile:455: recipe for target 'shairport-sync' failed #1

Closed joaodriessen closed 9 years ago

joaodriessen commented 9 years ago

this is the output of makepkg -a on my armv7h raspberry pi 2:

makepkg -s ==> Making package: shairport-sync-git 2.1.15.r1.gcf6594d-1 (Tue 14 Apr 09:33:10 CEST 2015) ==> Checking runtime dependencies... ==> Installing missing dependencies... [sudo] password for joao: resolving dependencies... looking for conflicting packages...

Packages (1) libsoxr-0.1.1-3

Total Download Size: 0.06 MiB Total Installed Size: 0.18 MiB

:: Proceed with installation? [Y/n] Y :: Retrieving packages ... libsoxr-0.1.1-3-armv7h 57.5 KiB 117K/s 00:00 [######################] 100% (1/1) checking keys in keyring [######################] 100% (1/1) checking package integrity [######################] 100% (1/1) loading package files [######################] 100% (1/1) checking for file conflicts [######################] 100% (1/1) checking available disk space [######################] 100% (1/1) installing libsoxr [######################] 100% ==> Checking buildtime dependencies... ==> Retrieving sources... -> Cloning shairport-sync git repo... Cloning into bare repository '/home/joao/Downloads/shairport-sync-PKGBUILD-master/shairport-sync'... remote: Counting objects: 3002, done. remote: Compressing objects: 100% (4/4), done. remote: Total 3002 (delta 0), reused 0 (delta 0), pack-reused 2998 Receiving objects: 100% (3002/3002), 1.11 MiB | 212.00 KiB/s, done. Resolving deltas: 100% (1801/1801), done. Checking connectivity... done. -> Found shairport-sync.install -> Found shairport-sync.service -> Found shairport-sync.conf -> Found remove-init.d.patch ==> Validating source files with sha1sums... shairport-sync ... Skipped shairport-sync.install ... Passed shairport-sync.service ... Passed shairport-sync.conf ... Passed remove-init.d.patch ... Passed ==> Extracting sources... -> Creating working copy of shairport-sync git repo... Cloning into 'shairport-sync'... done. ==> Starting pkgver()... ==> Updated version: shairport-sync-git 2.2.2.r52.g82011bb-1 ==> Starting prepare()... ==> Starting build()... configure.ac:21: installing './compile' configure.ac:6: installing './install-sh' configure.ac:6: installing './missing' Makefile.am: installing './depcomp' checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for clock_gettime in -lrt... yes checking for daemon_log in -ldaemon... yes checking for pthread_create in -lpthread... yes checking for exp in -lm... yes checking for POPT... yes checking encryption libraries chosen... checking for SSL... yes

Including support for soxr-based interpolation checking for soxr_create in -lsoxr... yes Including Avahi mDNS support checking for avahi_client_new in -lavahi-client... yes checking for avahi_strerror in -lavahi-common... yes Including an ALSA back end checking for ALSA... yes checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking getopt_long.h usability... no checking getopt_long.h presence... no checking for getopt_long.h... no checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking mach/mach.h usability... no checking mach/mach.h presence... no checking for mach/mach.h... no checking for memory.h... (cached) yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking for inline... inline checking for int16_t... yes checking for int32_t... yes checking for int64_t... yes checking for pid_t... yes checking for size_t... yes checking for ssize_t... yes checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for uint8_t... yes checking for error_at_line... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for clock_gettime... yes checking for gethostname... yes checking for gettimeofday... yes checking for inet_ntoa... yes checking for memchr... yes checking for memmove... yes checking for memset... yes checking for pow... yes checking for select... yes checking for socket... yes checking for stpcpy... yes checking for strcasecmp... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strstr... yes checking for strtol... yes checking for strtoul... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating man/Makefile config.status: creating config.h config.status: executing depfiles commands make all-recursive make[1]: Entering directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync' Making all in man make[2]: Entering directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync/man' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync/man' make[2]: Entering directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync' gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT shairport.o -MD -MP -MF .deps/shairport.Tpo -c -o shairport.o shairport.c mv -f .deps/shairport.Tpo .deps/shairport.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT rtsp.o -MD -MP -MF .deps/rtsp.Tpo -c -o rtsp.o rtsp.c mv -f .deps/rtsp.Tpo .deps/rtsp.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT mdns.o -MD -MP -MF .deps/mdns.Tpo -c -o mdns.o mdns.c mv -f .deps/mdns.Tpo .deps/mdns.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT mdns_external.o -MD -MP -MF .deps/mdns_external.Tpo -c -o mdns_external.o mdns_external.c mv -f .deps/mdns_external.Tpo .deps/mdns_external.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT common.o -MD -MP -MF .deps/common.Tpo -c -o common.o common.c mv -f .deps/common.Tpo .deps/common.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT rtp.o -MD -MP -MF .deps/rtp.Tpo -c -o rtp.o rtp.c mv -f .deps/rtp.Tpo .deps/rtp.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT player.o -MD -MP -MF .deps/player.Tpo -c -o player.o player.c mv -f .deps/player.Tpo .deps/player.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT alac.o -MD -MP -MF .deps/alac.Tpo -c -o alac.o alac.c mv -f .deps/alac.Tpo .deps/alac.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT audio.o -MD -MP -MF .deps/audio.Tpo -c -o audio.o audio.c mv -f .deps/audio.Tpo .deps/audio.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT audio_dummy.o -MD -MP -MF .deps/audio_dummy.Tpo -c -o audio_dummy.o audio_dummy.c mv -f .deps/audio_dummy.Tpo .deps/audio_dummy.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT audio_pipe.o -MD -MP -MF .deps/audio_pipe.Tpo -c -o audio_pipe.o audio_pipe.c mv -f .deps/audio_pipe.Tpo .deps/audio_pipe.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT mdns_avahi.o -MD -MP -MF .deps/mdns_avahi.Tpo -c -o mdns_avahi.o mdns_avahi.c mv -f .deps/mdns_avahi.Tpo .deps/mdns_avahi.Po gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -MT audio_alsa.o -MD -MP -MF .deps/audio_alsa.Tpo -c -o audio_alsa.o audio_alsa.c mv -f .deps/audio_alsa.Tpo .deps/audio_alsa.Po gcc -Wno-multichar -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Wl,-O1,--sort-common,--as-needed,-z,relro -o shairport-sync shairport.o rtsp.o mdns.o mdns_external.o common.o rtp.o player.o alac.o audio.o audio_dummy.o audio_pipe.o mdns_avahi.o audio_alsa.o -lasound -lavahi-common -lavahi-client -lsoxr -lssl -lpopt -lm -lpthread -ldaemon -lrt shairport.o: In function main': shairport.c:(.text.startup+0x4d0): undefined reference toMD5_Init' shairport.c:(.text.startup+0x4ec): undefined reference to MD5_Update' shairport.c:(.text.startup+0x4f8): undefined reference toMD5_Final' rtsp.o: In function rtsp_conversation_thread_func': rtsp.c:(.text+0x1394): undefined reference toMD5_Init' rtsp.c:(.text+0x13ac): undefined reference to MD5_Update' rtsp.c:(.text+0x13c0): undefined reference toMD5_Update' rtsp.c:(.text+0x13dc): undefined reference to MD5_Update' rtsp.c:(.text+0x13f8): undefined reference toMD5_Update' rtsp.c:(.text+0x141c): undefined reference to MD5_Update' rtsp.c:(.text+0x142c): undefined reference toMD5_Final' rtsp.c:(.text+0x1434): undefined reference to MD5_Init' rtsp.c:(.text+0x1450): undefined reference toMD5_Update' rtsp.c:(.text+0x1464): undefined reference to MD5_Update' rtsp.c:(.text+0x147c): undefined reference toMD5_Update' rtsp.c:(.text+0x148c): undefined reference to MD5_Final' rtsp.c:(.text+0x14c8): undefined reference toMD5_Init' rtsp.c:(.text+0x14dc): undefined reference to MD5_Update' rtsp.c:(.text+0x14f0): undefined reference toMD5_Update' rtsp.c:(.text+0x1508): undefined reference to MD5_Update' rtsp.c:(.text+0x151c): undefined reference toMD5_Update' rtsp.c:(.text+0x1558): undefined reference to MD5_Update' rtsp.c:(.text+0x156c): undefined reference toMD5_Final' common.o: In function base64_enc': common.c:(.text+0x234): undefined reference toBIO_f_base64' common.c:(.text+0x238): undefined reference to BIO_new' common.c:(.text+0x240): undefined reference toBIO_s_mem' common.c:(.text+0x244): undefined reference to BIO_new' common.c:(.text+0x254): undefined reference toBIO_push' common.c:(.text+0x260): undefined reference to BIO_set_flags' common.c:(.text+0x270): undefined reference toBIO_write' common.c:(.text+0x284): undefined reference to BIO_ctrl' common.c:(.text+0x298): undefined reference toBIO_ctrl' common.c:(.text+0x2d8): undefined reference to BIO_free_all' common.o: In functionbase64_dec': common.c:(.text+0x2fc): undefined reference to BIO_f_base64' common.c:(.text+0x300): undefined reference toBIO_new' common.c:(.text+0x310): undefined reference to BIO_set_flags' common.c:(.text+0x314): undefined reference toBIO_s_mem' common.c:(.text+0x318): undefined reference to BIO_new' common.c:(.text+0x328): undefined reference toBIO_push' common.c:(.text+0x33c): undefined reference to BIO_write' common.c:(.text+0x358): undefined reference toBIO_write' common.c:(.text+0x37c): undefined reference to BIO_ctrl' common.c:(.text+0x3ac): undefined reference toBIO_read' common.c:(.text+0x3b8): undefined reference to BIO_free_all' common.o: In functionrsa_apply': common.c:(.text+0x3f8): undefined reference to RSA_size' common.c:(.text+0x42c): undefined reference toRSA_private_decrypt' common.c:(.text+0x464): undefined reference to RSA_private_encrypt' common.c:(.text+0x480): undefined reference toBIO_new_mem_buf' common.c:(.text+0x494): undefined reference to PEM_read_bio_RSAPrivateKey' common.c:(.text+0x4a0): undefined reference toBIO_free' player.o: In function alac_decode': player.c:(.text+0x74): undefined reference toAES_cbc_encrypt' player.o: In function player_play': player.c:(.text+0x1c54): undefined reference toAES_set_decrypt_key' collect2: error: ld returned 1 exit status Makefile:455: recipe for target 'shairport-sync' failed make[2]: * [shairport-sync] Error 1 make[2]: Leaving directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync' Makefile:505: recipe for target 'all-recursive' failed make[1]: * [all-recursive] Error 1 make[1]: Leaving directory '/home/joao/Downloads/shairport-sync-PKGBUILD-master/src/shairport-sync' Makefile:359: recipe for target 'all' failed make: *\ [all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...

joaodriessen commented 9 years ago

I just noticed that the 2.2 version of shairport-sync is stable. I was wondering whether you would be willing to update your PKGBUILD for the newer version? or do you know of a way to install shairport-sync 2.2 on arch linux arm (raspberry pi 2) for a less-technical person such as myself? I believe this build error may have been fixed recently in the 2.2 branch.

mikebrady commented 9 years ago

Please see https://github.com/mikebrady/shairport-sync/issues/71#issuecomment-93575422. I think the error is the configuration of ArchLinux on the Pi, but there is a workaround.

BTW I hope to release 2.2 in the next few days; I'm learning slowly how to do this kind of thing properly.

joaodriessen commented 9 years ago

Mike Brady's solution worked for me:

First, I think the problem is with ArchLinux. It advertises openssl to the build system but doesn't seem to provide the files needed by the linker. It's weird and I don't get it. Fortunately, there is a workaround – tell shaiport-sync to use polarssl instead. You can do this by editing the PKGBUILD file to look like this:

Maintainer: Elia Cereda <eliacereda+arch at gmail dot com>

pkgname=shairport-sync-git pkgver=2.2.2.r52.g82011bb pkgrel=1 pkgdesc='Emulates an AirPort Express for the purpose of streaming music from iTunes and compatible iPods and iPhones' url='https://github.com/mikebrady/shairport-sync' arch=(i686 x86_64 armv6h armv7h) license=('custom') backup=(etc/conf.d/shairport-sync) install='shairport-sync.install' depends=(alsa-lib libdaemon polarssl avahi popt libsoxr) makedepends=(git) source=("git+https://github.com/mikebrady/shairport-sync.git" shairport-sync.install shairport-sync.service shairport-sync.conf remove-init.d.patch) sha1sums=('SKIP' 'd51485f3857529b70a29b38814ea60e7dde54ca8' 'fe62feeef1c947ed6ed3500b7b922dcaf9e8987c' '6c4979abddb4b1c0242a941279d41617ab8d183c' '83ddd76fdb548bf6321e38ff7cabe14bf2bb35d4')

pkgver() { cd shairport-sync

git describe --long --tags | sed -r 's/([^-]*-g)/r\1/;s/-/./g' }

prepare() { cd shairport-sync

git apply "$srcdir/remove-init.d.patch" }

build() { cd shairport-sync

autoreconf -i -f ./configure --with-alsa --with-avahi --with-ssl=polarssl --with-soxr --prefix="$pkgdir/usr" make }

package() { install -D -m644 shairport-sync.service "$pkgdir/usr/lib/systemd/system/shairport-sync.service" install -D -m644 shairport-sync.conf "$pkgdir/etc/conf.d/shairport-sync"

cd shairport-sync

install -D -m664 LICENSES "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

make install }

mikebrady commented 9 years ago

Actually, there was an issue with configure.ac upstream in shairport-sync, which only became evident here. I've fixed it.