Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [BALENA PATCH] balena : New Package
@ 2018-06-04 14:22 Refik Tuzaklı
  2018-06-04 14:55 ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Refik Tuzaklı @ 2018-06-04 14:22 UTC (permalink / raw)
  To: buildroot


From: Refik Tuzakli <refik.tuzakli@savronik.com.tr>
Date: Mon, 4 Jun 2018 16:34:48 +0300

This patch adds balena; Moby-based Container Engine for Embedded, IoT, 
and Edge uses.

Signed-off-by: Refik Tuzakli <refik.tuzakli@savronik.com.tr>
---
 ?package/Config.in????????? |? 1 +
 ?package/balena/Config.in?? | 16 +++++++++++
 ?package/balena/balena.hash |? 2 ++
 ?package/balena/balena.mk?? | 68 
++++++++++++++++++++++++++++++++++++++++++++++
 ?4 files changed, 87 insertions(+)
 ?create mode 100644 package/balena/Config.in
 ?create mode 100644 package/balena/balena.hash
 ?create mode 100644 package/balena/balena.mk

diff --git a/package/Config.in b/package/Config.in
index 6a1606e..41e1986 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1983,6 +1983,7 @@ menu "System tools"
 ???? source "package/atop/Config.in"
 ???? source "package/attr/Config.in"
 ???? source "package/audit/Config.in"
+??? source "package/balena/Config.in"
 ???? source "package/bootutils/Config.in"
 ???? source "package/cgroupfs-mount/Config.in"
 ???? source "package/circus/Config.in"
diff --git a/package/balena/Config.in b/package/balena/Config.in
new file mode 100644
index 0000000..2904d2a
--- /dev/null
+++ b/package/balena/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_BALENA
+??? bool "balena"
+??? depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
+??? depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
+??? depends on BR2_TOOLCHAIN_HAS_THREADS
+??? depends on BR2_INIT_SYSTEMD
+??? select BR2_PACKAGE_LVM2
+??? select BR2_PACKAGE_LVM2_STANDARD_INSTALL
+??? help
+??? ? Moby-based Container Engine for Embedded, IoT, and Edge uses
+
+??? ? https://github.com/resin-os/balena
+
+
+comment "balena needs systemd"
+??? depends on !BR2_INIT_SYSTEMD
diff --git a/package/balena/balena.hash b/package/balena/balena.hash
new file mode 100644
index 0000000..9d40895
--- /dev/null
+++ b/package/balena/balena.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 ae07affea7f50d9754957d972c9957f42938998dffc48cc57fca37e0b187359a 
balena-17.06-resin.tar.gz
diff --git a/package/balena/balena.mk b/package/balena/balena.mk
new file mode 100644
index 0000000..96f2497
--- /dev/null
+++ b/package/balena/balena.mk
@@ -0,0 +1,68 @@
+################################################################################
+#
+# balena
+#
+################################################################################
+
+BALENA_VERSION = 17.06-resin
+BALENA_COMMIT = 73136d1985f28a34705f537e90636cf208734048
+BALENA_SITE = $(call github,resin-os,balena,$(BALENA_VERSION))
+
+BALENA_LICENSE = Apache-2.0
+BALENA_LICENSE_FILES = LICENSE
+
+BALENA_DEPENDENCIES = host-go host-pkgconf systemd lvm2
+
+BALENA_GOPATH = "$(@D)/.gopath"
+
+BALENA_VERSION_DIR = 17.06.0-dev
+BALENA_BUILD_TARGETS = balena
+BALENA_INSTALL_BINS = $(TARGET_DIR)/usr/bin/$(target)
+
+
+BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
+??? $(TARGET_MAKE_ENV) \
+??? $(HOST_GO_TARGET_ENV) \
+??? DOCKER_GITCOMMIT=${BALENA_COMMIT} \
+??? DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs 
exclude_graphdriver_devicemapper'
+
+BALENA_MAKE_ENV = GOPATH=$(BALENA_GOPATH) \
+??? $(TARGET_MAKE_ENV) \
+??? $(HOST_GO_TARGET_ENV)
+
+BALENA_GLDFLAGS += -extldflags '-static'
+
+define BALENA_CONFIGURE_CMDS
+??? mkdir -p $(BALENA_GOPATH)/src/github.com/docker
+??? ln -fs $(@D) $(BALENA_GOPATH)/src/github.com/docker/docker
+??? cd $(@D) && \
+??? ??? $(BALENA_CONFIGURE_ENV) \
+??? ??? bash ./hack/make.sh dynbinary-balena
+endef
+
+define BALENA_USERS
+??? - - balena -1 * - - - A Moby-based container engine for IoT
+endef
+
+define BALENA_BUILD_CMDS
+??? $(foreach target,$(BALENA_BUILD_TARGETS), \
+??? ??? cd $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit; \
+??? ??? $(BALENA_MAKE_ENV) \
+??? ??? $(HOST_DIR)/bin/go build -v\
+??? ??? ??? -ldflags "$(BALENA_GLDFLAGS)"
+??? )
+endef
+
+define BALENA_INSTALL_TARGET_CMDS
+??? $(foreach target,$(BALENA_BUILD_TARGETS), \
+??? ??? $(INSTALL) -D -m 0755 
$(@D)/bundles/17.06.0-dev/dynbinary-balena/$(target) $(BALENA_INSTALL_BINS)
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balenad
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
+??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
+??? )
+endef
+
+$(eval $(golang-package))
-- 
1.9.1


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180604/7ff62b62/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refik_tuzakli.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180604/7ff62b62/attachment.vcf>

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [BALENA PATCH] balena : New Package
  2018-06-04 14:22 [Buildroot] [BALENA PATCH] balena : New Package Refik Tuzaklı
