Add lightweight Zile editor
cover Add lightweight Zile editor
From: Alex Benn?e <[email protected]>
Hi,
The following two patches enable the addition of Zile to the roster of available editors in buildroot. Zile is a lightweight Emacs-a-like implementation. It requires libgc which will also be useful for a number of other packages if they get added to Buildroot. There is nothing especially complex in the build descriptions although libgc requires another source tree (lib_atomic) merging in the build and Zile needs help2man disabling.
Cheers,
--
Alex Benn?e
QEMU/KVM Hacker for Linaro
Alex Benn?e (2):
package/libgc: add Boehm-Demers-Weiser gc library package/zile: add Zile is Lossy Emacs editor
package/Config.in | 2 ++ package/libgc/Config.in | 9 +++++++++ package/libgc/libgc.mk | 23 +++++++++++++++++++++++ package/zile/Config.in | 14 ++++++++++++++ package/zile/remove-help2man.patch | 28 ++++++++++++++++++++++++++++ package/zile/zile.mk | 13 +++++++++++++ 6 files changed, 89 insertions(+) create mode 100644 package/libgc/Config.in create mode 100644 package/libgc/libgc.mk create mode 100644 package/zile/Config.in create mode 100644 package/zile/remove-help2man.patch create mode 100644 package/zile/zile.mk
Signature · 1 line
1.9.1
PATCH 1/2 package/libgc: add Boehm-Demers-Weiser gc library
This is needed for applications like Zile
--- package/Config.in | 1 + package/libgc/Config.in | 9 +++++++++ package/libgc/libgc.mk | 23 +++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 package/libgc/Config.in create mode 100644 package/libgc/libgc.mk
package/Config.in +1 -0
@@ -786,6 +786,7 @@ source "package/libev/Config.in" source "package/libevdev/Config.in" source "package/libevent/Config.in" source "package/libffi/Config.in" +source "package/libgc/Config.in" source "package/libglib2/Config.in" source "package/libical/Config.in" source "package/libnspr/Config.in"
package/libgc/Config.in new file +9 -0
@@ -0,0 +1,9 @@ +config BR2_PACKAGE_LIBGC + bool "libgc" + help + The Boehm-Demers-Weiser conservative garbage collector can be used + as a garbage collecting replacement for C malloc or C++ new. It allows + you to allocate memory basically as you normally would, without + explicitly deallocating memory that is no longer useful. + + http://www.hboehm.info/gc/
package/libgc/libgc.mk new file +23 -0
@@ -0,0 +1,23 @@ +################################################################################ +# +# Boehm-Demers-Weiser's GC +# +################################################################################ + +LIBGC_VERSION = 7.4.0 +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz +LIBGC_SITE = http://www.hboehm.info/gc/gc_source/ +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz +LIBGC_LICENSE = GPLv1+ +LIBGC_LICENSE_FILES = COPYING +LIBGC_INSTALL_STAGING = YES + +define LIBGC_POST_EXTRACT_INC_LIBATOMIC + env + mkdir -p $(@D)/libatomic_ops + tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops +endef + +LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC + +$(eval $(autotools-package))
Signature · 1 line
1.9.1
PATCH 1/2 package/libgc: add Boehm-Demers-Weiser gc library
Alex, Alex, All,
On 2014-04-07 12:00 +0100, Alex Benn?e spake thusly:
Quoted 4 lines
This is needed for applications like Zile
Signed-off-by Alex Benn?e <[email protected]>Signed-off-by Alex Benn?e <[email protected]>
Woot! It's not that often with have a schizophrenic contributor! ;-)
[--SNIP--]
Quoted 6 lines
package/libgc/libgc.mk new file +0
-0
package/libgc/libgc.mk line 8
Quoted 8 lines
package/libgc/libgc.mk new file +8
-0@@ -0,0 +1,23 @@ +################################################################################ +# +# Boehm-Demers-Weiser's GC +# +################################################################################ + +LIBGC_VERSION = 7.4.0 +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz
Use parenthesis when evaluating variables, not curly-braces:
LIBGC_SOURCE = gc-$(LIBGC_VERSION).tar.gz
package/libgc/libgc.mk line 10
Quoted 2 lines
package/libgc/libgc.mk new file +2
-0+LIBGC_SITE = http://www.hboehm.info/gc/gc_source/ +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz
Ditto, parenthesis.
package/libgc/libgc.mk line 16
Quoted 6 lines
package/libgc/libgc.mk new file +6
-0+LIBGC_LICENSE = GPLv1+ +LIBGC_LICENSE_FILES = COPYING +LIBGC_INSTALL_STAGING = YES + +define LIBGC_POST_EXTRACT_INC_LIBATOMIC + env
This is not needed.
package/libgc/libgc.mk line 21
Quoted 5 lines
package/libgc/libgc.mk new file +5
-0+ mkdir -p $(@D)/libatomic_ops + tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops +endef + +LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC
I know this is how upstream suggests building, but I can refrain from finding this really ugly... Yuck! :-(
Anyway: can't use you use something like:
LIBGC_LIBATOMIC_OPS = libatomic_ops-${LIBGC_VERSION}.tar.gz
LIBGC_EXTRA_DOWNLOADS = $(LIBGC_LIBATOMIC_OPS)
define LIBGC_POST_EXTRACT_INC_LIBATOMIC
$(INSTALL) -d -m 0755 $(LSOF_DIR)/libatomic_ops && \
$(call suitable-extractor,$(LIBGC_LIBATOMIC_OPS)) $(DL_DIR)/$(LIBGC_LIBATOMIC_OPS) |\
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(LSOF_DIR)/libatomic_opsi $(TAR_OPTIONS) -
endef
LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMICNote LIBGC_LIBATOMIC_OPS is not strictly required, but I find it cleaner to use, rather than call suitabel-extract on _EXTRA_DOWNLOADS, which is a plual and could contain more than one file. That's purely for aesthetics.
package/libgc/libgc.mk line 23
Quoted 1 line
package/libgc/libgc.mk new file +1
-0+$(eval $(autotools-package))
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 package/libgc: add Boehm-Demers-Weiser gc library
Quoted 9 lines · Yann E. MORIN
Alex, Alex, All,
On 2014-04-07 12:00 +0100, Alex Benn?e spake thusly:
Quoted 4 lines
This is needed for applications like Zile
Signed-off-by Alex Benn?e <[email protected]>Signed-off-by Alex Benn?e <[email protected]>Woot! It's not that often with have a schizophrenic contributor! ;-)
Yeah I blame format-patch for that one!
Quoted 55 lines
[--SNIP--]
Quoted 6 lines
package/libgc/libgc.mk new file +0
-0package/libgc/libgc.mk line 8
Quoted 8 lines
package/libgc/libgc.mk new file +8
-0@@ -0,0 +1,23 @@ +################################################################################ +# +# Boehm-Demers-Weiser's GC +# +################################################################################ + +LIBGC_VERSION = 7.4.0 +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gzUse parenthesis when evaluating variables, not curly-braces:
LIBGC_SOURCE = gc-$(LIBGC_VERSION).tar.gzpackage/libgc/libgc.mk line 10
Quoted 2 lines
package/libgc/libgc.mk new file +2
-0+LIBGC_SITE = http://www.hboehm.info/gc/gc_source/ +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gzDitto, parenthesis.
package/libgc/libgc.mk line 16
Quoted 6 lines
package/libgc/libgc.mk new file +6
-0+LIBGC_LICENSE = GPLv1+ +LIBGC_LICENSE_FILES = COPYING +LIBGC_INSTALL_STAGING = YES + +define LIBGC_POST_EXTRACT_INC_LIBATOMIC + envThis is not needed.
package/libgc/libgc.mk line 21
Quoted 5 lines
package/libgc/libgc.mk new file +5
-0+ mkdir -p $(@D)/libatomic_ops + tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops +endef + +LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMICI know this is how upstream suggests building, but I can refrain from finding this really ugly... Yuck! :-(
Anyway: can't use you use something like:
LIBGC_LIBATOMIC_OPS = libatomic_ops-${LIBGC_VERSION}.tar.gz LIBGC_EXTRA_DOWNLOADS = $(LIBGC_LIBATOMIC_OPS) define LIBGC_POST_EXTRACT_INC_LIBATOMIC $(INSTALL) -d -m 0755 $(LSOF_DIR)/libatomic_ops && \ $(call suitable-extractor,$(LIBGC_LIBATOMIC_OPS)) $(DL_DIR)/$(LIBGC_LIBATOMIC_OPS) |\ $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(LSOF_DIR)/libatomic_opsi $(TAR_OPTIONS) - endef LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC
Quoted 4 lines
Note
LIBGC_LIBATOMIC_OPSis not strictly required, but I find it cleaner to use, rather than call suitabel-extract on_EXTRA_DOWNLOADS, which is a plual and could contain more than one file. That's purely for aesthetics.
I'll look at using the buildroot defined one.
Quoted 5 lines
package/libgc/libgc.mk line 23
Quoted 2 lines
package/libgc/libgc.mk new file +1
-0+$(eval $(autotools-package))Regards,
Yann E. MORIN.
Signature · 1 line
Alex Benn?e
PATCH 1/2 package/libgc: add Boehm-Demers-Weiser gc library
In reply to Alex BennéeDear Alex Benn?e,
Quoted 6 lines · Alex Benn?e
package/libgc/Config.in new file +0
-0
package/libgc/Config.in line 9
Quoted 9 lines
package/libgc/Config.in new file +9
-0@@ -0,0 +1,9 @@ +config BR2_PACKAGE_LIBGC + bool "libgc" + help + The Boehm-Demers-Weiser conservative garbage collector can be used + as a garbage collecting replacement for C malloc or C++ new. It allows + you to allocate memory basically as you normally would, without + explicitly deallocating memory that is no longer useful. + + http://www.hboehm.info/gc/
Indentation for the help text should be one tab + two spaces.
package/libgc/Config.in
Quoted 3 lines
package/libgc/Config.in new file +3
-0+################################################################################ +# +# Boehm-Demers-Weiser's GC
We normally just want the package name here, i.e the same as the directory name.
Quoted 6 lines
package/libgc/Config.in new file +6
-0+# +################################################################################ + +LIBGC_VERSION = 7.4.0 +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz +LIBGC_SITE = http://www.hboehm.info/gc/gc_source/
package/libgc/Config.in
Quoted 10 lines
package/libgc/Config.in new file +10
-0+LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz +LIBGC_LICENSE = GPLv1+ +LIBGC_LICENSE_FILES = COPYING +LIBGC_INSTALL_STAGING = YES + +define LIBGC_POST_EXTRACT_INC_LIBATOMIC + env + mkdir -p $(@D)/libatomic_ops + tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops +endef
We have a libatomic_ops package in Buildroot. Wouldn't it be possible to use it instead?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/2 package/zile: add Zile is Lossy Emacs editor
In reply to Alex BennéeThis is a lightweight Emacs clone useful for embedded systems. I nabbed the help2man disable patch from OpenEmbedded.
--- package/Config.in | 1 + package/zile/Config.in | 14 ++++++++++++++ package/zile/remove-help2man.patch | 28 ++++++++++++++++++++++++++++ package/zile/zile.mk | 13 +++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 package/zile/Config.in create mode 100644 package/zile/remove-help2man.patch create mode 100644 package/zile/zile.mk
package/Config.in +1 -0
@@ -1115,6 +1115,7 @@ source "package/uemacs/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/vim/Config.in" endif +source "package/zile/Config.in" endmenu endmenu
package/zile/Config.in new file +14 -0
@@ -0,0 +1,14 @@ +config BR2_PACKAGE_ZILE + bool "zile" + select BR2_PACKAGE_LIBGC + depends on BR2_USE_MMU # fork() + help + Zile is Lossy Emacs + + GNU Zile (Zile Is Lossy Emacs) is a lightweight Emacs clone. Every + Emacs user should feel at home with Zile. Zile is aimed at small + footprint systems (a typical binary is about 100Kb) and quick editing + sessions (it starts up and shuts down instantly). + + http://www.gnu.org/software/zile/ +
package/zile/remove-help2man.patch new file +28 -0
@@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [configuration] + +diff --git a/Makefile.am b/Makefile.am +index 54bc59f..46c2650 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -36,7 +36,6 @@ PERL_BUILDTIME = \ + + EXTRA_DIST = \ + FAQ \ +- build-aux/zile-help2man-wrapper \ + $(PERL_BUILDTIME) + + doc_DATA = AUTHORS FAQ NEWS +diff --git a/doc/Makefile.am b/doc/Makefile.am +index 639f59c..8c5123e 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -33,9 +33,3 @@ doc/zile.1: $(srcdir)/doc/zile.1.in doc/Makefile.am config.status + $(edit) $(abs_srcdir)/doc/zile.1.in >[email protected] + mv [email protected] $@ + +-$(srcdir)/doc/zile.1.in: doc/man-extras build-aux/zile-help2man-wrapper configure.ac $(builddir)/src/zile$(EXEEXT) +- @test -d doc || mkdir doc +-## Exit gracefully if zile.1.in is not writeable, such as during distcheck! +- $(AM_V_GEN)if ( touch [email protected] && rm -f [email protected]; ) >/dev/null 2>&1; then \ +- $(srcdir)/build-aux/missing --run $(HELP2MAN) --output=$@ --no-info --name="Zile Is Lossy Emacs" --include $(srcdir)/doc/man-extras $(srcdir)/build-aux/zile-help2man-wrapper; \ +- fi
package/zile/zile.mk new file +13 -0
@@ -0,0 +1,13 @@ +################################################################################ +# +# Zile +# +################################################################################ + +ZILE_VERSION = 2.4.11 +ZILE_SITE = http://ftp.gnu.org/gnu/zile/ +ZILE_LICENSE = GPLv1+ +ZILE_LICENSE_FILES = COPYING +ZILE_CONF_OPT += --without-help2man + +$(eval $(autotools-package))
Signature · 1 line
1.9.1
PATCH 2/2 package/zile: add Zile is Lossy Emacs editor
Alex, All,
On 2014-04-07 12:00 +0100, Alex Benn?e spake thusly:
Quoted 2 lines
This is a lightweight Emacs clone useful for embedded systems. I nabbed the help2man disable patch from OpenEmbedded.
[--SNIP--]
Quoted 9 lines
package/zile/Config.in new file +3
-0@@ -0,0 +1,14 @@ +config BR2_PACKAGE_ZILE + bool "zile" + select BR2_PACKAGE_LIBGC
package/zile/Config.in line 13
Quoted 10 lines
package/zile/Config.in new file +10
-0+ depends on BR2_USE_MMU # fork() + help + Zile is Lossy Emacs + + GNU Zile (Zile Is Lossy Emacs) is a lightweight Emacs clone. Every + Emacs user should feel at home with Zile. Zile is aimed at small + footprint systems (a typical binary is about 100Kb) and quick editing + sessions (it starts up and shuts down instantly). + + http://www.gnu.org/software/zile/
There is space damage above:
- use one tab in front of options parameters (type, select, depends...)
- use one tab and two spaces in front of the help text
The above mixes spaces and tabs.
package/zile/remove-help2man.patch line 1
Quoted 7 lines
package/zile/remove-help2man.patch new file +1
-0@@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [configuration]
Please add a complete commit log, and your SoB lines too, in this patch.
Could you also add a pointer to the upstream refusal (bug -tracker or ML archive), please?
Quoted 7 lines
package/zile/zile.mk new file +1
-0@@ -0,0 +1,13 @@ +################################################################################
package/zile/zile.mk line 11
Quoted 10 lines
package/zile/zile.mk new file +10
-0+# +# Zile +# +################################################################################ + +ZILE_VERSION = 2.4.11 +ZILE_SITE = http://ftp.gnu.org/gnu/zile/ +ZILE_LICENSE = GPLv1+ +ZILE_LICENSE_FILES = COPYING +ZILE_CONF_OPT += --without-help2man
In the previous patch, you added libgc, stating that it was a dependency of Zile, but you forgot to add it here.
Probably it is working for you since libgz sorts alphabetically before zile, but that's not guaranteed with parallel builds.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 2/2 package/zile: add Zile is Lossy Emacs editor
Quoted 3 lines · Yann E. MORIN
Alex, All,
On 2014-04-07 12:00 +0100, Alex Benn?e spake thusly:
<snip>
Quoted 7 lines
package/zile/Config.in line 13
Quoted 1 line
package/zile/Config.in new file +1
-0+ http://www.gnu.org/software/zile/There is space damage above:
- use one tab in front of options parameters (type, select, depends...)
- use one tab and two spaces in front of the help textThe above mixes spaces and tabs.
I'll get that cleaned up
Quoted 10 lines
package/zile/remove-help2man.patch line 1
Quoted 7 lines
package/zile/remove-help2man.patch new file +1
-0@@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [configuration]Please add a complete commit log, and your SoB lines too, in this patch.
Quoted 2 lines
Could you also add a pointer to the upstream refusal (bug -tracker or ML archive), please?
I'll see if I can find it.
Quoted 13 lines
Quoted 13 lines
package/zile/zile.mk new file +6
-0@@ -0,0 +1,13 @@ +################################################################################ +# +# Zile +# +################################################################################ +
Quoted 8 lines
package/zile/zile.mk line 11
Quoted 5 lines
package/zile/zile.mk new file +5
-0+ZILE_VERSION = 2.4.11 +ZILE_SITE = http://ftp.gnu.org/gnu/zile/ +ZILE_LICENSE = GPLv1+ +ZILE_LICENSE_FILES = COPYING +ZILE_CONF_OPT += --without-help2manIn the previous patch, you added libgc, stating that it was a dependency of Zile, but you forgot to add it here.
Ahh I thought it was enforced by the Config.in select but of course you need to ensure it's built as well. I'll fix that up.
Quoted 6 lines
Probably it is working for you since libgz sorts alphabetically before zile, but that's not guaranteed with parallel builds.
Regards,
Yann E. MORIN.
Signature · 1 line
Alex Benn?e
PATCH 2/2 package/zile: add Zile is Lossy Emacs editor
Alex, All,
On 2014-04-08 11:19 +0100, Alex Benn?e spake thusly:
Quoted 1 line
Yann E. MORIN <[email protected]> writes:
[--SNIP--]
Quoted 21 lines
Quoted 12 lines
Quoted 12 lines
package/zile/zile.mk new file +6
-0@@ -0,0 +1,13 @@ +################################################################################ +# +# Zile +# +################################################################################ +Quoted 8 lines
package/zile/zile.mk line 11
Quoted 5 lines
package/zile/zile.mk new file +5
-0+ZILE_VERSION = 2.4.11 +ZILE_SITE = http://ftp.gnu.org/gnu/zile/ +ZILE_LICENSE = GPLv1+ +ZILE_LICENSE_FILES = COPYING +ZILE_CONF_OPT += --without-help2manIn the previous patch, you added libgc, stating that it was a dependency of Zile, but you forgot to add it here.
Quoted 2 lines
Ahh I thought it was enforced by the Config.in select but of course you need to ensure it's built as well. I'll fix that up.
THere are two types of dependencies:
- build-time dependencies, and
- run-time dependencies.
The run-time dependencies (eg. I need *that* program to be present) are handled purely in the Config.in.
The build-time dependencies (eg. I need to link to *that* library) are handled both in Config.in and the .mk.
The dependencies in Config.in will ensure that the package is present in the target, while the dependencies in the .mk guarantee the build order.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'