Page 1 of 3

Puppy 4.1.2 Bug Fixes

Posted: Mon 08 Dec 2008, 09:11
by technosaurus
Post Bug Reports Here:
http://www.murga-linux.com/puppy/viewtopic.php?t=36454

Bug: some text files try to open in vi

Fix:
edit as text the following file:
/etc/xdg/rox.sourceforge.net/MIME-types/text

change code to:

Code: Select all

#!/bin/sh
exec defaulttexteditor "$@"
Edited 10DEC2008 at to fix my 4 a.m. typos

Posted: Mon 08 Dec 2008, 17:58
by Caneri

Posted: Tue 09 Dec 2008, 04:17
by Flash
Does 4.1.2 incorporate the fix Pizzasgood found for the bug where hitting the Insert key while composing a message in this forum causes Seamonkey to close?

Edit: I installed Pizzasgood's .pet in 4.1.1, then upgraded to 4.1.2 by burning the 4.1.2 iso to a DVD+RW with burniso2cd in 4.1.1 then shutting down, saving the session to the newly burned DVD. Then I booted the 4.1.2 DVD and it's what I'm using to write this. I've hit the insert key several times while writing this, so either Pizzasgood's fix was transferred to the 4.1.2 DVD or the 4.1.2 iso incorporates the fix.

Posted: Wed 10 Dec 2008, 04:03
by gammagone
Does 4.1.2 incorporate the fix Pizzasgood found for the bug where hitting the Insert key while composing a message in this forum causes Seamonkey to close?
I've been reading about the fix but haven't fixed it. Just now got 412-std and tested running in RAM and from full install. Go to compose window, hit insert key and Seamonkey disappears.

So the answer must be No.

Posted: Wed 10 Dec 2008, 23:36
by PaulBx1
Fix:
/etc/xdg/rox.sourceforge.net/text

change code to:...
Your message is a bit too terse for me. It seems you are saying to modify an existing file named "text"? I don't have one...

Posted: Thu 11 Dec 2008, 02:15
by gammagone
/etc/xdg/rox.sourceforge.net/text
should be:

/etc/xdg/rox.sourceforge.net/MIME-types/text

text is a script - right click, open as text,

change:

#!/bin/sh
exec xterm -e vi "$@"

to:

#!/bin/sh
exec geany "$@"

save, quit.

test before and after on any .css file
there may be other types but i can't remember

:wink:

Posted: Thu 11 Dec 2008, 02:28
by Pizzasgood
change:

#!/bin/sh
exec xterm -e vi "$@"

to:

#!/bin/sh
exec geany "$@"

save, quit.
Actually, to be proper it should use defaulttexteditor, not geany.

Posted: Thu 11 Dec 2008, 02:42
by gammagone
@Pizzasgood
Thank you. I didn't know that. :D

Posted: Thu 11 Dec 2008, 02:51
by technosaurus
good catches - I will update the post

Posted: Thu 11 Dec 2008, 05:09
by Pizzasgood
Basically ever since we started using Xorg, the xorgwizard has had a problem where if it Xorg detects two (or more) screens, it will partially configure the xorg.conf file for dual-screen support, but it won't finish the job. It adds a reference to a second screen in the Server section, but it leaves out the corresponding Screen section. This leaves Xorg un-runnable, forcing the user to manually correct the file from the commandline, by either commenting out the reference to the second screen or adding the missing section. Very annoying, and new users wouldn't have a clue what to do.

So tonight I fixed it. I didn't do anything fancy, I just did a little grepping to find out if multiple screens have been referenced, and then put the part that generates the Screen section into a for loop, replacing the hardcoded '0' with a variable. The file is /usr/sbin/xorgwizard and the lines are 874-886. Change this:

Code: Select all

#now write the Screen section...
SCRNSECTION="
Section \"Screen\"
	Identifier \"Screen0\"
	Device     \"Card0\"
	Monitor    \"Monitor0\"
    DefaultDepth $FINALDEPTH
    Subsection \"Display\"
        Depth       $FINALDEPTH
        Modes       \"${FINALXY}\"
    EndSubsection
EndSection
"
echo "$SCRNSECTION" >> /etc/X11/xorg.conf
to

Code: Select all