@ 2018-06-04 14:55 ` Thomas Petazzoni
  2018-06-05  8:20   ` Refik Tuzaklı
  2018-06-05  8:21   ` Refik Tuzaklı
  0 siblings, 2 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2018-06-04 14:55 UTC (permalink / raw)
  To: buildroot

Hello Refik,

Thanks a lot for your contribution! I believe it's your first Buildroot
contribution, so congratulations :-)

The first comment is that you should sent your patch using "git
send-email". Because you didn't do that, your patch has been horribly
rewrapped by your e-mail client, and it cannot be applied.

The second thing, less important, is that the [BALENA PATCH] subject
prefix is not necessary, just [PATCH] is sufficient or more precisely
[PATCHv2] for your next iteration.

The title should be:

	balena: new package

which is almost the same as what you did, but without the space
before :, and lower case.

On Mon, 4 Jun 2018 17:22:37 +0300, Refik Tuzakl? wrote:
>  ?package/Config.in????????? |? 1 +
>  ?package/balena/Config.in?? | 16 +++++++++++
>  ?package/balena/balena.hash |? 2 ++
>  ?package/balena/balena.mk?? | 68 
> ++++++++++++++++++++++++++++++++++++++++++++++

Please add an entry in the DEVELOPERS file for this package.

> +??? source "package/balena/Config.in"
>  ???? source "package/bootutils/Config.in"

Indentation is wrong here, but maybe it's an artefact of not sending
with git send-email.

> diff --git a/package/balena/Config.in b/package/balena/Config.in
> new file mode 100644
> index 0000000..2904d2a
> --- /dev/null
> +++ b/package/balena/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_BALENA
> +??? bool "balena"
> +??? depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
> +??? depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
> +??? depends on BR2_TOOLCHAIN_HAS_THREADS
> +??? depends on BR2_INIT_SYSTEMD
> +??? select BR2_PACKAGE_LVM2
> +??? select BR2_PACKAGE_LVM2_STANDARD_INSTALL

You need to propagate the dependencies of lvm2 here:

        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_USE_MMU # needs fork()
        depends on !BR2_STATIC_LIBS # It fails to build statically

> +??? help
> +??? ? Moby-based Container Engine for Embedded, IoT, and Edge uses
> +
> +??? ? https://github.com/resin-os/balena
> +
> +

Only one empty line here.

> +comment "balena needs systemd"
> +??? depends on !BR2_INIT_SYSTEMD

Also, please run check-package to make sure the indentation is correct.

> +BALENA_LICENSE = Apache-2.0
> +BALENA_LICENSE_FILES = LICENSE
> +
> +BALENA_DEPENDENCIES = host-go host-pkgconf systemd lvm2

Drop the host-go dependency, it's not needed because you're using the
golang-package infrastructure.

> +BALENA_GOPATH = "$(@D)/.gopath"

I believe this is not needed, it's taken care of by the golang-package
infrastructure.

> +BALENA_VERSION_DIR = 17.06.0-dev

Ditto, should not be needed.

> +BALENA_BUILD_TARGETS = balena

This one is OK.

> +BALENA_INSTALL_BINS = $(TARGET_DIR)/usr/bin/$(target)

This one doesn't make sense because $(target) is empty. Instead list
the binaries to be installed.

> +BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
> +??? $(TARGET_MAKE_ENV) \
> +??? $(HOST_GO_TARGET_ENV) \
> +??? DOCKER_GITCOMMIT=${BALENA_COMMIT} \
> +??? DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs 
> exclude_graphdriver_devicemapper'

None of that should be needed with the golang-package infrastructure.
Look at the docker-engine package for an example.

> +
> +BALENA_MAKE_ENV = GOPATH=$(BALENA_GOPATH) \
> +??? $(TARGET_MAKE_ENV) \
> +??? $(HOST_GO_TARGET_ENV)

Same.

> +
> +BALENA_GLDFLAGS += -extldflags '-static'

Same.

> +
> +define BALENA_CONFIGURE_CMDS
> +??? mkdir -p $(BALENA_GOPATH)/src/github.com/docker
> +??? ln -fs $(@D) $(BALENA_GOPATH)/src/github.com/docker/docker

Not needed with the golang-package infrastructure.

> +??? cd $(@D) && \
> +??? ??? $(BALENA_CONFIGURE_ENV) \
> +??? ??? bash ./hack/make.sh dynbinary-balena

Do this in a POST_CONFIGURE_HOOKS.

> +define BALENA_BUILD_CMDS
> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
> +??? ??? cd $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit; \
> +??? ??? $(BALENA_MAKE_ENV) \
> +??? ??? $(HOST_DIR)/bin/go build -v\
> +??? ??? ??? -ldflags "$(BALENA_GLDFLAGS)"
> +??? )
> +endef

Not needed, it should be done by the golang-package infrastructure.

> +
> +define BALENA_INSTALL_TARGET_CMDS
> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
> +??? ??? $(INSTALL) -D -m 0755 
> $(@D)/bundles/17.06.0-dev/dynbinary-balena/$(target) $(BALENA_INSTALL_BINS)
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balenad
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
> +??? )

Same.

Basically, I have the feeling that you created this package as a
generic-package originally, and then quickly converted it to
golang-package. But the golang-package infrastructure greatly
simplifies Go packages, so you should really leverage the features of
the golang-package infrastructure.

Could you rework this package to use golang-package more effectively ?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [BALENA PATCH] balena : New Package
  2018-06-04 14:55 ` Thomas Petazzoni
