mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Marco Felsch <m.felsch@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Marian Cichy <m.cichy@pengutronix.de>
Subject: Re: [ptxdist] [PATCH 2/2] libcamera: Add package
Date: Mon, 3 May 2021 12:27:13 +0200	[thread overview]
Message-ID: <20210503102713.5vfpqnab6wrwfyan@pengutronix.de> (raw)
In-Reply-To: <20210322134842.20388-2-m.cichy@pengutronix.de>

Hi all,

a few nits on this.

On 21-03-22 14:48, Marian Cichy wrote:
> libcamera is a new library to ease usage and configuration for
> camera devices.
> 
> Currently, libcamera has no release tags. This version is based on
> commit 5154e14b from 2021-03-22.
> 
> Signed-off-by: Marian Cichy <m.cichy@pengutronix.de>
> ---
>  rules/libcamera.in   |  75 +++++++++++++++++++++++++++
>  rules/libcamera.make | 117 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 192 insertions(+)
>  create mode 100644 rules/libcamera.in
>  create mode 100644 rules/libcamera.make
> 
> diff --git a/rules/libcamera.in b/rules/libcamera.in
> new file mode 100644
> index 000000000..886f716f6
> --- /dev/null
> +++ b/rules/libcamera.in
> @@ -0,0 +1,75 @@
> +## SECTION=multimedia_libs
> +
> +menuconfig LIBCAMERA
> +	tristate
> +	prompt "libcamera                     "
> +	select HOST_MESON
> +	select HOST_SYSTEM_PYTHON3
> +	select HOST_SYSTEM_PYTHON3_PLY
> +	select HOST_SYSTEM_PYTHON3_PYYAML
> +	select HOST_SYSTEM_PYTHON3_JINJA2
> +	select GNUTLS
> +	select OPENSSL
> +	select BOOST			if LIBCAMERA_PIPELINES_RASPBERRYPI
> +	select GSTREAMER1		if LIBCAMERA_GSTREAMER
> +	select GST_PLUGINS_BASE1	if LIBCAMERA_GSTREAMER
> +	select LIBEVENT			if LIBCAMERA_CAM
> +	select QT5			if LIBCAMERA_QCAM
> +	help
> +	  libcamera is a library to ease configuration and usage of camera devices/
> +
> +if LIBCAMERA
> +
> +config LIBCAMERA_GSTREAMER
> +	bool
> +	prompt "libcamera GStreamer plugin"
> +	help
> +	  Gstreamer libcamerasrc element
> +
> +config LIBCAMERA_CAM
> +	bool
> +	prompt "cam test application"
> +	help
> +	  Demo application for libcamera
> +
> +config LIBCAMERA_QCAM
> +	bool
> +	prompt "qcam test application"
> +	help
> +	  Qt demo application for libcamera
> +
> +config LIBCAMERA_TRACING
> +	bool
> +	prompt "Enable tracing"
> +
> +config LIBCAMERA_V4L2
> +	bool
> +	prompt "V4L2 compatibility layer"
> +
> +comment "Pipelines"
> +
> +config LIBCAMERA_PIPELINES_IPU3
> +	bool
> +	prompt "ipu3"
> +
> +config LIBCAMERA_PIPELINES_RASPBERRYPI
> +	bool
> +	prompt "raspberrypi"
> +
> +config LIBCAMERA_PIPELINES_RKISP1
> +	bool
> +	prompt "rkisp1"
> +
> +config LIBCAMERA_PIPELINES_SIMPLE
> +	bool
> +	prompt "simple"
> +
> +config LIBCAMERA_PIPELINES_UVCVIDEO
> +	bool
> +	prompt "uvcvideo"
> +
> +config LIBCAMERA_PIPELINES_VIMC
> +	bool
> +	prompt "vimc"
> +
> +endif
> diff --git a/rules/libcamera.make b/rules/libcamera.make
> new file mode 100644
> index 000000000..7e1ab6ae7
> --- /dev/null
> +++ b/rules/libcamera.make
> @@ -0,0 +1,117 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2021 by Marian Cichy <m.cichy@pengutronix.de>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBCAMERA) += libcamera
> +
> +#
> +# Paths and names
> +#
> +LIBCAMERA_VERSION	:= 2021-02-01-g5154e14b
> +LIBCAMERA_MD5		:= df003c77b6e6bda22d5ef72fed2540ad
> +LIBCAMERA		:= libcamera-$(LIBCAMERA_VERSION)
> +LIBCAMERA_SUFFIX	:= tar.xz
> +LIBCAMERA_URL		:= git://linuxtv.org/libcamera.git;tag=$(LIBCAMERA_VERSION)
> +LIBCAMERA_SOURCE	:= $(SRCDIR)/$(LIBCAMERA).$(LIBCAMERA_SUFFIX)
> +LIBCAMERA_DIR		:= $(BUILDDIR)/$(LIBCAMERA)
> +LIBCAMERA_LICENSE	:= unknown

