diff mbox

[v6] bcache-tools: Adding package.

Message ID 1407514262-18602-1-git-send-email-jcd@tribudubois.net
State Superseded
Headers show

Commit Message

Jean-Christophe Dubois Aug. 8, 2014, 4:11 p.m. UTC
This is the bcache tools, required to setup the linux bcache
feature of the Linux kernel.

Signed-off-by: Jean-Christophe DUBOIS <jcd@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).
Changes v4 to v5
 * Remove explicit package name in .mk (rely on default behavior).
Changes v5 to v6
 * Switch spaces to tabs in Config.in
 * Don't patch Makefile for pkg-config in .mk file.
---
 package/Config.in                    |  1 +
 package/bcache-tools/Config.in       | 22 ++++++++++++++++++++++
 package/bcache-tools/bcache-tools.mk | 31 +++++++++++++++++++++++++++++++
 3 files changed, 54 insertions(+)
 create mode 100644 package/bcache-tools/Config.in
 create mode 100644 package/bcache-tools/bcache-tools.mk

Comments

Jean-Christophe Dubois Aug. 8, 2014, 5:03 p.m. UTC | #1
I did not add the Makefile patch for the man8 directory as I agree with 
Thomas that the bcache-tools package should be modified upstream to 
allow install without this dir.

Meanwhile, we can add the man8 dir which is removed by BR afterward.

JC

Le 08/08/2014 06:11 PM, Jean-Christophe DUBOIS a écrit :
> This is the bcache tools, required to setup the linux bcache
> feature of the Linux kernel.
>
> Signed-off-by: Jean-Christophe DUBOIS <jcd@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).
> Changes v4 to v5
>   * Remove explicit package name in .mk (rely on default behavior).
> Changes v5 to v6
>   * Switch spaces to tabs in Config.in
>   * Don't patch Makefile for pkg-config in .mk file.
> ---
>   package/Config.in                    |  1 +
>   package/bcache-tools/Config.in       | 22 ++++++++++++++++++++++
>   package/bcache-tools/bcache-tools.mk | 31 +++++++++++++++++++++++++++++++
>   3 files changed, 54 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..a3f7897
> --- /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..880bf5e
> --- /dev/null
> +++ b/package/bcache-tools/bcache-tools.mk
> @@ -0,0 +1,31 @@
> +################################################################################
> +#
> +# bcache-tools
> +#
> +################################################################################
> +
> +BCACHE_TOOLS_VERSION = v1.0.7
> +BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
> +BCACHE_TOOLS_LICENSE = GPLv2
> +BCACHE_TOOLS_LICENSE_FILES = COPYING
> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
> +
> +# 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))
Jean-Christophe Dubois Aug. 27, 2014, 5:45 a.m. UTC | #2
Hi,

It has been few weeks now and I did not receive any more comments.

Is there some more work you are expecting from me or is there any other 
reason this could not be accepted/committed?

Thanks.

JC

