Patchwork util-linux: disable installing binaries by default

login
register
mail settings
Submitter Gustavo Zacarias
Date April 25, 2012, 1:15 p.m.
Message ID <1335359709-26898-1-git-send-email-gustavo@zacarias.com.ar>
Download mbox | patch
Permalink /patch/154906/
State Superseded
Headers show

Comments

Gustavo Zacarias - April 25, 2012, 1:15 p.m.
Disable installing binaries by default.
This is to avoid installing unnecessary bloat when we just need
libblkid/libuuid for some packages like e2fsprogs.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/util-linux/Config.in     |   35 ++++++++++++++++++++++-------------
 package/util-linux/util-linux.mk |   37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 58 insertions(+), 14 deletions(-)
Sven Neumann - April 25, 2012, 2:26 p.m.
On Wed, 2012-04-25 at 10:15 -0300, Gustavo Zacarias wrote:
> +config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
> +       select BR2_PACKAGE_UTIL_LINUX_LIBUUID
> +       bool "libblkid and blkid utilities"
> +       default y
> 
Actually it only installs libblkid. If you want the blkid utility you
also need to select BR2_PACKAGE_UTIL_LINUX_BINARIES.


Regards,
Sven
Gustavo Zacarias - April 25, 2012, 2:45 p.m.
On 2012-04-25 11:26, Sven Neumann wrote:

> On Wed, 2012-04-25 at 10:15 -0300, Gustavo Zacarias wrote:
>> +config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
>> +       select BR2_PACKAGE_UTIL_LINUX_LIBUUID
>> +       bool "libblkid and blkid utilities"
>> +       default y
>>
> Actually it only installs libblkid. If you want the blkid utility you
> also need to select BR2_PACKAGE_UTIL_LINUX_BINARIES.
>
>
> Regards,
> Sven

I know.
Problem is i can't (or don't know how to) make a bool in Kconfig depend 
on some other option nicely.
And i'd rather avoid adding more options as i've said.
So i can leave it as is or just remove the blkid/uuid utilities mention 
in Config.in
Regards.

Patch

diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
index 43a8444..65e90fb 100644
--- a/package/util-linux/Config.in
+++ b/package/util-linux/Config.in
@@ -11,6 +11,26 @@  config BR2_PACKAGE_UTIL_LINUX
 
 if BR2_PACKAGE_UTIL_LINUX
 
+config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	bool "libblkid and blkid utilities"
+	default y
+
+config BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
+	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
+	bool "libmount"
+
+config BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	bool "libuuid and uuid utilities"
+	default y
+
+config BR2_PACKAGE_UTIL_LINUX_BINARIES
+	bool "install utilities"
+	help
+	  Install util-linux binaries.
+
+if BR2_PACKAGE_UTIL_LINUX_BINARIES
+
 ############################################
 # default enabled and should be disabled by
 #  --disable-foo
@@ -24,22 +44,9 @@  config BR2_PACKAGE_UTIL_LINUX_FSCK
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	bool "build \"fsck\""
 
-config BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
-	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
-	bool "build libmount"
-
-config BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	bool "build libuuid and uuid utilities"
-	default y
-
 config BR2_PACKAGE_UTIL_LINUX_UUIDD
 	bool "build \"uuidd\""
 
-config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
-	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	bool "build libblkid and blkid utilities"
-	default y
-
 config BR2_PACKAGE_UTIL_LINUX_AGETTY
 	bool "build \"agetty\""
 
@@ -104,5 +111,7 @@  config BR2_PACKAGE_UTIL_LINUX_WRITE
 
 endif
 
+endif
+
 comment "util-linux requires a toolchain with LARGEFILE + WCHAR support"
 	depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk
index d8a3ac9..08dbdcd 100644
--- a/package/util-linux/util-linux.mk
+++ b/package/util-linux/util-linux.mk
@@ -3,6 +3,7 @@ 
 # util-linux
 #
 #############################################################
+
 UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).1
 UTIL_LINUX_VERSION_MAJOR = 2.20
 UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.bz2
@@ -11,7 +12,6 @@  UTIL_LINUX_AUTORECONF = YES
 UTIL_LINUX_INSTALL_STAGING = YES
 UTIL_LINUX_DEPENDENCIES = host-pkg-config
 UTIL_LINUX_CONF_ENV = scanf_cv_type_modifier=no
-
 UTIL_LINUX_CONF_OPT += --disable-rpath --disable-makeinstall-chown
 
 # We don't want the host-busybox dependency to be added automatically
@@ -81,6 +81,41 @@  HOST_UTIL_LINUX_CONF_OPT += \
 	--disable-fallocate --disable-unshare --disable-rename \
 	--disable-schedutils --disable-wall --disable-partx
 
+# Avoid the basic utilities if we just want the libraries
+ifeq ($(BR2_PACKAGE_UTIL_LINUX_BINARIES),y)
+define UTIL_LINUX_INSTALL_BINARIES
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y)
+define UTIL_LINUX_INSTALL_LIBBLKID
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libblkid \
+		DESTDIR=$(TARGET_DIR) install
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
+define UTIL_LINUX_INSTALL_LIBMOUNT
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libmount \
+		DESTDIR=$(TARGET_DIR) install
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y)
+define UTIL_LINUX_INSTALL_LIBUUID
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libuuid \
+		DESTDIR=$(TARGET_DIR) install
+endef
+endif
+
+define UTIL_LINUX_INSTALL_TARGET_CMDS
+	$(UTIL_LINUX_INSTALL_BINARIES)
+	$(UTIL_LINUX_INSTALL_LIBBLKID)
+	$(UTIL_LINUX_INSTALL_LIBMOUNT)
+	$(UTIL_LINUX_INSTALL_LIBUUID)
+endef
+
 $(eval $(call AUTOTARGETS))
 $(eval $(call AUTOTARGETS,host))