This project is a has multiple licenses:

- core-lib: LGPL-2.1-or-later
- IPA modules:
  - IPA API: LGPL-2.1-or-later
  - within libcamera: "The IPA modules, located in src/ipa/, are covered
    by free software licenses hosen by the module authors. The
    LGPL-2.1-or-later license is recommended.
    "
  - external: "Third-party closed-source IPA modules are thus permitted,
    provided they comply with the licensing requirements of any software
    they include or link to."
- cam/qcam/test: GPL-2.0-or-later
- 3rd party libs: their own licenses

> +# ----------------------------------------------------------------------------
> +# Get
> +# ----------------------------------------------------------------------------
> +
> +#$(LIBCAMERA_SOURCE):
> +#	@$(call targetinfo)
> +#	@$(call get, LIBCAMERA)

Default stage should be removed.

> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#LIBCAMERA_CONF_ENV	:= $(CROSS_ENV)
> +
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_IPU3)		+= ipu3
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_RASPBERRYPI)	+= raspberrypi
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_RKISP1)	+= rkisp1
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_SIMPLE)	+= simple
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_UVCVIDEO)	+= uvcvideo
> +LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINES_VIMC)		+= vimc

We should have at least one pipeline enabled since the whole lib makes no
sense without. We could set simple to be be always-on or we error out
here if it is zero (the user didn't configured it).

> +LIBCAMERA_CONF_TOOL	:= meson
> +LIBCAMERA_CONF_OPT	:=  \
> +	$(CROSS_MESON_USR) \
> +	-Dandroid=disabled\
> +	-Ddocumentation=disabled \
> +	-Dgstreamer=$(call ptx/endis, PTXCONF_LIBCAMERA_GSTREAMER)d \
> +	-Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y)) \
> +	-Dqcam=$(call ptx/endis, PTXCONF_LIBCAMERA_QCAM)d \
> +	-Dtest=$(call ptx/truefalse, PTXCONF_LIBCAMERA_TEST) \
> +	-Dtracing=$(call ptx/endis, PTXCONF_LIBCAMERA_TRACING)d \
> +	-Dv4l2=$(call ptx/truefalse, PTXCONF_LIBCAMERA_V4L2)
> +
> +#$(STATEDIR)/libcamera.prepare:
> +#	@$(call targetinfo)
> +#	@$(call world/prepare, LIBCAMERA)
> +#	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +#$(STATEDIR)/libcamera.compile:
> +#	@$(call targetinfo)
> +#	@$(call world/compile, LIBCAMERA)
> +#	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +#$(STATEDIR)/libcamera.install:
> +#	@$(call targetinfo)
> +#	@$(call world/install, LIBCAMERA)
> +#	@$(call touch)

Default stages could be removed.

> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libcamera.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, libcamera)
> +	@$(call install_fixup, libcamera,PRIORITY,optional)
> +	@$(call install_fixup, libcamera,SECTION,base)
> +	@$(call install_fixup, libcamera,AUTHOR,"Marian Cichy <m.cichy@pengutronix.de>")
> +	@$(call install_fixup, libcamera,DESCRIPTION,missing)
> +
> +	@$(call install_lib, libcamera, 0, 0, 0644, libcamera)
> +
> +ifdef PTXCONF_LIBCAMERA_GSTREAMER
> +	@$(call install_lib, libcamera, 0, 0, 0644, gstreamer-1.0/libgstlibcamera)
> +endif
> +
> +ifdef PTXCONF_LIBCAMERA_CAM
> +	@$(call install_copy, libcamera, 0, 0, 0755, -, /usr/bin/cam)
> +endif

Missing qcaml targetinstall stage.


> +
> +	@$(call install_finish, libcamera)
> +
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Clean
> +# ----------------------------------------------------------------------------
> +
> +#$(STATEDIR)/libcamera.clean:
> +#	@$(call targetinfo)
> +#	@$(call clean_pkg, LIBCAMERA)

Default stages could be removed.

Regards,
  Marco

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


  reply	other threads:[~2021-05-03 10:27 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-22 13:48 [ptxdist] [PATCH 1/2] host-system-python3: Add flags for ply, pyyaml, jinja2 Marian Cichy
2021-03-22 13:48 ` [ptxdist] [PATCH 2/2] libcamera: Add package Marian Cichy
2021-05-03 10:27   ` Marco Felsch [this message]
2021-05-03 11:21     ` Marco Felsch

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=20210503102713.5vfpqnab6wrwfyan@pengutronix.de \
    --to=m.felsch@pengutronix.de \
    --cc=m.cichy@pengutronix.de \
    --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