All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3] package/libcamera: bump version to 96fab38
Date: Sun, 14 Jun 2020 19:02:05 +0200	[thread overview]
Message-ID: <20200614170205.GH2346@scaer> (raw)
In-Reply-To: <e96772e7-eec4-1b04-6889-1a11a05c4225@ideasonboard.com>

Kieran, All,

On 2020-06-11 11:18 +0100, Kieran Bingham spake thusly:
> On 11/06/2020 10:42, Peter Seiderer wrote:
> > - add host dependencies: openssl, pkgconf, python3-pyyaml
> > - add dependencies: gnutls
> > - changed from mandatory to optional dependency: udev
> > - add dedicated pipeline configure options
> > - add optional dependencies: boost, gstreamer1/gst1-plugins-base,
> >   qt5base, tiff
> > - update license info (Apache-2.0 omitted - applies only for android code)
> > 
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > ---
> > Changes v1 -> v2:
> >   - re-add LIBCAMERA_LICENSE_FILES list (Kieran Bingham)
> >   - fix typo in commit message (Kieran Bingham)
> >   - add Reviewed-by from Kieran Bingham
> 
> You could actually add this to the patch :-)
> 
>   Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

Pro-tip: if you do not indent that line, then patchwork will pick it up,
and it will automatically be included in the patch when we apply it
locally. ;-)

> With the pipelines being configurable now, I fear that by default - none
> of them will get built.

Is that a problem? I mean, would the build break if none is enabled?

As I understand it, it would make sense that a thir-party provides a
binary blob for their hardware, nd use none of the pipelines for the
known boards, no?

> Should there be a default enabled? Perhaps at least the
> BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO should probably be default y.
> (but leave it configurable).
> 
> And if you're doing defaults, is there a way to make the IPU3 default to
> build on x86 targets, and the RPI/rkisp default on if an ARM target?

We usually do not have 'default y' options, because that is in the end
so use-case-specific.

If it makes sense that no pipeline is enabled, I'm fine with having none
enabled by default.

[--SNIP--]
> > -comment "libcamera needs udev and a toolchain w/ C++, threads, gcc >= 5"
> > +if BR2_PACKAGE_LIBCAMERA
> > +
> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3
> > +	bool "libcamera ipu3 pipeline"

No need to have 'libcamera' in the prompt: menuconfig will proprely
indent it below the main symbol, so that it is obvious that it is a
libcamera opiton.

Also, since there are more than 5 such sub-options, it would be nice to
have them in a submenu, by changing the main symbol from 'config' to
'menuconfig':

    menuconfig BR2_PACKAGE_LIBCAMERA
        bool "libcamera"
        depends blabla

    if BR2_PACKAGE_LIBCAMERA

    # sub-options, and menuconfig will automatically put
    # them in a sub-menu of hte main symbol, above.

    endif

> > +	help
> > +	  libcamera ipu3 pipeline

A help text that just repeats the prompt is useless. If you have nothing
else to say, just do not add a help entry.

(note :the two comments above apply to all pipeline sub-options, of
course).

> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI
> > +	bool "libcamera raspberrypi pipeline"
> > +	depends on BR2_USE_WCHAR # boost (already enforced for gnutls)
> > +	select BR2_PACKAGE_BOOST
> > +	help
> > +	  libcamera raspberrypi pipeline
> > +
> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
> > +	bool "libcamera rkisp1 pipeline"
> > +	help
> > +	  libcamera rkips1 pipeline
> > +
> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE
> > +	bool "libcamera simple pipeline"
> > +	help
> > +	  libcamera simple pipeline
> > +
> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO
> > +	bool "libcamera uvcvideo pipeline"
> > +	help
> > +	  libcamera uvcvideo pipeline
> > +
> > +

Spurious empty line.

