Closed Bug 416218 Opened 16 years ago Closed 16 years ago

Can't print anything any more

Categories

(Core :: Printing: Output, defect)

x86
Linux
defect
Not set
major

Tracking

()

RESOLVED INVALID

People

(Reporter: mhullrich, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686 (x86_64); rv:1.9b4pre) Gecko/2008020702 SeaMonkey/2.0a1pre
Build Identifier: Mozilla/5.0 (X11; U; Linux i686 (x86_64); rv:1.9b4pre) Gecko/2008020702 SeaMonkey/2.0a1pre

The latest nightly build (see above) won't print web pages any more.  It brings up the print window, but it is all gray and white, and hangs without displaying anything (five minutes or more).  When I click the "close window" button, after a short time, the "Force Quit" window comes up, and when selected, that kills the browser.

Unfortunately, that means I can't use the nightly build any more, so I'll be going back to the stable release.

I'll check when there's a new nightly build that can print.

Reproducible: Always

Steps to Reproduce:
1.Open a page
2.Click the Print button
3.Wait
Actual Results:  
browser hangs until killed.

Expected Results:  
Should have brought up the data in the print options window for selection.

Makes the browser unusable.
Gecko recently switched to using the gnome print dialog.  What version of gtk do you have?
Assignee: general → nobody
Component: General → Printing
Product: Mozilla Application Suite → Core
QA Contact: general → printing
Version: unspecified → Trunk
$ yum list | grep -i gtk
authconfig-gtk.x86_64                    5.3.12-2.el5           installed       
gnome-python2-gtkhtml2.x86_64            2.14.2-4.fc6           installed       
gnome-python2-gtksourceview.x86_64       2.16.0-1.fc6           installed       
gtk+.x86_64                              1:1.2.10-56.el5        installed       
gtk2.x86_64                              2.10.4-19.el5          installed       
gtk2.i386                                2.10.4-19.el5          installed       
gtk2-devel.x86_64                        2.10.4-19.el5          installed       
gtk2-engines.i386                        2.8.0-3.el5            installed       
gtk2-engines.x86_64                      2.8.0-3.el5            installed       
gtkhtml2.x86_64                          2.11.0-3               installed       
gtkhtml3.x86_64                          3.12.0-1.fc6           installed       
gtkhtml3.i386                            3.12.0-1.fc6           installed       
gtkhtml3-devel.x86_64                    3.12.0-1.fc6           installed       
gtksourceview.x86_64                     1.8.0-1.fc6            installed       
gtkspell.i386                            2.0.11-2.1             installed       
gtkspell.x86_64                          2.0.11-2.1             installed       
libgtk-java.x86_64                       2.8.7-3.el5            installed       
perl-Gtk2.x86_64                         1.141-1.el5.rf         installed       
perl-Gtk2-Ex-FormFactory.noarch          0.65-1.el5.rf          installed       
pygtk2.x86_64                            2.10.1-8.el5           installed       
pygtk2-libglade.x86_64                   2.10.1-8.el5           installed       
usermode-gtk.x86_64                      1.88-3.el5             installed       
wxGTK.x86_64                             2.6.3-1.el5.rf         installed       
$ rpm -qa | grep -i gtk | sort
authconfig-gtk-5.3.12-2.el5.x86_64
gnome-python2-gtkhtml2-2.14.2-4.fc6.x86_64
gnome-python2-gtksourceview-2.16.0-1.fc6.x86_64
gtk+-1.2.10-56.el5.x86_64
gtk2-2.10.4-19.el5.i386
gtk2-2.10.4-19.el5.x86_64
gtk2-devel-2.10.4-19.el5.x86_64
gtk2-engines-2.8.0-3.el5.i386
gtk2-engines-2.8.0-3.el5.x86_64
gtkhtml2-2.11.0-3.x86_64
gtkhtml3-3.12.0-1.fc6.i386
gtkhtml3-3.12.0-1.fc6.x86_64
gtkhtml3-devel-3.12.0-1.fc6.x86_64
gtksourceview-1.8.0-1.fc6.x86_64
gtkspell-2.0.11-2.1.i386
gtkspell-2.0.11-2.1.x86_64
libgtk-java-2.8.7-3.el5.x86_64
perl-Gtk2-1.141-1.el5.rf.x86_64
perl-Gtk2-Ex-FormFactory-0.65-1.el5.rf.noarch
pygtk2-2.10.1-8.el5.x86_64
pygtk2-libglade-2.10.1-8.el5.x86_64
usermode-gtk-1.88-3.el5.x86_64
wxGTK-2.6.3-1.el5.rf.x86_64

Hope that helps.  I am running CentOS (RHEL) 5.1 with all the most recent updates as of this writing.
I just updated to kernel 2.6.18-53.1.13 and the problem still occurs.

Is there anything else you folks need?  I can't use the 2.0a1pre build with this problem, and there are others that are just as troublesome.

Any progress here?
I just ran my (freshly built) 2.0a1pre 64-bit seamonkey suite (under gdb), clicked the print button to see what would happen, and got this:

Starting program: /opt/mozilla/dist/bin/seamonkey-bin 
[Thread debugging using libthread_db enabled]
[New Thread 46912514586880 (LWP 5617)]
+++ JavaScript debugging hooks installed.
*** Registering components in: Apprunner
[New Thread 1084229952 (LWP 5620)]
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520015: file nsChromeRegistry.cpp, line 1593
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520015: file nsChromeRegistry.cpp, line 1593
[New Thread 1094719808 (LWP 5621)]
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520015: file nsXREDirProvider.cpp, line 1134
++WEBSHELL 0x3e69800 == 1
[New Thread 1105209664 (LWP 5622)]
[New Thread 1115699520 (LWP 5623)]
[Thread 1105209664 (LWP 5622) exited]
[Thread 1115699520 (LWP 5623) exited]
[New Thread 1115699520 (LWP 5624)]
++DOMWINDOW == 1 (0x41bc850) [serial = 1] [Outer = (nil)]
WARNING: NS_ENSURE_TRUE(strenum) failed: file nsCommandLine.cpp, line 603
++WEBSHELL 0x42cd000 == 2
++DOMWINDOW == 2 (0x42cdc50) [serial = 2] [Outer = (nil)]
WARNING: NS_ENSURE_TRUE(aRequestingContext) failed: file nsMsgContentPolicy.cpp, line 539
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004003: file nsMsgContentPolicy.cpp, line 240
WARNING: NS_ENSURE_TRUE(aRequestingContext) failed: file nsMsgContentPolicy.cpp, line 539
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004003: file nsMsgContentPolicy.cpp, line 240
WARNING: NS_ENSURE_TRUE(aRequestingContext) failed: file nsMsgContentPolicy.cpp, line 539
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004003: file nsMsgContentPolicy.cpp, line 240
++DOMWINDOW == 3 (0x4307450) [serial = 3] [Outer = 0x42cdc00]
[New Thread 1105209664 (LWP 5625)]
[New Thread 1126189376 (LWP 5626)]
++DOMWINDOW == 4 (0x44c0850) [serial = 4] [Outer = 0x41bc800]
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004003: file nsMsgContentPolicy.cpp, line 544
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004003: file nsMsgContentPolicy.cpp, line 240
WARNING: recurring into frame construction: 'mPresContext->mLayoutPhaseCount[eLayoutPhase_FrameC] == 0', file ../../dist/include/layout/nsPresContext.h, line 951
++WEBSHELL 0x492b000 == 3
++DOMWINDOW == 5 (0x4b77450) [serial = 5] [Outer = (nil)]
++DOMWINDOW == 6 (0x4c6a050) [serial = 6] [Outer = 0x4b77400]
[New Thread 1136679232 (LWP 5627)]
++DOMWINDOW == 7 (0x4f82c50) [serial = 7] [Outer = 0x4b77400]
CSS Error (http://www.google.com/ :1.593): Error in parsing value for property 'cursor'.  Declaration dropped.
CSS Error (http://www.google.com/ :1.653): Error in parsing value for property 'height'.  Declaration dropped.
CSS Error (http://www.google.com/ :1.662): Error in parsing value for property 'width'.  Declaration dropped.
JavaScript strict warning: http://www.google.com/, line 3: test for equality (==) mistyped as assignment (=)?
JavaScript strict warning: http://www.google.com/, line 3: test for equality (==) mistyped as assignment (=)?
WARNING: recurring into frame construction: 'mPresContext->mLayoutPhaseCount[eLayoutPhase_FrameC] == 0', file ../../dist/include/layout/nsPresContext.h, line 951
Document http://google.com/ loaded successfully
###!!! ASSERTION: null data pointer: 'Not Reached', file nsTSubstring.cpp, line 667
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file nsPrintOptionsImpl.cpp, line 1072
[Thread 1136679232 (LWP 5627) exited]

The program was hung here, so I interrupted:

Program received signal SIGINT, Interrupt.
[Switching to Thread 46912514586880 (LWP 5617)]
0x0000003a2f40cf2b in connect () from /lib64/libpthread.so.0
(gdb) 

Hope that helps.

mhr
Addendum: As an afterthought, I opened a pdf from the browser (uses AR via nspluginwrapper) and that printed the pdf just fine.  Doubt that this is related, but I thought you might like to know.

mhr
> Program received signal SIGINT, Interrupt.
> [Switching to Thread 46912514586880 (LWP 5617)]
> 0x0000003a2f40cf2b in connect () from /lib64/libpthread.so.0
> (gdb) 

Try

(gdb) bt

and then copy/paste the result into a file and attach it ("Add an attachment") to this bug.
(gdb) bt
#0  0x0000003a2f40cf2b in connect () from /lib64/libpthread.so.0
#1  0x0000003edde187c1 in httpAddrConnect () from /usr/lib64/libcups.so.2
#2  0x0000003edde17801 in httpReconnect () from /usr/lib64/libcups.so.2
#3  0x0000003edde17e8c in httpConnectEncrypt () from /usr/lib64/libcups.so.2
#4  0x00002aaabe9d3946 in pb_module_init ()
   from /usr/lib64/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.so
#5  0x00000032bb856f7d in gtk_print_run_page_setup_dialog ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#6  0x0000003a3140b04a in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#7  0x0000003a3141b29d in g_signal_override_class_closure ()
   from /lib64/libgobject-2.0.so.0
#8  0x0000003a3141c706 in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#9  0x0000003a3141c8e3 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#10 0x00000032bb8007cb in gtk_tree_selection_select_path ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#11 0x00000032bb8008ad in gtk_tree_selection_select_iter ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#12 0x00000032bb858a91 in gtk_print_unix_dialog_new ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x0000003a3140b04a in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#14 0x0000003a3141b29d in g_signal_override_class_closure ()
   from /lib64/libgobject-2.0.so.0
#15 0x0000003a3141c706 in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#16 0x0000003a3141e2b0 in g_signal_emit_by_name ()
   from /lib64/libgobject-2.0.so.0
#17 0x00002aaabe9d17a4 in pb_module_init ()
   from /usr/lib64/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.so
#18 0x00002aaabe9d1097 in pb_module_init ()
   from /usr/lib64/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.so
#19 0x0000003a30c2ce24 in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#20 0x0000003a30c2fc5d in g_main_context_check () from /lib64/libglib-2.0.so.0
#21 0x0000003a30c3018e in g_main_context_iteration ()
   from /lib64/libglib-2.0.so.0
#22 0x00002aaab28a3818 in nsAppShell::ProcessNextNativeEvent (this=0x14026350, 
    mayWait=0) at nsAppShell.cpp:144
#23 0x00002aaab28ca273 in nsBaseAppShell::DoProcessNextNativeEvent (
    this=0x14026350, mayWait=0) at nsBaseAppShell.cpp:146
#24 0x00002aaab28ca6d7 in nsBaseAppShell::OnProcessNextEvent (this=0x14026350, 
    thr=0x14063230, mayWait=0, recursionDepth=1) at nsBaseAppShell.cpp:262
