diff mbox

[v3] package/zile: add Zile is Lossy Emacs editor

Message ID 1397737179-12262-2-git-send-email-alex.bennee@linaro.org
State Changes Requested
Headers show

Commit Message

Alex Bennée April 17, 2014, 12:19 p.m. UTC
This is a lightweight Emacs clone useful for embedded systems. I nabbed
the help2man disable patch from OpenEmbedded.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2 - review comments
- fixup dependancies
- add s-o-b tag to patch
- fix whitespace

v3
- fix typo for DEPENDENCIES
- force AUTORECONF
- remove +=
- use BR2_GNU_MIRROR
- rename patch to zile-0001-remove-help2man.patch
---
 package/Config.in                            |  1 +
 package/zile/Config.in                       | 13 ++++++++++++
 package/zile/zile-0001-remove-help2man.patch | 30 ++++++++++++++++++++++++++++
 package/zile/zile.mk                         | 15 ++++++++++++++
 4 files changed, 59 insertions(+)
 create mode 100644 package/zile/Config.in
 create mode 100644 package/zile/zile-0001-remove-help2man.patch
 create mode 100644 package/zile/zile.mk

Comments

Jerzy Grzegorek April 17, 2014, 6:23 p.m. UTC | #1
Hi Alex,

> This is a lightweight Emacs clone useful for embedded systems. I nabbed
> the help2man disable patch from OpenEmbedded.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
> ---
> v2 - review comments
> - fixup dependancies
> - add s-o-b tag to patch
> - fix whitespace
>
> v3
> - fix typo for DEPENDENCIES
> - force AUTORECONF
> - remove +=
> - use BR2_GNU_MIRROR
> - rename patch to zile-0001-remove-help2man.patch
> ---
>   package/Config.in                            |  1 +
>   package/zile/Config.in                       | 13 ++++++++++++
>   package/zile/zile-0001-remove-help2man.patch | 30 ++++++++++++++++++++++++++++
>   package/zile/zile.mk                         | 15 ++++++++++++++
>   4 files changed, 59 insertions(+)
>   create mode 100644 package/zile/Config.in
>   create mode 100644 package/zile/zile-0001-remove-help2man.patch
>   create mode 100644 package/zile/zile.mk
>

[...]

> diff --git a/package/zile/zile.mk b/package/zile/zile.mk
> new file mode 100644
> index 0000000..07226c6
> --- /dev/null
> +++ b/package/zile/zile.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# Zile

Here you should use only lower-case.

Regards,
Jerzy

> +#
> +################################################################################
> +
> +ZILE_VERSION = 2.4.11
> +ZILE_SITE = $(BR2_GNU_MIRROR)/zile
> +ZILE_LICENSE = GPLv1+
> +ZILE_LICENSE_FILES = COPYING
> +ZILE_AUTORECONF = YES
> +ZILE_CONF_OPT = --without-help2man
> +ZILE_DEPENDENCIES = libgc
> +
> +$(eval $(autotools-package))
Thomas Petazzoni April 17, 2014, 8:14 p.m. UTC | #2
Dear Alex Bennée,

On Thu, 17 Apr 2014 13:19:39 +0100, Alex Bennée wrote:
> This is a lightweight Emacs clone useful for embedded systems. I nabbed
> the help2man disable patch from OpenEmbedded.

There are unfortunately a few things still not good here.

> diff --git a/package/zile/Config.in b/package/zile/Config.in
> new file mode 100644
> index 0000000..163b44d
> --- /dev/null
> +++ b/package/zile/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_ZILE
> +	bool "zile"
> +	select BR2_PACKAGE_LIBGC
> +	depends on BR2_USE_MMU # fork()

You need to replicate the dependencies of BR2_PACKAGE_LIBGC here.

Also, when testing your package, it failed because ncurses was not
available, so I had to add ncurses as a dependency here.

This actually leads me to wonder if you actually tested this stuff. How
would it be possible to miss the ncurses dependency?

Also, some of the configure messages need some investigation:

configure: WARNING: libacl development library was not found or not
usable. configure: WARNING: Zile will be built without ACL support.

 => this probably means that an optional dependency on BR2_PACKAGE_ACL,
 with a --enable-acl / --disable-acl as appropriate

checking whether btowc is declared without a macro... yes
checking whether wctob is declared without a macro... yes
checking whether mbsinit is declared without a macro... yes

 => this smells like a dependency on wide-char support. Can you test
 your package with a toolchain that does not have wide char support,
 such as
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-basic.config.

checking for emacs... /usr/bin/emacs
checking Emacs version 24.3.50.1 >= 23.1... yes

 => is it normal that it references my host emacs? what is this used
 for?


