Skip to contentSkip to conversation

gauche: new package

PATCH Superseded Hiroshi Kawashima 2 participants 4 messages Oct 30, 2015 – Oct 31, 2015

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 gauche: new package

Gauche is an R7RS Scheme implementation developed to be a handy script interpriter, which allows programmers and systemadministrators to write small to large scripts for their daily chores. Quick startup, built-in system interface, native multilingual support are some of my goals.

---
Changes v2 -> v3
- add comment to patch file why I touch configure directly instead of configure.ac
Changes v1 -> v2
- change help description to written in project's web page.
- add brief description and SoB in patch file.
- change depens on BR2_TOOLCHAIN_HAS_THREADS -> BR2_TOOLCHAIN_HAS_THREADS_NPTL.
- add brief description why "-std=gnu99" needed in GAUCHE_CONF_ENV.
- add depends on BR2_ARCH_HAS_ATOMICS (Boehm gc need this).
- add # fork() to 'depends on BR2_USE_MMU'.
- remove empty comment line in hash file.
- remove unnecessary GAUCHE_CONF_OPTS.

---
 package/Config.in                       |  1 +
 package/gauche/0001-fix-so-suffix.patch | 18 ++++++++++++++++++
 package/gauche/Config.in                | 18 ++++++++++++++++++
 package/gauche/gauche.hash              |  2 ++
 package/gauche/gauche.mk                | 19 +++++++++++++++++++
 5 files changed, 58 insertions(+)
 create mode 100644 package/gauche/0001-fix-so-suffix.patch
 create mode 100644 package/gauche/Config.in
 create mode 100644 package/gauche/gauche.hash
 create mode 100644 package/gauche/gauche.mk
package/Config.in +1 -0
index 7392363..eb92ead 100644
@@ -459,6 +459,7 @@ menu "Erlang libraries/modules"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
+	source "package/gauche/Config.in"
 	source "package/guile/Config.in"
 	source "package/haserl/Config.in"
 	source "package/jamvm/Config.in"
package/gauche/0001-fix-so-suffix.patch new file +18 -0
new file mode 100644
index 0000000..1d8c2a5
@@ -0,0 +1,18 @@
+With uclibc configuration, $host does not match to '*-linux-gnu-*'.
+I touch configure instead of configure.ac because autoreconf failed
+by version mismatch of autotools.
+
+Signed-off-by: Hiroshi Kawashima <[email protected]>
+
+diff -ur a/configure b/configure
+--- a/configure	2014-07-20 15:15:05.000000000 +0900
++++ b/configure	2015-10-20 21:52:32.791442291 +0900
+@@ -6843,7 +6843,7 @@
+     SHLIB_MAIN_LDFLAGS=""
+     SHLIB_OK=ok
+     ;;
+-  *-linux-gnu*|*-*-gnu*|*freebsd*|*dragonfly*)
++  *-linux-*|*-*-gnu*|*freebsd*|*dragonfly*)
+     SHLIB_SO_CFLAGS="-fPIC"
+     SHLIB_SO_LDFLAGS="$rpath -shared -o"
+     SHLIB_SO_SUFFIX="so"
package/gauche/Config.in new file +18 -0
new file mode 100644
index 0000000..1074bc1
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_GAUCHE
+	bool "gauche"
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_ARCH_HAS_ATOMICS
+	help
+	  Gauche is an R7RS Scheme implementation developed to be a
+	  handy script interpriter, which allows programmers and
+	  systemadministrators to write small to large scripts for their
+	  daily chores. Quick startup, built-in system interface, native
+	  multilingual support are some of my goals.
+
+	  http://practical-scheme.net/gauche/
+
+comment "gauche needs a toolchain w/ NPTL"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
package/gauche/gauche.hash new file +2 -0
new file mode 100644
index 0000000..9ec106a
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 7b18bcd70beaced1e004594be46c8cff95795318f6f5830dd2a8a700410fc149  Gauche-0.9.4.tgz
package/gauche/gauche.mk new file +19 -0
new file mode 100644
index 0000000..39ddfdc
@@ -0,0 +1,19 @@
+################################################################################
+#
+# gauche
+#
+################################################################################
+
+GAUCHE_VERSION = 0.9.4
+GAUCHE_SOURCE = Gauche-$(GAUCHE_VERSION).tgz
+GAUCHE_SITE = http://prdownloads.sourceforge.net/gauche
+GAUCHE_LICENSE = BSD
+GAUCHE_LICENSE_FILES = COPYING
+GAUCHE_DEPENDENCIES = host-gauche
+
+# Checking c99 support in configure fails without WCHAR. But we do not
+# need WCHAR at gauche runtime, so explicitly specify here.
+GAUCHE_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99"
+
+$(eval $(host-autotools-package))
+$(eval $(autotools-package))
Signature · 4 lines
1.9.1