#now write the Screen section...
#handle multiple screens
SCREEN_LIST=$(grep -o '^[^#a-zA-Z]*Screen[^"]*"Screen[0-9]\+"' /etc/X11/xorg.conf | grep -o 'Screen[0-9]\+' | grep -o '[0-9]\+')
SCRNSECTION=""
for i in $SCREEN_LIST; do
SCRNSECTION="$SCRNSECTION
Section \"Screen\"
	Identifier \"Screen$i\"
	Device     \"Card$i\"
	Monitor    \"Monitor$i\"
	DefaultDepth $FINALDEPTH
	Subsection \"Display\"
		Depth       $FINALDEPTH
		Modes       \"${FINALXY}\"
	EndSubsection
EndSection
"
done
echo "$SCRNSECTION" >> /etc/X11/xorg.conf
Those line-numbers apply to both Puppy 4.1.2 and 4.1.1, as xorgwizard didn't change. This should work on a good number of other versions too, but the line numbers will be a little different.

Attached are the new version and a diff.

Posted: Thu 11 Dec 2008, 13:14
by edoc
Wow, you guys are amazing!

It has been 15 years since I chased code bugs but I remember how tough it could be to spot one in hundreds or thousands of lines of code.

Thanks for sharing this fix!

Posted: Thu 11 Dec 2008, 13:22
by edoc
Flash wrote: Edit: I installed Pizzasgood's .pet in 4.1.1, then upgraded to 4.1.2 by burning the 4.1.2 iso to a DVD+RW with burniso2cd in 4.1.1 then shutting down, saving the session to the newly burned DVD. Then I booted the 4.1.2 DVD and it's what I'm using to write this. I've hit the insert key several times while writing this, so either Pizzasgood's fix was transferred to the 4.1.2 DVD or the 4.1.2 iso incorporates the fix.
Flash - Is this method of updating new or improved or just locally convenient for you, please? I apparently have not kept up with all of the added versatility of Puppy! :-)

Between our three old Panasonic Toughbooks (two CF-28 and one CF-27) we have only one shared internal cd/dvd-rw as the drive carrier is hard to find and expensive. They don't allow booting from a USB stick.

Could I just burn a ISO CD on one laptop then copy the initrd.gz, vmlinuz, and pup_412.sfs to the HDD then also copy them to a USB stick and then copy them to the other two laptops?

BTW: Have you noticed if 4.12 fixes the memory/resource leak in 4.11?

Posted: Thu 11 Dec 2008, 18:22
by technosaurus
edoc wrote: Could I just burn a ISO CD on one laptop then copy the initrd.gz, vmlinuz, and pup_412.sfs to the HDD then also copy them to a USB stick and then copy them to the other two laptops?
If grub is already installed then all you would have to do is update the menu.lst otherwise you would need to install grub as well

Posted: Fri 12 Dec 2008, 01:18
by edoc
OK, it worked, with a few tweaks:

1. Downloaded puppy 4.12 and the matching devx

2. Burned an iso CD

3. Booted from the iso puppy pfix=ram

4. Created a /mnt/home/pup412 folder (already had a pup411 folder)

5. Copied initrd.gz, pup_412.sfs, and vmlinuz from the CD to my HDD (sda1) into /mnt/home/pup412

6. Copied devx_412.sfs from the download folder to /mnt/home/pup412

7. Edited /mnt/home/boot/grub/menu.lst - changed all references to pup411 to pup412

Rebooted ... then realized that I created a mess as it created new pup_save.2fs with none of my saved settings, files, etc. so ..........

8. Copied pup_save-411.2fs from /mnt/home/pup411 to /mnt/home/pup412 and renamed it pup_save-412.2fs

9. Rebooted and chose pup_save-412.2fs and waited for Puppy to fix everything ... then once open I rebooted again ... then all was good!

10. Copied initrd.gz, pup_412.sfs, vmlinuz, and devx_412.sfs from /mnt/home/pup412 to my USB stick.

11. Repeated the process above on the next laptop but instead of booting from the CD I merely copied the files into that /mnt/home/pup412 and made the necessary tweaks to Grub and dealt with the pup_save thing.

Are there steps I could skip here or was this about right, please?