> diff --git a/package/zile/zile-0001-remove-help2man.patch b/package/zile/zile-0001-remove-help2man.patch
> new file mode 100644
> index 0000000..d397543
> --- /dev/null
> +++ b/package/zile/zile-0001-remove-help2man.patch
> @@ -0,0 +1,30 @@
> +Upstream-Status: Inappropriate [configuration]
> +
> +Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Since you're passing --without-help2man, why is this patch useful?

> diff --git a/package/zile/zile.mk b/package/zile/zile.mk
> new file mode 100644
> index 0000000..07226c6
> --- /dev/null
> +++ b/package/zile/zile.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# Zile
> +#
> +################################################################################
> +
> +ZILE_VERSION = 2.4.11
> +ZILE_SITE = $(BR2_GNU_MIRROR)/zile
> +ZILE_LICENSE = GPLv1+

Have you actually read the COPYING file?

> +ZILE_LICENSE_FILES = COPYING
> +ZILE_AUTORECONF = YES
> +ZILE_CONF_OPT = --without-help2man
> +ZILE_DEPENDENCIES = libgc

Missing ncurses library.

Also, when I build your package with the toolchain at
http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full.config,
it fails to build with:

/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgc.so:
undefined reference to symbol 'pthread_cancel'
/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld:
note: 'pthread_cancel' is defined in DSO /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0 so try adding it to the linker command line
/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0:
could not read symbols: Invalid operation

Could you work on these remaining issues, and resubmit an updated
version?

Thanks!

Thomas
Alex Bennée April 24, 2014, 8:39 a.m. UTC | #3
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

> Dear Alex Bennée,
<snip>
>> +++ b/package/zile/Config.in
>> @@ -0,0 +1,13 @@
>> +config BR2_PACKAGE_ZILE
>> +	bool "zile"
>> +	select BR2_PACKAGE_LIBGC
>> +	depends on BR2_USE_MMU # fork()
>
> You need to replicate the dependencies of BR2_PACKAGE_LIBGC here.

Surely the whole point of dependencies is the LIBGC ones get pulled in
when you select LIBGC, or do you mean I need:

     select BR2_PACKAGE_LIBGC
     depends on BR2_PACKAGE_LIBGC
     depends on BR2_USE_MMU # fork()

> Also, when testing your package, it failed because ncurses was not
> available, so I had to add ncurses as a dependency here.
>
> This actually leads me to wonder if you actually tested this stuff. How
> would it be possible to miss the ncurses dependency?

I have a bunch of benchmarking tools enabled, one of them must of pulled
it in. I have been testing in a qemu-system aarch64 initrd rootfs and it
was working!

>
> Also, some of the configure messages need some investigation:
>
> configure: WARNING: libacl development library was not found or not
> usable. configure: WARNING: Zile will be built without ACL support.
>
>  => this probably means that an optional dependency on BR2_PACKAGE_ACL,
>  with a --enable-acl / --disable-acl as appropriate

I'll look at that.

>
> checking whether btowc is declared without a macro... yes
> checking whether wctob is declared without a macro... yes
> checking whether mbsinit is declared without a macro... yes
>
>  => this smells like a dependency on wide-char support. Can you test
>  your package with a toolchain that does not have wide char support,
>  such as
>  http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-basic.config.

I've got to build some armv7 images so I'll do that then.

>
> checking for emacs... /usr/bin/emacs
> checking Emacs version 24.3.50.1 >= 23.1... yes
>
>  => is it normal that it references my host emacs? what is this used
>  for?

No idea. Possibly too much autoconf boilerplate. I shall have a look.

>
>
>> diff --git a/package/zile/zile-0001-remove-help2man.patch b/package/zile/zile-0001-remove-help2man.patch
>> new file mode 100644
>> index 0000000..d397543
>> --- /dev/null
>> +++ b/package/zile/zile-0001-remove-help2man.patch
>> @@ -0,0 +1,30 @@
>> +Upstream-Status: Inappropriate [configuration]
>> +
>> +Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
> Since you're passing --without-help2man, why is this patch useful?

IIRC without that patch it still attempted to call the help2man tool
even though it wasn't generating the final output. 

>
>> diff --git a/package/zile/zile.mk b/package/zile/zile.mk
>> new file mode 100644
>> index 0000000..07226c6
>> --- /dev/null
>> +++ b/package/zile/zile.mk
>> @@ -0,0 +1,15 @@
>> +################################################################################
>> +#
>> +# Zile
>> +#
>> +################################################################################
>> +
>> +ZILE_VERSION = 2.4.11
>> +ZILE_SITE = $(BR2_GNU_MIRROR)/zile
>> +ZILE_LICENSE = GPLv1+
>
> Have you actually read the COPYING file?

Ahh ok - I shall fix that up.