============================================================
    Hiroshi Kawashima
#1 lore raw

PATCH v3 1/1 gauche: new package

Quoted 2 lines · Hiroshi Kawashima

Gauche is an R7RS Scheme implementation developed to be a handy script interpriter, which allows programmers and systemadministrators to write

interpreter

Quoted 2 lines

small to large scripts for their daily chores. Quick startup, built-in system interface, native multilingual support are some of my goals.

my -> its

Same comments for the help text, obviously.

Quoted 48 lines

---
Changes v2 -> v3
- add comment to patch file why I touch configure directly instead of configure.ac
Changes v1 -> v2
- change help description to written in project's web page.
- add brief description and SoB in patch file.
- change depens on BR2_TOOLCHAIN_HAS_THREADS -> BR2_TOOLCHAIN_HAS_THREADS_NPTL.
- add brief description why "-std=gnu99" needed in GAUCHE_CONF_ENV.
- add depends on BR2_ARCH_HAS_ATOMICS (Boehm gc need this).
- add # fork() to 'depends on BR2_USE_MMU'.
- remove empty comment line in hash file.
- remove unnecessary GAUCHE_CONF_OPTS.

---
 package/Config.in                       |  1 +
 package/gauche/0001-fix-so-suffix.patch | 18 ++++++++++++++++++
 package/gauche/Config.in                | 18 ++++++++++++++++++
 package/gauche/gauche.hash              |  2 ++
 package/gauche/gauche.mk                | 19 +++++++++++++++++++
 5 files changed, 58 insertions(+)
 create mode 100644 package/gauche/0001-fix-so-suffix.patch
 create mode 100644 package/gauche/Config.in
 create mode 100644 package/gauche/gauche.hash
 create mode 100644 package/gauche/gauche.mk
package/Config.in +1 -0
index 7392363..eb92ead 100644
@@ -459,6 +459,7 @@ menu "Erlang libraries/modules"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
+	source "package/gauche/Config.in"
 	source "package/guile/Config.in"
 	source "package/haserl/Config.in"
 	source "package/jamvm/Config.in"
package/gauche/0001-fix-so-suffix.patch new file +0 -0
new file mode 100644
index 0000000..1d8c2a5

package/gauche/0001-fix-so-suffix.patch line 1

Quoted 1 line
package/gauche/0001-fix-so-suffix.patch new file +1 -0
@@ -0,0 +1,18 @@
+With uclibc configuration, $host does not match to '*-linux-gnu-*'.

uclibc or musl. Oh, and it's gnu*, not gnu-*, otherwise ARM's gnueabi would
also not match.

package/gauche/0001-fix-so-suffix.patch line 3

Quoted 2 lines
package/gauche/0001-fix-so-suffix.patch new file +2 -0
+I touch configure instead of configure.ac because autoreconf failed
+by version mismatch of autotools.

Then also include the fix for configure.ac in the same patch, and of course
please send the patch upstream so we don't have to carry it forever.

