Message ID | 20200915205738.2144347-1-joseph.kogut@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | package/sentry-cli: new package | expand |
Hello Joseph and all, On 15/09/20 22:57, Joseph Kogut wrote: > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > --- > DEVELOPERS | 1 + > package/Config.in.host | 1 + > package/sentry-cli/Config.in.host | 10 ++++++++ > package/sentry-cli/sentry-cli.hash | 3 +++ > package/sentry-cli/sentry-cli.mk | 39 ++++++++++++++++++++++++++++++ > 5 files changed, 54 insertions(+) > create mode 100644 package/sentry-cli/Config.in.host > create mode 100644 package/sentry-cli/sentry-cli.hash > create mode 100644 package/sentry-cli/sentry-cli.mk [...] > diff --git a/package/sentry-cli/Config.in.host b/package/sentry-cli/Config.in.host > new file mode 100644 > index 0000000000..b71f7f2f9b > --- /dev/null > +++ b/package/sentry-cli/Config.in.host > @@ -0,0 +1,10 @@ > +config BR2_PACKAGE_HOST_SENTRY_CLI > + bool "sentry-cli" Should be "host sentry-cli" Apart from this small comment, Tested-by: Titouan Christophe <titouan.christophe@railnova.eu> Cheers, Titouan
Hello, On Tue, 15 Sep 2020 13:57:38 -0700 Joseph Kogut <joseph.kogut@gmail.com> wrote: > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> Thanks, I have applied, after doing a number of changes. See below. > diff --git a/package/sentry-cli/Config.in.host b/package/sentry-cli/Config.in.host > new file mode 100644 > index 0000000000..b71f7f2f9b > --- /dev/null > +++ b/package/sentry-cli/Config.in.host > @@ -0,0 +1,10 @@ > +config BR2_PACKAGE_HOST_SENTRY_CLI > + bool "sentry-cli" Changed to: bool "host sentry-cli" as pointed by Titouan. > diff --git a/package/sentry-cli/sentry-cli.mk b/package/sentry-cli/sentry-cli.mk > new file mode 100644 > index 0000000000..55bc03d1ec > --- /dev/null > +++ b/package/sentry-cli/sentry-cli.mk > @@ -0,0 +1,39 @@ > +################################################################################ > +# > +# sentry-cli > +# > +################################################################################ > + > +SENTRY_CLI_VERSION = 1.57.0 > +SENTRY_CLI_SITE = $(call github,getsentry,sentry-cli,$(SENTRY_CLI_VERSION)) > +SENTRY_CLI_LICENSE = BSD-3-clause > +SENTRY_CLI_LICENSE_FILES = LICENSE > + > +SENTRY_CLI_DEPENDENCIES = host-rustc > + > +HOST_SENTRY_CLI_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo > + > +HOST_SENTRY_CLI_BIN_DIR = target/$(SENTRY_CLI_CARGO_BIN_SUBDIR)/ This was not needed, I'll explain below why. > + > +HOST_SENTRY_CLI_CARGO_OPTS = \ > + $(if $(BR2_ENABLE_DEBUG),,--release) \ BR2_ENABLE_DEBUG affects target packages, but not host packages. We build host packages in release mode only, so I've made this an unconditional --release. And this explains why HOST_SENTRY_CLI_BIN_DIR was not needed: it is always target/release/. > + --manifest-path=$(@D)/Cargo.toml > + > +ifeq ($(BR2_ENABLE_DEBUG),y) > +SENTRY_CLI_CARGO_BIN_SUBDIR = debug > +else > +SENTRY_CLI_CARGO_OPTS += --release > +SENTRY_CLI_CARGO_BIN_SUBDIR = release > +endif This was not needed, and was anyway setting variables that were not used anywhere. > + > +define HOST_SENTRY_CLI_BUILD_CMDS > + $(TARGET_MAKE_ENV) $(HOST_SENTRY_CLI_CARGO_ENV) \ When building a host package, HOST_MAKE_ENV should be used, not TARGET_MAKE_ENV. > + cargo build $(HOST_SENTRY_CLI_CARGO_OPTS) > +endef > + > +define HOST_SENTRY_CLI_INSTALL_CMDS > + $(INSTALL) -D -m 0755 $(@D)/$(HOST_SENTRY_CLI_BIN_DIR)/sentry-cli \ So I've used target/release/ instead of $(HOST_SENTRY_CLI_BIN_DIR) > + $(HOST_DIR)/bin You need a full destination path, i.e $(HOST_DIR)/bin/sentry-cli Thanks! Thomas
Hello,
On Tue, 15 Sep 2020 13:57:38 -0700
Joseph Kogut <joseph.kogut@gmail.com> wrote:
> Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
I did some more testing, and after building zlib for the host, the
build fails with:
*** ERROR: package host-libzlib installs executables without proper RPATH:
*** /home/thomas/projets/buildroot/output/host/bin/sentry-cli
Indeed, sentry-cli is linked with libz.so.1:
0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
I've seen that sentry-cli bundles OpenSSL (it seems), which is perhaps
why it links against libz.so.1.
However, this means that sentry-cli should depend on host-zlib and
should have a RPATH to $(HOST_DIR)/lib.
Could you have a look into this ? I've added in Cc some folks working
on Cargo integration in Buildroot, to see if they can help.
Best regards,
Thomas
Hi Thomas, On Sat, Sep 19, 2020 at 1:50 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello, > > On Tue, 15 Sep 2020 13:57:38 -0700 > Joseph Kogut <joseph.kogut@gmail.com> wrote: > > > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > > I did some more testing, and after building zlib for the host, the > build fails with: > > *** ERROR: package host-libzlib installs executables without proper RPATH: > *** /home/thomas/projets/buildroot/output/host/bin/sentry-cli > > Indeed, sentry-cli is linked with libz.so.1: > > 0x0000000000000001 (NEEDED) Shared library: [libz.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] > 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2] > 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] > 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] > 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] > > I've seen that sentry-cli bundles OpenSSL (it seems), which is perhaps > why it links against libz.so.1. > > However, this means that sentry-cli should depend on host-zlib and > should have a RPATH to $(HOST_DIR)/lib. > > Could you have a look into this ? I've added in Cc some folks working > on Cargo integration in Buildroot, to see if they can help. > Definitely, thanks for making those changes and testing. I'll look into this and follow up with a patch. Best, Joseph
diff --git a/DEVELOPERS b/DEVELOPERS index d59d538e42..9a2b10c4c4 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1422,6 +1422,7 @@ F: package/python-schedule/ F: package/python-sentry-sdk/ F: package/python-websockets/ F: package/python-xlib/ +F: package/sentry-cli/ F: package/unclutter-xfixes/ N: Joshua Henderson <joshua.henderson@microchip.com> diff --git a/package/Config.in.host b/package/Config.in.host index 243da8969f..58b600d948 100644 --- a/package/Config.in.host +++ b/package/Config.in.host @@ -74,6 +74,7 @@ menu "Host utilities" source "package/s6-rc/Config.in.host" source "package/sam-ba/Config.in.host" source "package/sdbusplus/Config.in.host" + source "package/sentry-cli/Config.in.host" source "package/squashfs/Config.in.host" source "package/sunxi-tools/Config.in.host" source "package/swig/Config.in.host" diff --git a/package/sentry-cli/Config.in.host b/package/sentry-cli/Config.in.host new file mode 100644 index 0000000000..b71f7f2f9b --- /dev/null +++ b/package/sentry-cli/Config.in.host @@ -0,0 +1,10 @@ +config BR2_PACKAGE_HOST_SENTRY_CLI + bool "sentry-cli" + depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS + select BR2_PACKAGE_HOST_RUSTC + help + Official Sentry command line interface + + For managing debug information files and source maps. + + https://docs.sentry.io/cli/ diff --git a/package/sentry-cli/sentry-cli.hash b/package/sentry-cli/sentry-cli.hash new file mode 100644 index 0000000000..3b0733a276 --- /dev/null +++ b/package/sentry-cli/sentry-cli.hash @@ -0,0 +1,3 @@ +# locally calculated +sha256 5d0f7acf6a139d1c1716b9a8ff76c8bfaab09104ba663c957bb9a5dba2ffbabd sentry-cli-1.57.0.tar.gz +sha256 9503def7b54ceb6e3cd182fd59bc05d3a30d7eae481e65aaba4b495133c83c14 LICENSE diff --git a/package/sentry-cli/sentry-cli.mk b/package/sentry-cli/sentry-cli.mk new file mode 100644 index 0000000000..55bc03d1ec --- /dev/null +++ b/package/sentry-cli/sentry-cli.mk @@ -0,0 +1,39 @@ +################################################################################ +# +# sentry-cli +# +################################################################################ + +SENTRY_CLI_VERSION = 1.57.0 +SENTRY_CLI_SITE = $(call github,getsentry,sentry-cli,$(SENTRY_CLI_VERSION)) +SENTRY_CLI_LICENSE = BSD-3-clause +SENTRY_CLI_LICENSE_FILES = LICENSE + +SENTRY_CLI_DEPENDENCIES = host-rustc + +HOST_SENTRY_CLI_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo + +HOST_SENTRY_CLI_BIN_DIR = target/$(SENTRY_CLI_CARGO_BIN_SUBDIR)/ + +HOST_SENTRY_CLI_CARGO_OPTS = \ + $(if $(BR2_ENABLE_DEBUG),,--release) \ + --manifest-path=$(@D)/Cargo.toml + +ifeq ($(BR2_ENABLE_DEBUG),y) +SENTRY_CLI_CARGO_BIN_SUBDIR = debug +else +SENTRY_CLI_CARGO_OPTS += --release +SENTRY_CLI_CARGO_BIN_SUBDIR = release +endif + +define HOST_SENTRY_CLI_BUILD_CMDS + $(TARGET_MAKE_ENV) $(HOST_SENTRY_CLI_CARGO_ENV) \ + cargo build $(HOST_SENTRY_CLI_CARGO_OPTS) +endef + +define HOST_SENTRY_CLI_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/$(HOST_SENTRY_CLI_BIN_DIR)/sentry-cli \ + $(HOST_DIR)/bin +endef + +$(eval $(host-generic-package))
Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> --- DEVELOPERS | 1 + package/Config.in.host | 1 + package/sentry-cli/Config.in.host | 10 ++++++++ package/sentry-cli/sentry-cli.hash | 3 +++ package/sentry-cli/sentry-cli.mk | 39 ++++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 package/sentry-cli/Config.in.host create mode 100644 package/sentry-cli/sentry-cli.hash create mode 100644 package/sentry-cli/sentry-cli.mk