All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2,1/2] package/oniguruma: new package
@ 2019-03-20 20:36 Fabrice Fontaine
  2019-03-20 20:36 ` [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency Fabrice Fontaine
  2019-03-31 13:13 ` [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Thomas Petazzoni
  0 siblings, 2 replies; 7+ messages in thread
From: Fabrice Fontaine @ 2019-03-20 20:36 UTC (permalink / raw)
  To: buildroot

Oniguruma is a modern and flexible regular expressions
library. It encompasses features from different regular
expression implementations that traditionally exist in
different languages.

https://github.com/kkos/oniguruma

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 DEVELOPERS                                         |  1 +
 package/Config.in                                  |  1 +
 package/oniguruma/0001-fix-cross-compilation.patch | 61 ++++++++++++++++++++++
 package/oniguruma/Config.in                        |  9 ++++
 package/oniguruma/oniguruma.hash                   |  3 ++
 package/oniguruma/oniguruma.mk                     | 16 ++++++
 6 files changed, 91 insertions(+)
 create mode 100644 package/oniguruma/0001-fix-cross-compilation.patch
 create mode 100644 package/oniguruma/Config.in
 create mode 100644 package/oniguruma/oniguruma.hash
 create mode 100644 package/oniguruma/oniguruma.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index f005a2ff11..bcbf0e08d6 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -817,6 +817,7 @@ F:	package/mongodb/
 F:	package/motion/
 F:	package/mutt/
 F:	package/ncmpc/
+F:	package/oniguruma/
 F:	package/oprofile/
 F:	package/pcmanfm/
 F:	package/python-backcall/
diff --git a/package/Config.in b/package/Config.in
index 7f62d3da64..4dd561e396 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1763,6 +1763,7 @@ menu "Text and terminal handling"
 	source "package/linenoise/Config.in"
 	source "package/ncurses/Config.in"
 	source "package/newt/Config.in"
+	source "package/oniguruma/Config.in"
 	source "package/pcre/Config.in"
 	source "package/pcre2/Config.in"
 	source "package/popt/Config.in"
diff --git a/package/oniguruma/0001-fix-cross-compilation.patch b/package/oniguruma/0001-fix-cross-compilation.patch
new file mode 100644
index 0000000000..9186cfd625
--- /dev/null
+++ b/package/oniguruma/0001-fix-cross-compilation.patch
@@ -0,0 +1,61 @@
+From 39619b1c04640375b2fc2c29991137b741a47976 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Wed, 20 Mar 2019 20:33:11 +0100
+Subject: [PATCH] fix cross-compilation
+
+Don't add -I$(includedir) to CPPFLAGS or cross-compilation will fail on:
+
+libtool: compile: /home/fabrice/buildroot/output/host/bin/m68k-linux-gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+-D_FILE_OFFSET_BITS=64 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-dwarf2-cfi-asm -Wl,-elf2flt -c regparse.c -o regparse.o
+m68k-linux-gcc: ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include'
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: https://github.com/kkos/oniguruma/pull/137]
+---
+ sample/Makefile.am | 2 +-
+ src/Makefile.am    | 2 +-
+ test/Makefile.am   | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sample/Makefile.am b/sample/Makefile.am
+index fd809fa..320afcf 100644
+--- a/sample/Makefile.am
++++ b/sample/Makefile.am
+@@ -4,7 +4,7 @@ lib_onig = ../src/libonig.la
+ LDADD  = $(lib_onig)
+ 
+ AM_LDFLAGS  = -L$(prefix)/lib
+-AM_CPPFLAGS = -I$(top_srcdir)/src -I$(includedir)
++AM_CPPFLAGS = -I$(top_srcdir)/src
+ 
+ TESTS = encode listcap names posix simple sql syntax user_property callout echo count bug_fix
+ 
+diff --git a/src/Makefile.am b/src/Makefile.am
+index ba7807a..1330620 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -2,7 +2,7 @@
+ libname = libonig.la
+ 
+ AM_CFLAGS = -Wall
+-AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir)
++AM_CPPFLAGS = -I$(top_srcdir)
+ 
+ include_HEADERS = oniguruma.h oniggnu.h
+ 
+diff --git a/test/Makefile.am b/test/Makefile.am
+index c623aa3..67b5d1e 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -3,7 +3,7 @@ lib_onig = ../src/libonig.la
+ 
+ AM_LDFLAGS  = -L$(prefix)/lib
+ AM_CFLAGS = -Wall -Wno-invalid-source-encoding
+-AM_CPPFLAGS = -I$(top_srcdir)/src -I$(includedir)
++AM_CPPFLAGS = -I$(top_srcdir)/src
+ 
+ if ENABLE_POSIX_API
+ TESTS = test_utf8 testc testp testcu
+-- 
+2.14.1
+
diff --git a/package/oniguruma/Config.in b/package/oniguruma/Config.in
new file mode 100644
index 0000000000..2e8b41c1d6
--- /dev/null
+++ b/package/oniguruma/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_ONIGURUMA
+	bool "oniguruma"
+	help
+	  Oniguruma is a modern and flexible regular expressions
+	  library. It encompasses features from different regular
+	  expression implementations that traditionally exist in
+	  different languages.
+
+	  https://github.com/kkos/oniguruma
diff --git a/package/oniguruma/oniguruma.hash b/package/oniguruma/oniguruma.hash
new file mode 100644
index 0000000000..4d3392c972
--- /dev/null
+++ b/package/oniguruma/oniguruma.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  733a91e257c20cb17b81596db48fd0fbd2e0074fe922ae4c2bc4fefcec110aae  oniguruma-6.9.1.tar.gz
+sha256  84e55812150474adf4170d4656744dfcc5f260ff7602e447a70bf13c56203e4b  COPYING
diff --git a/package/oniguruma/oniguruma.mk b/package/oniguruma/oniguruma.mk
new file mode 100644
index 0000000000..a3339f8180
--- /dev/null
+++ b/package/oniguruma/oniguruma.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# oniguruma
+#
+################################################################################
+
+ONIGURUMA_VERSION = 6.9.1
+ONIGURUMA_SITE = $(call github,kkos,oniguruma,v$(ONIGURUMA_VERSION))
+ONIGURUMA_LICENSE = BSD-2-Clause
+ONIGURUMA_LICENSE_FILES = COPYING
+# From git
+ONIGURUMA_AUTORECONF = YES
+ONIGURUMA_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency
  2019-03-20 20:36 [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Fabrice Fontaine
@ 2019-03-20 20:36 ` Fabrice Fontaine
  2019-03-31 13:14   ` Thomas Petazzoni
  2019-03-31 13:13 ` [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Thomas Petazzoni
  1 sibling, 1 reply; 7+ messages in thread
From: Fabrice Fontaine @ 2019-03-20 20:36 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2:
 - Always enable oniguruma on host-jq

 package/jq/jq.mk | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/package/jq/jq.mk b/package/jq/jq.mk
index aebe8c86e4..d8cab80c9a 100644
--- a/package/jq/jq.mk
+++ b/package/jq/jq.mk
@@ -17,8 +17,18 @@ JQ_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE"
 HOST_JQ_CONF_ENV += CFLAGS="$(HOST_CFLAGS) -std=c99 -D_GNU_SOURCE"
 
 # jq explicitly enables maintainer mode, which we don't need/want
-JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
-HOST_JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
+JQ_CONF_OPTS += --disable-maintainer-mode
+HOST_JQ_CONF_OPTS += --disable-maintainer-mode
+
+HOST_JQ_CONF_OPTS += --with-oniguruma
+HOST_JQ_DEPENDENCIES += host-oniguruma
+
+ifeq ($(BR2_PACKAGE_ONIGURUMA),y)
+JQ_DEPENDENCIES += oniguruma
+JQ_CONF_OPTS += --with-oniguruma
+else
+JQ_CONF_OPTS += --without-oniguruma
+endif
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2,1/2] package/oniguruma: new package
  2019-03-20 20:36 [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Fabrice Fontaine
  2019-03-20 20:36 ` [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency Fabrice Fontaine
@ 2019-03-31 13:13 ` Thomas Petazzoni
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2019-03-31 13:13 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 20 Mar 2019 21:36:16 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> +libtool: compile: /home/fabrice/buildroot/output/host/bin/m68k-linux-gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> +-D_FILE_OFFSET_BITS=64 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-dwarf2-cfi-asm -Wl,-elf2flt -c regparse.c -o regparse.o
> +m68k-linux-gcc: ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include'

Just a quick comment: reporting this particular error message to
upstream projects doesn't make sense, because it's a special error
message added by the Buildroot toolchain wrapper, i.e it's Buildroot
specific.

When reporting this sort of issues upstream, you should simply say
something like "Adding -I/usr/include when cross-compiling is
incorrect, as /usr/include contains headers for the build system, not
the target system" or something like that.

The rest of the patch looks good to me, but I have some questions on
the second patch.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency
  2019-03-20 20:36 ` [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency Fabrice Fontaine
@ 2019-03-31 13:14   ` Thomas Petazzoni
  2019-03-31 13:27     ` Fabrice Fontaine
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2019-03-31 13:14 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 20 Mar 2019 21:36:17 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

>  # jq explicitly enables maintainer mode, which we don't need/want
> -JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
> -HOST_JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
> +JQ_CONF_OPTS += --disable-maintainer-mode
> +HOST_JQ_CONF_OPTS += --disable-maintainer-mode
> +
> +HOST_JQ_CONF_OPTS += --with-oniguruma
> +HOST_JQ_DEPENDENCIES += host-oniguruma

What decided you to add onigurama as a mandatory dependency for
host-jq ? What feature does it bring ? Do we really need it as a
mandatory dependency ?

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency
  2019-03-31 13:14   ` Thomas Petazzoni
@ 2019-03-31 13:27     ` Fabrice Fontaine
  2019-03-31 13:33       ` Thomas Petazzoni
  0 siblings, 1 reply; 7+ messages in thread
From: Fabrice Fontaine @ 2019-03-31 13:27 UTC (permalink / raw)
  To: buildroot

Hello,

Le dim. 31 mars 2019 ? 15:14, Thomas Petazzoni
<thomas.petazzoni@bootlin.com> a ?crit :
>
> Hello,
>
> On Wed, 20 Mar 2019 21:36:17 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
> >  # jq explicitly enables maintainer mode, which we don't need/want
> > -JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
> > -HOST_JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
> > +JQ_CONF_OPTS += --disable-maintainer-mode
> > +HOST_JQ_CONF_OPTS += --disable-maintainer-mode
> > +
> > +HOST_JQ_CONF_OPTS += --with-oniguruma
> > +HOST_JQ_DEPENDENCIES += host-oniguruma
>
> What decided you to add onigurama as a mandatory dependency for
> host-jq ? What feature does it bring ? Do we really need it as a
> mandatory dependency ?
I decided to keep it because it's enabled by default in upstream but I
can send a v2 without it as no package depends on this feature.
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Best Regards,

Fabrice

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency
  2019-03-31 13:27     ` Fabrice Fontaine
@ 2019-03-31 13:33       ` Thomas Petazzoni
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2019-03-31 13:33 UTC (permalink / raw)
  To: buildroot

On Sun, 31 Mar 2019 15:27:38 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> > What decided you to add onigurama as a mandatory dependency for
> > host-jq ? What feature does it bring ? Do we really need it as a
> > mandatory dependency ?  
> I decided to keep it because it's enabled by default in upstream but I
> can send a v2 without it as no package depends on this feature.

We normally try to keep the dependencies as minimal as possible, so
until we have a use-case for this, I'd prefer to not have this
dependency for the host variant.

This means the onigurama package should only add a target variant.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency
  2019-03-31 15:12 Fabrice Fontaine
@ 2019-03-31 15:12 ` Fabrice Fontaine
  0 siblings, 0 replies; 7+ messages in thread
From: Fabrice Fontaine @ 2019-03-31 15:12 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Thomas Petazzoni):
 - Don't enable oniguruma on host-jq

 package/jq/jq.mk | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/package/jq/jq.mk b/package/jq/jq.mk
index aebe8c86e4..bf96f0cecb 100644
--- a/package/jq/jq.mk
+++ b/package/jq/jq.mk
@@ -17,8 +17,15 @@ JQ_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE"
 HOST_JQ_CONF_ENV += CFLAGS="$(HOST_CFLAGS) -std=c99 -D_GNU_SOURCE"
 
 # jq explicitly enables maintainer mode, which we don't need/want
-JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
+JQ_CONF_OPTS += --disable-maintainer-mode
 HOST_JQ_CONF_OPTS += --disable-maintainer-mode --without-oniguruma
 
+ifeq ($(BR2_PACKAGE_ONIGURUMA),y)
+JQ_DEPENDENCIES += oniguruma
+JQ_CONF_OPTS += --with-oniguruma
+else
+JQ_CONF_OPTS += --without-oniguruma
+endif
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-03-31 15:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-20 20:36 [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Fabrice Fontaine
2019-03-20 20:36 ` [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency Fabrice Fontaine
2019-03-31 13:14   ` Thomas Petazzoni
2019-03-31 13:27     ` Fabrice Fontaine
2019-03-31 13:33       ` Thomas Petazzoni
2019-03-31 13:13 ` [Buildroot] [PATCH v2,1/2] package/oniguruma: new package Thomas Petazzoni
2019-03-31 15:12 Fabrice Fontaine
2019-03-31 15:12 ` [Buildroot] [PATCH v2, 2/2] package/jq: add oniguruma optional dependency Fabrice Fontaine

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.