Quoted 53 lines
package/gauche/0001-fix-so-suffix.patch new file +15 -0
+
+Signed-off-by: Hiroshi Kawashima <[email protected]>
+
+diff -ur a/configure b/configure
+--- a/configure	2014-07-20 15:15:05.000000000 +0900
++++ b/configure	2015-10-20 21:52:32.791442291 +0900
+@@ -6843,7 +6843,7 @@
+     SHLIB_MAIN_LDFLAGS=""
+     SHLIB_OK=ok
+     ;;
+-  *-linux-gnu*|*-*-gnu*|*freebsd*|*dragonfly*)
++  *-linux-*|*-*-gnu*|*freebsd*|*dragonfly*)
+     SHLIB_SO_CFLAGS="-fPIC"
+     SHLIB_SO_LDFLAGS="$rpath -shared -o"
+     SHLIB_SO_SUFFIX="so"
package/gauche/Config.in new file +18 -0
new file mode 100644
index 0000000..1074bc1
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_GAUCHE
+	bool "gauche"
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_ARCH_HAS_ATOMICS
+	help
+	  Gauche is an R7RS Scheme implementation developed to be a
+	  handy script interpriter, which allows programmers and
+	  systemadministrators to write small to large scripts for their
+	  daily chores. Quick startup, built-in system interface, native
+	  multilingual support are some of my goals.
+
+	  http://practical-scheme.net/gauche/
+
+comment "gauche needs a toolchain w/ NPTL"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
package/gauche/gauche.hash new file +2 -0
new file mode 100644
index 0000000..9ec106a
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 7b18bcd70beaced1e004594be46c8cff95795318f6f5830dd2a8a700410fc149  Gauche-0.9.4.tgz
package/gauche/gauche.mk new file +0 -0
new file mode 100644
index 0000000..39ddfdc

package/gauche/gauche.mk line 9

Quoted 9 lines
package/gauche/gauche.mk new file +9 -0
@@ -0,0 +1,19 @@
+################################################################################
+#
+# gauche
+#
+################################################################################
+
+GAUCHE_VERSION = 0.9.4
+GAUCHE_SOURCE = Gauche-$(GAUCHE_VERSION).tgz
+GAUCHE_SITE = http://prdownloads.sourceforge.net/gauche

That will lead to the annoying sourceforge redirect page. Instead, point
directly to http://downloads.sourceforge.net/project/gauche/Gauche

package/gauche/gauche.mk line 10

Quoted 1 line
package/gauche/gauche.mk new file +1 -0
+GAUCHE_LICENSE = BSD

BSD doesn't exist, it's BSD-4c, BSD-3c or BSD-2c. In this case, it's BSD-3c.

Also, there's a bunch of other licenses mentioned in COPYING. Many of them are
BSD-3c, one of them is "You may do as you please" so that's included in BSD-3c, and boehm-gc has its own license so call it Boehm-gc (couldn't find it on SPDX). srfi-11.scm has a home-grown license we can call SRFI (also not found on SPDX), and reload.scm has another home-grown license so we'll call it reload license. Are the latter two files actually used (i.e., if you remove them, does it still work)?

In summary, it should be:

GAUCHE_LICENSE = BSD-3c, Boehm-gc, SRFI (srfi-11.scm), reload (reload.scm)

Regards,
Arnout