#25 0x00002aaaab3423ef in nsThread::ProcessNextEvent (this=0x14063230, 
    mayWait=0, result=0x7fff189d4354) at nsThread.cpp:497
#26 0x00002aaaab2d4ac3 in NS_ProcessPendingEvents_P (thread=0x14063230, 
    timeout=20) at nsThreadUtils.cpp:180
#27 0x00002aaab28ca9d9 in nsBaseAppShell::NativeEventCallback (this=0x14026350)
    at nsBaseAppShell.cpp:119
#28 0x00002aaab28a3c6e in nsAppShell::EventProcessorCallback (
---Type <return> to continue, or q <return> to quit---
    source=0x142cf800, condition=G_IO_IN, data=0x14026350) at nsAppShell.cpp:69
#29 0x0000003a30c2ce24 in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#30 0x0000003a30c2fc5d in g_main_context_check () from /lib64/libglib-2.0.so.0
#31 0x0000003a30c2ff6a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#32 0x00000032bb6b88da in gtk_dialog_run () from /usr/lib64/libgtk-x11-2.0.so.0
#33 0x00002aaab28bec96 in RunDialog (aDialog=0x16142000)
    at nsAccessibilityHelper.cpp:52
#34 0x00002aaab28c0d37 in nsPrintDialogWidgetGTK::Run (this=0x7fff189d4610)
    at nsPrintDialogGTK.cpp:335