@ 2018-06-05  8:20   ` Refik Tuzaklı
  2018-06-05  8:45     ` Thomas Petazzoni
  2018-06-05  8:21   ` Refik Tuzaklı
  1 sibling, 1 reply; 5+ messages in thread
From: Refik Tuzaklı @ 2018-06-05  8:20 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

Thanks for feedback.

On 04-06-2018 17:55, Thomas Petazzoni wrote:
> Hello Refik,
>
> Thanks a lot for your contribution! I believe it's your first Buildroot
> contribution, so congratulations :-)
>
> The first comment is that you should sent your patch using "git
> send-email". Because you didn't do that, your patch has been horribly
> rewrapped by your e-mail client, and it cannot be applied.

I tried to send this patch via git send-email but I have problem with my 
ssl certificate as below;

STARTTLS failed! SSL connect attempt failed with unknown error 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate 
verify failed at /usr/lib/git-core/git-send-email line 1241.

When I solve problem, I will use this tool instead of sending via direct 
e-mail.

>
> The second thing, less important, is that the [BALENA PATCH] subject
> prefix is not necessary, just [PATCH] is sufficient or more precisely
> [PATCHv2] for your next iteration.
>
> The title should be:
>
> 	balena: new package
>
> which is almost the same as what you did, but without the space
> before :, and lower case.
OK
>
> On Mon, 4 Jun 2018 17:22:37 +0300, Refik Tuzakl? wrote:
>>   ?package/Config.in????????? |? 1 +
>>   ?package/balena/Config.in?? | 16 +++++++++++
>>   ?package/balena/balena.hash |? 2 ++
>>   ?package/balena/balena.mk?? | 68
>> ++++++++++++++++++++++++++++++++++++++++++++++
> Please add an entry in the DEVELOPERS file for this package.
OK
>
>> +??? source "package/balena/Config.in"
>>   ???? source "package/bootutils/Config.in"
> Indentation is wrong here, but maybe it's an artefact of not sending
> with git send-email.
At my local patch file, I can not see this typo but I will take care of it.
>
>> diff --git a/package/balena/Config.in b/package/balena/Config.in
>> new file mode 100644
>> index 0000000..2904d2a
>> --- /dev/null
>> +++ b/package/balena/Config.in
>> @@ -0,0 +1,16 @@
>> +config BR2_PACKAGE_BALENA
>> +??? bool "balena"
>> +??? depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
>> +??? depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
>> +??? depends on BR2_TOOLCHAIN_HAS_THREADS
>> +??? depends on BR2_INIT_SYSTEMD
>> +??? select BR2_PACKAGE_LVM2
>> +??? select BR2_PACKAGE_LVM2_STANDARD_INSTALL
> You need to propagate the dependencies of lvm2 here:
>
>          depends on BR2_TOOLCHAIN_HAS_THREADS
>          depends on BR2_USE_MMU # needs fork()
>          depends on !BR2_STATIC_LIBS # It fails to build statically
OK
>
>> +??? help
>> +??? ? Moby-based Container Engine for Embedded, IoT, and Edge uses
>> +
>> +??? ? https://github.com/resin-os/balena
>> +
>> +
> Only one empty line here.
OK
>
>> +comment "balena needs systemd"
>> +??? depends on !BR2_INIT_SYSTEMD
> Also, please run check-package to make sure the indentation is correct.
OK
>
>> +BALENA_LICENSE = Apache-2.0
>> +BALENA_LICENSE_FILES = LICENSE
>> +
>> +BALENA_DEPENDENCIES = host-go host-pkgconf systemd lvm2
> Drop the host-go dependency, it's not needed because you're using the
> golang-package infrastructure.
OK
>
>> +BALENA_GOPATH = "$(@D)/.gopath"
> I believe this is not needed, it's taken care of by the golang-package
> infrastructure.
OK
>
>> +BALENA_VERSION_DIR = 17.06.0-dev
> Ditto, should not be needed.
OK
>
>> +BALENA_BUILD_TARGETS = balena
> This one is OK.
>
>> +BALENA_INSTALL_BINS = $(TARGET_DIR)/usr/bin/$(target)
> This one doesn't make sense because $(target) is empty. Instead list
> the binaries to be installed.
OK
>
>> +BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
>> +??? $(TARGET_MAKE_ENV) \
>> +??? $(HOST_GO_TARGET_ENV) \
>> +??? DOCKER_GITCOMMIT=${BALENA_COMMIT} \
>> +??? DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs
>> exclude_graphdriver_devicemapper'
> None of that should be needed with the golang-package infrastructure.
> Look at the docker-engine package for an example.
I thought so but when I remove one of them, it crashes while 
configuring. Even it is balena package, it needs some docker parameters.
>
>> +
>> +BALENA_MAKE_ENV = GOPATH=$(BALENA_GOPATH) \
>> +??? $(TARGET_MAKE_ENV) \
>> +??? $(HOST_GO_TARGET_ENV)
> Same.
>
>> +
>> +BALENA_GLDFLAGS += -extldflags '-static'
> Same.
>
>> +
>> +define BALENA_CONFIGURE_CMDS
>> +??? mkdir -p $(BALENA_GOPATH)/src/github.com/docker
>> +??? ln -fs $(@D) $(BALENA_GOPATH)/src/github.com/docker/docker
> Not needed with the golang-package infrastructure.
golang-package does ;

mkdir -p $(@D)/_gopath/src/github.com/resin-os/
ln -sf $(@D) $(@D)/_gopath/src/github.com/resin-os/balena

but balena needs ;
mkdir -p $(@D)/.gopath/src/github.com/docker
ln -fs $(@D) $(@D)/.gopath/src/github.com/docker/docker

I think this caused by package itself. I am not a developer of balena, I 
can ask this issue to balena developers

>
>> +??? cd $(@D) && \
>> +??? ??? $(BALENA_CONFIGURE_ENV) \
>> +??? ??? bash ./hack/make.sh dynbinary-balena
> Do this in a POST_CONFIGURE_HOOKS.
OK
>
>> +define BALENA_BUILD_CMDS
>> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
>> +??? ??? cd $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit; \
>> +??? ??? $(BALENA_MAKE_ENV) \
>> +??? ??? $(HOST_DIR)/bin/go build -v\
>> +??? ??? ??? -ldflags "$(BALENA_GLDFLAGS)"
>> +??? )
>> +endef
> Not needed, it should be done by the golang-package infrastructure.
build directory is

$(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit

I guess buildroot looks $(BALENA_GOPATH)/src/github.com/resin-io/balena/cmd/balena
Am I right?

>
>> +
>> +define BALENA_INSTALL_TARGET_CMDS
>> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
>> +??? ??? $(INSTALL) -D -m 0755
>> $(@D)/bundles/17.06.0-dev/dynbinary-balena/$(target) $(BALENA_INSTALL_BINS)
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balenad
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
>> +??? )
> Same.
build step creates

$(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit/mobynit

but we need

$(@D)/bundles/17.06.0-dev/dynbinary-balena/balena

>
> Basically, I have the feeling that you created this package as a
> generic-package originally, and then quickly converted it to
> golang-package. But the golang-package infrastructure greatly
> simplifies Go packages, so you should really leverage the features of
> the golang-package infrastructure.
>
> Could you rework this package to use golang-package more effectively ?
>
> Thanks a lot!
>
> Thomas
I check docker-engine before converting to golang package. Also I took 
balena_git.bb file on meta-resin as a reference for cross-compile 
procedure from Yocto Projects. If I can I want to rework on this package 
with your help.

Cheers,

Refik Tuzakl?
Embedded Software Engineer
IT and Simulation Group

Savronik A.?.

Organize Sanayi B?lgesi

20. Cadde No: 19 26110

Eski?ehir Turkey

Tel?? : (+90 222) 236 1590

Faks: (+90 222) 236 1589

www.savronik.com.tr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/f9c9d606/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refik_tuzakli.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/f9c9d606/attachment.vcf>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [BALENA PATCH] balena : New Package
  2018-06-04 14:55 ` Thomas Petazzoni
  2018-06-05  8:20   ` Refik Tuzaklı
@ 2018-06-05  8:21   ` Refik Tuzaklı
  1 sibling, 0 replies; 5+ messages in thread
