Skip to contentSkip to conversation

SCREEN: Added support for GNU Screen

PATCH New Michel (BusError) 2 participants 10 messages Apr 8, 2008 – Apr 9, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 SCREEN: Added support for GNU Screen

From: Michel <[email protected]>

screen is a terminal multiplexor that runs several separate "screens" on a single physical character-based terminal. Each virtual terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 functions.
Screen sessions can be detached and resumed later on a different terminal. Screen also supports a whole slew of other features. Some of these are:
configurable input and output translation, serial port support, configurable logging, multi-user support, and utf8 charset support.

---
 package/Config.in                                  |    1 +
 package/screen/Config.in                           |   17 +
 .../screen/screen-4.0.2-100-cross-compile.patch    |  967 ++++++++++++++++++++
 package/screen/screen.mk                           |   61 ++
 4 files changed, 1046 insertions(+), 0 deletions(-)
 create mode 100644 package/screen/Config.in
 create mode 100644 package/screen/screen-4.0.2-100-cross-compile.patch
 create mode 100644 package/screen/screen.mk
package/Config.in +1 -0
index f3a68ed..3ca06ff 100644
@@ -313,6 +313,7 @@ source "package/slang/Config.in"
 
 comment "text rendering applications"
 source "package/dialog/Config.in"
+source "package/screen/Config.in"
 
 comment "graphic libraries"
 source "package/directfb/Config.in"
package/screen/Config.in new file +17 -0
new file mode 100644
index 0000000..da29343
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_SCREEN
+    bool "screen"
+    default n
+    select BR2_PACKAGE_NCURSES
+    help
+	screen - terminal multiplexor with VT100/ANSI terminal emulation
+
+	screen is a terminal multiplexor that runs several separate "screens"
+	on a single physical character-based terminal.  Each virtual terminal
+	emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 functions. 
+	Screen sessions can be detached and resumed later on a different terminal.
+	
+	Screen also supports a whole slew of other features. 
+	Some of these are: configurable input and output translation, 
+	serial port support, configurable logging, multi-user support,
+	and utf8 charset support.
+
package/screen/screen-4.0.2-100-cross-compile.patch new file +967 -0

967 lines not on this page · raw message

package/screen/screen.mk new file +61 -0

61 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#1 lore raw

PATCH 1/1 NCURSES: Added config support for copying ncurses 'extra' libraries to the target

From: Michel <[email protected]>

Some package use ncurses libpanel/libform/libmenu, this config allows to selectively copy them to the target filesystem at the same time at the main library is installed.

---
 package/ncurses/Config.in  |   22 ++++++++++++++++++++++
 package/ncurses/ncurses.mk |    9 +++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)
package/ncurses/Config.in +22 -0
index 9a50768..904b924 100644
@@ -13,3 +13,25 @@ config BR2_PACKAGE_NCURSES_TARGET_HEADERS
 	depends on BR2_PACKAGE_NCURSES
 	help
 	  Ncurses headers in target
+
+config BR2_PACKAGE_NCURSES_TARGET_PANEL
+	bool "ncurses libpanel in target"
+	default n
+	depends on BR2_PACKAGE_NCURSES
+	help
+	  Ncurses headers in target
+	  Includes ncurses dynamic libpanel in target
+
+config BR2_PACKAGE_NCURSES_TARGET_FORM
+	bool "ncurses libform in target"
+	default n
+	depends on BR2_PACKAGE_NCURSES
+	help
+	  Includes ncurses dynamic libform in target
+
+config BR2_PACKAGE_NCURSES_TARGET_MENU
+	bool "ncurses libmenu in target"
+	default n
+	depends on BR2_PACKAGE_NCURSES
+	help
+	  Includes ncurses dynamic libmenu in target
package/ncurses/ncurses.mk +9 -0
index ecdf00e..f65b77d 100644
@@ -104,6 +104,15 @@ $(STAGING_DIR)/lib/libncurses.so.$(NCURSES_VERSION): $(NCURSES_DIR)/lib/libncurs
 
 $(TARGET_DIR)/lib/libncurses.so.$(NCURSES_VERSION): $(STAGING_DIR)/lib/libncurses.so.$(NCURSES_VERSION)
 	cp -dpf $(NCURSES_DIR)/lib/libncurses.so* $(TARGET_DIR)/lib/
