mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Clemens Gruber <clemens.gruber@pqgruber.com>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH 1/3] hiredis: new package
Date: Mon, 7 Feb 2022 14:33:29 +0100	[thread overview]
Message-ID: <YgEfqWzOJKJFtuk9@workstation> (raw)
In-Reply-To: <YgEaceINCScac9pZ@ada-deb-carambola.ifak-system.com>

Hi Alex,

On Mon, Feb 07, 2022 at 02:11:13PM +0100, Alexander Dahl wrote:
> Hello Clemens,
> 
> Am Mon, Feb 07, 2022 at 01:54:04PM +0100 schrieb Clemens Gruber:
> > Hi,
> > 
> > On Mon, Feb 07, 2022 at 11:39:10AM +0100, Alexander Dahl wrote:
> > > Hei hei,
> > > 
> > > On Mon, Feb 07, 2022 at 10:03:21AM +0100, Clemens Gruber wrote:
> > > > On Mon, Feb 07, 2022 at 08:39:36AM +0100, Michael Olbrich wrote:
> > > > > On Fri, Feb 04, 2022 at 05:28:07PM +0100, Clemens Gruber wrote:
> > > > > > Adds a new package for hiredis, a minimalistic C client library for
> > > > > > Redis.
> > > > > > 
> > > > > > Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
> > > > > > ---
> > > > > >  rules/hiredis.in   |  8 ++++++
> > > > > >  rules/hiredis.make | 61 ++++++++++++++++++++++++++++++++++++++++++++++
> > > > > >  2 files changed, 69 insertions(+)
> > > > > >  create mode 100644 rules/hiredis.in
> > > > > >  create mode 100644 rules/hiredis.make
> > > > > > 
> > > > > > diff --git a/rules/hiredis.in b/rules/hiredis.in
> > > > > > new file mode 100644
> > > > > > index 000000000..d416d69c4
> > > > > > --- /dev/null
> > > > > > +++ b/rules/hiredis.in
> > > > > > @@ -0,0 +1,8 @@
> > > > > > +## SECTION=system_libraries
> > > > > > +
> > > > > > +config HIREDIS
> > > > > > +	tristate
> > > > > > +	select HOST_CMAKE
> > > > > > +	prompt "hiredis                       "
> > > > > > +	help
> > > > > > +	  Hiredis is a minimalistic C client library for the Redis database.
> > > > > > diff --git a/rules/hiredis.make b/rules/hiredis.make
> > > > > > new file mode 100644
> > > > > > index 000000000..10e6d81d2
> > > > > > --- /dev/null
> > > > > > +++ b/rules/hiredis.make
> > > > > > @@ -0,0 +1,61 @@
> > > > > > +# -*-makefile-*-
> > > > > > +#
> > > > > > +# Copyright (C) 2022 by Clemens Gruber <clemens.gruber@pqgruber.com>
> > > > > > +#
> > > > > > +# For further information about the PTXdist project and license conditions
> > > > > > +# see the README file.
> > > > > > +#
> > > > > > +
> > > > > > +#
> > > > > > +# We provide this package
> > > > > > +#
> > > > > > +PACKAGES-$(PTXCONF_HIREDIS) += hiredis
> > > > > > +
> > > > > > +#
> > > > > > +# Paths and names
> > > > > > +#
> > > > > > +HIREDIS_VERSION	:= 1.0.2
> > > > > > +HIREDIS_MD5	:= 58e8313188f66ed1be1c220d14a7752e
> > > > > > +HIREDIS		:= hiredis-$(HIREDIS_VERSION)
> > > > > > +HIREDIS_SUFFIX	:= tar.gz
> > > > > > +HIREDIS_URL	:= https://github.com/redis/hiredis/archive/v$(HIREDIS_VERSION).$(HIREDIS_SUFFIX)
> > > > > > +HIREDIS_SOURCE	:= $(SRCDIR)/$(HIREDIS).$(HIREDIS_SUFFIX)
> > > > > > +HIREDIS_DIR	:= $(BUILDDIR)/$(HIREDIS)
> > > > > > +HIREDIS_LICENSE	:= BSD-3-Clause
> > > > > 
> > > > > Please add _LICENSE_FILES as well.
> > > > > 
> > > > > > +
> > > > > > +# ----------------------------------------------------------------------------
> > > > > > +# Prepare
> > > > > > +# ----------------------------------------------------------------------------
> > > > > > +
> > > > > > +#
> > > > > > +# cmake
> > > > > > +#
> > > > > > +HIREDIS_CONF_TOOL	:= cmake
> > > > > > +
> > > > > > +HIREDIS_CONF_OPT	:= \
> > > > > > +	$(CROSS_CMAKE_USR) \
> > > > > > +	-DDISABLE_TESTS=ON \
> > > > > > +	-DENABLE_SSL=OFF
> > > > > > +
> > > > > > +
> > > > > > +# ----------------------------------------------------------------------------
> > > > > > +# Target-Install
> > > > > > +# ----------------------------------------------------------------------------
> > > > > > +
> > > > > > +$(STATEDIR)/hiredis.targetinstall:
> > > > > > +	@$(call targetinfo)
> > > > > > +
> > > > > > +	@$(call install_init, hiredis)
> > > > > > +	@$(call install_fixup, hiredis,PRIORITY,optional)
> > > > > > +	@$(call install_fixup, hiredis,SECTION,base)
> > > > > > +	@$(call install_fixup, hiredis,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
> > > > > > +	@$(call install_fixup, hiredis,DESCRIPTION,"Minimalistic C client for Redis")
> > > > > > +
> > > > > > +	@$(call install_lib, hiredis, 0, 0, 0644, libhiredis)
> > > > > > +	@$(call install_link, hiredis, libhiredis.so.1.0.0, /usr/lib/libhiredis.so)
> > > > > 
> > > > > In general, this link should not be needed. If it really is needed then
> > > > > please add a comment why.
> > > > 
> > > > Maybe you can help me out here: If I don't call install_link, the
> > > > libhiredis.so link is not present in my rootfs image, even though it is
> > > > present in platform-xyz/packages/hiredis-1.0.2/usr/lib and in
> > > > platform-xyz/root/usr/lib
> > > 
> > > I would expect this. Usually you have three pieces:
> > > 
> > > libfoo.so.1.0.0 (real binary file)
> > > libfoo.so.1 (symlink to libfoo.so.1.0.0, used at runtime by users of the lib)
> > > libfoo.so (symlink, used at build time)
> > > 
> > > > Still in my rootfs image, there is only /usr/lib/libhiredis.so.1.0.0
> > > > It is a normal root.ext2 image with ext2fs type ext4.
> > > > 
> > > > Any idea why that is?
> > > 
> > > No idea why that is, but without further knowledge of that lib I would
> > > expect to see libhiredis.so.1 on the target instead of libhiredis.so
> > > (which is probably only needed in sysroot-target).
> > 
> > I forgot to mention that the libhiredis.so.1 link is also created in
> > platform-xyz/packages/.. and platform-xyz/root/..
> > I should probably have added the create_link for that one as well but
> > did not need it because a binary blob not under my control dynloads
> > /usr/lib/libhiredis.so

I have to correct myself here: The libhiredis.so.1 is not created and
not present in platform-xyz/root or platform-xyz/packages/hiredis-1.0.2
This was a leftover from tests/experiments of mine.

> This sound like a flaw in that binary blob?!  That ".1" usually marks
> the so version and different numbers are not necessarily compatible,
> so by loading libhiredis.so you are at risk of loading an incompatible
> library?

Yes, you are right. This could lead to problems in the future.

> 
> > Maybe Michael can shed some light on why the links are not present in
> > the rootfs.
> 
> Maybe libhiredis makes something different than usual. Haven't looked
> into it. O:-)