Posted: Fri 12 Dec 2008, 04:29
by Flash
edoc wrote:
Flash wrote: Edit: I installed Pizzasgood's .pet in 4.1.1, then upgraded to 4.1.2 by burning the 4.1.2 iso to a DVD+RW with burniso2cd in 4.1.1 then shutting down, saving the session to the newly burned DVD. Then I booted the 4.1.2 DVD and it's what I'm using to write this. I've hit the insert key several times while writing this, so either Pizzasgood's fix was transferred to the 4.1.2 DVD or the 4.1.2 iso incorporates the fix.
Flash - Is this method of updating new or improved or just locally convenient for you, please? I apparently have not kept up with all of the added versatility of Puppy! :-)
Well my secret is out: I'm a lousy writer. I didn't specify once that I was talking about a multisession DVD. (Although my signature does say that I run Puppy from a multisession DVD. Still, I should have seen that what I wrote could be confusing.)

Posted: Fri 12 Dec 2008, 04:50
by Pizzasgood
You don't have to burn a CD just to get at the files inside. In the old days, I would have told you to run this and then look inside /mnt/data:
mount -o loop puppy.iso /mnt/data

But nowadays it's even easier: just click the iso. When you're done, click it again and Puppy will unmount it.

The same techniques also work for accessing the stuff inside .sfs files. It works on the save file too, but there's a catch: clicking it to mount will fail if the save file is the one you're booted from, or if it has the same name. Renaming it should fix that, or run the command by hand.

Posted: Fri 12 Dec 2008, 05:10
by Pizzasgood
/usr/sbin/petget has issues with spaces in the path to the file it's installing. Should be fixable by putting quotation marks around the $ALIENFILE variable at lines 971 and 981. I attached a working version and a diff.

Posted: Sun 14 Dec 2008, 11:11
by Dougal
Pizzasgood wrote:Basically ever since we started using Xorg, the xorgwizard has had a problem where if it Xorg detects two (or more) screens, it will partially configure the xorg.conf file for dual-screen support, but it won't finish the job. It adds a reference to a second screen in the Server section, but it leaves out the corresponding Screen section. This leaves Xorg un-runnable, forcing the user to manually correct the file from the commandline, by either commenting out the reference to the second screen or adding the missing section. Very annoying, and new users wouldn't have a clue what to do.
It's actually not the wizard that does that, it's the output of "Xorg -configure" that's responsible.
I updated the xorgwizard to handle such cases a long time ago (in the ATI/Nvidia thread) but I don't think anybody bothered to test it and give me useful feedback (the idea was to create a working multi-monitor xorg.conf by default).

Posted: Mon 15 Dec 2008, 14:36
by aragon
petget-fix by Pizzasgood tested => works!

cheers
aragon

Posted: Wed 17 Dec 2008, 19:26
by Botanic
Pizzasgood wrote:Basically ever since we started using Xorg, the xorgwizard has had a problem where if it Xorg detects two (or more) screens, it will partially configure the xorg.conf file for dual-screen support, but it won't finish the job. It adds a reference to a second screen in the Server section, but it leaves out the corresponding Screen section. This leaves Xorg un-runnable, forcing the user to manually correct the file from the commandline, by either commenting out the reference to the second screen or adding the missing section. Very annoying, and new users wouldn't have a clue what to do.
I'm having this bug, except i don't have multiple monitors.
Before applying the patch xorg wouldn't work at all (after i chose a resolution in the list of xorgwizard). Now i get a weird graphical screen with lines...

here's the second part of my xorg.conf file :
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc102"
Option "XkbLayout" "fr" #xkeymap0
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto" #mouse0protocol
Option "Device" "/dev/mouse"
#Option "Emulate3Buttons"
#Option "Emulate3Timeout" "50"
Option "ZAxisMapping" "4 5" #scrollwheel
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-65
VertRefresh 56-76
#UseModes "Modes0" #monitor0usemodes
Option "PreferredMode" "1024x768"
EndSection

Section "Modes"
Identifier "Modes0"
#modes0modeline0
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "DefaultRefresh" # [<bool>]
#Option "ModeSetClearScreen" # [<bool>]
Identifier "Card0"
Driver "vesa" #card0driver
VendorName "nVidia Corporation"
BoardName "Unknown Board"
BusID "PCI:2:0:0"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "DefaultRefresh" # [<bool>]
#Option "ModeSetClearScreen" # [<bool>]
Identifier "Card1"
Driver "vesa"
VendorName "nVidia Corporation"
BoardName "Unknown Board"
BusID "PCI:3:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x768"
EndSubsection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x768"
EndSubsection
EndSection

#PuppyHardwareProfile=NVIDIA231997