+ifeq ($(strip $(BR2_PACKAGE_NCURSES_TARGET_PANEL)),y)
+	cp -dpf $(NCURSES_DIR)/lib/libpanel.so* $(TARGET_DIR)/lib/
+endif
+ifeq ($(strip $(BR2_PACKAGE_NCURSES_TARGET_FORM)),y)
+	cp -dpf $(NCURSES_DIR)/lib/libform.so* $(TARGET_DIR)/lib/
+endif
+ifeq ($(strip $(BR2_PACKAGE_NCURSES_TARGET_MENU)),y)
+	cp -dpf $(NCURSES_DIR)/lib/libmenu.so* $(TARGET_DIR)/lib/
+endif
 	ln -sf /usr/share/terminfo $(TARGET_DIR)/usr/lib/terminfo
 	mkdir -p $(TARGET_DIR)/usr/share/terminfo/x
 	cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm $(TARGET_DIR)/usr/share/terminfo/x
Signature · 1 line
1.5.4.3
#2 lore raw

PATCH 1/1 IPTRAF: Added Interactive Colorful IP LAN Monitor

From: Michel <[email protected]>

IPTraf is an ncurses-based IP LAN monitor that generates various network statistics including TCP info, UDP counts, ICMP and OSPF information, Ethernet load info, node stats, IP checksum errors, and others.

---
 package/Config.in                                  |    1 +
 package/iptraf/Config.in                           |   14 ++++
 .../iptraf/iptraf-3.0.1-100-cross-compile.patch    |   83 ++++++++++++++++++++
 package/iptraf/iptraf.mk                           |   49 ++++++++++++
 4 files changed, 147 insertions(+), 0 deletions(-)
 create mode 100644 package/iptraf/Config.in
 create mode 100644 package/iptraf/iptraf-3.0.1-100-cross-compile.patch
 create mode 100644 package/iptraf/iptraf.mk
package/Config.in +1 -0
index 3ca06ff..751623c 100644
@@ -314,6 +314,7 @@ source "package/slang/Config.in"
 comment "text rendering applications"
 source "package/dialog/Config.in"
 source "package/screen/Config.in"
+source "package/iptraf/Config.in"
 
 comment "graphic libraries"
 source "package/directfb/Config.in"
package/iptraf/Config.in new file +14 -0
new file mode 100644
index 0000000..ce0d3f8
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_IPTRAF
+    bool "iptraf"
+    default n
+    select BR2_PACKAGE_NCURSES
+    select BR2_PACKAGE_NCURSES_TARGET_PANEL
+    help
+	iptraf - Interactive Colorful IP LAN Monitor
+
+	IPTraf is an ncurses-based IP LAN monitor that generates various 
+	network statistics including TCP info, UDP counts, ICMP and OSPF 
+	information, Ethernet load info, node stats, IP checksum errors, 
+	and others.
+	This package depends on ncurses's libpanel library
+
package/iptraf/iptraf-3.0.1-100-cross-compile.patch new file +83 -0

83 lines not on this page · raw message

package/iptraf/iptraf.mk new file +49 -0

49 lines not on this page · raw message

Signature · 1 line
1.5.4.3
#3 lore raw

PATCH 1/1 U-BOOT: A patch to fix the fw_printenv compilation

From: Michel <[email protected]>

---
 ...oot-1.3.0-env-110-fw_printenv_compile_fix.patch |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
 create mode 100644 target/u-boot/u-boot-1.3.0-env-110-fw_printenv_compile_fix.patch
target/u-boot/u-boot-1.3.0-env-110-fw_printenv_compile_fix.patch new file +12 -0
new file mode 100644
index 0000000..268a6ff
@@ -0,0 +1,12 @@
+diff -ruN u-boot-1.3.0/tools/env/fw_env.c u-boot-1.3.0.new/tools/env/fw_env.c
+--- u-boot-1.3.0/tools/env/fw_env.c	2007-11-19 21:20:24.000000000 +0000
++++ u-boot-1.3.0.new/tools/env/fw_env.c	2008-04-07 15:34:51.000000000 +0100
+@@ -31,7 +31,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
+-#include <linux/mtd/mtd.h>
++#include <mtd/mtd-user.h>
+ #include "fw_env.h"
+ 
+ typedef unsigned char uchar;
Signature · 1 line
1.5.4.3
#4 lore raw

PATCH 1/1 U-BOOT: Added support for linux userland environmnet access

From: Michel <[email protected]>

The config allows to add fw_printenv to the target filesystem, and also to selectively add a link to fw_setenv and allow changing the environment. The new configuration options also let you specify a (simple) set of parameters that will be used to create a working comfiguration file in the target's .../etc/fw_env.config.
Note that the fw_setenv will only work if the MTD partition is R/W. Some kernels (avr32...) map it read-only by default.

---
 target/u-boot/Config.in   |   56 +++++++++++++++++++++++++++++++++++++++++++++
 target/u-boot/Makefile.in |   29 +++++++++++++++++++++++
 2 files changed, 85 insertions(+), 0 deletions(-)
target/u-boot/Config.in +56 -0
index 66ebaf5..c31bccf 100644
@@ -20,6 +20,62 @@ config BR2_TARGET_UBOOT_CUSTOM_PATCH
 	  If your board requires a custom patch, add the path to the file here.
 	  Most users may leave this empty
 
+config BR2_TARGET_UBOOT_LINUX_ENV
+	bool "fw_printenv: linux userspace environment access"
+	depends on BR2_TARGET_UBOOT
+	help
+	  Compile fw_printenv and add it to the target linux filesystem
+	  It is also possible to symlink fw_setenv from it.
+	  Note that the command needs a /etc/fw_env.config to work. Check
+	  u-boot/tools/env/fw_env.config for an example to be adapted for
+	  your board.
+
+config BR2_TARGET_UBOOT_LINUX_SETENV
+	bool "Also create fw_setenv link"
+	depends on BR2_TARGET_UBOOT_LINUX_ENV
+	help
+	  Creates the link to fw_printenv to allow userspace to change
+	  u-boot environment variables from shell scripts.
+	  *Note* that your board setup code might mark the environment
+	  flash partition as read only, in which case you will have to change
+	  that for this command to work.
+
+config BR2_TARGET_UBOOT_LINUX_HASENV
+	bool "Specify a default environment access"
+	depends on BR2_TARGET_UBOOT_LINUX_ENV
+	help
+	  Specifies the environment location and size for a default
+	  Non-redundant u-boot environment. This will create a
+	  /etc/fw_env.config into the target filesystem
+
+config BR2_TARGET_UBOOT_ENV_MTDDEV
+	string "MTD device pathname"
+	depends on BR2_TARGET_UBOOT_LINUX_HASENV
+	default "/dev/mtd2"
+	help
+	  MTD device to use for environment
+
+config BR2_TARGET_UBOOT_ENV_MTDOFF
+	string "MTD device offset"
+	depends on BR2_TARGET_UBOOT_LINUX_HASENV
+	default "0x0000"
+	help
+	  MTD device offset
+
+config BR2_TARGET_UBOOT_ENV_MTDSIZE
+	string "MTD environment sise"
+	depends on BR2_TARGET_UBOOT_LINUX_HASENV
+	default "0x10000"
+	help
+	  MTD environment total size
+
+config BR2_TARGET_UBOOT_ENV_MTDESIZE
+	string "MTD environment erase sector sise"
+	depends on BR2_TARGET_UBOOT_LINUX_HASENV
+	default "0x10000"
+	help
+	  MTD environment erase sector size
+
 config BR2_TARGET_UBOOT_SERVERIP
 	string "server ip"
 	depends on BR2_TARGET_UBOOT
target/u-boot/Makefile.in +29 -0
index deb10ea..a27ae83 100644
@@ -11,6 +11,8 @@ U_BOOT_PATCH_DIR:=$(PROJECT_BUILD_DIR)/u-boot-patches
 U_BOOT_CAT:=$(BZCAT)
 U_BOOT_BIN:=u-boot.bin
 U_BOOT_TOOLS_BIN:=mkimage
+U_BOOT_PRINTENV_BIN:=fw_printenv
+U_BOOT_ENV_TARGET_DIR:=$(TARGET_DIR)/usr/bin
 
 ifneq ($(BR2_TARGET_U_BOOT_CONFIG_BOARD),)
 U_BOOT_INC_CONF_FILE:=$(U_BOOT_DIR)/include/configs/$(subst _config,,$(BR2_TARGET_U_BOOT_CONFIG_BOARD)).h
@@ -42,6 +44,10 @@ ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH)),"")
 	cp -dpr $(BR2_TARGET_UBOOT_CUSTOM_PATCH) $(U_BOOT_PATCH_DIR)
 	toolchain/patch-kernel.sh $(U_BOOT_DIR) $(U_BOOT_PATCH_DIR) *.patch
 endif