From: Refik Tuzaklı @ 2018-06-05  8:21 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

Thanks for feedback.

On 04-06-2018 17:55, Thomas Petazzoni wrote:
> Hello Refik,
>
> Thanks a lot for your contribution! I believe it's your first Buildroot
> contribution, so congratulations :-)
>
> The first comment is that you should sent your patch using "git
> send-email". Because you didn't do that, your patch has been horribly
> rewrapped by your e-mail client, and it cannot be applied.

I tried to send this patch via git send-email but I have problem with my 
ssl certificate as below;

STARTTLS failed! SSL connect attempt failed with unknown error 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate 
verify failed at /usr/lib/git-core/git-send-email line 1241.

When I solve problem, I will use this tool instead of sending via direct 
e-mail.

>
> The second thing, less important, is that the [BALENA PATCH] subject
> prefix is not necessary, just [PATCH] is sufficient or more precisely
> [PATCHv2] for your next iteration.
>
> The title should be:
>
> 	balena: new package
>
> which is almost the same as what you did, but without the space
> before :, and lower case.
OK
>
> On Mon, 4 Jun 2018 17:22:37 +0300, Refik Tuzakl? wrote:
>>   ?package/Config.in????????? |? 1 +
>>   ?package/balena/Config.in?? | 16 +++++++++++
>>   ?package/balena/balena.hash |? 2 ++
>>   ?package/balena/balena.mk?? | 68
>> ++++++++++++++++++++++++++++++++++++++++++++++
> Please add an entry in the DEVELOPERS file for this package.
OK
>
>> +??? source "package/balena/Config.in"
>>   ???? source "package/bootutils/Config.in"
> Indentation is wrong here, but maybe it's an artefact of not sending
> with git send-email.
At my local patch file, I can not see this typo but I will take care of it.
>
>> diff --git a/package/balena/Config.in b/package/balena/Config.in
>> new file mode 100644
>> index 0000000..2904d2a
>> --- /dev/null
>> +++ b/package/balena/Config.in
>> @@ -0,0 +1,16 @@
>> +config BR2_PACKAGE_BALENA
>> +??? bool "balena"
>> +??? depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
>> +??? depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
>> +??? depends on BR2_TOOLCHAIN_HAS_THREADS
>> +??? depends on BR2_INIT_SYSTEMD
>> +??? select BR2_PACKAGE_LVM2
>> +??? select BR2_PACKAGE_LVM2_STANDARD_INSTALL
> You need to propagate the dependencies of lvm2 here:
>
>          depends on BR2_TOOLCHAIN_HAS_THREADS
>          depends on BR2_USE_MMU # needs fork()
>          depends on !BR2_STATIC_LIBS # It fails to build statically
OK
>
>> +??? help
>> +??? ? Moby-based Container Engine for Embedded, IoT, and Edge uses
>> +
>> +??? ? https://github.com/resin-os/balena
>> +
>> +
> Only one empty line here.
OK
>
>> +comment "balena needs systemd"
>> +??? depends on !BR2_INIT_SYSTEMD
> Also, please run check-package to make sure the indentation is correct.
OK
>
>> +BALENA_LICENSE = Apache-2.0
>> +BALENA_LICENSE_FILES = LICENSE
>> +
>> +BALENA_DEPENDENCIES = host-go host-pkgconf systemd lvm2
> Drop the host-go dependency, it's not needed because you're using the
> golang-package infrastructure.
OK
>
>> +BALENA_GOPATH = "$(@D)/.gopath"
> I believe this is not needed, it's taken care of by the golang-package
> infrastructure.
OK
>
>> +BALENA_VERSION_DIR = 17.06.0-dev
> Ditto, should not be needed.
OK
>
>> +BALENA_BUILD_TARGETS = balena
> This one is OK.
>
>> +BALENA_INSTALL_BINS = $(TARGET_DIR)/usr/bin/$(target)
> This one doesn't make sense because $(target) is empty. Instead list
> the binaries to be installed.
OK
>
>> +BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
>> +??? $(TARGET_MAKE_ENV) \
>> +??? $(HOST_GO_TARGET_ENV) \
>> +??? DOCKER_GITCOMMIT=${BALENA_COMMIT} \
>> +??? DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs
>> exclude_graphdriver_devicemapper'
> None of that should be needed with the golang-package infrastructure.
> Look at the docker-engine package for an example.
I thought so but when I remove one of them, it crashes while 
configuring. Even it is balena package, it needs some docker parameters.
>
>> +
>> +BALENA_MAKE_ENV = GOPATH=$(BALENA_GOPATH) \
>> +??? $(TARGET_MAKE_ENV) \
>> +??? $(HOST_GO_TARGET_ENV)
> Same.
>
>> +
>> +BALENA_GLDFLAGS += -extldflags '-static'
> Same.
>
>> +
>> +define BALENA_CONFIGURE_CMDS
>> +??? mkdir -p $(BALENA_GOPATH)/src/github.com/docker
>> +??? ln -fs $(@D) $(BALENA_GOPATH)/src/github.com/docker/docker
> Not needed with the golang-package infrastructure.
golang-package does ;

