Package: s390-netdevice Version: 0.06 Severity: important Tags: patch Protocol 1 (Linux) is currently chosen as the default CTC protocol, and the debconf priority is medium. This means that CTC installation under VM (usually--if the CTC is defined as vCTCs typically are) would fail, and CTC installation on Hercules would fail, both silently and confusingly.
The patch to the template simply changes the default to "0" which is correct for Hercules and most VM installations, and also raises the debconf priority to critical. I don't know that the second thing is correct, but IMHO it's better for the user to have to answer or take a default on an unnecessary question than for the installation to fail. We might want to add something to the template saying "Hercules users should choose 0, and VM users should choose the protocol defined in PROFILE TCPIP for the CTC link to the Debian guest." I couldn't figure out a clear and more concise way to say that, though. The rest of the netdevice.c patch is just the leftover IUCV fix (because the module name is netiucv--just the iucv module doesn't do you any good). That issue is bug #258430. Adam -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (700, 'testing') Architecture: s390 Kernel: Linux 2.4.17 Locale: LANG=C, LC_CTYPE=C
--- s390-netdevice.templates.orig 2004-07-15 13:26:41.000000000 -0400 +++ s390-netdevice.templates 2004-07-15 12:57:32.000000000 -0400 @@ -30,7 +30,7 @@ Template: debian-installer/s390/netdevice/ctc/protocol Type: select Choices: S/390 (0), Linux (1), OS/390 (3) -Default: Linux (1) +Default: S/390 (0) _Description: Protocol for this connection: Template: debian-installer/s390/netdevice/lcs/choose
--- netdevice.c.orig 2004-07-15 13:26:02.000000000 -0400 +++ netdevice.c 2004-07-15 12:55:36.000000000 -0400 @@ -298,7 +298,7 @@ static int get_ctc_protocol (void) { char *ptr; - int ret = my_debconf_input ("medium", TEMPLATE_PREFIX "ctc/protocol", &ptr); + int ret = my_debconf_input ("critical", TEMPLATE_PREFIX "ctc/protocol", &ptr); if (ret) return ret; @@ -476,7 +476,7 @@ static int setup (void) { FILE *f; - char buf[256], buf1[256] = "", *ptr = NULL; + char buf[256], buf1[256] = "", buf2[256], *ptr = NULL; if (mkdir ("/etc/modutils", 777) && errno != EEXIST) return 1; @@ -486,6 +486,7 @@ case TYPE_QETH: case TYPE_CTC: case TYPE_LCS: + strncpy(buf2,type_text,sizeof(type_text)); if (strlen (chandev_parm)) ptr = chandev_parm; @@ -521,6 +522,10 @@ break; case TYPE_IUCV: + strncpy(buf2,"netiucv",sizeof("netiucv")); + /* This is necessary because the "iucv" module */ + /* provides the basic IUCV functions, but the */ + /* "netiucv" module provides TCP/IP support. */ f = fopen("/etc/modutils/netiucv", "a"); if (!f) return 1; @@ -532,7 +537,7 @@ break; } - snprintf (buf, sizeof (buf), "modprobe %s %s", type_text, buf1); + snprintf (buf, sizeof (buf), "modprobe %s %s", buf2, buf1); di_exec_shell_log (buf);