+ifeq ($(strip $(BR2_TARGET_UBOOT_LINUX_ENV)),y)
+	toolchain/patch-kernel.sh $(U_BOOT_DIR) target/u-boot/ \
+		u-boot-$(U_BOOT_VERSION)-env-*.patch
+endif
 	touch $@
 
 $(U_BOOT_DIR)/.header_copied: $(U_BOOT_DIR)/.patched
@@ -105,11 +111,34 @@ $(U_BOOT_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/.header_modified
 		LDFLAGS="$(TARGET_LDFLAGS)" \
 		$(MAKE) -C $(U_BOOT_DIR)
 
+$(U_BOOT_DIR)/tools/env/$(U_BOOT_PRINTENV_BIN): 
+	$(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="$(TARGET_CFLAGS)" \
+		LDFLAGS="$(TARGET_LDFLAGS)" \
+		$(MAKE) -C $(U_BOOT_DIR) env
+
+$(U_BOOT_DIR)/$(U_BOOT_PRINTENV_BIN): $(U_BOOT_DIR)/tools/env/$(U_BOOT_PRINTENV_BIN)
+	cp -dpf $(U_BOOT_DIR)/tools/env/$(U_BOOT_PRINTENV_BIN) $(U_BOOT_DIR)
+
+$(U_BOOT_ENV_TARGET_DIR)/$(U_BOOT_PRINTENV_BIN): $(U_BOOT_DIR)/$(U_BOOT_PRINTENV_BIN)
+	cp -dpf $(U_BOOT_DIR)/$(U_BOOT_PRINTENV_BIN) $(U_BOOT_ENV_TARGET_DIR)
+ifeq ($(strip $(BR2_TARGET_UBOOT_LINUX_SETENV)),y)
+	(cd $(U_BOOT_ENV_TARGET_DIR); ln -s fw_printenv fw_setenv)
+endif
+ifeq ($(strip $(BR2_TARGET_UBOOT_LINUX_HASENV)),y)
+	( echo "# Automaticaly Generated from buildroot config";echo "$(BR2_TARGET_UBOOT_ENV_MTDDEV) $(BR2_TARGET_UBOOT_ENV_MTDOFF) $(BR2_TARGET_UBOOT_ENV_MTDSIZE) $(BR2_TARGET_UBOOT_ENV_MTDESIZE)") >$(TARGET_DIR)/etc/fw_env.config
+endif
+
+
 $(BINARIES_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/$(U_BOOT_BIN)
 	cp -dpf $(U_BOOT_DIR)/$(U_BOOT_BIN) $(BINARIES_DIR)
 	cp -dpf $(U_BOOT_DIR)/tools/$(U_BOOT_TOOLS_BIN) $(STAGING_DIR)/usr/bin/
 
+ifeq ($(strip $(BR2_TARGET_UBOOT_LINUX_ENV)),y)
+u-boot: gcc $(BINARIES_DIR)/$(U_BOOT_BIN) $(U_BOOT_ENV_TARGET_DIR)/$(U_BOOT_PRINTENV_BIN)
+else
 u-boot: gcc $(BINARIES_DIR)/$(U_BOOT_BIN)
+endif
 
 u-boot-clean:
 	-$(MAKE) -C $(U_BOOT_DIR) clean
Signature · 1 line
1.5.4.3
#5 lore raw

PATCH 1/1 NCURSES: Added config support for copying ncurses 'extra' libraries to the target

In reply to Michel (BusError)
Quoted 7 lines

Some package use ncurses libpanel/libform/libmenu, this config allows to selectively copy them to the target filesystem at the same time at the main library is installed.

---
 package/ncurses/Config.in  |   22 ++++++++++++++++++++++
 package/ncurses/ncurses.mk |    9 +++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

<snip>

Can you attach patches please, makes it a little easier for us to apply. :)

Also, please submit patches applied against latest SVN.

I've cleaned up the above patch against latest SVN, will test and commit.

-N
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://busybox.net/lists/buildroot/attachments/20080409/6cad36ba/attachment.pgp

#6 lore raw

PATCH 1/1 SCREEN: Added support for GNU Screen

In reply to Michel (BusError)

package/screen/screen-4.0.2-100-cross-compile.patch line 3

Quoted 7 lines
package/screen/screen-4.0.2-100-cross-compile.patch new file +3 -0
@@ -0,0 +1,967 @@
+diff -c screen.orig/configure screen-4.0.2/configure
+*** screen.orig/configure	2003-12-05 13:46:53.000000000 +0000
+--- screen-4.0.2/configure	2008-04-05 18:48:27.000000000 +0100

<snip>

Can we not modify configure.ac/in and autoreconf? (assuming configure is originally built from configure.in or configure.ac)

-N

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://busybox.net/lists/buildroot/attachments/20080408/325d1c54/attachment.pgp

#7 lore raw

PATCH 1/1 SCREEN: Added support for GNU Screen

Quoted 9 lines · Nigel Kukard
Quoted 6 lines
package/screen/screen-4.0.2-100-cross-compile.patch new file +3 -0
@@ -0,0 +1,967 @@
+diff -c screen.orig/configure screen-4.0.2/configure
+*** screen.orig/configure	2003-12-05 13:46:53.000000000 +0000
+--- screen-4.0.2/configure	2008-04-05 18:48:27.000000000 +0100

<snip>

Quoted 4 lines

Can we not modify configure.ac/in and autoreconf? (assuming configure is originally built from configure.in or configure.ac)

-N

You can't. I spent a lot of time trying. This configure relies /a lot/ on testing the hosts libraries, and all of these test fail with these exit(1). Unless you know of a magic auto*.* setting that skips the 'cross compile' tests and/or errors, this is the only way I found to have it working...

Michel

#8 lore raw

PATCH 1/1 SCREEN: Added support for GNU Screen

Quoted 13 lines
Quoted 13 lines

package/screen/screen-4.0.2-100-cross-compile.patch line 3

Quoted 7 lines
package/screen/screen-4.0.2-100-cross-compile.patch new file +3 -0
@@ -0,0 +1,967 @@
+diff -c screen.orig/configure screen-4.0.2/configure
+*** screen.orig/configure	2003-12-05 13:46:53.000000000 +0000
+--- screen-4.0.2/configure	2008-04-05 18:48:27.000000000 +0100

<snip>

Can we not modify configure.ac/in and autoreconf? (assuming configure is originally built from configure.in or configure.ac)

Quoted 6 lines
Quoted 1 line

-N

You can't. I spent a lot of time trying. This configure relies /a lot/ on testing the hosts libraries, and all of these test fail with these exit(1). Unless you know of a magic auto*.* setting that skips the 'cross compile' tests and/or errors, this is the only way I found to have it working...

I really don't like adding a 40k patch, which will more than likely break on each version bump. :)

Could you show me how to reproduce the errors when cross-compiling, maybe send me your .config and I'll see what I can do?

-N
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://busybox.net/lists/buildroot/attachments/20080409/c3efdc49/attachment.pgp

#9 lore raw

PATCH 1/1 SCREEN: Added support for GNU Screen

Quoted 20 lines · Nigel Kukard
Quoted 12 lines
Quoted 12 lines

package/screen/screen-4.0.2-100-cross-compile.patch line 3

Quoted 6 lines
package/screen/screen-4.0.2-100-cross-compile.patch new file +3 -0
@@ -0,0 +1,967 @@
+diff -c screen.orig/configure screen-4.0.2/configure
+*** screen.orig/configure	2003-12-05 13:46:53.000000000 +0000
+--- screen-4.0.2/configure	2008-04-05 18:48:27.000000000 +0100

<snip>

Can we not modify configure.ac/in and autoreconf? (assuming configure is originally built from configure.in or configure.ac)

Quoted 7 lines
Quoted 1 line

-N

You can't. I spent a lot of time trying. This configure relies /a lot/ on testing the hosts libraries, and all of these test fail with these exit(1). Unless you know of a magic auto*.* setting that skips the 'cross compile' tests and/or errors, this is the only way I found to have it working...

Quoted 7 lines

I really don't like adding a 40k patch, which will more than likely break on each version bump. :)

Could you show me how to reproduce the errors when cross-compiling, maybe send me your .config and I'll see what I can do?

-N

Hi Nigel;

I think the easiest way is to apply the patch on a 'temp' tree, remove the package/screen/*.patch file, 'make oldconfig' in buildroot, select the 'screen' package, then 'make'. You will immediately see the dreaded configure problems...

'screen' is very rarely updated tho, it's not a fast moving trendy package, just a one that's indispensable once you grok it's power :-)

Michel