mkdir -p $(@D)/_gopath/src/github.com/resin-os/
ln -sf $(@D) $(@D)/_gopath/src/github.com/resin-os/balena

but balena needs ;
mkdir -p $(@D)/.gopath/src/github.com/docker
ln -fs $(@D) $(@D)/.gopath/src/github.com/docker/docker

I think this caused by package itself. I am not a developer of balena, I 
can ask this issue to balena developers

>
>> +??? cd $(@D) && \
>> +??? ??? $(BALENA_CONFIGURE_ENV) \
>> +??? ??? bash ./hack/make.sh dynbinary-balena
> Do this in a POST_CONFIGURE_HOOKS.
OK
>
>> +define BALENA_BUILD_CMDS
>> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
>> +??? ??? cd $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit; \
>> +??? ??? $(BALENA_MAKE_ENV) \
>> +??? ??? $(HOST_DIR)/bin/go build -v\
>> +??? ??? ??? -ldflags "$(BALENA_GLDFLAGS)"
>> +??? )
>> +endef
> Not needed, it should be done by the golang-package infrastructure.
build directory is

$(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit

I guess buildroot looks $(BALENA_GOPATH)/src/github.com/resin-io/balena/cmd/balena
Am I right?

>
>> +
>> +define BALENA_INSTALL_TARGET_CMDS
>> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
>> +??? ??? $(INSTALL) -D -m 0755
>> $(@D)/bundles/17.06.0-dev/dynbinary-balena/$(target) $(BALENA_INSTALL_BINS)
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balenad
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
>> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
>> +??? )
> Same.
build step creates