#35 0x00002aaab28c1e42 in nsPrintDialogServiceGTK::Show (this=0x1428aa20, 
    aSettings=0x16e58c30) at nsPrintDialogGTK.cpp:507
#36 0x00002aaab3904704 in nsPrintingPromptService::ShowPrintDialog (
    this=0x14248300, parent=0x15b71800, webBrowserPrint=0x15d91bf8, 
    printSettings=0x16e58c30) at nsPrintingPromptService.cpp:117
#37 0x00002aaab4a27afd in nsPrintEngine::DoCommonPrint (this=0x142ae600, 
    aIsPrintPreview=0, aPrintSettings=0x16e58c30, aWebProgressListener=0x0)
    at nsPrintEngine.cpp:589
#38 0x00002aaab4a2840f in nsPrintEngine::CommonPrint (this=0x142ae600, 
    aIsPrintPreview=0, aPrintSettings=0x16e58c30, aWebProgressListener=0x0)
    at nsPrintEngine.cpp:418
#39 0x00002aaab4a285ea in nsPrintEngine::Print (this=0x142ae600, 
    aPrintSettings=0x16e58c30, aWebProgressListener=0x0)
    at nsPrintEngine.cpp:724
#40 0x00002aaab445c4ad in DocumentViewerImpl::Print (this=0x15d91bd0, 
    aPrintSettings=0x16e58c30, aWebProgressListener=0x0)
    at nsDocumentViewer.cpp:3486
#41 0x00002aaab496a9cb in nsGlobalWindow::Print (this=0x15b71800)
    at nsGlobalWindow.cpp:4358
#42 0x00002aaaab35c991 in NS_InvokeByIndex_P (that=0x15b71800, methodIndex=74, 
    paramCount=0, params=0x7fff189d4e30) at xptcinvoke_x86_64_linux.cpp:208
#43 0x00002aaab082b4de in XPCWrappedNative::CallMethod (ccx=@0x7fff189d5290, 
    mode=XPCWrappedNative::CALL_METHOD) at xpcwrappednative.cpp:2369
#44 0x00002aaab083a284 in XPC_WN_CallMethod (cx=0x15b76400, obj=0x14a21880, 
    argc=0, argv=0x16235060, vp=0x7fff189d5488)
    at xpcwrappednativejsops.cpp:1470
#45 0x00002aaaaab60da5 in js_Invoke (cx=0x15b76400, argc=0, vp=0x16235050, 
    flags=2048) at jsinterp.c:1274
#46 0x00002aaaaab52f1a in js_Interpret (cx=0x15b76400) at jsinterp.c:4814
#47 0x00002aaaaab60e1e in js_Invoke (cx=0x15b76400, argc=1, vp=0x16235038, 
    flags=2) at jsinterp.c:1290
#48 0x00002aaaaab6113a in js_InternalInvoke (cx=0x15b76400, obj=0x1631d980, 
    fval=367077888, flags=0, argc=1, argv=0x159683f0, rval=0x7fff189d63f8)
    at jsinterp.c:1346
#49 0x00002aaaaaafc916 in JS_CallFunctionValue (cx=0x15b76400, obj=0x1631d980, 
    fval=367077888, argc=1, argv=0x159683f0, rval=0x7fff189d63f8)
    at jsapi.c:5024
#50 0x00002aaab494cb28 in nsJSContext::CallEventHandler (this=0x14a2e160, 
    aTarget=0x15e8c000, aScope=0x1631d980, aHandler=0x15e12a00, 
---Type <return> to continue, or q <return> to quit---
    aargv=0x17bcd8c8, arv=0x7fff189d6570) at nsJSEnvironment.cpp:1961
