Patchwork [1/1] Add FbTerm package for OMAP4 (targetting pandaboard) Signed-off-by: JoM <johann.mercadier@imerir.com>

login
register
mail settings
Submitter JoM
Date March 20, 2012, 10:04 p.m.
Message ID <1332281066-364-1-git-send-email-johann.mercadier@imerir.com>
Download mbox | patch
Permalink /patch/147844/
State Superseded
Headers show

Comments

JoM - March 20, 2012, 10:04 p.m.
---
 package/Config.in        |  644 ++++------------------------------------------
 package/fbterm/Config.in |   39 +++
 package/fbterm/fbterm.mk |   47 ++++
 3 files changed, 133 insertions(+), 597 deletions(-)
 create mode 100644 package/fbterm/Config.in
 create mode 100644 package/fbterm/fbterm.mk
Thomas Petazzoni - March 20, 2012, 11:05 p.m.
Hello Johann,

Thanks for your contribution!

Le Tue, 20 Mar 2012 22:04:26 +0000,
JoM <johann.mercadier@imerir.com> a écrit :

> ---
>  package/Config.in        |  644 ++++------------------------------------------

There has been an issue with your patch here. You have deleted all the
contents of package/Config.in and replaced it with the contents of
package/fbterm/Config.in. This is wrong. Can you fix your patch?

I also have more comments below.

> diff --git a/package/fbterm/Config.in b/package/fbterm/Config.in
> new file mode 100644
> index 0000000..aca2462
> --- /dev/null
> +++ b/package/fbterm/Config.in
> @@ -0,0 +1,39 @@
> +config BR2_PACKAGE_FBTERM
> +	bool "fbterm"
> +	select BR2_PACKAGE_FREETYPE
> +	select BR2_PACKAGE_FONTCONFIG
> +	select BR2_PACKAGE_ZLIB
> +	
> +	help

No newline between the selects and the help.

> +	FbTerm (Frame buffer terminal emulator) is a fast terminal emulator and a 
> +	standalone replacement of GNU/Linux terminal that can function outside of
> +	Xorg with the frame buffer device or VESA video card.

The complete help text should be intended by one tab + two spaces.

I think the three lines above + the URL are sufficient as the help
text. No need to copy the long list of features.

> --- /dev/null
> +++ b/package/fbterm/fbterm.mk
> @@ -0,0 +1,47 @@
> +#############################################################
> +#
> +# fbterm
> +#
> +#############################################################
> +FBTERM_BINARY = fbterm
> +FBTERM_TARGET_BINARY = usr/bin/$(FBTERM_BINARY)

Please remove these variables, they are useless;

> +FBTERM_VERSION_MAJOR = 1.7
> +FBTERM_VERSION = $(FBTERM_VERSION_MAJOR).0

Remove the VERSION_MAJOR, and just do:

FBTERM_VERSION = 1.7.0

> +FBTERM_SOURCE = $(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR).tar.gz

Remove, this is the default.

> +FBTERM_SITE = http://fbterm.googlecode.com/files
> +#FBTERM_SITE_METHOD =

Remove the site method.

> +FBTERM_DIR = $(BUILD_DIR)/$(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR)

Remove, unneeded. You mixed up the old manual way of doing Makefiles
(which required such a definition, but is now a completely deprecated
way of writing the .mk file) with the new way of doing .mk files with
the GENTARGETS, AUTOTARGETS and CMAKETARGETS infrastructures.

> +#FBTERM_AUTORECONF = NO