Quoted 10 lines
package/gauche/gauche.mk new file +9 -0
+GAUCHE_LICENSE_FILES = COPYING
+GAUCHE_DEPENDENCIES = host-gauche
+
+# Checking c99 support in configure fails without WCHAR. But we do not
+# need WCHAR at gauche runtime, so explicitly specify here.
+GAUCHE_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99"
+
+$(eval $(host-autotools-package))
+$(eval $(autotools-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

Dear, Arnout.

Thank you for your comment.

Quoted 5 lines · Arnout Vandecappelle
Quoted 2 lines · Hiroshi Kawashima

Gauche is an R7RS Scheme implementation developed to be a handy script interpriter, which allows programmers and systemadministrators to write

interpreter

Ok.

Quoted 5 lines
Quoted 2 lines

small to large scripts for their daily chores. Quick startup, built-in system interface, native multilingual support are some of my goals.

my -> its
Same comments for the help text, obviously.

Ok.

Quoted 7 lines

package/gauche/0001-fix-so-suffix.patch line 1

Quoted 4 lines
package/gauche/0001-fix-so-suffix.patch new file +1 -0
@@ -0,0 +1,18 @@
+With uclibc configuration, $host does not match to '*-linux-gnu-*'.

uclibc or musl. Oh, and it's gnu*, not gnu-*, otherwise ARM's gnueabi would
also not match.

Ok.

Quoted 5 lines

package/gauche/0001-fix-so-suffix.patch line 3

Quoted 2 lines
package/gauche/0001-fix-so-suffix.patch new file +2 -0
+I touch configure instead of configure.ac because autoreconf failed
+by version mismatch of autotools.

Then also include the fix for configure.ac in the same patch, and of course
please send the patch upstream so we don't have to carry it forever.

Ok, I will.

Quoted 6 lines

package/gauche/0001-fix-so-suffix.patch line 6

Quoted 3 lines
package/gauche/0001-fix-so-suffix.patch new file +3 -0
+GAUCHE_VERSION = 0.9.4
+GAUCHE_SOURCE = Gauche-$(GAUCHE_VERSION).tgz
+GAUCHE_SITE = http://prdownloads.sourceforge.net/gauche

That will lead to the annoying sourceforge redirect page. Instead, point
directly to http://downloads.sourceforge.net/project/gauche/Gauche

Ok.

Quoted 18 lines

package/gauche/0001-fix-so-suffix.patch line 7

Quoted 1 line
package/gauche/0001-fix-so-suffix.patch new file +1 -0
+GAUCHE_LICENSE = BSD

BSD doesn't exist, it's BSD-4c, BSD-3c or BSD-2c. In this case, it's BSD-3c.

Also, there's a bunch of other licenses mentioned in COPYING. Many of them a
re
BSD-3c, one of them is "You may do as you please" so that's included in BSD-3 c,
and boehm-gc has its own license so call it Boehm-gc (couldn't find it on SPD X).
srfi-11.scm has a home-grown license we can call SRFI (also not found on SPDX ),
and reload.scm has another home-grown license so we'll call it reload license .
Are the latter two files actually used (i.e., if you remove them, does it sti ll
work)?

Quoted 3 lines

In summary, it should be:

GAUCHE_LICENSE = BSD-3c, Boehm-gc, SRFI (srfi-11.scm), reload (reload.scm)

Thank you for your investigation.
I will change as yours.

I will send v4 patch later.

Thank you!
Kawashima
============================================================
Hiroshi Kawashima

#3 lore raw

PATCH v3 1/1 gauche: new package

In reply to Arnout Vandecappelle

Dear Arnout.

Ok, I've sent the patch to upstream.

Kawashima

Arnout Vandecappelle writes:
...

Quoted 12 lines

package/gauche/0001-

Quoted 1 line
package/gauche/0001- renamed from package/gauche/0001-fix-so-suffix.patch +0 -0

fix-so-suffix.patch

package/gauche/0001-fix-so-suffix.patch line 1

Quoted 6 lines

new file mode 100644
index 0000000..1d8c2a5

package/gauche/0001-fix-so-suffix.patch new file +1 -0
@@ -0,0 +1,18 @@
+With uclibc configuration, $host does not match to '*-linux-gnu-*'.

uclibc or musl. Oh, and it's gnu*, not gnu-*, otherwise ARM's gnueabi would
also not match.

Quoted 5 lines

package/gauche/0001-fix-so-suffix.patch line 3

Quoted 2 lines
package/gauche/0001-fix-so-suffix.patch new file +2 -0
+I touch configure instead of configure.ac because autoreconf failed
+by version mismatch of autotools.

Then also include the fix for configure.ac in the same patch, and of course
please send the patch upstream so we don't have to carry it forever.

============================================================
Hiroshi Kawashima