#51 0x00002aaab4977f3a in nsGlobalWindow::RunTimeout (this=0x15e8c000, 
    aTimeout=0x15ef0b80) at nsGlobalWindow.cpp:7739
#52 0x00002aaab497847c in nsGlobalWindow::TimerCallback (aTimer=0x15fc3100, 
    aClosure=0x15ef0b80) at nsGlobalWindow.cpp:8070
#53 0x00002aaaab347fa2 in nsTimerImpl::Fire (this=0x15fc3100)
    at nsTimerImpl.cpp:400
#54 0x00002aaaab3481b6 in nsTimerEvent::Run (this=0x179893e0)
    at nsTimerImpl.cpp:490
#55 0x00002aaaab3424d8 in nsThread::ProcessNextEvent (this=0x14063230, 
    mayWait=1, result=0x7fff189d685c) at nsThread.cpp:510
#56 0x00002aaaab2d4974 in NS_ProcessNextEvent_P (thread=0x14063230, mayWait=1)
    at nsThreadUtils.cpp:227
#57 0x00002aaab28ca910 in nsBaseAppShell::Run (this=0x14026350)
    at nsBaseAppShell.cpp:164
#58 0x00002aaab368debe in nsAppStartup::Run (this=0x14326d40)
    at nsAppStartup.cpp:181
#59 0x00002aaaaae46f88 in XRE_main (argc=1, argv=0x7fff189d7218, 
    aAppData=0x14025080) at nsAppRunner.cpp:3154
#60 0x0000000000400d75 in main (argc=1, argv=0x7fff189d7218)
    at nsSuiteApp.cpp:103
(gdb) 

Let me know if you need anything else.
It looks like the gtk print dialog is attempting to query a cups printer that happen to be unavailable network printer.  Can you bring up the print dialog in other gtk apps like gedit?
Gedit print dialog works fine.  I have no network printers on my machine - it is completely self-contained.

I just tried connecting directly to the CUPS portal, and I can't get through with this (64-bit home-built) 2.0a1pre SeaMonkey.  I will try again with the 1.1.8 release (32-bit) version and post what happens after I finish my email.

mhr
Can't access CUPS portal (localhost:631) from the standard release either - not sure what's going on here....

$ yum list --enablerepo=rpmforge | grep -i cups
cups.x86_64                              1:1.2.4-11.14.el5_1.4  installed       
cups-devel.i386                          1:1.2.4-11.14.el5_1.4  installed       
cups-devel.x86_64                        1:1.2.4-11.14.el5_1.4  installed       
cups-libs.i386                           1:1.2.4-11.14.el5_1.4  installed       
cups-libs.x86_64                         1:1.2.4-11.14.el5_1.4  installed       
hal-cups-utils.x86_64                    0.6.2-5                installed       
libgnomecups.i386                        0.2.2-8                installed       
libgnomecups.x86_64                      0.2.2-8                installed       
apcupsd.x86_64                           3.10.18-1.2.el5.rf     rpmforge        
bluez-utils-cups.x86_64                  3.7-2.el5.centos       base            
cups-lpd.x86_64                          1:1.2.4-11.14.el5_1.4  updates         
gimp-print-cups.x86_64                   4.2.7-22               base            
libgnomecups-devel.x86_64                0.2.2-8                base            
libgnomecups-devel.i386                  0.2.2-8                base            
perl-Net-CUPS.x86_64                     0.55-1.el5.rf          rpmforge        

$ rpm -qa | grep -i cups
cups-libs-1.2.4-11.14.el5_1.4.i386
cups-libs-1.2.4-11.14.el5_1.4.x86_64
libgnomecups-0.2.2-8.i386
hal-cups-utils-0.6.2-5.x86_64
cups-devel-1.2.4-11.14.el5_1.4.i386
libgnomecups-0.2.2-8.x86_64
cups-1.2.4-11.14.el5_1.4.x86_64
cups-devel-1.2.4-11.14.el5_1.4.x86_64

Apparently the CUPS server is not running (probably since one of my CentOS upgrades).  I will ask there about this....

mhr
Turns out, something messed up my /etc/hosts file (I SWEAR _I_ didn't touch it), and the 127.0.0.1 line disappeared.  When I put it back, stopped CUPS, shut down the network, restarted the network and restarted CUPS, everything works fine.

I can print!

Thanks.  I'm now full time on my home build, 'cuz it works really nicely....

mhr
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.