Developers please consider that Debian attempts to maintain binary compatibility with other Linux distributions and if you break "proprietary shit" that runs on other distributions then it could be your fault (especially when a new version of libc6 is rushed into unstable to fix it not being uploaded to experimental). However it is completely understandable that only those who can run the software can provide enough information to help you fix the problem. And the original poster's bug report was poor. A lot of proprietary software is never officially supported on Debian GNU/Linux. One could only confidently tell a client that software will run on an unsupported platform if these kinds of bug reports are taken seriously. Otherwise the freedom to use a particular platform (and we all know which the best one is) is completely lost for many users as they are forced to use whatever Linux vendor and release version a software company dictates. I suspect Debian's founders had this in mind when writing section 5 of the Social Contract. Without maintaining binary compatibility the mere worry that one might need to run a proprietary program at some time in the future could be enough to stop one using this platform. Even though I have hardly used Win4Lin the mere fact it is available gave me the confidence to remove the ability to boot into Windows a long time ago. This is a tricky balance because there are significant costs that I detest. I'm tied to a 2.4 kernel. I can't apply many types of kernel patches. I can't give useful feedback in the event of a kernel panic. In other words it kills the kinds of feedback and participation that helps make free software successful. It looks like you're got more important software in main to worry about right now. In the meantime I'm sure Elmar and myself are happy to run libc6 from testing. As it stands I'd suggest sid's libc6 problems are release-critical and the severity level of this bug report should be serious. I don't want to spend any extra time trying to debug this so if the following information is insufficient for you let NeTraverse sort it out. Their mailing list is win4lin-users@netraverse.com and Richard Bass <rbass@netraverse.com>, Systems Software Architect, NeTraverse, Inc. is very active on the list. Upon booting win4lin tries to load its proprietary kernel modules. With libc6 2.3.2-2 this happens: Starting Win4Lin: /opt/win4lin/adminbin/rlock_tune: line 205: 712 Segmentation fault "$STATICMERGE"/bin/max_sessions >>"$LOGFILE" 2>&1 max_sessions failed. Here is the output: /opt/win4lin/drivers/tools/loadem: line 77: 739 Segmentation fault "$STATICMERGE"/bin/max_sessions >>"$LOGFILE" 2>&1 win4lin: mki_version 5, num_cpus 2, pae 0 win4Lin: preempt_enable 0x00000000 /opt/win4lin/drivers/tools/loadem: line 196: 865 Segmentation fault "$STATICMERGE"/drivers/tools/mknode_linux $SESSIONS >/dev/null 2>&1 done. I have attached a strace of what happens when one later tries to run win: strace -f -o strace.txt win /bin/win: line 231: 1695 Segmentation fault winconfig $USE_CONFIG list version >/dev/null 2>&1 /opt/win4lin/bin/win_probe: line 38: 1743 Segmentation fault $STATICMERGE/publicbin/dosexec ++VLW $CONFIG 2>/dev/null /bin/win line 231 is a call to: check_config The check_config function is: check_config() { # Note: # If the "win" configuration does already exist, # AND the "dos" configuration does already exist # then the winconfig command will silently and # automatically create the default dos and win configurations. winconfig $USE_CONFIG list version > /dev/null 2>&1 STATE=$? if [ $STATE -eq 3 ] then # Configuration does not exist. Log "Configuration $USE_CONFIG does not exist" # No such specified config. DM="LCC.PCI.UNIX.JANUS" usrMsg STRING CONFIG_NE \ "CONFIG_NE: win: ERROR: The configuration $USE_CONFIG does not exist." \ win "$USE_CONFIG" "$STATICMERGE"/x_msg -e "$USRMSG_STRING" exit 1 fi if [ $STATE -eq 4 ] then # Unreadable configuration. Log "Configuration $USE_CONFIG is not readable" DM="LCC.PCI.UNIX.JANUS" usrMsg STRING CONFIG_NR \ "CONFIG_NR: win: ERROR: The configuration $USE_CONFIG is not readable."\ win "$USE_CONFIG" "$STATICMERGE"/x_msg -e "$USRMSG_STRING" exit 1 fi } Line 205 of /opt/win4lin/adminbin/rlock_tune is: Auto_Adjust The Auto_Adjust function is: Auto_Adjust() { CHANGE=nochange if [ "_$MERGE_CDRIVE_G_LOCKS" = "_off" ] then MERGE_RLOCK_AUTO_SCALE=not_used fi if [ "_$MERGE_RLOCK_AUTO_SCALE" != "_on" \ -a $MERGE_RLOCK_FILETABLE_SIZE -ne 0 ] then return fi SESSIONS=`"$STATICMERGE"/bin/max_sessions` Log SESSIONS=$SESSIONS if [ "x$SESSIONS" = "x" ] then Log "max_sessions failed. Here is the output:" "$STATICMERGE"/bin/max_sessions >> "$LOGFILE" 2>&1 VAL=$? Log "exit code $VAL" SESSIONS=1 fi # The multi-session settings are somewhat guesses based # on what some alpha and beta testers reported. # The actual settings depend a lot on what the actual # Windows applications that users are using at the time. # So this auto-adjust will only make adjustments upwards. # Note: to disable this automatic adjustment, set # MERGE_RLOCK_AUTO_SCALE to "off" in /etc/default/merge if [ "_$MERGE_CDRIVE_G_LOCKS" = "_off" ] then # Only need the rlock tables for files on shared drives. # So don't need large tables for most situations. FILETABLE=512 OPENTABLE=768 LOCKTABLE=1024 HASHTABLE=100 elif [ $SESSIONS -le 2 ] then # Make sure that the settings are at least as large as the # values needed to run Winstone96 and Winstone97 in a single # session. Some testing has also shown that for two # sessions these numbers work while using MS-Office apps. FILETABLE=512 OPENTABLE=768 LOCKTABLE=1024 HASHTABLE=512 elif [ $SESSIONS -le 5 ] then # For 5 users (450Mhz 512MbRAM) FILETABLE=1536 OPENTABLE=2304 LOCKTABLE=3072 HASHTABLE=1024 elif [ $SESSIONS -le 10 ] then # For 10-12 users (833Mhz 512Mb) FILETABLE=7168 OPENTABLE=9216 LOCKTABLE=8192 HASHTABLE=2048 elif [ $SESSIONS -le 25 ] then # For 25 users (2x933Mhz 1Gb) FILETABLE=8192 OPENTABLE=8192 LOCKTABLE=8192 HASHTABLE=8192 else # Big numbers! FILETABLE=10240 OPENTABLE=10240 LOCKTABLE=10240 HASHTABLE=10240 fi # Other tweaks the admin might have to make: # Up the linux file-max parameter (/proc/sys/fs/file-max) # Up the linux inode limit (2.2 Kernels only) (/proc/sys/fs/inode-max) if [ "$MERGE_RLOCK_FILETABLE_SIZE" -lt $FILETABLE ] then MERGE_RLOCK_FILETABLE_SIZE=$FILETABLE CHANGE=changed Log MERGE_RLOCK_FILETABLE_SIZE changed to $FILETABLE fi if [ "$MERGE_RLOCK_OPENTABLE_SIZE" -lt $OPENTABLE ] then MERGE_RLOCK_OPENTABLE_SIZE=$OPENTABLE CHANGE=changed Log MERGE_RLOCK_OPENTABLE_SIZE changed to $OPENTABLE fi if [ "$MERGE_RLOCK_LOCKTABLE_SIZE" -lt $LOCKTABLE ] then MERGE_RLOCK_LOCKTABLE_SIZE=$LOCKTABLE CHANGE=changed Log MERGE_RLOCK_LOCKTABLE_SIZE changed to $LOCKTABLE fi if [ "$MERGE_RLOCK_HASHTABLE_SIZE" -lt $HASHTABLE ] then MERGE_RLOCK_HASHTABLE_SIZE=$HASHTABLE CHANGE=changed Log MERGE_RLOCK_HASHTABLE_SIZE changed to $HASHTABLE fi } Regards, Adam
Attachment:
strace.txt.bz2
Description: application/bzip