[Buildroot] [PATCH v4] bcache-tools: Adding package.

Jerzy Grzegorek jerzy.grzegorek at trzebnica.net
Tue Aug 5 14:36:31 UTC 2014


Hi Jean-Christophe,

> This is the bcache tools, required to setup the linux bcache
> feature of the Linux kernel.
>
> Signed-off-by: Jean-Christophe DUBOIS <jcd at tribudubois.net>
> ---
> Changes v1 to v2
>   * remove 'support' word from comment statement in Config.in.
>   * use github helper to get the project site instead of hardcoded URL.
> Changes v2 to v3
>   * Added bcache-tools description in Config help
>   * Added bcache-tools URL in Config help
>   * Added BR2_LARGEFILE BR2_USE_WCHAR and BR2_USE_MMU dependencies in Config.
>   * Added BR2_PACKAGE_UTIL_LINUX selection in Config
>   * Added new requirements in Config comment.
>   * use POST_EXTRACT_HOOKS to modify Makefile
>   * pass $(TARGET_CONFIGURE_OPTS) in env variables to $(MAKE)
>   * create man8 dir as part of PRE_INSTALL_TARGET_HOOKS
> Changes v3 to v4
>   * move from .zip file to .tar.gz as download file in .mk file
>   * use complete git tag as version in .mk file.
>   * remove explicit extract rule from .mk file (use implicite rule).
> ---
>   package/Config.in                    |  1 +
>   package/bcache-tools/Config.in       | 22 ++++++++++++++++++++
>   package/bcache-tools/bcache-tools.mk | 40 ++++++++++++++++++++++++++++++++++++
>   3 files changed, 63 insertions(+)
>   create mode 100644 package/bcache-tools/Config.in
>   create mode 100644 package/bcache-tools/bcache-tools.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 4520ba6..dc2f418 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -280,6 +280,7 @@ endmenu
>   	source "package/a10disp/Config.in"
>   	source "package/acpid/Config.in"
>   	source "package/avrdude/Config.in"
> +	source "package/bcache-tools/Config.in"
>   	source "package/cdrkit/Config.in"
>   	source "package/cryptsetup/Config.in"
>   	source "package/cwiid/Config.in"
> diff --git a/package/bcache-tools/Config.in b/package/bcache-tools/Config.in
> new file mode 100644
> index 0000000..383ba1f
> --- /dev/null
> +++ b/package/bcache-tools/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_BCACHE_TOOLS
> +	bool "bcache tools"
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	depends on BR2_LARGEFILE # util-linux
> +	depends on BR2_USE_WCHAR # util-linux
> +	depends on BR2_USE_MMU # util-linux (libblkid)
> +	select BR2_PACKAGE_UTIL_LINUX
> +	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
> +	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
> +	help
> +	  Bcache is a Linux kernel block layer cache. It allows one or
> +	  more fast disk drives such as flash-based solid state drives (SSDs)
> +	  to act as a cache for one or more slower hard disk drives.
> +
> +	  http://bcache.evilpiepirate.org/
> +
> +	  This is the user space bcache tools, required to setup the linux
> +	  bcache feature of the Linux kernel.
> +
> +comment "bcache-tools needs udev /dev management and a toolchain w/ largefile, wchar"
> +	depends on BR2_USE_MMU
> +        depends on !BR2_PACKAGE_HAS_UDEV || !BR2_LARGEFILE || !BR2_USE_WCHAR
> diff --git a/package/bcache-tools/bcache-tools.mk b/package/bcache-tools/bcache-tools.mk
> new file mode 100644
> index 0000000..31fa1ab
> --- /dev/null
> +++ b/package/bcache-tools/bcache-tools.mk
> @@ -0,0 +1,40 @@
> +################################################################################
> +#
> +# bcache-tools
> +#
> +################################################################################
> +
> +BCACHE_TOOLS_VERSION = v1.0.7
> +BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
> +BCACHE_TOOLS_SOURCE = $(BCACHE_TOOLS_VERSION).tar.gz

This last line should be

BCACHE_TOOLS_SOURCE = bcache-tools-$(BCACHE_TOOLS_VERSION).tar.gz

but because this is default value, so this line is not needed.
I proposed this in my first email.

Regards,
Jerzy

> +BCACHE_TOOLS_LICENSE = GPLv2
> +BCACHE_TOOLS_LICENSE_FILES = COPYING
> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
> +
> +# We need to use the BR2 host pkg-config binary in the Makefile
> +define BCACHE_TOOLS_FIX_PKGCONFIG
> +	$(SED) 's^`pkg-config^`$(PKG_CONFIG_HOST_BINARY)^' \
> +		$(BCACHE_TOOLS_DIR)/Makefile
> +endef
> +
> +BCACHE_TOOLS_POST_EXTRACT_HOOKS += BCACHE_TOOLS_FIX_PKGCONFIG
> +
> +# We pass $(TARGET_CONFIGURE_OPTS) as environment variable to allow
> +# the bcache-tools Makefile to alter CFLAGS
> +define BCACHE_TOOLS_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
> +endef
> +
> +# The bcache-tools Makefile expects the man8 directory to exist.
> +define BCACHE_TOOLS_INSTALL_MAN8
> +	$(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/share/man/man8
> +endef
> +
> +BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_INSTALL_MAN8
> +
> +define BCACHE_TOOLS_INSTALL_TARGET_CMDS
> +	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
> +		DESTDIR=$(TARGET_DIR) install
> +endef
> +
> +$(eval $(generic-package))



More information about the buildroot mailing list