-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I am attempting to port dosemu-1.4.0 to the OLPC operating system, Sugar, so that we may inflict DOS on yet another generation of innocent children. ~ The key difficulty with this is the necessity of installing in a non-default directory, in this case $SUGAR_BUNDLE_PATH/dosemu_install/ dosemu is theoretically relocatable, but I could not find any documentation indicating what was required to relocate it. By trial and error, I have determined that I need to patch the dosemu shell script and set the DOSEMU_LIB_DIR, DOSEMU_CONF_DIR, and DOSEMU_HDIMAGE_DIR envvars, in addition to PATH and LD_LIBRARY_PATH. I also have had to redirect the etc/dosemu/drives/c and d symlinks. Even after all this, I still get failures, as shown in the attached failure log. The first error is ERROR: X support not compiled in or not found: ERROR: /usr/lib/dosemu/libplugin_X.so: cannot open shared object file: No such file or directory This is very surprising, since I've set LD_LIBRARY_PATH in the launcher script. Another surprising error is Error in built-in global.conf: (line 671) Disk-device/file /var/lib/dosemu/drives/c doesn't exist. Since I have explicitly set DOSEMU_HDIMAGE_DIR, I don't know why I still see this. What do I have to do to make a relocated installation work? - --Ben -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIFT1CUJT6e6HFtqQRAqABAJ0abW354vMEcWYC2wkSgE4KdR3f1QCgn0mg GWTdB2cD5lm52Yi/5kNAtgs= =hD/0 -----END PGP SIGNATURE-----
groupadd: group 10003 exists You do not have the DOSEMU vga font installed and are running remote X. You need to install the vga font on your _local_ Xserver. Look at the readme for details. For now we start with an fixed font, which does not display all national characters correctly. ... be warned ERROR: X support not compiled in or not found: ERROR: /usr/lib/dosemu/libplugin_X.so: cannot open shared object file: No such file or directory Welcome to DOSEMU 1.4.0.0, a DOS emulator for Linux. Copyright (C) 1992-2006 the 'DOSEMU-Development-Team'. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files COPYING.DOSEMU and COPYING for more details. Use this program at your own risk! Press ENTER to confirm, and boot DOSEMU, or [Ctrl-C] to abort DOSEMU will run on _this_ terminal. To exit you need to execute 'exitemu' from within DOS, because <Ctrl>-C and 'exit' won't work! DOSEMU-FreeDOS is not available to boot DOSEMU. Please enter the name of a Linux directory which contains a bootable DOS, or press [Ctrl-C] to abort for manual installation of FreeDOS or another DOS, or press [ENTER] to quit if you suspect an error after manual installation. Creating symbolic link for A[å·°qô·7¿þ¿Psô·ô_ô·Pqô· qô· ûh? as /home/olpc/isolation/1/uid_to_home_dir/10014/data/.dosemu/drives/c The DOSEMU part of the proprietary installation has been done. Please make sure that you have a bootable DOS in 'A[å·°qô·7¿þ¿Psô·ô_ô·Pqô· qô· ûh?'. Read the documentation for details on what it must contain. The DOSEMU support commands are available within /var/lib/dosemu/drive_z on drive D:. You might want to use different config.sys and autoexec.bat files with your DOS. For example, you can try to copy D:\config.emu and D:\autoemu.bat to C:\, adjust them, and use the $_emusys option in ~/.dosemurc. Press ENTER to confirm, and boot DOSEMU, or [Ctrl-C] to abort /home/olpc/Activities/DOSEMU.activity/launcher.sh: line 16: 2338 Segmentation fault dosemu -E exitemu cp: cannot create regular file `/home/olpc/isolation/1/uid_to_home_dir/10014/data/.dosemu/drive_c/': Is a directory You do not have the DOSEMU vga font installed and are running remote X. You need to install the vga font on your _local_ Xserver. Look at the readme for details. For now we start with an fixed font, which does not display all national characters correctly. ... be warned In file included from built-in global.conf:676 from built-in global.conf:633 Error in built-in global.conf: (line 671) Disk-device/file /var/lib/dosemu/drives/c doesn't exist. 1 error(s) detected while parsing the configuration-file
--- dosemu.orig 2008-04-28 00:34:11.000000000 +0000 +++ dosemu.mod 2008-04-28 00:35:51.000000000 +0000 @@ -6,9 +6,9 @@ # # the below lines get patched, when a systemwide install is done -SYSTEM_CONF_PATH=/etc/dosemu -SYSTEM_XFONTS_PATH=/usr/share/dosemu/Xfonts -SYSTEM_BIN_PATH=/usr/bin +SYSTEM_CONF_PATH=$SUGAR_BUNDLE_PATH/dosemu_install/etc/dosemu +SYSTEM_XFONTS_PATH=$SUGAR_BUNDLE_PATH/dosemu_install/usr/share/dosemu/Xfonts +SYSTEM_BIN_PATH=$SUGAR_BUNDLE_PATH/dosemu_install/usr/bin get_binary() { BINARY=$SYSTEM_BIN_PATH/dosemu.bin
#!/usr/bin/env sh declare -x HOME="$SUGAR_ACTIVITY_ROOT/data" #declare -x WINEDEBUG="warn+all" declare -x DOTDIR="$HOME/.dosemu" declare -x PATH="$SUGAR_BUNDLE_PATH/dosemu_install/usr/bin:$PATH" declare -x LD_LIBRARY_PATH="$SUGAR_BUNDLE_PATH/dosemu_install/usr/lib:$WINEDLLPATH:$LD_LIBRARY_PATH" declare -x DOSEMU_LIB_DIR="$SUGAR_BUNDLE_PATH/dosemu_install/usr/lib" declare -x DOSEMU_CONF_DIR="$SUGAR_BUNDLE_PATH/dosemu_install/etc" declare -x DOSEMU_HDIMAGE_DIR=$DOSEMU_CONF_DIR if ! [ -e ~/.successfully_initialized ] then dosemu -E exitemu #create directory structure, then exit cp -r $SUGAR_BUNDLE_PATH/drive_c/* $DOTDIR/drive_c/ chmod -R g+rwx $DOTDIR touch ~/.successfully_initialized fi sh $SUGAR_BUNDLE_PATH/start_command.sh