$(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit/mobynit

but we need

$(@D)/bundles/17.06.0-dev/dynbinary-balena/balena

>
> Basically, I have the feeling that you created this package as a
> generic-package originally, and then quickly converted it to
> golang-package. But the golang-package infrastructure greatly
> simplifies Go packages, so you should really leverage the features of
> the golang-package infrastructure.
>
> Could you rework this package to use golang-package more effectively ?
>
> Thanks a lot!
>
> Thomas
I check docker-engine before converting to golang package. Also I took 
balena_git.bb file on meta-resin as a reference for cross-compile 
procedure from Yocto Projects. If I can I want to rework on this package 
with your help.

Cheers,

Refik Tuzakl?
Embedded Software Engineer
IT and Simulation Group

Savronik A.?.

Organize Sanayi B?lgesi

20. Cadde No: 19 26110

Eski?ehir Turkey

Tel?? : (+90 222) 236 1590

Faks: (+90 222) 236 1589

www.savronik.com.tr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/76614371/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refik_tuzakli.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180605/76614371/attachment.vcf>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [BALENA PATCH] balena : New Package
  2018-06-05  8:20   ` Refik Tuzaklı
@ 2018-06-05  8:45     ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2018-06-05  8:45 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 5 Jun 2018 11:20:57 +0300, Refik Tuzakl? wrote:

> I tried to send this patch via git send-email but I have problem with my 
> ssl certificate as below;
> 
> STARTTLS failed! SSL connect attempt failed with unknown error 
> error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate 
> verify failed at /usr/lib/git-core/git-send-email line 1241.
> 
> When I solve problem, I will use this tool instead of sending via direct 
> e-mail.

You can probably tell git to not verify too much the SSL certificate,
but obviously that's a bit disabling the whole point of SSL in the
first place :-)


> >> +BALENA_CONFIGURE_ENV = GOPATH=${BALENA_GOPATH} \
> >> +??? $(TARGET_MAKE_ENV) \
> >> +??? $(HOST_GO_TARGET_ENV) \
> >> +??? DOCKER_GITCOMMIT=${BALENA_COMMIT} \
> >> +??? DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdirver_zfs
> >> exclude_graphdriver_devicemapper'  
> > None of that should be needed with the golang-package infrastructure.
> > Look at the docker-engine package for an example.  
> I thought so but when I remove one of them, it crashes while 
> configuring. Even it is balena package, it needs some docker parameters.

You can still pass build tags, see how the docker-engine package is
doing this:

ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y)
DOCKER_ENGINE_DEPENDENCIES += gvfs
else
DOCKER_ENGINE_TAGS += exclude_graphdriver_vfs
endif

> >> +define BALENA_CONFIGURE_CMDS
> >> +??? mkdir -p $(BALENA_GOPATH)/src/github.com/docker
> >> +??? ln -fs $(@D) $(BALENA_GOPATH)/src/github.com/docker/docker  
> > Not needed with the golang-package infrastructure.  
> golang-package does ;
> 
> mkdir -p $(@D)/_gopath/src/github.com/resin-os/
> ln -sf $(@D) $(@D)/_gopath/src/github.com/resin-os/balena
> 
> but balena needs ;
> mkdir -p $(@D)/.gopath/src/github.com/docker
> ln -fs $(@D) $(@D)/.gopath/src/github.com/docker/docker
> 
> I think this caused by package itself. I am not a developer of balena, I 
> can ask this issue to balena developers

Then, set:

BALENA_SRC_SUBDIR = github.com/docker/docker

> >> +define BALENA_BUILD_CMDS
> >> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
> >> +??? ??? cd $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit; \
> >> +??? ??? $(BALENA_MAKE_ENV) \
> >> +??? ??? $(HOST_DIR)/bin/go build -v\
> >> +??? ??? ??? -ldflags "$(BALENA_GLDFLAGS)"
> >> +??? )
> >> +endef  
> > Not needed, it should be done by the golang-package infrastructure.  
> build directory is
> 
> $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit
> 
> I guess buildroot looks $(BALENA_GOPATH)/src/github.com/resin-io/balena/cmd/balena
> Am I right?

Depends on BALENA_SRC_SUBDIR, see above.

> >> +define BALENA_INSTALL_TARGET_CMDS
> >> +??? $(foreach target,$(BALENA_BUILD_TARGETS), \
> >> +??? ??? $(INSTALL) -D -m 0755
> >> $(@D)/bundles/17.06.0-dev/dynbinary-balena/$(target) $(BALENA_INSTALL_BINS)
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balenad
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-shim
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-containerd-ctr
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-runc
> >> +??? ??? ln -sf balena $(TARGET_DIR)/usr/bin/balena-proxy
> >> +??? )  
> > Same.  
> build step creates
> 
> $(BALENA_GOPATH)/src/github.com/docker/docker/cmd/mobynit/mobynit
> 
> but we need
> 
> $(@D)/bundles/17.06.0-dev/dynbinary-balena/balena

Meh, this installation location looks weird. Angelo, do you have any idea here ?

Refik, in the mean time, you can make a new submission keeping the
INSTALL_TARGET_CMDS you had. I'll try to have a look once you make this
new submission.

Thanks!

Thomas Petazzoni
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-06-05  8:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-04 14:22 [Buildroot] [BALENA PATCH] balena : New Package Refik Tuzaklı
2018-06-04 14:55 ` Thomas Petazzoni
2018-06-05  8:20   ` Refik Tuzaklı
2018-06-05  8:45     ` Thomas Petazzoni
2018-06-05  8:21   ` Refik Tuzaklı

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox