From patchwork Sat Jul 5 21:07:40 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ezequiel Garcia X-Patchwork-Id: 367351 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 68ECE140095 for ; Sun, 6 Jul 2014 07:08:49 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 9AECB85B4C; Sat, 5 Jul 2014 21:08:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uwhSzdk5vAHF; Sat, 5 Jul 2014 21:08:46 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 3D1FB87FB0; Sat, 5 Jul 2014 21:08:46 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C1E2D1BFA6A for ; Sat, 5 Jul 2014 21:08:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id BDADE89F5E for ; Sat, 5 Jul 2014 21:08:44 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id X+ONIFswhToa for ; Sat, 5 Jul 2014 21:08:43 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-yk0-f175.google.com (mail-yk0-f175.google.com [209.85.160.175]) by whitealder.osuosl.org (Postfix) with ESMTPS id 0FD8C898B7 for ; Sat, 5 Jul 2014 21:08:42 +0000 (UTC) Received: by mail-yk0-f175.google.com with SMTP id 9so1122226ykp.20 for ; Sat, 05 Jul 2014 14:08:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=6Dq6xCjyvhU2rgyL20runD8LdOd61knOwZ+RleLn+04=; b=gF4bhN4BGUaeorPW3OUVQrOUaEKwFCQNvV3ZXn5iNG8DrNOtH5N1ES/19a4RtNn5DN SNQuwqEzS/6JmFh+PRIEPui3Oh3myWhrzrj/z8fr0W64SxDqM0qajBMspmgqTAX+vTSV peCfhr4LsEjUokSLeH0zHKL46MNmeKT1ONhshinCDpeFvyJJF5cqf4M1Oe4Mpyid/zLE 4mFiY1dP1T9eQsCPgTMvwtyBlu6MhwNZ60i3EWyFyQDKDAqqRFOBWRk7a8psexvIePdI /lmE7ei9m3PWj/p7aKIVgMqcQSvbUg5kHLN2TXGiIj4Mx7laMYOIKNCxeg1+CfDy6NMA Yq6A== X-Gm-Message-State: ALoCoQk65Dlj76/tdCQow5+z4muCpFjqo4XFd2NjAtZkRV68GxqIt9tUcSBIBdBa+XKC4G4AfA6D X-Received: by 10.236.23.163 with SMTP id v23mr28332329yhv.58.1404594521589; Sat, 05 Jul 2014 14:08:41 -0700 (PDT) Received: from localhost.localdomain ([190.2.108.113]) by mx.google.com with ESMTPSA id c47sm54328917yhh.49.2014.07.05.14.08.39 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 05 Jul 2014 14:08:41 -0700 (PDT) From: Ezequiel Garcia To: Date: Sat, 5 Jul 2014 18:07:40 -0300 Message-Id: <1404594460-17564-1-git-send-email-ezequiel@vanguardiasur.com.ar> X-Mailer: git-send-email 1.9.1 Cc: Thomas Petazzoni Subject: [Buildroot] [PATCH v2] libv4l: Bump version to 1.0.1 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Quite some work has been done from 0.8.3 to 1.0.1, and as a result this commit is very intrusive. The biggest change is the move to an autotools package. Then, the options that enable utilities individually have been deprecated and moved to Config.in.legacy. Instead, we introduce new option to select either all the utilities. This change loses granularity in favor of maintainability. Signed-off-by: Ezequiel Garcia --- Changes from v1: * Addressed Thomas' comments: removed the JPEG option and fixed the menu comment. Changes from RFC v1: * Moved to PATCH as suggested by Thomas * Added a required dependency on toolchain C++ support * Added support to enable/disable JPEG support * Changed packages description based on v4l-utils.spec Config.in.legacy | 40 ++++++++++++++ package/libv4l/Config.in | 62 +++++----------------- ...1-fixup-lfs-mismatch-in-preload-libraries.patch | 44 +++++++++++++++ package/libv4l/libv4l-01-largefile.patch | 39 -------------- .../libv4l-02-use-openat-when-available.patch | 34 ------------ package/libv4l/libv4l.mk | 46 ++++++---------- 6 files changed, 113 insertions(+), 152 deletions(-) create mode 100644 package/libv4l/libv4l-0001-fixup-lfs-mismatch-in-preload-libraries.patch delete mode 100644 package/libv4l/libv4l-01-largefile.patch delete mode 100644 package/libv4l/libv4l-02-use-openat-when-available.patch diff --git a/Config.in.legacy b/Config.in.legacy index a2c7846..dc93f86 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -128,6 +128,46 @@ config BR2_PACKAGE_PROCPS help The procps package has been replaced by the equivalent procps-ng. +config BR2_PACKAGE_LIBV4L_DECODE_TM6000 + bool "decode_tm6000" + select BR2_PACKAGE_LIBV4L_UTILS + select BR2_LEGACY + help + This libv4l option has been deprecated and replaced by a single + option to build all the libv4l utilities. + +config BR2_PACKAGE_LIBV4L_IR_KEYTABLE + bool "ir-keytable" + select BR2_PACKAGE_LIBV4L_UTILS + select BR2_LEGACY + help + This libv4l option has been deprecated and replaced by a single + option to build all the libv4l utilities. + +config BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE + bool "v4l2-compliance" + select BR2_PACKAGE_LIBV4L_UTILS + select BR2_LEGACY + help + This libv4l option has been deprecated and replaced by a single + option to build all the libv4l utilities. + +config BR2_PACKAGE_LIBV4L_V4L2_CTL + bool "v4l2-ctl" + select BR2_PACKAGE_LIBV4L_UTILS + select BR2_LEGACY + help + This libv4l option has been deprecated and replaced by a single + option to build all the libv4l utilities. + +config BR2_PACKAGE_LIBV4L_V4L2_DBG + bool "v4l2-dbg" + select BR2_PACKAGE_LIBV4L_UTILS + select BR2_LEGACY + help + This libv4l option has been deprecated and replaced by a single + option to build all the libv4l utilities. + ############################################################################### comment "Legacy options removed in 2014.05" diff --git a/package/libv4l/Config.in b/package/libv4l/Config.in index 2c9a919..0106ba4 100644 --- a/package/libv4l/Config.in +++ b/package/libv4l/Config.in @@ -3,63 +3,29 @@ config BR2_PACKAGE_LIBV4L depends on BR2_LARGEFILE depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_JPEG + depends on BR2_INSTALL_LIBSTDCPP help - libv4l is an accompanying collection of libraries that adds a thin - abstraction layer on top of video4linux2 (V4L2) devices. + libv4l is a collection of libraries which adds a thin abstraction + layer on top of video4linux2 devices. libv4l consists of 3 different + libraries: libv4lconvert, libv4l1 and libv4l2. http://freshmeat.net/projects/libv4l if BR2_PACKAGE_LIBV4L -config BR2_PACKAGE_LIBV4L_DECODE_TM6000 - bool "decode_tm6000" - depends on BR2_TOOLCHAIN_USES_GLIBC - help - Tool to decode tm6000 proprietary format streams - -comment "decode_tm6000 needs an (e)glibc toolchain" - depends on !BR2_TOOLCHAIN_USES_GLIBC - -config BR2_PACKAGE_LIBV4L_IR_KEYTABLE - bool "ir-keytable" - depends on BR2_TOOLCHAIN_USES_GLIBC - help - Tool to alter keymaps of Remote Controller devices - -comment "ir-keytable needs an (e)glibc toolchain" - depends on !BR2_TOOLCHAIN_USES_GLIBC - -config BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE - bool "v4l2-compliance" - depends on BR2_INSTALL_LIBSTDCPP - help - Tool to test v4l2 API compliance of drivers - -comment "v4l2-compliance needs a toolchain w/ C++" - depends on !BR2_INSTALL_LIBSTDCPP - -config BR2_PACKAGE_LIBV4L_V4L2_CTL - bool "v4l2-ctl" - depends on BR2_INSTALL_LIBSTDCPP - default y - help - Tool to configure v4l2 controls from the cmdline - -comment "v4l2-ctl needs a toolchain w/ C++" - depends on !BR2_INSTALL_LIBSTDCPP +comment "libv4l JPEG support not enabled" + depends on !BR2_PACKAGE_JPEG -config BR2_PACKAGE_LIBV4L_V4L2_DBG - bool "v4l2-dbg" - depends on BR2_INSTALL_LIBSTDCPP +config BR2_PACKAGE_LIBV4L_UTILS + bool "v4l-utils tools" help - Tool to directly get and set registers of v4l2 devices - -comment "v4l2-dbg needs a toolchain w/ C++" - depends on !BR2_INSTALL_LIBSTDCPP + v4l-utils is a collection of various video4linux and DVB utilities. + Enable this if you want to build the following tools: + cx18-ctl, ir-keytable, ivtv-ctl, v4l2-ctl, v4l2-sysfs-path and + others. endif -comment "libv4l needs a toolchain w/ largefile, threads" - depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS +comment "libv4l needs a toolchain w/ largefile, threads and C++" + depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU diff --git a/package/libv4l/libv4l-0001-fixup-lfs-mismatch-in-preload-libraries.patch b/package/libv4l/libv4l-0001-fixup-lfs-mismatch-in-preload-libraries.patch new file mode 100644 index 0000000..f23eb7a --- /dev/null +++ b/package/libv4l/libv4l-0001-fixup-lfs-mismatch-in-preload-libraries.patch @@ -0,0 +1,44 @@ +From e5952b043a71fe83fbc392e498e8f77774fca0d8 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +Date: Sat, 28 Jun 2014 09:32:53 -0300 +Subject: [PATCH] fixup lfs mismatch in preload libraries + +Ensure that the lfs variants are not transparently used instead of the !lfs +ones so both can be wrapped, independently of any custom CFLAGS/CPPFLAGS. + +Signed-off-by: Peter Korsgaard +--- + lib/libv4l1/v4l1compat.c | 3 +++ + lib/libv4l2/v4l2convert.c | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/lib/libv4l1/v4l1compat.c b/lib/libv4l1/v4l1compat.c +index e328288..70eb74f 100644 +--- a/lib/libv4l1/v4l1compat.c ++++ b/lib/libv4l1/v4l1compat.c +@@ -19,6 +19,9 @@ + # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + */ + ++/* ensure we see *64 variants and they aren't transparently used */ ++#undef _LARGEFILE_SOURCE ++#undef _FILE_OFFSET_BITS + #define _LARGEFILE64_SOURCE 1 + + #include +diff --git a/lib/libv4l2/v4l2convert.c b/lib/libv4l2/v4l2convert.c +index 9b46ab8..bc41056 100644 +--- a/lib/libv4l2/v4l2convert.c ++++ b/lib/libv4l2/v4l2convert.c +@@ -23,6 +23,9 @@ + /* prevent GCC 4.7 inlining error */ + #undef _FORTIFY_SOURCE + ++/* ensure we see *64 variants and they aren't transparently used */ ++#undef _LARGEFILE_SOURCE ++#undef _FILE_OFFSET_BITS + #define _LARGEFILE64_SOURCE 1 + + #include +-- +1.9.1 diff --git a/package/libv4l/libv4l-01-largefile.patch b/package/libv4l/libv4l-01-largefile.patch deleted file mode 100644 index 9df8652..0000000 --- a/package/libv4l/libv4l-01-largefile.patch +++ /dev/null @@ -1,39 +0,0 @@ -[PATCH] fixup lfs mismatch in preload libraries - -Ensure that the lfs variants are not transparently used instead of the !lfs -ones so both can be wrapped, independently of any custom CFLAGS/CPPFLAGS. - -Signed-off-by: Peter Korsgaard ---- - lib/libv4l1/v4l1compat.c | 3 +++ - lib/libv4l2/v4l2convert.c | 3 +++ - 2 files changed, 6 insertions(+) - -Index: v4l-utils-0.8.5/lib/libv4l1/v4l1compat.c -=================================================================== ---- v4l-utils-0.8.5.orig/lib/libv4l1/v4l1compat.c -+++ v4l-utils-0.8.5/lib/libv4l1/v4l1compat.c -@@ -19,6 +19,9 @@ - # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA - */ - -+/* ensure we see *64 variants and they aren't transparently used */ -+#undef _LARGEFILE_SOURCE -+#undef _FILE_OFFSET_BITS - #define _LARGEFILE64_SOURCE 1 - - #include -Index: v4l-utils-0.8.5/lib/libv4l2/v4l2convert.c -=================================================================== ---- v4l-utils-0.8.5.orig/lib/libv4l2/v4l2convert.c -+++ v4l-utils-0.8.5/lib/libv4l2/v4l2convert.c -@@ -20,6 +20,9 @@ - # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA - */ - -+/* ensure we see *64 variants and they aren't transparently used */ -+#undef _LARGEFILE_SOURCE -+#undef _FILE_OFFSET_BITS - #define _LARGEFILE64_SOURCE 1 - - #include diff --git a/package/libv4l/libv4l-02-use-openat-when-available.patch b/package/libv4l/libv4l-02-use-openat-when-available.patch deleted file mode 100644 index 756733e..0000000 --- a/package/libv4l/libv4l-02-use-openat-when-available.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Riku Voipio -Date: Tue, 22 Jan 2013 15:37:22 +0000 (-0300) -Subject: v4l-utils: use openat when available -X-Git-Tag: v4l-utils-0.9.4~61 -X-Git-Url: http://git.linuxtv.org - -v4l-utils: use openat when available - -New architectures such as 64-Bit arm build kernels without legacy -system calls - Such as the the no-at system calls. Thus, use -SYS_openat whenever it is available. - -Signed-off-by: Riku Voipio -Signed-off-by: Mauro Carvalho Chehab ---- - -diff --git a/lib/libv4lconvert/libv4lsyscall-priv.h b/lib/libv4lconvert/libv4lsyscall-priv.h -index 2dac49a..cdd38bc 100644 ---- a/lib/libv4lconvert/libv4lsyscall-priv.h -+++ b/lib/libv4lconvert/libv4lsyscall-priv.h -@@ -72,8 +72,13 @@ typedef off_t __off_t; - - #ifndef CONFIG_SYS_WRAPPER - -+#ifdef SYS_openat -+#define SYS_OPEN(file, oflag, mode) \ -+ syscall(SYS_openat, AT_FDCWD, (const char *)(file), (int)(oflag), (mode_t)(mode)) -+#else - #define SYS_OPEN(file, oflag, mode) \ - syscall(SYS_open, (const char *)(file), (int)(oflag), (mode_t)(mode)) -+#endif - #define SYS_CLOSE(fd) \ - syscall(SYS_close, (int)(fd)) - #define SYS_IOCTL(fd, cmd, arg) \ diff --git a/package/libv4l/libv4l.mk b/package/libv4l/libv4l.mk index 684f0ec..b829d91 100644 --- a/package/libv4l/libv4l.mk +++ b/package/libv4l/libv4l.mk @@ -4,42 +4,26 @@ # ################################################################################ -LIBV4L_VERSION = 0.8.9 +LIBV4L_VERSION = 1.0.1 LIBV4L_SOURCE = v4l-utils-$(LIBV4L_VERSION).tar.bz2 LIBV4L_SITE = http://linuxtv.org/downloads/v4l-utils/ LIBV4L_INSTALL_STAGING = YES -LIBV4L_MAKE_OPTS = PREFIX=/usr -LIBV4L_DEPENDENCIES = jpeg -LIBV4L_LICENSE = GPLv2+ (utilities), LGPLv2.1+ (libraries) -LIBV4L_LICENSE_FILES = COPYING COPYING.LIB lib/libv4l1/libv4l1-kernelcode-license.txt -LIBV4L_DIRS_y += lib -LIBV4L_DIRS_$(BR2_PACKAGE_LIBV4L_DECODE_TM6000) += utils/libv4l2util utils/decode_tm6000 -LIBV4L_DIRS_$(BR2_PACKAGE_LIBV4L_IR_KEYTABLE) += utils/keytable -LIBV4L_DIRS_$(BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE) += utils/v4l2-compliance -LIBV4L_DIRS_$(BR2_PACKAGE_LIBV4L_V4L2_CTL) += utils/v4l2-ctl -LIBV4L_DIRS_$(BR2_PACKAGE_LIBV4L_V4L2_DBG) += utils/v4l2-dbg +# v4l-utils components have different licences, see v4l-utils.spec for details +LIBV4L_LICENSE = GPLv2+ (utilities), LGPLv2.1+ (libraries) +LIBV4L_LICENSE_FILES = COPYING COPYING.libv4l lib/libv4l1/libv4l1-kernelcode-license.txt -ifeq ($(BR2_PREFER_STATIC_LIB),y) - LIBV4L_MAKE_OPTS += LINKTYPE=static +ifeq ($(BR2_PACKAGE_JPEG),y) +LIBV4L_DEPENDENCIES += jpeg +LIBV4L_CONF_OPT += --with-jpeg +else +LIBV4L_CONF_OPT += --without-jpeg endif -define LIBV4L_BUILD_CMDS - for i in $(LIBV4L_DIRS_y); do \ - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)/$$i \ - $(LIBV4L_MAKE_OPTS) || exit 1 ; done -endef - -define LIBV4L_INSTALL_STAGING_CMDS - for i in $(LIBV4L_DIRS_y); do \ - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)/$$i \ - DESTDIR=$(STAGING_DIR) $(LIBV4L_MAKE_OPTS) install || exit 1; done -endef - -define LIBV4L_INSTALL_TARGET_CMDS - for i in $(LIBV4L_DIRS_y); do \ - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)/$$i \ - DESTDIR=$(TARGET_DIR) $(LIBV4L_MAKE_OPTS) install || exit 1; done -endef +ifeq ($(BR2_PACKAGE_LIBV4L_UTILS),y) +LIBV4L_CONF_OPT += --enable-v4l-utils +else +LIBV4L_CONF_OPT += --disable-v4l-utils +endif -$(eval $(generic-package)) +$(eval $(autotools-package))