Le 08/08/2014 07:03 PM, Jean-Christophe DUBOIS a écrit :
> I did not add the Makefile patch for the man8 directory as I agree 
> with Thomas that the bcache-tools package should be modified upstream 
> to allow install without this dir.
>
> Meanwhile, we can add the man8 dir which is removed by BR afterward.
>
> JC
>
> Le 08/08/2014 06:11 PM, Jean-Christophe DUBOIS a écrit :
>> This is the bcache tools, required to setup the linux bcache
>> feature of the Linux kernel.
>>
>> Signed-off-by: Jean-Christophe DUBOIS <jcd@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).
>> Changes v4 to v5
>>   * Remove explicit package name in .mk (rely on default behavior).
>> Changes v5 to v6
>>   * Switch spaces to tabs in Config.in
>>   * Don't patch Makefile for pkg-config in .mk file.
>> ---
>>   package/Config.in                    |  1 +
>>   package/bcache-tools/Config.in       | 22 ++++++++++++++++++++++
>>   package/bcache-tools/bcache-tools.mk | 31 
>> +++++++++++++++++++++++++++++++
>>   3 files changed, 54 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..a3f7897
>> --- /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..880bf5e
>> --- /dev/null
>> +++ b/package/bcache-tools/bcache-tools.mk
>> @@ -0,0 +1,31 @@
>> +################################################################################ 
>>
>> +#
>> +# bcache-tools
>> +#
>> +################################################################################ 
>>
>> +
>> +BCACHE_TOOLS_VERSION = v1.0.7
>> +BCACHE_TOOLS_SITE = $(call 
>> github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
>> +BCACHE_TOOLS_LICENSE = GPLv2
>> +BCACHE_TOOLS_LICENSE_FILES = COPYING
>> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
>> +
>> +# 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))
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
Matt Weber Aug. 27, 2014, 12:52 p.m. UTC | #3
JC,

Currently most of the activity has been working through bug fixes in
the Buildroot 2014.08 release candidate (targeted release date is the
end of the month).  I'm guessing you'll get more feedback early next
month when the "next" branch and any pending patches are worked
through.

On Wed, Aug 27, 2014 at 12:45 AM, Jean-Christophe DUBOIS
<jcd@tribudubois.net> wrote:
> Hi,
>
> It has been few weeks now and I did not receive any more comments.
>
> Is there some more work you are expecting from me or is there any other
> reason this could not be accepted/committed?
>
> Thanks.
>
> JC
>
> Le 08/08/2014 07:03 PM, Jean-Christophe DUBOIS a écrit :
>>
>> I did not add the Makefile patch for the man8 directory as I agree with
>> Thomas that the bcache-tools package should be modified upstream to allow
>> install without this dir.
>>
>> Meanwhile, we can add the man8 dir which is removed by BR afterward.
>>
>> JC
>>
>> Le 08/08/2014 06:11 PM, Jean-Christophe DUBOIS a écrit :
>>>
>>> This is the bcache tools, required to setup the linux bcache
>>> feature of the Linux kernel.
>>>
>>> Signed-off-by: Jean-Christophe DUBOIS <jcd@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).
>>> Changes v4 to v5
>>>   * Remove explicit package name in .mk (rely on default behavior).
>>> Changes v5 to v6
>>>   * Switch spaces to tabs in Config.in
>>>   * Don't patch Makefile for pkg-config in .mk file.
>>> ---
>>>   package/Config.in                    |  1 +
>>>   package/bcache-tools/Config.in       | 22 ++++++++++++++++++++++
>>>   package/bcache-tools/bcache-tools.mk | 31
>>> +++++++++++++++++++++++++++++++
>>>   3 files changed, 54 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..a3f7897
>>> --- /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..880bf5e
>>> --- /dev/null
>>> +++ b/package/bcache-tools/bcache-tools.mk
>>> @@ -0,0 +1,31 @@
>>>
>>> +################################################################################
>>> +#
>>> +# bcache-tools
>>> +#
>>>
>>> +################################################################################
>>> +
>>> +BCACHE_TOOLS_VERSION = v1.0.7
>>> +BCACHE_TOOLS_SITE = $(call
>>> github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
>>> +BCACHE_TOOLS_LICENSE = GPLv2
>>> +BCACHE_TOOLS_LICENSE_FILES = COPYING
>>> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
>>> +
>>> +# 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))
>>
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>>
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN Sept. 6, 2014, 10:42 a.m. UTC | #4
Jean-Christophe, All,

Sorry for the delay in reviewing this patch...

On 2014-08-08 18:11 +0200, Jean-Christophe DUBOIS spake thusly:
[--SNIP--]
> diff --git a/package/bcache-tools/Config.in b/package/bcache-tools/Config.in
> new file mode 100644
> index 0000000..a3f7897
> --- /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

udev is a runtime dependency only...

> +	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..880bf5e
> --- /dev/null
> +++ b/package/bcache-tools/bcache-tools.mk
> @@ -0,0 +1,31 @@
> +################################################################################
> +#
> +# bcache-tools
> +#
> +################################################################################
> +
> +BCACHE_TOOLS_VERSION = v1.0.7
> +BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
> +BCACHE_TOOLS_LICENSE = GPLv2
> +BCACHE_TOOLS_LICENSE_FILES = COPYING
> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev

... so you do not need to depend on it here, just in the Config.in file.

And even if you needed to depend on udev at runtime, that's not eudev
you'd have to depend on, but just 'udev' (which is a virtual package
provided by either eudev or systemd.)

> +# 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

Better to patch it out, since we do not keep the documentation on the
target anyway.

Regards,
Yann E. MORIN.

> +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))
> -- 
> 1.9.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Jean-Christophe Dubois Sept. 7, 2014, 7:21 a.m. UTC | #5
Le 09/06/2014 12:42 PM, Yann E. MORIN a écrit :
> Jean-Christophe, All,
>
> Sorry for the delay in reviewing this patch...
>
> On 2014-08-08 18:11 +0200, Jean-Christophe DUBOIS spake thusly:
> [--SNIP--]
>> diff --git a/package/bcache-tools/Config.in b/package/bcache-tools/Config.in
>> new file mode 100644
>> index 0000000..a3f7897
>> --- /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
> udev is a runtime dependency only...
>
>> +	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..880bf5e
>> --- /dev/null
>> +++ b/package/bcache-tools/bcache-tools.mk
>> @@ -0,0 +1,31 @@
>> +################################################################################
>> +#
>> +# bcache-tools
>> +#
>> +################################################################################
>> +
>> +BCACHE_TOOLS_VERSION = v1.0.7
>> +BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
>> +BCACHE_TOOLS_LICENSE = GPLv2
>> +BCACHE_TOOLS_LICENSE_FILES = COPYING
>> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
> ... so you do not need to depend on it here, just in the Config.in file.

Well, I need to make sure that "udev" is build before bcache-tools 
because it tries to put files in the /lib/udev/ directory of the target 
file system ans this directory doesn't exist before the udev package is 
built.
>
> And even if you needed to depend on udev at runtime, that's not eudev
> you'd have to depend on, but just 'udev' (which is a virtual package
> provided by either eudev or systemd.)
OK, I put the dependency on udev instead of eudev.

>
>> +# 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
> Better to patch it out, since we do not keep the documentation on the
> target anyway.

I thought it was discussed before (with Thomas Petazzoni) and it was 
decided it was easier to go this way (adding man8  which was removed 
from buildroot anyway).

JC

>
> Regards,
> Yann E. MORIN.
>
>> +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))
>> -- 
>> 1.9.1
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN Sept. 7, 2014, 9:14 a.m. UTC | #6
Jean-Christophe, All,

On 2014-09-07 09:21 +0200, Jean-Christophe DUBOIS spake thusly:
> Le 09/06/2014 12:42 PM, Yann E. MORIN a écrit :
[--SNIP--]
> >>diff --git a/package/bcache-tools/bcache-tools.mk b/package/bcache-tools/bcache-tools.mk
> >>new file mode 100644
> >>index 0000000..880bf5e
> >>--- /dev/null
> >>+++ b/package/bcache-tools/bcache-tools.mk
> >>@@ -0,0 +1,31 @@
> >>+################################################################################
> >>+#
> >>+# bcache-tools
> >>+#
> >>+################################################################################
> >>+
> >>+BCACHE_TOOLS_VERSION = v1.0.7
> >>+BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
> >>+BCACHE_TOOLS_LICENSE = GPLv2
> >>+BCACHE_TOOLS_LICENSE_FILES = COPYING
> >>+BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
> >... so you do not need to depend on it here, just in the Config.in file.
> 
> Well, I need to make sure that "udev" is build before bcache-tools because
> it tries to put files in the /lib/udev/ directory of the target file system
> ans this directory doesn't exist before the udev package is built.

In this case, just add:

    # bcache-tools forgets to create the required directory... :-/
    define BCACHE_TOOLS_UDEV_DIR
        mkdir -p $(TARGET_DIR)/lib/udev/
    endef
    BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_UDEV_DIR

And you're done. ;-)

[--SNIP--]
> >>+# 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
> >Better to patch it out, since we do not keep the documentation on the
> >target anyway.
> 
> I thought it was discussed before (with Thomas Petazzoni) and it was decided
> it was easier to go this way (adding man8  which was removed from buildroot
> anyway).

Oh, OK, then. :-)

Regards,
Yann E. MORIN.
Yann E. MORIN Sept. 7, 2014, 9:18 a.m. UTC | #7
Jean-Christophe, All,

On 2014-09-07 11:14 +0200, Yann E. MORIN spake thusly:
> On 2014-09-07 09:21 +0200, Jean-Christophe DUBOIS spake thusly:
> > Le 09/06/2014 12:42 PM, Yann E. MORIN a écrit :
> [--SNIP--]
> > >>diff --git a/package/bcache-tools/bcache-tools.mk b/package/bcache-tools/bcache-tools.mk
> > >>new file mode 100644
> > >>index 0000000..880bf5e
> > >>--- /dev/null
> > >>+++ b/package/bcache-tools/bcache-tools.mk
> > >>@@ -0,0 +1,31 @@
> > >>+################################################################################
> > >>+#
> > >>+# bcache-tools
> > >>+#
> > >>+################################################################################
> > >>+
> > >>+BCACHE_TOOLS_VERSION = v1.0.7
> > >>+BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
> > >>+BCACHE_TOOLS_LICENSE = GPLv2
> > >>+BCACHE_TOOLS_LICENSE_FILES = COPYING
> > >>+BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
> > >... so you do not need to depend on it here, just in the Config.in file.
> > 
> > Well, I need to make sure that "udev" is build before bcache-tools because
> > it tries to put files in the /lib/udev/ directory of the target file system
> > ans this directory doesn't exist before the udev package is built.
> 
> In this case, just add:
> 
>     # bcache-tools forgets to create the required directory... :-/
>     define BCACHE_TOOLS_UDEV_DIR
>         mkdir -p $(TARGET_DIR)/lib/udev/
>     endef
>     BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_UDEV_DIR
> 
> And you're done. ;-)

Of course, since cafeine hasn't yet fully kicked-in in my body, this
can/should be squashed in the existing PRE_INSTALL hook which creates
the man8 directory.

Regards,
Yann E. MORIN.
Jean-Christophe Dubois Sept. 7, 2014, 8:27 p.m. UTC | #8
Le 09/07/2014 11:18 AM, Yann E. MORIN a écrit :
> Jean-Christophe, All,
>
> On 2014-09-07 11:14 +0200, Yann E. MORIN spake thusly:
>> On 2014-09-07 09:21 +0200, Jean-Christophe DUBOIS spake thusly:
>>> Le 09/06/2014 12:42 PM, Yann E. MORIN a écrit :
>> [--SNIP--]
>>>>> diff --git a/package/bcache-tools/bcache-tools.mk b/package/bcache-tools/bcache-tools.mk
>>>>> new file mode 100644
>>>>> index 0000000..880bf5e
>>>>> --- /dev/null
>>>>> +++ b/package/bcache-tools/bcache-tools.mk
>>>>> @@ -0,0 +1,31 @@
>>>>> +################################################################################
>>>>> +#
>>>>> +# bcache-tools
>>>>> +#
>>>>> +################################################################################
>>>>> +
>>>>> +BCACHE_TOOLS_VERSION = v1.0.7
>>>>> +BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
>>>>> +BCACHE_TOOLS_LICENSE = GPLv2
>>>>> +BCACHE_TOOLS_LICENSE_FILES = COPYING
>>>>> +BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
>>>> ... so you do not need to depend on it here, just in the Config.in file.
>>> Well, I need to make sure that "udev" is build before bcache-tools because
>>> it tries to put files in the /lib/udev/ directory of the target file system
>>> ans this directory doesn't exist before the udev package is built.
>> In this case, just add:
>>
>>      # bcache-tools forgets to create the required directory... :-/
>>      define BCACHE_TOOLS_UDEV_DIR
>>          mkdir -p $(TARGET_DIR)/lib/udev/
>>      endef
>>      BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_UDEV_DIR
>>
>> And you're done. ;-)
> Of course, since cafeine hasn't yet fully kicked-in in my body, this
> can/should be squashed in the existing PRE_INSTALL hook which creates
> the man8 directory.

OK, I'll do it this way.

Now just for my information, why is it better to force the creation of a 
missing directory rather
than force as a dependency the build of the package bringing this directory?

JC

>
> Regards,
> Yann E. MORIN.
>
Yann E. MORIN Sept. 7, 2014, 8:34 p.m. UTC | #9
Jean-Christophe, All,

On 2014-09-07 22:27 +0200, Jean-Christophe DUBOIS spake thusly:
> Le 09/07/2014 11:18 AM, Yann E. MORIN a écrit :
> >On 2014-09-07 11:14 +0200, Yann E. MORIN spake thusly:
[--SNIP--]
> >>In this case, just add:
> >>
> >>     # bcache-tools forgets to create the required directory... :-/
> >>     define BCACHE_TOOLS_UDEV_DIR
> >>         mkdir -p $(TARGET_DIR)/lib/udev/
> >>     endef
> >>     BCACHE_TOOLS_PRE_INSTALL_TARGET_HOOKS += BCACHE_TOOLS_UDEV_DIR
> >>
> >>And you're done. ;-)
> >Of course, since cafeine hasn't yet fully kicked-in in my body, this
> >can/should be squashed in the existing PRE_INSTALL hook which creates
> >the man8 directory.
> 
> OK, I'll do it this way.

OK, thanks!

> Now just for my information, why is it better to force the creation of a
> missing directory rather
> than force as a dependency the build of the package bringing this directory?

Well, the udev package is not required to build bcache-tools. It;s just
bcache-tools' Makefile that is deficient, and forgets to create the
directory to start with.

Also, it is often the case that a decvelopper needs to build just one
package to test a build failure or a version bump. The more dependencies
there are to a package, the longer the build will be, the more
frustrating it becomes to the developper, since udev is not really a
build dependency.

And, since you anyway already have a hook to create one directory, why
not use it to create the other one?

Thanks for your efforts with this patch! :-)

Regards,
Yann E. MORIN.
diff mbox

Patch

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..a3f7897
--- /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..880bf5e
--- /dev/null
+++ b/package/bcache-tools/bcache-tools.mk
@@ -0,0 +1,31 @@ 
+################################################################################
+#
+# bcache-tools
+#
+################################################################################
+
+BCACHE_TOOLS_VERSION = v1.0.7
+BCACHE_TOOLS_SITE = $(call github,g2p,bcache-tools,$(BCACHE_TOOLS_VERSION))
+BCACHE_TOOLS_LICENSE = GPLv2
+BCACHE_TOOLS_LICENSE_FILES = COPYING
+BCACHE_TOOLS_DEPENDENCIES = host-pkgconf util-linux eudev
+
+# 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))