Package: screen
Version: 4.3.1-2
Severity: wishlist
Control: block -1 819397
X-Debbugs-Cc: svenj...@gmx.de, bi...@debian.org

Dear Maintainer,

I'm going to add GNU/screen support into debian-installer [0].
It would be useful when install debian via serial console or
network-console (SSH).

Enclosed patch to add screen-udeb in debian/control.
Thanks to Laurent Bigonville [1] and Sven Joachim [2], dependency is
minimized to libc6-udeb and libtinfo5-udeb only.

[0] https://lists.debian.org/debian-boot/2016/02/msg00547.html
[1] https://bugs.debian.org/819358#25
[2] https://bugs.debian.org/819397#10

Cheers,
-- 
Roger Shimizu, GMT +9 Tokyo
PGP/GPG: 17B3ACB1
From 675f57bde3118867b4c249771e7c58ad7be9d5eb Mon Sep 17 00:00:00 2001
From: Roger Shimizu <rogershim...@gmail.com>
Date: Sat, 2 Apr 2016 00:45:34 +0900
Subject: [PATCH] Add udeb (debian-install) support.

Thanks to Laurent Bigonville and Sven Joachim for providing ideas on build
screen-udeb with less dependency. See discussion in #819358 and #819397.
---
 debian/changelog           |  7 ++++
 debian/control             | 19 +++++++++++
 debian/rules               | 39 +++++++++++++++-------
 debian/screen-udeb.install |  1 +
 debian/udeb/screenrc       | 80 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 135 insertions(+), 11 deletions(-)
 create mode 100644 debian/screen-udeb.install
 create mode 100644 debian/udeb/screenrc

diff --git a/debian/changelog b/debian/changelog
index d5d387e..29afd4e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,15 @@
 screen (4.3.1-3) UNRELEASED; urgency=medium
 
+  [ Axel Beckert ]
   * Add CVE-ID to previous changelog entry and patch.
   * Remove screen-dbg package, there are automatic -dbgsym packages now.
 
+  [ Roger Shimizu ]
+  * Add udeb (debian-install) support.
+    Thanks to Laurent Bigonville and Sven Joachim for providing ideas
+    on build screen-udeb with less dependency.
+    See discussion in #819358 and #819397.
+
  -- Axel Beckert <a...@debian.org>  Thu, 03 Sep 2015 14:29:29 +0200
 
 screen (4.3.1-2) unstable; urgency=high
diff --git a/debian/control b/debian/control
index b06cc65..e4b410a 100644
--- a/debian/control
+++ b/debian/control
@@ -30,3 +30,22 @@ Description: terminal multiplexer with VT100/ANSI terminal emulation
  Screen also supports a whole slew of other features, including configurable
  input and output translation, serial port support, configurable logging,
  and multi-user support.
+
+Package: screen-udeb
+Architecture: any
+Section: debian-installer
+Package-Type: udeb
+Priority: extra
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Description: terminal multiplexer with VT100/ANSI terminal emulation - udeb
+ GNU Screen is a terminal multiplexer 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, including configurable
+ input and output translation, serial port support, configurable logging,
+ and multi-user support.
+ .
+ This is stripped-down version of screen for debian-installer.
diff --git a/debian/rules b/debian/rules
index f376a0a..88ff596 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,6 +9,7 @@
 #export DH_VERBOSE=1
 
 ROOT := $(CURDIR)/debian/screen
+ROOT_UDEB := $(CURDIR)/debian/screen-udeb
 # statically define this... sucko
 TTYGROUP := 5
 
@@ -16,11 +17,12 @@ TTYGROUP := 5
 	dh $@ --parallel --with autoreconf
 
 override_dh_auto_clean:
-	test ! -s doc/Makefile || $(MAKE) -C doc realclean
-	test ! -s Makefile || ! grep -q clean Makefile || $(MAKE) realclean
+	test ! -s build/doc/Makefile  || (cd build; $(MAKE) -C doc realclean)
+	test ! -s build/Makefile      || (cd build;      ! grep -q clean Makefile || $(MAKE) realclean)
+	test ! -s build-udeb/Makefile || (cd build-udeb; ! grep -q clean Makefile || $(MAKE) realclean)
 
 override_dh_auto_configure:
-	dh_auto_configure -- \
+	dh_auto_configure --builddirectory build -- \
 		    --with-socket-dir=/var/run/screen \
 		    --enable-pam \
 		    --with-pty-mode=0620 \
@@ -30,25 +32,40 @@ override_dh_auto_configure:
 		    --enable-colors256 \
 		    --enable-telnet \
 		    --enable-use-locale
+	# to minimize to library dependency, udeb binary is without "--enable-pam"
+	dh_auto_configure --builddirectory build-udeb -- \
+		    --with-socket-dir=/var/run/screen \
+		    --with-pty-mode=0620 \
+		    --with-pty-group=${TTYGROUP} \
+		    --enable-rxvt_osc \
+		    --with-sys-screenrc=/etc/screenrc \
+		    --enable-colors256 \
+		    --enable-telnet \
+		    --enable-use-locale
 	# Assert the use of fifos instead of sockets
-	grep -q "define.*NAMEDPIPE.*1" config.h || echo "#define NAMEDPIPE 1" >> config.h
+	(cd build;      grep -q "define.*NAMEDPIPE.*1" config.h || echo "#define NAMEDPIPE 1" >> config.h)
+	(cd build-udeb; grep -q "define.*NAMEDPIPE.*1" config.h || echo "#define NAMEDPIPE 1" >> config.h)
 
 override_dh_auto_build:
