app-misc/iguanaIR fails to compile without libusb-compat but the ebuild doesn't depend on it. Manually merging in libusb-compat fixes the problem. Reproducible: Always Steps to Reproduce: 1. paludis -i iguanaIR or emerge iguanaIR Actual Results: >>> Running ebuild phase killold as root:root... >>> Starting builtin_killold >>> Done builtin_killold >>> Completed ebuild phase killold >>> Running ebuild phases init saveenv as paludisbuild:paludisbuild... >>> Starting builtin_init >>> Done builtin_init >>> Starting builtin_saveenv >>> Done builtin_saveenv >>> Completed ebuild phases init saveenv >>> Running ebuild phases loadenv setup saveenv as root:root... >>> Starting builtin_loadenv >>> Done builtin_loadenv >>> Starting pkg_setup >>> Done pkg_setup >>> Starting builtin_saveenv >>> Done builtin_saveenv >>> Completed ebuild phases loadenv setup saveenv >>> Running ebuild phases loadenv unpack saveenv as paludisbuild:paludisbuild... >>> Starting builtin_loadenv >>> Done builtin_loadenv >>> Starting src_unpack >>> Unpacking iguanaIR-0.93.tar.bz2 to /var/tmp/paludis/app-misc-iguanaIR-0.93/work tar jxf /var/tmp/paludis/iguanaIR-0.93.tar.bz2 --no-same-owner * Applying iguanaIR-0.93-gentoo.diff ... [ ok ] * Applying iguanaIR-0.93-asneeded.patch ... [ ok ] >>> Done src_unpack >>> Starting builtin_saveenv >>> Done builtin_saveenv >>> Completed ebuild phases loadenv unpack saveenv >>> Running ebuild phases loadenv compile saveenv as paludisbuild:paludisbuild... >>> Starting builtin_loadenv >>> Done builtin_loadenv >>> Starting src_compile ./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking for a BSD-compatible install... /bin/install -c checking whether make sets $(MAKE)... yes checking for poptGetContext in -lpopt... yes checking for pthread_create in -lpthread... yes checking for clock_gettime in -lrt... yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /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 float.h usability... yes checking float.h presence... yes checking for float.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for mode_t... yes checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for working volatile... yes checking whether lstat dereferences a symlink specified with a trailing slash... yes checking whether lstat accepts an empty string... no checking whether lstat dereferences a symlink specified with a trailing slash... (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 sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking for sys/socket.h... (cached) yes checking types of arguments for select... int,fd_set *,struct timeval * checking return type of signal handlers... void checking for strftime... yes checking for vprintf... yes checking for _doprnt... no checking for floor... no checking for gettimeofday... yes checking for memset... yes checking for mkdir... yes checking for select... yes checking for socket... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strrchr... yes checking for strspn... yes checking for strstr... yes checking for clock_gettime... yes checking for usb_get_busses in -lusb... no checking for python... /usr/bin/python checking for a version of Python >= '2.1.0'... yes checking for the distutils Python package... yes checking for Python include path... -I/usr/include/python2.6 checking for Python library path... -L/usr/lib64/python2.6 -lpython2.6 checking for Python site-packages path... /usr/lib64/python2.6/site-packages checking python extra libraries... -lpthread -ldl -lutil checking python extra linking flags... -Xlinker -export-dynamic checking consistency of all components of python development environment... yes configure: creating ./config.status config.status: creating Makefile config.status: creating autoconf/stamp-h config.status: creating config.h make -j3 x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic client.c -o client.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic list.c -o list.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic iguanaIR.c -o iguanaIR.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic support.c -o support.o support.c: In function 'makeParentJoin': support.c:175: warning: ignoring return value of 'write', declared with attribute warn_unused_result x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic dataPackets.c -o dataPackets.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic pipes.c -o pipes.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic base.c -o base.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic daemon.c -o daemon.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic client-interface.c -o client-interface.o x86_64-pc-linux-gnu-gcc -c -march=athlon64-sse3 -O2 -pipe -fPIC -fpic device-interface.c -o device-interface.o In file included from client-interface.c:29: usbclient.h:16:17: error: usb.h: No such file or directory In file included from daemon.c:22: usbclient.h:16:17: error: usb.h: No such file or directory In file included from daemon.c:22: usbclient.h:42: error: expected specifier-qualifier-list before 'u_int8_t' make: *** [client-interface.o] Error 1 make: *** Waiting for unfinished jobs.... daemon.c: In function 'scanHandler': daemon.c:50: warning: ignoring return value of 'write', declared with attribute warn_unused_result daemon.c: In function 'exitOnOptError': daemon.c:134: warning: incompatible implicit declaration of built-in function 'exit' daemon.c: In function 'main': daemon.c:187: warning: incompatible implicit declaration of built-in function 'exit' daemon.c:208: warning: incompatible implicit declaration of built-in function 'exit' daemon.c: In function 'startListening': daemon.c:340: error: 'PATH_MAX' undeclared (first use in this function) daemon.c:340: error: (Each undeclared identifier is reported only once daemon.c:340: error: for each function it appears in.) daemon.c:352: warning: incompatible implicit declaration of built-in function 'free' daemon.c: In function 'stopListening': daemon.c:370: error: 'PATH_MAX' undeclared (first use in this function) make: *** [daemon.o] Error 1 In file included from device-interface.c:19: usbclient.h:16:17: error: usb.h: No such file or directory device-interface.c: In function 'sendData': device-interface.c:176: warning: incompatible implicit declaration of built-in function 'free' device-interface.c: In function 'oldPinConfig': device-interface.c:443: warning: incompatible implicit declaration of built-in function 'free' device-interface.c: In function 'deviceTransaction': device-interface.c:495: warning: incompatible implicit declaration of built-in function 'free' device-interface.c: In function 'handleIncomingPackets': device-interface.c:812: warning: incompatible implicit declaration of built-in function 'free' device-interface.c: In function 'findDeviceEndpoints': device-interface.c:825: warning: assignment makes pointer from integer without a cast device-interface.c:828: error: dereferencing pointer to incomplete type device-interface.c:829: error: dereferencing pointer to incomplete type device-interface.c:830: error: dereferencing pointer to incomplete type device-interface.c:833: error: dereferencing pointer to incomplete type device-interface.c:834: error: dereferencing pointer to incomplete type device-interface.c:838: error: dereferencing pointer to incomplete type device-interface.c:839: error: dereferencing pointer to incomplete type device-interface.c:842: error: dereferencing pointer to incomplete type device-interface.c:843: error: dereferencing pointer to incomplete type device-interface.c:844: error: dereferencing pointer to incomplete type device-interface.c:847: error: dereferencing pointer to incomplete type device-interface.c:848: error: 'USB_ENDPOINT_DIR_MASK' undeclared (first use in this function) device-interface.c:848: error: (Each undeclared identifier is reported only once device-interface.c:848: error: for each function it appears in.) device-interface.c:848: error: 'USB_ENDPOINT_IN' undeclared (first use in this function) device-interface.c:849: error: dereferencing pointer to incomplete type device-interface.c:850: error: 'USB_ENDPOINT_TYPE_MASK' undeclared (first use in this function) device-interface.c:850: error: 'USB_ENDPOINT_TYPE_INTERRUPT' undeclared (first use in this function) device-interface.c:851: error: dereferencing pointer to incomplete type device-interface.c:852: error: 'USB_ENDPOINT_OUT' undeclared (first use in this function) device-interface.c:853: error: dereferencing pointer to incomplete type make: *** [device-interface.o] Error 1 /usr/libexec/paludis/utils/emake: emake returned error 2 !!! ERROR in app-misc/iguanaIR-0.93::gentoo: !!! In src_compile at line 27 !!! emake failed !!! Call stack: !!! * src_compile (/usr/libexec/paludis/0/src_compile.bash:27) !!! * ebuild_f_compile (/usr/libexec/paludis/0/src_compile.bash:51) !!! * ebuild_main (/usr/libexec/paludis/ebuild.bash:647) !!! * main (/usr/libexec/paludis/ebuild.bash:675) diefunc: making ebuild PID 4102 exit with error die trap: exiting with error. Install error: * In program paludis (--dl-upgrade as-needed --with-unused-dependencies --multitask --log-level warning) -i iguanaIR lirc: * When performing install action from command line: * When executing install task: * When installing 'app-misc/iguanaIR-0.93:0::gentoo': * When running an ebuild command on 'app-misc/iguanaIR-0.93:0::gentoo': * Install failed for 'app-misc/iguanaIR-0.93:0::gentoo' Expected Results: Should pull in usb.h from libusb-compat automatically. Compiles fine once libusb-compat is merged in manually.
I don't care about the package but I wanted this bug to stop showing up everytime I search for libusb bugs :-) Therefore, + 07 May 2012; Samuli Suominen <ssuominen@gentoo.org> iguanaIR-0.93.ebuild: + Missing virtual/libusb:0 dependency wrt #336511 by Clement Siuchung Cheung. + Missing dev-libs/popt RDEPEND. Missing =dev-lang/python-2* DEPEND. Install to + /lib/udev/rules.d instead of /etc/udev/rules.d.