Bug#609736: please readd MAKEDEV calls to init.d.functions
Hi, Following tech committee decision #698556, I've reviewed and applied Christoph's patch, and uploaded an nmu. Please see attached. Best wishes, Mike isdnutils.patch Description: Binary data
Bug#609736: please readd MAKEDEV calls to init.d.functions
Control: severity 609736 serious On Wed, Jan 09, 2013 at 07:45:11PM +0100, Sven Hartge wrote: I would be quite disappointed if I now have to add mknod statements to my own init script or the isdnutils init script or rc.local. (It is besides the point that I know how to do this. Some other user may lack the knowledge how to correctly create init scripts.) For clarity - considering this used to work without having the above, I consider this to be a release critical issue for Wheezy. Thus, it needs fixing somehow or isdnutils will be removed from the release. Neil McGovern Release Manager -- signature.asc Description: Digital signature
Bug#609736: please readd MAKEDEV calls to init.d.functions
Christoph Biedl wrote: Rolf Leggewie wrote... For the time being the administrator needs to make sure the devices are created. So you want each isdnutils user to manually hack some mknod statements into the bootup scripts as you consider it a bad idea providing that as package maintainer? Seriously? To add my 2¢: As a long time Debian user (and admin of some 100 servers) I always liked the just works way of usage of Debian packages. Install a deb, tweak the configuration and be done with it. I would be quite disappointed if I now have to add mknod statements to my own init script or the isdnutils init script or rc.local. (It is besides the point that I know how to do this. Some other user may lack the knowledge how to correctly create init scripts.) Of course, nowadays device nodes should be created by udev, acting upon events from the kernel. And most drivers are able to generate these events. But the old ISDN4Linux code has never been ported and probably never will. So far this statement from Karsten Keil from 2004 (!) still stands: ,[ http://osdir.com/ml/linux.isdn.i4l.user/2004-05/msg00012.html | - what is the best way to get these device nodes? | | create it in the ISDN start script with mknod ` Insisting upon the standpoint but the kernel/udev has to create the device nodes will not solve the problem for this release at this time in the freeze process. The Debian Policy states: , | 10.6 Device files | | [...] | | If a package needs any special device files that are not included in the | base system, it must call MAKEDEV in the postinst script, after notifying | the user (This notification could be done via a (low-priority) debconf message, or | an echo (printf) statement.) | | [...] ` I fail to find any policy which forces the use of udev or similar mechanisms. Of course, having the kernel/udev create the device nodes is technically correct but horribly broken in this special case. I'd like a little bit ugly but working solution, please without the need for the user/admin to manually hack the init scripts. Grüße, Sven. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
* Sven Hartge (s...@svenhartge.de) [130109 19:43]: I fail to find any policy which forces the use of udev or similar mechanisms. udev isn't required. However, packages shouldn't break if udev is installed (unless they conflict udev - which probably would zero the installation base these days, but that's something else). Andi -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
severity 609736 grave retitle 609736 isdn device nodes are no longer created tags 609736 patch thanks justification 609736 Renders package unusable Sven Hartge wrote ... *wave* In upload 1:3.9.20060704+dfsg.2-8 you removed the MAKEDEV call from init.d.functions but this causes isdnlog and vboxgetty to fail for me, complaining about missing /dev/isdnctrl0 and /dev/ttyI1. Unfortunately modprobe hisax isdn does _not_ create the necessary isdnctrl0 and ttyI* nodes in /dev so the MAKEDEV call is still necessary. (Very crude, I know, but it seems the kernel code does not create the needed events for udev.) Part two of ISDN breakage after wheezy upgrade (part one was #696532). Sorry this took a while, had to find hardware for a fresh install and using the stock Debian kernel first, just to make sure. No change in the behaviour, though. So: Unfortunately, the core issue of Sven's bug report remained undealt with: The /dev/isdn* and /dev/ippp* nodes are not created any longer, rendering the entire ISDN subsystem unusable, severity raised accordingly. The patch below restores the behaviour of squeeze with updates regarding recognizing udev. That's not a nice one but it works. Applies on the wheezy version of isdnutils (1:3.25+dfsg1-3wheezy1). During the holidays I'll prepare an NMU for both issues, let me know soon if you plan to do an upload on your own. Christoph commit 963e0f2bf35d4843dfa8c634f6c5b2a99060d007 Author: Christoph Biedl debian.a...@manchmal.in-ulm.de Date: Mon Dec 24 17:48:47 2012 +0100 Re-add MAKEDEV calls to init.d.functions. Closes: #609736 diff --git a/debian/control b/debian/control index 7b02d83..992d4f6 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Package: isdnutils-base Priority: optional Architecture: linux-any Pre-Depends: debconf (= 1.2.9) | debconf-2.0 -Depends: ${shlibs:Depends}, lsb-base (= 1.3-9ubuntu3), ${misc:Depends} +Depends: ${shlibs:Depends}, lsb-base (= 1.3-9ubuntu3), makedev, ${misc:Depends} Suggests: ipppd, isdnlog, isdnutils-doc, isdnutils-xtools, isdnvboxserver, isdnvboxclient Description: ISDN utilities - minimal set This package provides the basic set of ISDN utilities needed to make use diff --git a/debian/init.d.functions b/debian/init.d.functions index 1979cab..00d50cb 100644 --- a/debian/init.d.functions +++ b/debian/init.d.functions @@ -80,15 +80,26 @@ check_isdncards() { if $isdncards_unchecked; then isdncards_unchecked=false - # see discussion in bug 609736 regarding use of if and ln in the next three lines - if [ ! -e /dev/isdnctrl -a -e /dev/isdnctrl0 ]; then - ln -sf /dev/isdnctrl0 /dev/isdnctrl - fi - if [ -e /dev/isdninfo ]; then ISDNINFO=/dev/isdninfo elif [ -e /dev/isdn/isdninfo ]; then ISDNINFO=/dev/isdn/isdninfo + elif [ -d /dev/.udev/ ] || [ -d /run/udev/ ] ; then + # udev is running + old_pwd=$(pwd) + cd /dev + WRITE_ON_UDEV=1 /sbin/MAKEDEV isdnmodem isdnbri dcbri isdn-io isdn-tty isdn-ippp + cd $old_pwd + if [ -e /dev/isdninfo ]; then + ISDNINFO=/dev/isdninfo + elif [ -e /dev/isdn/isdninfo ]; then + ISDNINFO=/dev/isdn/isdninfo + fi +fi + + # see discussion in bug 609736 regarding use of if and ln in the next three lines + if [ ! -e /dev/isdnctrl -a -e /dev/isdnctrl0 ]; then + ln -sf /dev/isdnctrl0 /dev/isdnctrl fi if [ -z $ISDNINFO ]; then signature.asc Description: Digital signature
Bug#609736: please readd MAKEDEV calls to init.d.functions
Christoph Biedl wrote... During the holidays I'll prepare an NMU for both issues, let me know soon if you plan to do an upload on your own. Um, hold it. In the meantime I also found an upgrade issue and segmentation faults in isdnlog. But for now, some family issues require for attention. Christoph -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
Hallo Sven, On 12.01.2011 08:50, Sven Hartge wrote: In upload 1:3.9.20060704+dfsg.2-8 you removed the MAKEDEV call from init.d.functions but this causes isdnlog and vboxgetty to fail for me, complaining about missing /dev/isdnctrl0 and /dev/ttyI1. The calls were obviously removed on purpose, I'm sure you were aware of that. We as isdnutils maintainers feel that it's the kernel's job and specifically the drivers' jobs to create the device nodes. Please report a new ticket against the isdn4linux part of the kernel. It would be cool if you let me know the ticket number so that I can follow it. I will leave this ticket open to document the necessary steps the users have to take. Depending on the kernel team's reaction I may also consider other options to make sure things are working as expected. Overall, we feel that this is not really an isdnutils issue, though, but should be dealt with elsewhere. Additionally the following code should IMHO be changed to use "-sf" to not fail if the link already exists: 91 if [ ! -e /dev/isdnctrl ]; then 92 cd /dev ln -sf isdnctrl0 isdnctrl 93 fi Thank you for this suggestion. But I don't quite understand the need to force the creation. That's what the if-part is for, isn't it? Regards Rolf PS: I hope this one goes out as plaintext and not HTML. TB is getting too smart for its own good lately. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
On 12.01.2011 16:22, Rolf Leggewie wrote: Hallo Sven, On 12.01.2011 08:50, Sven Hartge wrote: In upload 1:3.9.20060704+dfsg.2-8 you removed the MAKEDEV call from init.d.functions but this causes isdnlog and vboxgetty to fail for me, complaining about missing /dev/isdnctrl0 and /dev/ttyI1. The calls were obviously removed on purpose, I'm sure you were aware of that. We as isdnutils maintainers feel that it's the kernel's job and specifically the drivers' jobs to create the device nodes. Please report a new ticket against the isdn4linux part of the kernel. It would be cool if you let me know the ticket number so that I can follow it. I know, the kernel (and udev) should create them, unfortunately i4l is deprecated and was never ported to use sysfs, so udev does not create any devices. And from the (sad) state of ISDN in the kernel I am guessing, nobody will port the code to sysfs. I even found discussions with Karsten Keil concerning this matter on the i4l-list as back as the days of Linux 2.6.6 in 2004 (!!). Have look at the following thread: http://osdir.com/ml/linux.isdn.i4l.user/2004-05/msg00011.html Quote: | - what is the best way to get these device nodes? create it in the ISDN start script with mknod (Answer from Karsten Keil) The kernel maintainers even removed i4l for a short period of time (see bug#588551) and I am afraid to submit a bug concerning this issue, because this might cause another removal from the kernel in Debian. (Note: you might want to document the fact one has to blacklist the mISDN drivers like hfcpci you want to use hisax, since the mISDN ones get automatically loaded and the i4l ones don't.) I will leave this ticket open to document the necessary steps the users have to take. Depending on the kernel team's reaction I may also consider other options to make sure things are working as expected. Overall, we feel that this is not really an isdnutils issue, though, but should be dealt with elsewhere. Question is: where? As is, the packages don't work, since the needed devices are missing and nobody creates them. Additionally the following code should IMHO be changed to use -sf to not fail if the link already exists: 91 if [ ! -e /dev/isdnctrl ]; then 92 cd /dev ln -sf isdnctrl0 isdnctrl 93 fi Thank you for this suggestion. But I don't quite understand the need to force the creation. That's what the if-part is for, isn't it? During the state of my system without any ISDN device nodes, the start script for isdnlog etc. complained about an already existing symlink. This is because -e dereferences the symlink and if the target is not available, it will fail. So the correct solution here is not to use ln -sf but to use [ -L /dev/isdnctl ] to check for the existance of the symlink. PS: I hope this one goes out as plaintext and not HTML. TB is getting too smart for its own good lately. Was in HTML. Grüße, Sven. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
Hallo Sven, Jan-Michael and I are discussing the options to properly create the devices. We both feel it's better to try to fix the issue in udev or the kernel. Jan-Michael may be able to put forth a bit of effort to that end to help the maintainers of those packages. On 13.01.2011 00:11, Sven Hartge wrote: (Note: you might want to document the fact one has to blacklist the mISDN drivers like hfcpci you want to use hisax, since the mISDN ones get automatically loaded and the i4l ones don't.) Will have a look. I'm still learning all the i4l voodoo. You may want to open a separate ticket on this to make sure it won't be forgotten. As is, the packages don't work, since the needed devices are missing and nobody creates them. ACK. Eventually this will have to be dealt with somewhere. My hope is we can get rid of hacks as much as possible to get isdnutils into a maintainable state. Additionally the following code should IMHO be changed to use -sf to not fail if the link already exists: 91 if [ ! -e /dev/isdnctrl ]; then 92 cd /dev ln -sf isdnctrl0 isdnctrl 93 fi Thank you for this suggestion. But I don't quite understand the need to force the creation. That's what the if-part is for, isn't it? During the state of my system without any ISDN device nodes, the start script for isdnlog etc. complained about an already existing symlink. This is because -e dereferences the symlink and if the target is not available, it will fail. So the correct solution here is not to use ln -sf but to use [ -L /dev/isdnctl ] to check for the existance of the symlink. Well, -L is not the solution. It would break when the file exists but is not a symbolic link. I've come to the conclusion that quite surprisingly, your original suggestion is likely the way to go. This is due to the dereferencing you mentioned. Essentially, there's three possible states. a) file does not exist - create b) file exists and points to valid target - do nothing c) file exists but is a dangling symlink - overwrite I will update the package that is waiting for sponsorship. Regards Rolf -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
Package: isdnutils-base Version: 1:3.9.20060704+dfsg.2-8 Severity: normal Hi ISDN maintainers. In upload 1:3.9.20060704+dfsg.2-8 you removed the MAKEDEV call from init.d.functions but this causes isdnlog and vboxgetty to fail for me, complaining about missing /dev/isdnctrl0 and /dev/ttyI1. Unfortunately modprobe hisax isdn does _not_ create the necessary isdnctrl0 and ttyI* nodes in /dev so the MAKEDEV call is still necessary. (Very crude, I know, but it seems the kernel code does not create the needed events for udev.) The missing MAKEDEV, cause for 607387 can be resolved by adding a dependency on makedev. This should create to harm since both isdnutils-base and makedev are Priority: extra. Additionally the following code should IMHO be changed to use -sf to not fail if the link already exists: 91 if [ ! -e /dev/isdnctrl ]; then 92 cd /dev ln -sf isdnctrl0 isdnctrl 93 fi Grüße, Sven. -- System Information: Debian Release: 6.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (200, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core) Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages isdnutils-base depends on: ii debconf [debconf-2.0] 1.5.37 Debian configuration management sy ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib ii libncurses5 5.7+20100313-5 shared libraries for terminal hand ii lsb-base 3.2-26 Linux Standard Base 3.2 init scrip isdnutils-base recommends no packages. Versions of packages isdnutils-base suggests: pn ipppdnone (no description available) ii isdnlog 1:3.9.20060704+dfsg.2-8 ISDN utilities - connection logger pn isdnutils-docnone (no description available) pn isdnutils-xtools none (no description available) ii isdnvboxclient 1:3.9.20060704+dfsg.2-8 ISDN utilities - answering machine ii isdnvboxserver 1:3.9.20060704+dfsg.2-8 ISDN utilities - answering machine -- Configuration Files: /etc/isdn/init.d.functions changed [not included] -- debconf-show failed -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#609736: please readd MAKEDEV calls to init.d.functions
On 12.01.2011 08:50, Sven Hartge wrote: Package: isdnutils-base Version: 1:3.9.20060704+dfsg.2-8 Severity: normal Hi ISDN maintainers. In upload 1:3.9.20060704+dfsg.2-8 you removed the MAKEDEV call from init.d.functions but this causes isdnlog and vboxgetty to fail for me, complaining about missing /dev/isdnctrl0 and /dev/ttyI1. Sven, thank you very much for your continued testing and bug reporting. Much appreciated. I hope you'll bear with us through even more expected breakage in the future. Jan-Michael and I agreed that creation of the devices should not be the responsibility of isdnutils. I'll revisit the issue together with Jan-Michael. My ISDN system is about 8.000 miles away now so that makes it more difficult for me to do extensive testing. Michael, please contact me in chat when you have the time, OK? Regards Rolf -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org