-	dh_auto_build       -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers'
-	dh_auto_build -Ddoc -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers'
+	dh_auto_build --builddirectory build       -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers'
+	dh_auto_build --builddirectory build -Ddoc -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers'
+	dh_auto_build --builddirectory build-udeb  -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers'
 
 override_dh_auto_install:
 	# can't call the normal install target b/c it installs the info files
 	# and other crud
-	$(MAKE) prefix=$(ROOT)/usr SCREENENCODINGS='$$(prefix)/share/screen/utf8encodings' installdirs install_bin
+	(cd build;      $(MAKE) prefix=$(ROOT)/usr      SCREENENCODINGS='$$(prefix)/share/screen/utf8encodings' installdirs install_bin)
+	(cd build-udeb; $(MAKE) prefix=$(ROOT_UDEB)/usr SCREENENCODINGS='$$(prefix)/share/screen/utf8encodings' installdirs install_bin)
 	# hack around the fact that the install target makes screen a symlink to screen-$$(VERSION)
-	rm -f $(ROOT)/usr/bin/screen
-	mv -f $(ROOT)/usr/bin/screen* $(ROOT)/usr/bin/screen
+	rm -f      $(ROOT)/usr/bin/screen  $(ROOT_UDEB)/usr/bin/screen
+	mv -f      $(ROOT)/usr/bin/screen*      $(ROOT)/usr/bin/screen
+	mv -f $(ROOT_UDEB)/usr/bin/screen* $(ROOT_UDEB)/usr/bin/screen
 	# make it setgid utmp
-	chown root:utmp $(ROOT)/usr/bin/screen
-	chmod 2755 $(ROOT)/usr/bin/screen
+	chown root:utmp $(ROOT)/usr/bin/screen $(ROOT_UDEB)/usr/bin/screen
+	chmod 2755      $(ROOT)/usr/bin/screen $(ROOT_UDEB)/usr/bin/screen
 	# Fix package-contains-info-dir-file, remove /usr/share/info/dir.gz
 	rm -f $(ROOT)/usr/share/info/dir*
+	rm -rf $(ROOT_UDEB)/usr/share/info $(ROOT_UDEB)/usr/share/man
 
 override_dh_installinit:
 	dh_installinit --no-start --init-script='screen-cleanup'
diff --git a/debian/screen-udeb.install b/debian/screen-udeb.install
new file mode 100644
index 0000000..1dc35e8
--- /dev/null
+++ b/debian/screen-udeb.install
@@ -0,0 +1 @@
+debian/udeb/screenrc etc/
diff --git a/debian/udeb/screenrc b/debian/udeb/screenrc
new file mode 100644
index 0000000..3806819
--- /dev/null
+++ b/debian/udeb/screenrc
@@ -0,0 +1,80 @@
+# $Id: screenrc,v 1.15 2003/10/08 11:39:03 zal Exp $
+#
+# /etc/screenrc
+# Stripped down version for udeb (debian-installer)
+# 2016  Roger Shimizu <rogershim...@gmail.com>
+
+# ------------------------------------------------------------------------------
+# SCREEN SETTINGS
+# ------------------------------------------------------------------------------
+
+startup_message off
+#nethack on
+
+#defflow on # will force screen to process ^S/^Q
+deflogin on
+#autodetach off
+
+# turn visual bell on
+vbell on
+vbell_msg "   Wuff  ----  Wuff!!  "
+
+# define a bigger scrollback, default is 100 lines
+defscrollback 1024
+
+# ------------------------------------------------------------------------------
+# SCREEN KEYBINDINGS
+# ------------------------------------------------------------------------------
+
+# Remove some stupid / dangerous key bindings
+bind ^k
+#bind L
+bind ^\
+# Make them better
+bind \\ quit
+bind K kill
+bind I login on
+bind O login off
+bind } history
+
+# An example of a "screen scraper" which will launch urlview on the current
+# screen window
+#
+#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview"
+
+# ------------------------------------------------------------------------------
+# TERMINAL SETTINGS
+# ------------------------------------------------------------------------------
+
+# The vt100 description does not mention "dl". *sigh*
+termcapinfo vt100 dl=5\E[M
+
+# turn sending of screen messages to hardstatus off
+hardstatus off
+# Set the hardstatus prop on gui terms to set the titlebar/icon title
+termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
+# use this for the hard status string
+hardstatus string "%h%? users: %u%?"
+
+# An alternative hardstatus to display a bar at the bottom listing the
+# windownames and highlighting the current windowname in blue. (This is only
+# enabled if there is no hardstatus setting for your terminal)
+#
+#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
+
+# set these terminals up to be 'optimal' instead of vt100
+termcapinfo xterm*|linux*|rxvt*|Eterm* OP
+
+# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
+# (This fixes the "Aborted because of window size change" konsole symptoms found
+#  in bug #134198)
+termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
+
+# To get screen to add lines to xterm's scrollback buffer, uncomment the
+# following termcapinfo line which tells xterm to use the normal screen buffer
+# (which has scrollback), not the alternate screen buffer.
+#
+#termcapinfo xterm|xterms|xs|rxvt ti@:te@
+
+# Enable non-blocking mode to better cope with flaky ssh connections.
+defnonblock 5
-- 
2.8.0.rc3

Reply via email to