It seems the libhiredis cmake config only sets VERSION but not
SOVERSION, so SOVERSION is assumed to be 1.0.0 as well, which explains
why there is only one symlink, but not why that one is not present in
the rootfs.

> 
> > Just for testing I enabled the creation of a root.tgz file
> > (image-root-tgz). There, the links are also missing.
> 
> Mkay.
> 
> Greets
> Alex

Thanks,
Clemens

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


  reply	other threads:[~2022-02-07 13:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-04 16:28 Clemens Gruber
2022-02-04 16:28 ` [ptxdist] [PATCH 2/3] systemd: add option for openssl support Clemens Gruber
2022-02-14 12:43   ` [ptxdist] [APPLIED] " Michael Olbrich
2022-02-04 16:28 ` [ptxdist] [PATCH 3/3] protobuf: version bump 3.7.1 -> 3.19.4 Clemens Gruber
2022-02-11  9:43   ` Michael Olbrich
2022-02-11 14:30     ` Clemens Gruber
2022-02-07  7:39 ` [ptxdist] [PATCH 1/3] hiredis: new package Michael Olbrich
2022-02-07  9:03   ` Clemens Gruber
2022-02-07 10:39     ` Alexander Dahl
2022-02-07 12:54       ` Clemens Gruber
2022-02-07 13:11         ` Alexander Dahl
2022-02-07 13:33           ` Clemens Gruber [this message]
2022-02-07 15:22             ` Michael Olbrich
2022-02-07 15:25               ` Michael Olbrich
2022-02-07 15:51                 ` Clemens Gruber
2022-02-07 16:30             ` Alexander Dahl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YgEfqWzOJKJFtuk9@workstation \
    --to=clemens.gruber@pqgruber.com \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox