diff mbox

[v3,1/2] libubox: new package

Message ID 1395172899-3799-1-git-send-email-yegorslists@googlemail.com
State Superseded
Headers show

Commit Message

Yegor Yefremov March 18, 2014, 8:01 p.m. UTC
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
Changes:
	v3: add Lua support
        v2: make package description more informative and fix license information

 package/Config.in          |  1 +
 package/libubox/Config.in  |  7 +++++++
 package/libubox/libubox.mk | 21 +++++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 100644 package/libubox/Config.in
 create mode 100644 package/libubox/libubox.mk

Comments

Thomas Petazzoni March 18, 2014, 10:30 p.m. UTC | #1
Dear Yegor Yefremov,

On Tue, 18 Mar 2014 21:01:38 +0100, Yegor Yefremov wrote:

> +LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
> +LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
> +LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
> +LIBUBOX_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_PACKAGE_LUA),y)
> +	LIBUBOX_DEPENDENCIES = lua
> +	LIBUBOX_MAKE_ENV = \
> +		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)"	\
> +		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig"

No. These variables should I believe not be necessary. The
cmake-package infrastructure should simply use PATH=$(TARGET_PATH) so
that when a CMake package is built, $(HOST_DIR)/usr/bin/pkg-config is
used, and this pkg-config variant already knows the right path and
sysroot for the .pc files.

I believe Samuel Martin has already sent a patch doing this for the
CMake package infrastructure.

Thanks!

Thomas
Yegor Yefremov March 19, 2014, 11 a.m. UTC | #2
On Tue, Mar 18, 2014 at 11:30 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Yegor Yefremov,
>
> On Tue, 18 Mar 2014 21:01:38 +0100, Yegor Yefremov wrote:
>
>> +LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
>> +LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
>> +LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
>> +LIBUBOX_INSTALL_STAGING = YES
>> +
>> +ifeq ($(BR2_PACKAGE_LUA),y)
>> +     LIBUBOX_DEPENDENCIES = lua
>> +     LIBUBOX_MAKE_ENV = \
>> +             PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
>> +             PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig"
>
> No. These variables should I believe not be necessary. The
> cmake-package infrastructure should simply use PATH=$(TARGET_PATH) so
> that when a CMake package is built, $(HOST_DIR)/usr/bin/pkg-config is
> used, and this pkg-config variant already knows the right path and
> sysroot for the .pc files.
>
> I believe Samuel Martin has already sent a patch doing this for the
> CMake package infrastructure.

Samuel could you point me to the right package with the proper example?

Yegor
Samuel Martin March 19, 2014, 11:29 a.m. UTC | #3
Hi Yegor, all,

On Wed, Mar 19, 2014 at 12:00 PM, Yegor Yefremov
<yegorslists@googlemail.com> wrote:
> On Tue, Mar 18, 2014 at 11:30 PM, Thomas Petazzoni
> <thomas.petazzoni@free-electrons.com> wrote:
>> Dear Yegor Yefremov,
>>
>> On Tue, 18 Mar 2014 21:01:38 +0100, Yegor Yefremov wrote:
>>
>>> +LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
>>> +LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
>>> +LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
>>> +LIBUBOX_INSTALL_STAGING = YES
>>> +
>>> +ifeq ($(BR2_PACKAGE_LUA),y)
>>> +     LIBUBOX_DEPENDENCIES = lua
>>> +     LIBUBOX_MAKE_ENV = \
>>> +             PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
>>> +             PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig"

This should be added in the cmake infrastructure.
In package/pkg-cmake.mk, PKG_CONFIG_SYSROOT_DIR is already correctly set:
http://git.buildroot.net/buildroot/tree/package/pkg-cmake.mk#n173

I'm a bit dubious about the need for PKG_CONFIG_PATH, this is already
a standard location in which pkg-config looks for (according to man).
I would expect this variable to be set in the
$(HOST_DIR)/usr/bin/pkg-config wrapper, but AFAICS it's not :-/

BTW, what error are you facing without these variables set in
configure env.? Could you pastebin the error logs?

>>
>> No. These variables should I believe not be necessary. The
>> cmake-package infrastructure should simply use PATH=$(TARGET_PATH) so
>> that when a CMake package is built, $(HOST_DIR)/usr/bin/pkg-config is
>> used, and this pkg-config variant already knows the right path and
>> sysroot for the .pc files.
>>
>> I believe Samuel Martin has already sent a patch doing this for the
>> CMake package infrastructure.
>
> Samuel could you point me to the right package with the proper example?
>
> Yegor

Regards,
Yegor Yefremov March 19, 2014, 11:58 a.m. UTC | #4
On Wed, Mar 19, 2014 at 12:29 PM, Samuel Martin <s.martin49@gmail.com> wrote:
> Hi Yegor, all,
>
> On Wed, Mar 19, 2014 at 12:00 PM, Yegor Yefremov
> <yegorslists@googlemail.com> wrote:
>> On Tue, Mar 18, 2014 at 11:30 PM, Thomas Petazzoni
>> <thomas.petazzoni@free-electrons.com> wrote:
>>> Dear Yegor Yefremov,
>>>
>>> On Tue, 18 Mar 2014 21:01:38 +0100, Yegor Yefremov wrote:
>>>
>>>> +LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
>>>> +LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
>>>> +LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
>>>> +LIBUBOX_INSTALL_STAGING = YES
>>>> +
>>>> +ifeq ($(BR2_PACKAGE_LUA),y)
>>>> +     LIBUBOX_DEPENDENCIES = lua
>>>> +     LIBUBOX_MAKE_ENV = \
>>>> +             PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
>>>> +             PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig"
>
> This should be added in the cmake infrastructure.
> In package/pkg-cmake.mk, PKG_CONFIG_SYSROOT_DIR is already correctly set:
> http://git.buildroot.net/buildroot/tree/package/pkg-cmake.mk#n173
>
> I'm a bit dubious about the need for PKG_CONFIG_PATH, this is already
> a standard location in which pkg-config looks for (according to man).
> I would expect this variable to be set in the
> $(HOST_DIR)/usr/bin/pkg-config wrapper, but AFAICS it's not :-/
>
> BTW, what error are you facing without these variables set in
> configure env.? Could you pastebin the error logs?

Strange. I've removed the statements and I have no problems. As I
started with my development, CMake complained about not finding Lua
via pkg-config and it worked only after I've added these PATHs. I'll
this at home, where I've encountered this issue and then resend the
patches.

>>> No. These variables should I believe not be necessary. The
>>> cmake-package infrastructure should simply use PATH=$(TARGET_PATH) so
>>> that when a CMake package is built, $(HOST_DIR)/usr/bin/pkg-config is
>>> used, and this pkg-config variant already knows the right path and
>>> sysroot for the .pc files.
>>>
>>> I believe Samuel Martin has already sent a patch doing this for the
>>> CMake package infrastructure.
>>
>> Samuel could you point me to the right package with the proper example?
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index f9c1b0b..a2e859c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -784,6 +784,7 @@  source "package/libsigc/Config.in"
 source "package/libsigsegv/Config.in"
 source "package/libtasn1/Config.in"
 source "package/libtpl/Config.in"
+source "package/libubox/Config.in"
 source "package/libunwind/Config.in"
 source "package/liburcu/Config.in"
 source "package/linux-pam/Config.in"
diff --git a/package/libubox/Config.in b/package/libubox/Config.in
new file mode 100644
index 0000000..3fa78cf
--- /dev/null
+++ b/package/libubox/Config.in
@@ -0,0 +1,7 @@ 
+config BR2_PACKAGE_LIBUBOX
+	bool "libubox"
+	help
+	  Small utility library for OpenWrt. It is a dependency of
+	  libuci, that manages configuration files infrastructure.
+
+	  http://nbd.name/gitweb.cgi?p=luci2/libubox.git;a=summary
diff --git a/package/libubox/libubox.mk b/package/libubox/libubox.mk
new file mode 100644
index 0000000..effef9a
--- /dev/null
+++ b/package/libubox/libubox.mk
@@ -0,0 +1,21 @@ 
+################################################################################
+#
+# libubox
+#
+################################################################################
+
+LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
+LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
+LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
+LIBUBOX_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_LUA),y)
+	LIBUBOX_DEPENDENCIES = lua
+	LIBUBOX_MAKE_ENV = \
+		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)"	\
+		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig"
+else
+	LIBUBOX_CONF_OPT = -DBUILD_LUA:BOOL=OFF
+endif
+
+$(eval $(cmake-package))