Remove, unneeded (it's already commented)

> +FBTERM_INSTALL_STAGING = YES

fbterm seems to be a program, so there's no need to install it in the
staging directory.

> +FBTERM_INSTALL_TARGET = YES

Remove, unneeded, this is the default.

> +#FBTERM_CONF_OPT = --enable-shared

Please remove comments.

> +FBTERM_DEPENDENCIES += freetype fontconfig

Ok.

> +FBTERM_CAT = $(ZCAT)

Remove, unneeded.

> +define FBTERM_CONFIGURE_CMDS
> +	(cd $(FBTERM_DIR); rm -f config.cache; \
> +		$(TARGET_CONFIGURE_OPTS) \
> +		$(TARGET_CONFIGURE_ARGS) \
> +		./configure \
> +		--build=arm-linux- --target=arm-linux- --host=i686-pc-linux-gnu \
> +		build_alias=arm-linux- target_alias=arm-linux- \
> +		CXX=arm-linux-g++ \
> +	)
> +endef

Please remove this completely. AUTOTARGETS will already call the
configure script with the right arguments. If some things are missing
in the environment, use FBTERM_CONF_ENV, if some things are missing as
options of the configure script, use FBTERM_CONF_OPT (see the
documentation of the AUTOTARGETS infrastructure for more details).

> +define FBTERM_BUILD_CMDS
> +	$(MAKE) $(TARGET_CONFIGURE_OPTS) $(@D)
> +endef

Please remove, this is the default.

> +define FBTERM_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D $(@D)/src/$(FBTERM_BINARY) $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
> +endef

Isn't there a "make install" target that already does the right thing?
If so, we prefer using it.

> +define FBTERM_CLEAN_CMDS
> +	rm -f $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
> +	-$(MAKE) -C $(@D) clean
> +endef

This mixes uninstallation (which should go in FBTERM_UNINSTALL_CMDS)
and cleaning of the source tree (which should go in FBTERM_CLEAN_CMDS,
but is useless in this case since the AUTOTARGETS infrastructure has a
default implementation of xxx_CLEAN_CMDS which already does the right
thing).

> +$(eval $(call AUTOTARGETS,package,fbterm))

Please change this to:

$(eval $(call AUTOTARGETS))

The two last arguments are no longer needed.

Best regards,

Thomas
Arnout Vandecappelle - March 20, 2012, 11:09 p.m.
The Signed-off-by should be on a separate line.

On Tuesday 20 March 2012 23:04:26 JoM wrote:
> ---
>  package/Config.in        |  644 ++++------------------------------------------

 I don't suppose it was your intention to remove all packages :-)

>  package/fbterm/Config.in |   39 +++
>  package/fbterm/fbterm.mk |   47 ++++
>  3 files changed, 133 insertions(+), 597 deletions(-)
>  create mode 100644 package/fbterm/Config.in
>  create mode 100644 package/fbterm/fbterm.mk
> 
[snip]
> diff --git a/package/fbterm/Config.in b/package/fbterm/Config.in
> new file mode 100644
> index 0000000..aca2462
> --- /dev/null
> +++ b/package/fbterm/Config.in
> @@ -0,0 +1,39 @@
> +config BR2_PACKAGE_FBTERM
> +	bool "fbterm"
> +	select BR2_PACKAGE_FREETYPE
> +	select BR2_PACKAGE_FONTCONFIG
> +	select BR2_PACKAGE_ZLIB
> +	
> +	help
> +	FbTerm (Frame buffer terminal emulator) is a fast terminal emulator and a 
 help indentation should be one tab + two spaces, and no space at the end of the line.

> +	standalone replacement of GNU/Linux terminal that can function outside of
> +	Xorg with the frame buffer device or VESA video card.
> +
> +	Features include: 
> +	* mostly as fast as terminal of linux kernel while accelerated scrolling
> +	is enabled.
 Indent this so the second line is aligned after the *

> +	* internationalization support (UTF-8)
> +	* select font with fontconfig and draw text with freetype2, same as Qt/Gtk+
> +	based GUI apps.
> +	* dynamically create/destroy up to 10 windows initially running default 
> +	shell.
> +	* record scroll-back history for every window.
> +	* auto-detect text encoding with current locale, support double width 
> +	scripts like Chinese, Japanese etc...
> +	* switch between configurable additional text encodings with hot keys on
> +	the fly.
> +	* keyboard bindings such as Shift-Pageup to move the terminal up a page...
> +	* multiple framebuffer "windows," creating new ones with Ctrl-Alt-c and
> +	moving between windows with Shift-Left and Shift-Right.
> +	* jump directly to a specific window with Ctrl-Alt-number. The FbTerm
> +	windows are independent of the multiple getty sessions that are available 
> +	with Alt-function keys.
> +	* copy/past selected text between windows with mouse when gpm server is 
> +	running.
> +	* change the orientation of screen display, i.e screen rotation.
> +	* lightweight input method framework with client-server architecture.
> +	* background image for eye candy.
> +	* you can create up to 10 differents terminals windows on the same 
> +	framebuffer, each window having scrollback history.
> +	  
> +	http://code.google.com/p/fbterm/
> diff --git a/package/fbterm/fbterm.mk b/package/fbterm/fbterm.mk
> new file mode 100644
> index 0000000..96e077a
> --- /dev/null
> +++ b/package/fbterm/fbterm.mk
> @@ -0,0 +1,47 @@
> +#############################################################
> +#
> +# fbterm
> +#
> +#############################################################
> +FBTERM_BINARY = fbterm
> +FBTERM_TARGET_BINARY = usr/bin/$(FBTERM_BINARY)

 These two variables aren't very useful.  It's not as if the name of
the binary is likely to change, and "usr/bin/fbterm" is shorter
than FBTERM_TARGET_BINARY

> +FBTERM_VERSION_MAJOR = 1.7
> +FBTERM_VERSION = $(FBTERM_VERSION_MAJOR).0

 The _VERSION should be the upstream version, and upstream seems to
call it 1.7.

> +FBTERM_SOURCE = $(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR).tar.gz
> +FBTERM_SITE = http://fbterm.googlecode.com/files
> +#FBTERM_SITE_METHOD =
 Don't leave commented-out lines in your patch.

> +FBTERM_DIR = $(BUILD_DIR)/$(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR)
 This variable is defined already by AUTOTARGETS.

> +#FBTERM_AUTORECONF = NO
> +FBTERM_INSTALL_STAGING = YES

 Does fbterm export a shared library or anything else that is necessary
to compile other applications?  Else, there is no need to install it
to staging.

> +FBTERM_INSTALL_TARGET = YES
 INSTALL_TARGET is YES by default, so leave this out.

> +#FBTERM_CONF_OPT = --enable-shared
> +FBTERM_DEPENDENCIES += freetype fontconfig
 Not zlib?

> +FBTERM_CAT = $(ZCAT)
 What is this supposed to do?

> +
> +
> +define FBTERM_CONFIGURE_CMDS
> +	(cd $(FBTERM_DIR); rm -f config.cache; \
> +		$(TARGET_CONFIGURE_OPTS) \
> +		$(TARGET_CONFIGURE_ARGS) \
> +		./configure \
> +		--build=arm-linux- --target=arm-linux- --host=i686-pc-linux-gnu \
> +		build_alias=arm-linux- target_alias=arm-linux- \
> +		CXX=arm-linux-g++ \
> +	)
> +endef

 Err... buildroot supports more architectures than just ARM, and more hosts
than 32-bit linux.  The default CONFIGURE_CMDS of AUTOTARGETS will probably
set things correctly.  If any additional options are needed, add them to
FBTERM_CONF_OPT.

> +
> +define FBTERM_BUILD_CMDS
> +	$(MAKE) $(TARGET_CONFIGURE_OPTS) $(@D)
> +endef

 This is just the default, so remove.

> +
> +define FBTERM_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D $(@D)/src/$(FBTERM_BINARY) $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
> +endef

 Doesn't the 'make install' work for this package?  The default from
AUTOTARGETS probably works...

> +
> +define FBTERM_CLEAN_CMDS
> +	rm -f $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
> +	-$(MAKE) -C $(@D) clean
> +endef

 Same here.  Removing the binary from TARGET_DIR actually belongs
to FBTERM_UNINSTALL_TARGET_CMDS, but that one is on its way out.

> +
> +
> +$(eval $(call AUTOTARGETS,package,fbterm))

 The arguments to AUTOTARGETS have been removed.


 Regards,
 Arnout
Arnout Vandecappelle - March 20, 2012, 11:13 p.m.
On Wednesday 21 March 2012 00:05:25 Thomas Petazzoni wrote:
> Hello Johann,
> 
> Thanks for your contribution!

 Yeah, I forgot to say that :-)

> Le Tue, 20 Mar 2012 22:04:26 +0000,
> JoM <johann.mercadier@imerir.com> a écrit :
[snip]
> > +     FbTerm (Frame buffer terminal emulator) is a fast terminal emulator and a 
> > +     standalone replacement of GNU/Linux terminal that can function outside of
> > +     Xorg with the frame buffer device or VESA video card.
> 
> The complete help text should be intended by one tab + two spaces.
> 
> I think the three lines above + the URL are sufficient as the help
> text. No need to copy the long list of features.

 I don't agree.  Although it is a bit long, it's not in the way of
anyone and it can be useful.  It's also not making maintenance more
difficult.  And Johann has anyway gone through the effort of writing
it.

 Regards,
 Arnout
Thomas Petazzoni - March 20, 2012, 11:16 p.m.
Le Wed, 21 Mar 2012 00:13:28 +0100,
Arnout Vandecappelle <arnout@mind.be> a écrit :

>  I don't agree.  Although it is a bit long, it's not in the way of
> anyone and it can be useful.  It's also not making maintenance more
> difficult.  And Johann has anyway gone through the effort of writing
> it.

It is just a copy/paste from http://code.google.com/p/fbterm/, so the
effort of writing it has presumably been quite small. I don't think it
makes much sense to include such an amount of information in the help
text, but I don't feel very strongly about this, so if you think it's
better to keep it this way, no problem.

Best regards!

Thomas
JoM - March 21, 2012, 11:06 a.m.
Hi Thomas & Arnout,

   and thanks a lot for your feedback!

   So you are right I probably done something wrong with git as when I
change from my local branch 'patch_FBTERM' to 'master' the Config.in in the
package directory only inhold fbterm contents?!  But the patch I sent was a
package/Config.in which hold all the packages so there is something that I
still don't understand.

  Thomas : In all case I will modify each of your suggestions. So as to be
totally compliant with the new way of writing .mk files.

  Arnout : Ok for the staging part, I understand clearly why it is not
needed. normally libz and libexpat are used by fbterm but the only lib
really needed when I port fbterm was the both I kept in the .mk file. Do
you think I need to write them also as the fact I didn't need them was part
of my own config for which they were already installed?

  About the help section, Thomas is right I made a copy/paste, but from
different sites so as to give users a good understanding of what they are
going to install, without the need to go searching around... Maybe  it's
not necessary as most on the informations are on the main website (
http://code.google.com/p/fbterm/)?... Just let me know and I will correct
this for good of all.

Try to make it today.

Regards
Arnout Vandecappelle - March 21, 2012, 11:20 a.m.
On Wednesday 21 March 2012 12:06:07 MERCADIER Johann wrote:
> normally libz and libexpat are used by fbterm but the only lib
> really needed when I port fbterm was the both I kept in the .mk file. Do
> you think I need to write them also as the fact I didn't need them was part
> of my own config for which they were already installed?

 Hah, that's a tricky part.  If a package can make use of some library
but it doesn't really depend on it, then we add something like this to
the .mk file:

ifeq ($(BR2_PACKAGE_ZLIB),y)
FBTERM_DEPENDENCIES += zlib
endif

or in one line:

FBTERM_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib)


 Similarly for expat.


>   About the help section, Thomas is right I made a copy/paste, but from
> different sites so as to give users a good understanding of what they are
> going to install, without the need to go searching around... Maybe  it's
> not necessary as most on the informations are on the main website (
> http://code.google.com/p/fbterm/)?... Just let me know and I will correct
> this for good of all.

 Leave it as it is, but remember for your next package that the help text
doesn't have to be so long.


 Regards,
 Arnout

Patch

diff --git a/package/Config.in b/package/Config.in
index c2d02b7..7c60f97 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1,597 +1,47 @@ 
-menu "Package Selection for the target"
-
-source "package/busybox/Config.in"
-source "package/customize/Config.in"
-
-# Audio and video applications
-source "package/multimedia/Config.in"
-
-menu "Compressors and decompressors"
-source "package/bzip2/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/gzip/Config.in"
-endif
-source "package/lzop/Config.in"
-source "package/lzma/Config.in"
-source "package/xz/Config.in"
-endmenu
-
-menu "Debugging, profiling and benchmark"
-source "package/bonnie/Config.in"
-source "package/dhrystone/Config.in"
-source "package/dstat/Config.in"
-source "package/dmalloc/Config.in"
-source "package/kexec/Config.in"
-source "package/lmbench/Config.in"
-source "package/lsof/Config.in"
-source "package/ltp-testsuite/Config.in"
-source "package/lttng-babeltrace/Config.in"
-source "package/lttng-modules/Config.in"
-source "package/lttng-tools/Config.in"
-source "package/ltrace/Config.in"
-source "package/memstat/Config.in"
-source "package/netperf/Config.in"
-source "package/oprofile/Config.in"
-source "package/rt-tests/Config.in"
-source "package/strace/Config.in"
-source "package/whetstone/Config.in"
-source "package/valgrind/Config.in"
-source "package/pv/Config.in"
-endmenu
-
-menu "Development tools"
-source "package/autoconf/Config.in"
-source "package/automake/Config.in"
-source "package/binutils/Config.in"
-source "package/bison/Config.in"
-source "package/bsdiff/Config.in"
-source "package/ccache/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/coreutils/Config.in"
-endif
-source "package/cvs/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/diffutils/Config.in"
-endif
-source "package/distcc/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/findutils/Config.in"
-endif
-source "package/flex/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/gawk/Config.in"
-endif
-source "toolchain/gcc/Config.in.2"
-source "package/gettext/Config.in"
-source "package/gmp/Config.in"
-source "package/gperf/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/grep/Config.in"
-endif
-source "package/intltool/Config.in"
-source "package/make/Config.in"
-source "package/mpc/Config.in"
-source "package/mpfr/Config.in"
-source "package/libtool/Config.in"
-source "package/m4/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/patch/Config.in"
-endif
-source "package/pkg-config/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/sed/Config.in"
-endif
-source "package/sstrip/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/tar/Config.in"
-endif
-endmenu
-
-menu "Games"
-source "package/games/gnuchess/Config.in"
-source "package/games/prboom/Config.in"
-source "package/games/doom-wad/Config.in"
-source "package/games/rubix/Config.in"
-endmenu
-
-menu "Graphic libraries and applications (graphic/text)"
-
-comment "Graphic applications"
-source "package/rrdtool/Config.in"
-
-comment "graphic libraries"
-source "package/directfb/Config.in"
-source "package/directfb-examples/Config.in"
-source "package/divine/Config.in"
-source "package/fbdump/Config.in"
-source "package/fbgrab/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/fbset/Config.in"
-endif
-source "package/fbv/Config.in"
-source "package/fbterm/Config.in"
-source "package/imagemagick/Config.in"
-source "package/linux-fusion/Config.in"
-source "package/lite/Config.in"
-source "package/sawman/Config.in"
-source "package/sdl/Config.in"
-source "package/sdl_image/Config.in"
-source "package/sdl_mixer/Config.in"
-source "package/sdl_sound/Config.in"
-source "package/sdl_net/Config.in"
-source "package/sdl_ttf/Config.in"
-source "package/sdl_gfx/Config.in"
-
-comment "other GUIs"
-source "package/efl/Config.in"
-source "package/qt/Config.in"
-source "package/x11r7/Config.in"
-
-comment "X libraries and helper libraries"
-source "package/liberation/Config.in"
-source "package/libsexy/Config.in"
-
-comment "X Window managers"
-source "package/matchbox/Config.in"
-source "package/metacity/Config.in"
-source "package/blackbox/Config.in"
-source "package/fluxbox/Config.in"
-
-comment "X applications"
-source "package/alsamixergui/Config.in"
-source "package/docker/Config.in"
-source "package/feh/Config.in"
-source "package/gqview/Config.in"
-source "package/gmpc/Config.in"
-source "package/gob2/Config.in"
-source "package/gtkperf/Config.in"
-source "package/leafpad/Config.in"
-source "package/midori/Config.in"
-source "package/pcmanfm/Config.in"
-source "package/rdesktop/Config.in"
-source "package/sylpheed/Config.in"
-source "package/synergy/Config.in"
-source "package/torsmo/Config.in"
-source "package/vala/Config.in"
-source "package/x11vnc/Config.in"
-source "package/xstroke/Config.in"
-source "package/xterm/Config.in"
-source "package/xvkbd/Config.in"
-endmenu
-
-menu "Hardware handling"
-source "package/acpid/Config.in"
-source "package/cdrkit/Config.in"
-source "package/cramfs/Config.in"
-source "package/dbus/Config.in"
-source "package/dbus-glib/Config.in"
-source "package/dbus-python/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/devmem2/Config.in"
-endif
-source "package/dmraid/Config.in"
-source "package/dosfstools/Config.in"
-source "package/e2fsprogs/Config.in"
-source "package/eeprog/Config.in"
-source "package/fconfig/Config.in"
-source "package/fis/Config.in"
-source "package/gadgetfs-test/Config.in"
-source "package/gdisk/Config.in"
-source "package/genext2fs/Config.in"
-source "package/genromfs/Config.in"
-source "package/gpsd/Config.in"
-source "package/gvfs/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/hdparm/Config.in"
-endif
-source "package/hwdata/Config.in"
-source "package/i2c-tools/Config.in"
-source "package/input-event-daemon/Config.in"
-source "package/input-tools/Config.in"
-source "package/iostat/Config.in"
-source "package/irda-utils/Config.in"
-source "package/kbd/Config.in"
-source "package/lcdproc/Config.in"
-source "package/linux-firmware/Config.in"
-source "package/lm-sensors/Config.in"
-source "package/lsuio/Config.in"
-source "package/lvm2/Config.in"
-source "package/makedevs/Config.in"
-source "package/mdadm/Config.in"
-source "package/memtester/Config.in"
-source "package/minicom/Config.in"
-source "package/mtd/Config.in"
-source "package/ntfs-3g/Config.in"
-source "package/open2300/Config.in"
-source "package/openocd/Config.in"
-source "package/parted/Config.in"
-source "package/pciutils/Config.in"
-source "package/picocom/Config.in"
-source "package/rng-tools/Config.in"
-source "package/sane-backends/Config.in"
-source "package/sdparm/Config.in"
-source "package/setserial/Config.in"
-source "package/smartmontools/Config.in"
-source "package/squashfs/Config.in"
-source "package/squashfs3/Config.in"
-source "package/sredird/Config.in"
-source "package/sshfs/Config.in"
-source "package/statserial/Config.in"
-source "package/sysstat/Config.in"
-source "package/ti-utils/Config.in"
-source "package/uboot-tools/Config.in"
-source "package/udev/Config.in"
-source "package/unionfs/Config.in"
-source "package/usb_modeswitch/Config.in"
-source "package/usbmount/Config.in"
-source "package/usbutils/Config.in"
-source "package/wipe/Config.in"
-source "package/xfsprogs/Config.in"
-endmenu
-
-menu "Interpreter languages and scripting"
-source "package/haserl/Config.in"
-source "package/lua/Config.in"
-if BR2_PACKAGE_LUA
-menu "LUA libraries/modules"
-source "package/cgilua/Config.in"
-source "package/copas/Config.in"
-source "package/coxpcall/Config.in"
-source "package/luafilesystem/Config.in"
-source "package/luasocket/Config.in"
-source "package/rings/Config.in"
-source "package/wsapi/Config.in"
-source "package/xavante/Config.in"
-endmenu
-endif
-source "package/microperl/Config.in"
-source "package/php/Config.in"
-source "package/python/Config.in"
-if BR2_PACKAGE_PYTHON
-menu "external python modules"
-source "package/python-dpkt/Config.in"
-source "package/python-mad/Config.in"
-source "package/python-netifaces/Config.in"
-source "package/python-pygame/Config.in"
-source "package/python-serial/Config.in"
-source "package/python-setuptools/Config.in"
-endmenu
-endif
-source "package/ruby/Config.in"
-source "package/tcl/Config.in"
-endmenu
-
-menu "Libraries"
-
-menu "Compression and decompression"
-source "package/libarchive/Config.in"
-source "package/lzo/Config.in"
-source "package/zlib/Config.in"
-endmenu
-
-menu "Crypto"
-source "package/beecrypt/Config.in"
-source "package/gnutls/Config.in"
-source "package/libgcrypt/Config.in"
-source "package/libgpg-error/Config.in"
-source "package/libnss/Config.in"
-source "package/openssl/Config.in"
-endmenu
-
-menu "Database"
-source "package/berkeleydb/Config.in"
-source "package/mysql_client/Config.in"
-source "package/sqlcipher/Config.in"
-source "package/sqlite/Config.in"
-endmenu
-
-menu "Filesystem"
-source "package/gamin/Config.in"
-source "package/libconfig/Config.in"
-source "package/libconfuse/Config.in"
-source "package/libfuse/Config.in"
-source "package/liblockfile/Config.in"
-source "package/libsysfs/Config.in"
-endmenu
-
-menu "Graphics"
-source "package/atk/Config.in"
-source "package/cairo/Config.in"
-source "package/fltk/Config.in"
-source "package/fontconfig/Config.in"
-source "package/freetype/Config.in"
-source "package/giblib/Config.in"
-source "package/gtk2-engines/Config.in"
-source "package/gtk2-themes/Config.in"
-source "package/imlib2/Config.in"
-source "package/jpeg/Config.in"
-source "package/libart/Config.in"
-source "package/libdrm/Config.in"
-source "package/libexif/Config.in"
-source "package/libgail/Config.in"
-source "package/libgeotiff/Config.in"
-source "package/libglade/Config.in"
-source "package/gdk-pixbuf/Config.in"
-source "package/libgtk2/Config.in"
-source "package/libpng/Config.in"
-source "package/libraw/Config.in"
-source "package/librsvg/Config.in"
-source "package/libsvgtiny/Config.in"
-source "package/libungif/Config.in"
-source "package/opencv/Config.in"
-source "package/pango/Config.in"
-source "package/pixman/Config.in"
-source "package/tiff/Config.in"
-source "package/webkit/Config.in"
-endmenu
-
-menu "Hardware handling"
-source "package/libaio/Config.in"
-source "package/libraw1394/Config.in"
-source "package/tslib/Config.in"
-source "package/libftdi/Config.in"
-source "package/libhid/Config.in"
-source "package/libiqrf/Config.in"
-source "package/libusb/Config.in"
-source "package/libusb-compat/Config.in"
-source "package/libv4l/Config.in"
-endmenu
-
-menu "Javascript"
-source "package/explorercanvas/Config.in"
-source "package/flot/Config.in"
-source "package/jquery/Config.in"
-source "package/jquery-sparkline/Config.in"
-source "package/jquery-validation/Config.in"
-source "package/jsmin/Config.in"
-endmenu
-
-menu "Networking"
-source "package/glib-networking/Config.in"
-source "package/libcgi/Config.in"
-source "package/libcgicc/Config.in"
-source "package/libcurl/Config.in"
-source "package/libdnet/Config.in"
-source "package/libesmtp/Config.in"
-source "package/libeXosip2/Config.in"
-source "package/libidn/Config.in"
-source "package/liboauth/Config.in"
-source "package/libmicrohttpd/Config.in"
-source "package/neon/Config.in"
-source "package/libmnl/Config.in"
-source "package/libmodbus/Config.in"
-source "package/libmbus/Config.in"
-source "package/libnl/Config.in"
-source "package/libpcap/Config.in"
-source "package/libosip2/Config.in"
-source "package/librsync/Config.in"
-source "package/libsoup/Config.in"
-source "package/libupnp/Config.in"
-source "package/libvncserver/Config.in"
-source "package/zeromq/Config.in"
-endmenu
-
-menu "Other"
-source "package/fftw/Config.in"
-source "package/libargtable2/Config.in"
-source "package/argp-standalone/Config.in"
-source "package/boost/Config.in"
-source "package/libatomic_ops/Config.in"
-source "package/libcap/Config.in"
-source "package/libdaemon/Config.in"
-source "package/libelf/Config.in"
-source "package/libevent/Config.in"
-source "package/libev/Config.in"
-source "package/libffi/Config.in"
-source "package/libglib2/Config.in"
-source "package/libical/Config.in"
-source "package/libnspr/Config.in"
-source "package/libsigc/Config.in"
-source "package/libtpl/Config.in"
-source "package/liburcu/Config.in"
-source "package/lttng-libust/Config.in"
-source "package/orc/Config.in"
-source "package/poco/Config.in"
-source "package/startup-notification/Config.in"
-endmenu
-
-menu "Text and terminal handling"
-source "package/enchant/Config.in"
-source "package/icu/Config.in"
-source "package/libiconv/Config.in"
-source "package/ncurses/Config.in"
-source "package/newt/Config.in"
-source "package/pcre/Config.in"
-source "package/popt/Config.in"
-source "package/readline/Config.in"
-source "package/slang/Config.in"
-endmenu
-
-menu "JSON/XML"
-source "package/expat/Config.in"
-source "package/ezxml/Config.in"
-source "package/json-c/Config.in"
-source "package/libroxml/Config.in"
-source "package/libxml-parser-perl/Config.in"
-source "package/libxml2/Config.in"
-source "package/libxslt/Config.in"
-source "package/libyaml/Config.in"
-source "package/mxml/Config.in"
-source "package/xerces/Config.in"
-source "package/yajl/Config.in"
-endmenu
-
-endmenu
-
-menu "Miscellaneous"
-source "package/shared-mime-info/Config.in"
-endmenu
-
-menu "Networking applications"
-source "package/argus/Config.in"
-source "package/avahi/Config.in"
-source "package/axel/Config.in"
-source "package/bluez_utils/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/boa/Config.in"
-endif
-source "package/bind/Config.in"
-source "package/bmon/Config.in"
-source "package/bridge-utils/Config.in"
-source "package/bwm-ng/Config.in"
-source "package/can-utils/Config.in"
-source "package/connman/Config.in"
-source "package/ctorrent/Config.in"
-source "package/cifs-utils/Config.in"
-source "package/cups/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/dhcp/Config.in"
-endif
-source "package/dhcpdump/Config.in"
-source "package/dnsmasq/Config.in"
-source "package/dropbear/Config.in"
-source "package/ebtables/Config.in"
-source "package/ethtool/Config.in"
-source "package/hostapd/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/ifplugd/Config.in"
-endif
-source "package/igh-ethercat/Config.in"
-source "package/iperf/Config.in"
-source "package/iproute2/Config.in"
-source "package/ipsec-tools/Config.in"
-source "package/ipset/Config.in"
-source "package/iptables/Config.in"
-source "package/iw/Config.in"
-source "package/kismet/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/lighttpd/Config.in"
-endif
-source "package/links/Config.in"
-source "package/lrzsz/Config.in"
-source "package/mii-diag/Config.in"
-source "package/mrouted/Config.in"
-source "package/mutt/Config.in"
-source "package/nbd/Config.in"
-source "package/ncftp/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/netcat/Config.in"
-source "package/netkitbase/Config.in"
-source "package/netkittelnet/Config.in"
-endif
-source "package/netplug/Config.in"
-source "package/netsnmp/Config.in"
-source "package/netstat-nat/Config.in"
-source "package/network-manager/Config.in"
-source "package/noip/Config.in"
-source "package/nfs-utils/Config.in"
-source "package/ngircd/Config.in"
-source "package/ngrep/Config.in"
-source "package/ntp/Config.in"
-source "package/nuttcp/Config.in"
-source "package/olsr/Config.in"
-source "package/openntpd/Config.in"
-source "package/openssh/Config.in"
-source "package/openvpn/Config.in"
-source "package/portmap/Config.in"
-source "package/pppd/Config.in"
-source "package/pptp-linux/Config.in"
-source "package/proftpd/Config.in"
-source "package/quagga/Config.in"
-source "package/radvd/Config.in"
-source "package/rp-pppoe/Config.in"
-source "package/rsh-redone/Config.in"
-source "package/rsync/Config.in"
-source "package/samba/Config.in"
-source "package/ser2net/Config.in"
-source "package/socat/Config.in"
-source "package/spawn-fcgi/Config.in"
-source "package/squid/Config.in"
-source "package/stunnel/Config.in"
-source "package/tcpdump/Config.in"
-source "package/tcpreplay/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/tftpd/Config.in"
-source "package/thttpd/Config.in"
-source "package/tinyhttpd/Config.in"
-endif
-source "package/tn5250/Config.in"
-source "package/transmission/Config.in"
-source "package/ttcp/Config.in"
-source "package/udpcast/Config.in"
-source "package/vpnc/Config.in"
-source "package/vsftpd/Config.in"
-source "package/vtun/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/wget/Config.in"
-endif
-source "package/wireless_tools/Config.in"
-source "package/wpa_supplicant/Config.in"
-source "package/xl2tp/Config.in"
-
-endmenu
-
-menu "Package managers"
-source "package/ipkg/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/rpm/Config.in"
-endif
-endmenu
-
-menu "Real-Time"
-source "package/xenomai/Config.in"
-source "package/rtai/Config.in"
-endmenu
-
-menu "Shell and utilities"
-source "package/at/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/bash/Config.in"
-source "package/dash/Config.in"
-endif
-source "package/dialog/Config.in"
-source "package/file/Config.in"
-source "package/inotify-tools/Config.in"
-source "package/lockfile-progs/Config.in"
-source "package/logrotate/Config.in"
-source "package/screen/Config.in"
-source "package/sudo/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/which/Config.in"
-endif
-source "package/xmlstarlet/Config.in"
-endmenu
-
-menu "System tools"
-source "package/acl/Config.in"
-source "package/attr/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/bootutils/Config.in"
-endif
-source "package/htop/Config.in"
-source "package/kmod/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/module-init-tools/Config.in"
-source "package/procps/Config.in"
-source "package/psmisc/Config.in"
-source "package/rsyslog/Config.in"
-source "package/sysklogd/Config.in"
-source "package/sysvinit/Config.in"
-endif
-source "package/util-linux/Config.in"
-source "package/dsp-tools/Config.in"
-endmenu
-
-menu "Text editors and viewers"
-source "package/ed/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/less/Config.in"
-endif
-source "package/nano/Config.in"
-source "package/uemacs/Config.in"
-if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-source "package/vim/Config.in"
-endif
-endmenu
-
-endmenu
+config BR2_PACKAGE_FBTERM
+	bool "fbterm"
+	#select BR2_PACKAGE_GPM
+	#select BR2_PACKAGE_UTIL
+	#select BR2_PACKAGE_STDC++
+	#select BR2_PACKAGE_LIBM
+	#select BR2_PACKAGE_LIBGCC_S
+	#select BR2_PACKAGE_LIBC
+	#select BR2_PACKAGE_LIBZ
+	#select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_FONTCONFIG
+	select BR2_PACKAGE_ZLIB
+	
+	help
+	FbTerm (Frame buffer terminal emulator) is a fast terminal emulator and a 
+	standalone replacement of GNU/Linux terminal that can function outside of
+	Xorg with the frame buffer device or VESA video card.
+
+	Features include: 
+	* mostly as fast as terminal of linux kernel while accelerated scrolling
+	is enabled.
+	* internationalization support (UTF-8)
+	* select font with fontconfig and draw text with freetype2, same as Qt/Gtk+
+	based GUI apps.
+	* dynamically create/destroy up to 10 windows initially running default 
+	shell.
+	* record scroll-back history for every window.
+	* auto-detect text encoding with current locale, support double width 
+	scripts like Chinese, Japanese etc...
+	* switch between configurable additional text encodings with hot keys on
+	the fly.
+	* keyboard bindings such as Shift-Pageup to move the terminal up a page...
+	* multiple framebuffer "windows," creating new ones with Ctrl-Alt-c and
+	moving between windows with Shift-Left and Shift-Right.
+	* jump directly to a specific window with Ctrl-Alt-number. The FbTerm
+	windows are independent of the multiple getty sessions that are available 
+	with Alt-function keys.
+	* copy/past selected text between windows with mouse when gpm server is 
+	running.
+	* change the orientation of screen display, i.e screen rotation.
+	* lightweight input method framework with client-server architecture.
+	* background image for eye candy.
+	* you can create up to 10 differents terminals windows on the same 
+	framebuffer, each window having scrollback history.
+	  
+	http://code.google.com/p/fbterm/
diff --git a/package/fbterm/Config.in b/package/fbterm/Config.in
new file mode 100644
index 0000000..aca2462
--- /dev/null
+++ b/package/fbterm/Config.in
@@ -0,0 +1,39 @@ 
+config BR2_PACKAGE_FBTERM
+	bool "fbterm"
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_FONTCONFIG
+	select BR2_PACKAGE_ZLIB
+	
+	help
+	FbTerm (Frame buffer terminal emulator) is a fast terminal emulator and a 
+	standalone replacement of GNU/Linux terminal that can function outside of
+	Xorg with the frame buffer device or VESA video card.
+
+	Features include: 
+	* mostly as fast as terminal of linux kernel while accelerated scrolling
+	is enabled.
+	* internationalization support (UTF-8)
+	* select font with fontconfig and draw text with freetype2, same as Qt/Gtk+
+	based GUI apps.
+	* dynamically create/destroy up to 10 windows initially running default 
+	shell.
+	* record scroll-back history for every window.
+	* auto-detect text encoding with current locale, support double width 
+	scripts like Chinese, Japanese etc...
+	* switch between configurable additional text encodings with hot keys on
+	the fly.
+	* keyboard bindings such as Shift-Pageup to move the terminal up a page...
+	* multiple framebuffer "windows," creating new ones with Ctrl-Alt-c and
+	moving between windows with Shift-Left and Shift-Right.
+	* jump directly to a specific window with Ctrl-Alt-number. The FbTerm
+	windows are independent of the multiple getty sessions that are available 
+	with Alt-function keys.
+	* copy/past selected text between windows with mouse when gpm server is 
+	running.
+	* change the orientation of screen display, i.e screen rotation.
+	* lightweight input method framework with client-server architecture.
+	* background image for eye candy.
+	* you can create up to 10 differents terminals windows on the same 
+	framebuffer, each window having scrollback history.
+	  
+	http://code.google.com/p/fbterm/
diff --git a/package/fbterm/fbterm.mk b/package/fbterm/fbterm.mk
new file mode 100644
index 0000000..96e077a
--- /dev/null
+++ b/package/fbterm/fbterm.mk
@@ -0,0 +1,47 @@ 
+#############################################################
+#
+# fbterm
+#
+#############################################################
+FBTERM_BINARY = fbterm
+FBTERM_TARGET_BINARY = usr/bin/$(FBTERM_BINARY)
+FBTERM_VERSION_MAJOR = 1.7
+FBTERM_VERSION = $(FBTERM_VERSION_MAJOR).0
+FBTERM_SOURCE = $(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR).tar.gz
+FBTERM_SITE = http://fbterm.googlecode.com/files
+#FBTERM_SITE_METHOD =
+FBTERM_DIR = $(BUILD_DIR)/$(FBTERM_BINARY)-$(FBTERM_VERSION_MAJOR)
+#FBTERM_AUTORECONF = NO
+FBTERM_INSTALL_STAGING = YES
+FBTERM_INSTALL_TARGET = YES
+#FBTERM_CONF_OPT = --enable-shared
+FBTERM_DEPENDENCIES += freetype fontconfig
+FBTERM_CAT = $(ZCAT)
+
+
+define FBTERM_CONFIGURE_CMDS
+	(cd $(FBTERM_DIR); rm -f config.cache; \
+		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		./configure \
+		--build=arm-linux- --target=arm-linux- --host=i686-pc-linux-gnu \
+		build_alias=arm-linux- target_alias=arm-linux- \
+		CXX=arm-linux-g++ \
+	)
+endef
+
+define FBTERM_BUILD_CMDS
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) $(@D)
+endef
+
+define FBTERM_INSTALL_TARGET_CMDS
+	$(INSTALL) -D $(@D)/src/$(FBTERM_BINARY) $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
+endef
+
+define FBTERM_CLEAN_CMDS
+	rm -f $(TARGET_DIR)/$(FBTERM_TARGET_BINARY)
+	-$(MAKE) -C $(@D) clean
+endef
+
+
+$(eval $(call AUTOTARGETS,package,fbterm))