>
>> +ZILE_LICENSE_FILES = COPYING
>> +ZILE_AUTORECONF = YES
>> +ZILE_CONF_OPT = --without-help2man
>> +ZILE_DEPENDENCIES = libgc
>
> Missing ncurses library.
>
> Also, when I build your package with the toolchain at
> http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full.config,
> it fails to build with:
>
> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgc.so:
> undefined reference to symbol 'pthread_cancel'
> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld:
> note: 'pthread_cancel' is defined in DSO /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0 so try adding it to the linker command line
> /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0:
> could not read symbols: Invalid operation
>
> Could you work on these remaining issues, and resubmit an updated
> version?
>
> Thanks!
>
> Thomas
Thomas De Schampheleire April 24, 2014, 9:03 a.m. UTC | #4
Hi Alex,

On Thu, Apr 24, 2014 at 10:39 AM, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
>
>> Dear Alex Bennée,
> <snip>
>>> +++ b/package/zile/Config.in
>>> @@ -0,0 +1,13 @@
>>> +config BR2_PACKAGE_ZILE
>>> +    bool "zile"
>>> +    select BR2_PACKAGE_LIBGC
>>> +    depends on BR2_USE_MMU # fork()
>>
>> You need to replicate the dependencies of BR2_PACKAGE_LIBGC here.
>
> Surely the whole point of dependencies is the LIBGC ones get pulled in
> when you select LIBGC, or do you mean I need:
>
>      select BR2_PACKAGE_LIBGC
>      depends on BR2_PACKAGE_LIBGC
>      depends on BR2_USE_MMU # fork()


You need to replicate the 'depends on' statements of libgc in the
config option for zile, because the select would select libgc even
though its dependencies may not be met. This is more or less explained
here:
http://buildroot.uclibc.org/downloads/manual/manual.html#_literal_config_in_literal_file

Best regards,
Thomas
Alex Bennée April 24, 2014, 9:47 a.m. UTC | #5
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

> On Thu, 17 Apr 2014 13:19:39 +0100, Alex Bennée wrote:
>> This is a lightweight Emacs clone useful for embedded systems. I nabbed
>> the help2man disable patch from OpenEmbedded.
<snip>
>
> checking for emacs... /usr/bin/emacs
> checking Emacs version 24.3.50.1 >= 23.1... yes
>
>  => is it normal that it references my host emacs? what is this used
>  for?
>
<snip>

It looks like it uses the host emacs to verify the Zile implemented
"lisp" functions perform like their big brother counterparts. They
shouldn't get called unless buildroot emits a "make check".
Alex Bennée April 24, 2014, 1:56 p.m. UTC | #6
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

> Dear Alex Bennée,
>
> On Thu, 17 Apr 2014 13:19:39 +0100, Alex Bennée wrote:
>> This is a lightweight Emacs clone useful for embedded systems. I nabbed
>> the help2man disable patch from OpenEmbedded.
>
> There are unfortunately a few things still not good here.
<snip>
>
> Also, when I build your package with the toolchain at
> http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full.config,
> it fails to build with:
>
> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgc.so:
> undefined reference to symbol 'pthread_cancel'
> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.7.3/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld:
> note: 'pthread_cancel' is defined in DSO /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0 so try adding it to the linker command line
> /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0:
> could not read symbols: Invalid operation

OK I'm stuck on this one. Is this a weirdness caused my uclibc's pthread
implementation? The config.log shows it's correctly detected but it
fails on linking. Should I just --disable-threads for uclibc builds?
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 51f2515..825aa73 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1124,6 +1124,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
diff --git a/package/zile/Config.in b/package/zile/Config.in
new file mode 100644
index 0000000..163b44d
--- /dev/null
+++ b/package/zile/Config.in
@@ -0,0 +1,13 @@ 
+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/
diff --git a/package/zile/zile-0001-remove-help2man.patch b/package/zile/zile-0001-remove-help2man.patch
new file mode 100644
index 0000000..d397543
--- /dev/null
+++ b/package/zile/zile-0001-remove-help2man.patch
@@ -0,0 +1,30 @@ 
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
+
+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 >$@.tmp
+ 	mv $@.tmp $@
+ 
+-$(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 $@.w && rm -f $@.w; ) >/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
diff --git a/package/zile/zile.mk b/package/zile/zile.mk
new file mode 100644
index 0000000..07226c6
--- /dev/null
+++ b/package/zile/zile.mk
@@ -0,0 +1,15 @@ 
+################################################################################
+#
+# Zile
+#
+################################################################################
+
+ZILE_VERSION = 2.4.11
+ZILE_SITE = $(BR2_GNU_MIRROR)/zile
+ZILE_LICENSE = GPLv1+
+ZILE_LICENSE_FILES = COPYING
+ZILE_AUTORECONF = YES
+ZILE_CONF_OPT = --without-help2man
+ZILE_DEPENDENCIES = libgc
+
+$(eval $(autotools-package))