The libcap Makefile is hand-coded (i.e. not autotools), and hard-codes
calls to /sbin/ldconfig, unless it is installed out-of-tree. For target
packages, this is done, but for host package this is not done, as we
do set PREFIX instead, which causes libcap's Makefile to call ldconfig
and emits a spurious warning (twice):
install -m 0755 libcap.so.2.73 /home/ymorin/dev/buildroot/O/master/per-package/host-libcap/host/lib/libcap.so.2.73
ln -sf libcap.so.2.73 /home/ymorin/dev/buildroot/O/master/per-package/host-libcap/host/lib/libcap.so.2
ln -sf libcap.so.2 /home/ymorin/dev/buildroot/O/master/per-package/host-libcap/host/lib/libcap.so
/sbin/ldconfig
/sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
make[4]: [Makefile:200: install-shared-cap] Error 1 (ignored)
This is just a warning, but it is incorrect still.
Fake an out-of-tree install with a non-empy DESTDIR that is just '/',
and thus does in fact not install out-of-tree. This is enough to
actually silence the warning. Add a little comment to explain that.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd@kuhls.net>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit e172bb48d3)
76 lines
1.9 KiB
Makefile
76 lines
1.9 KiB
Makefile
################################################################################
|
|
#
|
|
# libcap
|
|
#
|
|
################################################################################
|
|
|
|
LIBCAP_VERSION = 2.73
|
|
LIBCAP_SITE = https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2
|
|
LIBCAP_SOURCE = libcap-$(LIBCAP_VERSION).tar.xz
|
|
LIBCAP_LICENSE = GPL-2.0 or BSD-3-Clause
|
|
LIBCAP_LICENSE_FILES = License
|
|
LIBCAP_CPE_ID_VALID = YES
|
|
|
|
LIBCAP_DEPENDENCIES = host-gperf
|
|
LIBCAP_INSTALL_STAGING = YES
|
|
|
|
HOST_LIBCAP_DEPENDENCIES = host-gperf
|
|
|
|
LIBCAP_MAKE_FLAGS = \
|
|
CROSS_COMPILE="$(TARGET_CROSS)" \
|
|
BUILD_CC="$(HOSTCC)" \
|
|
BUILD_CFLAGS="$(HOST_CFLAGS)" \
|
|
lib=lib \
|
|
prefix=/usr \
|
|
SHARED=$(if $(BR2_STATIC_LIBS),,yes) \
|
|
PTHREADS=$(if $(BR2_TOOLCHAIN_HAS_THREADS),yes,)
|
|
|
|
LIBCAP_MAKE_DIRS = libcap
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCAP_TOOLS),y)
|
|
LIBCAP_MAKE_DIRS += progs
|
|
endif
|
|
|
|
define LIBCAP_BUILD_CMDS
|
|
$(foreach d,$(LIBCAP_MAKE_DIRS), \
|
|
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/$(d) \
|
|
$(LIBCAP_MAKE_FLAGS) all
|
|
)
|
|
endef
|
|
|
|
define LIBCAP_INSTALL_STAGING_CMDS
|
|
$(foreach d,$(LIBCAP_MAKE_DIRS), \
|
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$(d) $(LIBCAP_MAKE_FLAGS) \
|
|
DESTDIR=$(STAGING_DIR) install
|
|
)
|
|
endef
|
|
|
|
define LIBCAP_INSTALL_TARGET_CMDS
|
|
$(foreach d,$(LIBCAP_MAKE_DIRS), \
|
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$(d) $(LIBCAP_MAKE_FLAGS) \
|
|
DESTDIR=$(TARGET_DIR) install
|
|
)
|
|
endef
|
|
|
|
HOST_LIBCAP_MAKE_FLAGS = \
|
|
DYNAMIC=yes \
|
|
GOLANG=no \
|
|
lib=lib \
|
|
prefix=$(HOST_DIR) \
|
|
RAISE_SETFCAP=no
|
|
|
|
define HOST_LIBCAP_BUILD_CMDS
|
|
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
|
|
$(HOST_LIBCAP_MAKE_FLAGS)
|
|
endef
|
|
|
|
# Set DESTDIR to a non-empty path, so that libcap's Makefile
|
|
# does not trigger calls to ldconfig
|
|
define HOST_LIBCAP_INSTALL_CMDS
|
|
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_LIBCAP_MAKE_FLAGS) \
|
|
DESTDIR=/ install
|
|
endef
|
|
|
|
$(eval $(generic-package))
|
|
$(eval $(host-generic-package))
|