Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 140410 - sys-libs/libcap-1.10-r7 - broken ldscript generated
Summary: sys-libs/libcap-1.10-r7 - broken ldscript generated
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
: 140621 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-07-14 13:46 UTC by Radoslaw Szkodzinski
Modified: 2006-07-16 21:13 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Radoslaw Szkodzinski 2006-07-14 13:46:17 UTC
sys-libs/libcap-1.10-r7 doesn't install /lib/libcap.so symlink,
which breaks compilation of multiple packages depending on it.

Please fix soon.
Comment 1 Andrei Slavoiu 2006-07-14 14:15:56 UTC
Could you give an example of such a program? The r7 revision was created exactly for fixing such compilation problems caused by missing /usr/lib/libcap.so (see Bug# 140136).
Comment 2 Radoslaw Szkodzinski 2006-07-14 14:32:37 UTC
E.g. net-dns/avahi-0.6.11, latest jack, mplayer...
(USE="caps")
Comment 3 Andrei Slavoiu 2006-07-14 14:56:54 UTC
None of this use libcap. You probably just have a broken pax-utils. Try running revdep-rebuild.
Comment 4 SpanKY gentoo-dev 2006-07-14 22:13:37 UTC
/lib/libcap.so is not needed as there is /usr/lib/libcap.so
Comment 5 Radoslaw Szkodzinski 2006-07-15 01:58:23 UTC
From app-misc/pax-utils-0.1.13:
...
/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find /lib/libcap.so
collect2: ld returned 1 exit status

Notice that there are no symlinks in /lib.
equery f libcap
[ Searching for packages matching libcap... ]
* Contents of sys-libs/libcap-1.10-r7:
/lib
/lib/libcap.so.1.10
/sbin
/sbin/execcap
/sbin/getpcaps
/sbin/setpcaps
/sbin/sucap
/usr
/usr/include
/usr/include/sys
/usr/include/sys/capability.h
/usr/lib
/usr/lib/libcap.a
/usr/lib/libcap.so
/usr/lib/python2.4
/usr/lib/python2.4/site-packages
/usr/lib/python2.4/site-packages/libcap.py
/usr/lib/python2.4/site-packages/libcapmodule.so
/usr/share
/usr/share/doc
/usr/share/doc/libcap-1.10-r7
/usr/share/doc/libcap-1.10-r7/CHANGELOG.gz
/usr/share/doc/libcap-1.10-r7/README.gz
/usr/share/doc/libcap-1.10-r7/capability.notes.gz
/usr/share/doc/libcap-1.10-r7/capfaq-0.2.txt.gz
/usr/share/doc/libcap-1.10-r7/pgp.keys.asc.gz
/usr/share/man
/usr/share/man/man3
/usr/share/man/man3/_cap_names.3.gz
/usr/share/man/man3/cap_clear.3.gz
/usr/share/man/man3/cap_copy_ext.3.gz
/usr/share/man/man3/cap_copy_int.3.gz
/usr/share/man/man3/cap_dup.3.gz
/usr/share/man/man3/cap_free.3.gz
/usr/share/man/man3/cap_from_text.3.gz
/usr/share/man/man3/cap_get_flag.3.gz
/usr/share/man/man3/cap_get_proc.3.gz
/usr/share/man/man3/cap_init.3.gz
/usr/share/man/man3/cap_set_fd.3.gz
/usr/share/man/man3/cap_set_file.3.gz
/usr/share/man/man3/cap_set_flag.3.gz
/usr/share/man/man3/cap_set_proc.3.gz
/usr/share/man/man3/cap_size.3.gz
/usr/share/man/man3/cap_to_text.3.gz
/usr/share/man/man3/capgetp.3.gz
/usr/share/man/man3/capsetp.3.gz

revdep-rebuild output FYI: (and please, my Gentoo machine is never broken by accident anymore ;-) )
Collecting system binaries and libraries... done.
  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.
  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...
 done.
  (/root/.revdep-rebuild.3_rebuild)

Assigning files to ebuilds... Nothing to rebuild

Evaluating package order... done.
  (/root/.revdep-rebuild.5_order)

Dynamic linking on your system is consistent... All done.

More info:
equery d libcap
[ Searching for packages depending on libcap... ]
app-misc/pax-utils-0.1.13
sys-apps/hal-0.5.7-r3
net-misc/ntp-4.2.2
net-www/apache-2.0.58-r1

Possibly that /lib/libcap.so is being linked to statically, so revdep-rebuild can't catch it.
Comment 6 Radoslaw Szkodzinski 2006-07-15 01:58:55 UTC
Sorry, but it still fails, possibly due to a dep on hal.
Comment 7 Radoslaw Szkodzinski 2006-07-15 02:07:21 UTC
net-misc/ntp-4.2.2 fails too, in configure:

checking size of time_t... configure: error: cannot compute sizeof (time_t), 77
See `config.log' for more details.

And the config.log:
configure:14915: checking size of time_t
configure:15234: i686-pc-linux-gnu-gcc -o conftest -O2 -march=k8 -pipe -fomit-frame-pointer -ffloat-store  -Wall -Wcast-qual -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes  -Wl,-O1 -Wl,--sort-common conftest.c  -lcap >&5
conftest.c:114: warning: function declaration isn't a prototype
conftest.c:115: warning: function declaration isn't a prototype
conftest.c:120: warning: function declaration isn't a prototype
/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find /lib/libcap.so
collect2: ld returned 1 exit status
configure:15237: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "ntp"
| #define PACKAGE_TARNAME "ntp"
| #define PACKAGE_VERSION "4.2.2"
| #define PACKAGE_STRING "ntp 4.2.2"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "ntp"
| #define VERSION "4.2.2"
| #define STR_SYSTEM "i686-pc-linux-gnu"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_CAPABILITY_H 1
| #define HAVE_SYS_PRCTL_H 1
| #define HAVE_LINUX_CAPABILITIES
| #define HAVE_DROPROOT
| #define ULONG_CONST(a) a ## UL
| #define HAVE_READLINE_HISTORY_H 1
| #define HAVE_READLINE_READLINE_H 1
| #define HAVE_LIBREADLINE 1
| #define STDC_HEADERS 1
| #define HAVE_ERRNO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_MATH_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SCHED_H 1
| #define HAVE_SGTTY_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_UTMP_H 1
| #define HAVE_UTMPX_H 1
| #define HAVE_ARPA_NAMESER_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_NET_ROUTE_H 1
| #define HAVE_NETINET_IN_SYSTM_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NETINET_IP_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_IPC_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SIGNAL_H 1
| #define HAVE_SYS_SOUNDCARD_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_STROPTS_H 1
| #define HAVE_SYS_SYSCTL_H 1
| #define HAVE_SYS_TERMIOS_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_SIGNAL_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_WAIT_H 1
| #define TIME_WITH_SYS_TIME 1
| #define NLIST_STRUCT 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_TIMEX_H 1
| #define HAVE_RESOLV_H 1
| #define PROTOTYPES 1
| #define __PROTOTYPES 1
| #define HAVE_STRING_H 1
| #define HAVE_PROTOTYPES 1
| #define RETSIGTYPE void
| /* end confdefs.h.  */
| #include <stdio.h>
| #if HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #if HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # if HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #if HAVE_STRING_H
| # if !STDC_HEADERS && HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #if HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #if HAVE_INTTYPES_H
| # include <inttypes.h>
| #else
| # if HAVE_STDINT_H
| #  include <stdint.h>
| # endif
| #endif
| #if HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| long longval () { return (long) (sizeof (time_t)); }
| unsigned long ulongval () { return (long) (sizeof (time_t)); }
| #include <stdio.h>
| #include <stdlib.h>
| int
| main ()
| {
| 
|   FILE *f = fopen ("conftest.val", "w");
|   if (! f)
|     exit (1);
|   if (((long) (sizeof (time_t))) < 0)
|     {
|       long i = longval ();
|       if (i != ((long) (sizeof (time_t))))
| 	exit (1);
|       fprintf (f, "%ld\n", i);
|     }
|   else
|     {
|       unsigned long i = ulongval ();
|       if (i != ((long) (sizeof (time_t))))
| 	exit (1);
|       fprintf (f, "%lu\n", i);
|     }
|   exit (ferror (f) || fclose (f) != 0);
| 
|   ;
|   return 0;
| }
configure:15252: error: cannot compute sizeof (time_t), 77
See `config.log' for more details.
Comment 8 SpanKY gentoo-dev 2006-07-15 02:19:58 UTC
fixed in 1.10-r8
Comment 9 SpanKY gentoo-dev 2006-07-16 21:13:38 UTC
*** Bug 140621 has been marked as a duplicate of this bug. ***