libcdio / libcdio-paranoia

CD paranoia on top of libcdio
GNU General Public License v3.0
48 stars 37 forks source link

10.2+2.0.0: cdio_cddap_track_audiop missing #21

Closed kloczek closed 5 years ago

kloczek commented 5 years ago

I have problem with building gvs with libcdio-paranoia. gvfs fails with:

gcc  -o daemon/gvfsd-cdda 'daemon/f77b12a@@gvfsd-cdda@exe/daemon-main.c.o' 'daemon/f77b12a@@gvfsd-cdda@exe/daemon-main-generic.c.o' 'daemon/f77b12a@@gvfsd-cdda@exe/gvfsbackendcdda.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -Os -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto -fuse-linker-plugin -Wl,--start-group daemon/libgvfsdaemon.so common/libgvfscommon.so /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgudev-1.0.so /usr/lib64/libcdio_paranoia.so /usr/lib64/libcdio.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/:$ORIGIN/../common' -Wl,-rpath-link,/home/tkloczko/rpmbuild/BUILD/gvfs-1.42.0/x86_64-redhat-linux-gnu/daemon -Wl,-rpath-link,/home/tkloczko/rpmbuild/BUILD/gvfs-1.42.0/x86_64-redhat-linux-gnu/common
/usr/bin/ld: /tmp/gvfsd-cdda.9RGuZe.ltrans0.ltrans.o: undefined reference to symbol 'cdio_cddap_track_audiop'
/usr/bin/ld: /usr/lib64//libcdio_cdda.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
error: Bad exit status from /var/tmp/rpm-tmp.rAf0WG (%build)

Just checked libcdio-paranoia tree and it is something strange about only that symbol

[tkloczko@barrel libcdio-paranoia-10.2+2.0.0]$ grep -r cdio_cddap_track_audiop
lib/cdda_interface/libcdio_cdda.sym:cdio_cddap_track_audiop
include/cdio/paranoia/cdda.h:extern int     cdio_cddap_track_audiop(cdrom_drive_t *d, track_t i_track);
include/cdio/paranoia/cdda.h:#define cdda_track_audiop       cdio_cddap_track_audiop

Looks like there is no actual code behind exactly that symbol.

May I ask for help or maybe it is a bug?

kloczek commented 5 years ago

I have modified .pc files

[tkloczko@barrel libcdio-paranoia-10.2+2.0.0]$ cat libcdio_paranoia.pc 
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib64
includedir=/usr/include

Name: libcdio_paranoia
Description: CD paranoia library from libcdio
Version: 10.2+2.0.0
Requires: libcdio
Libs: -L${libdir} -lcdio_paranoia
Cflags: -I${includedir}/cdio

[tkloczko@barrel libcdio-paranoia-10.2+2.0.0]$ cat libcdio_cdda.pc 
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib64
includedir=/usr/include

Name: libcdio_cdda
Description: CD paranoia CD-DA library from libcdio
Version: 10.2+2.0.0
Requires: libcdio
Libs: -L${libdir} -lcdio_cdda
Cflags: -I${includedir}/cdio

However looks like libcdio_cdda uses symbols from libcdio_paranoia and vice versa. With such loopy dependencies looks like have two libraries does not make to much sense.

rocky commented 5 years ago

This, the lack of track_audiop (and other booleans) is a bug. Should be an easy fix which I'll do when I am able.

rocky commented 5 years ago

Please file one issue per issue. That makes it possible to track independent issues. Thanks.

rocky commented 5 years ago

I have modified .pc files

The .pc files are derivied files. I looked over the .pc.in files and don't see anything I want changed.

As for the loopiness, if you have specific suggestions feel free to make a PR for that.