> > +config BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC
> > +	bool "libcamera vimc pipeline"
> > +	help
> > +	  libcamera vimc pipeline
> > +
> > +endif # BR2_PACKAGE_LIBCAMERA
> > +
> > +comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 5"
> >  	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> > -		!BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_PACKAGE_HAS_UDEV
> > +		!BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS || !BR2_USE_WCHAR
> > diff --git a/package/libcamera/libcamera.hash b/package/libcamera/libcamera.hash
> > index 6f721d87ee..907764de63 100644
> > --- a/package/libcamera/libcamera.hash
> > +++ b/package/libcamera/libcamera.hash
> > @@ -1,3 +1,12 @@
> > -sha256 cbaa7e06059717f71b57f9c20135c86d5f121d9aab10bfc20513ba5d04478756  libcamera-448393f77ec9e37cb807e8e8d35c1a4877d253d4.tar.gz
> > -sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  licenses/gnu-gpl-2.0.txt
> > -sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c  licenses/gnu-lgpl-2.1.txt
> > +sha256  6995be9d707ba3bcbe7a79bad894484561ee686f68b6523943ada7c0f6607e86  libcamera-96fab38e02792a109c0d35ca2154e95a7b4c8fcb.tar.gz
> > +
> > +# license files
> > +sha256  fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c  LICENSES/BSD-2-Clause.txt
> > +sha256  e11af671c491efac2f94c1d752bea92f4308ca2450c7d11e582e4b48c40e4de1  LICENSES/BSD-3-Clause.txt
> > +sha256  6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f  LICENSES/CC0-1.0.txt
> > +sha256  ec3732087acf8c52429a020d6bba362ff578705bdb53365a21744485ec15b0e6  LICENSES/CC-BY-SA-4.0.txt
> > +sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSES/GPL-2.0-only.txt
> > +sha256  606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd  LICENSES/GPL-2.0-or-later.txt
> > +sha256  1ccf09bf2f598308df4bed9cd8e9657dc5cd0973d2800318f2e241486e2edf3f  LICENSES/LGPL-2.1-or-later.txt
> > +sha256  3f9e477523febab58de8b716ccfbcf02e6ef1c8e7728953905e8558637abe2a9  LICENSES/Linux-syscall-note.txt
> > +sha256  8f25018489d6fe0dec34a352314c38dc146247b7de65735790f4398a92afa84b  LICENSES/MIT.txt
> > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
> > index d209a38df3..c7513d2e68 100644
> > --- a/package/libcamera/libcamera.mk
> > +++ b/package/libcamera/libcamera.mk
> > @@ -5,14 +5,69 @@
> >  ################################################################################
> >  
> >  LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
> > -LIBCAMERA_VERSION = 448393f77ec9e37cb807e8e8d35c1a4877d253d4
> > +LIBCAMERA_VERSION = 96fab38e02792a109c0d35ca2154e95a7b4c8fcb
> >  LIBCAMERA_SITE_METHOD = git
> > -LIBCAMERA_DEPENDENCIES = udev
> > -LIBCAMERA_CONF_OPTS = -Dtest=false -Ddocumentation=false
> > +LIBCAMERA_DEPENDENCIES = \
> > +	host-openssl \
> > +	host-pkgconf \
> > +	host-python3-pyyaml \
> > +	gnutls
> > +LIBCAMERA_CONF_OPTS = \
> > +	-Dandroid=false \
> > +	-Ddocumentation=false \
> > +	-Dtest=false \
> > +	-Dv4l2=false
> >  LIBCAMERA_INSTALL_STAGING = yes
> > -LIBCAMERA_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (utils)
> > +LIBCAMERA_LICENSE = \
> > +	LGPL-2.1+ (library), \
> > +	GPL-2.0+ (utils), \
> > +	MIT (qcam/assets/feathericons), \
> > +	BSD-2-Clause (raspberrypi), \
> > +	GPL-2.0 with Linux-syscall-note or BSD-3-Clause (linux kernel headers), \
> > +	CC0-1.0 (meson build system), \
> > +	CC-BY-SA-4.0 (doc)
> >  LIBCAMERA_LICENSE_FILES = \
> > -	licenses/gnu-gpl-2.0.txt \
> > -	licenses/gnu-lgpl-2.1.txt
> > +	LICENSES/LGPL-2.1-or-later.txt \
> > +	LICENSES/GPL-2.0-or-later.txt \
> > +	LICENSES/MIT.txt \
> > +	LICENSES/BSD-2-Clause.txt \
> > +	LICENSES/GPL-2.0-only.txt \
> > +	LICENSES/Linux-syscall-note.txt \
> > +	LICENSES/BSD-3-Clause.txt \
> > +	LICENSES/CC0-1.0.txt \
> > +	LICENSES/CC-BY-SA-4.0.txt

All those licensing info should be explained in the commit log, please.

> > +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
> > +ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
> > +LIBCAMERA_PIPELINES-y += raspberrypi
> > +LIBCAMERA_DEPENDENCIES += boost
> > +endif
> > +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
> > +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
> > +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
> > +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc
> > +
> > +LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y))
> > +
> > +# gstreamer-video-1.0, gstreamer-allocators-1.0
> > +ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy)
> > +LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled
> > +LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_QT5BASE)$(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5BASE_WIDGETS),yyy)
> > +LIBCAMERA_DEPENDENCIES += qt5base
> > +ifeq ($(BR2_PACKAGE_QT5TOOLS)$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),yy)

BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS is already a sub-option of BR2_PACKAGE_QT5TOOLS,
so the former can't be enabled if the latter is not. Thus, the following
condition is enough:

    ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y)

> > +LIBCAMERA_DEPENDENCIES += qt5tools
> > +endif
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_TIFF),y)
> > +LIBCAMERA_DEPENDENCIES += tiff
> > +endif
> > +
> > +ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
> > +LIBCAMERA_DEPENDENCIES += udev
> > +endif

Are there any option to explicitly drive the enabling or disabling of
those two dependencies (tiff and udev)?

Regards,
Yann E. MORIN.

> >  $(eval $(meson-package))
> > 
> 
> -- 
> Regards
> --
> Kieran
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2020-06-14 17:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-11  9:42 [Buildroot] [PATCH v3] package/libcamera: bump version to 96fab38 Peter Seiderer
2020-06-11 10:18 ` Kieran Bingham
2020-06-14 17:02   ` Yann E. MORIN [this message]
2020-06-15 11:32     ` Kieran Bingham
2020-06-16  7:27       ` Yann E. MORIN
2020-06-16 16:34         ` Peter Seiderer
2020-06-16 18:02     ` Peter Seiderer

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=20200614170205.GH2346@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.