Older blog entries for twisti (starting at number 21)

Right-mouse on a MacBook Pro

I've got a new, shiny MackBook Pro (actually an old one like this but with 15", because I don't like the new ones) and, as probably everyone knows: it only has one button. That sucks very much when it comes to context menus. On my old PowerBook G4 I had some settings in my xorg.conf to enable two- and three-finger taps, but I don't wanted to do that again.

Instead I wanted something to be turned on in GNOME itself. So my attention came to accessibility extensions.

Fortunately I don't need them but there is a nice mouse feature called "Simulated Secondary Click". I wanted to turn on "Trigger secondary click by holding down the primary button", but it said something about "mousetweaks is not installed". Damn...

I searched the OpenSolaris package repositories but couldn't find it. I thought this is a GNOME core package? And what about handicapped people really needing this? So I searched in the spec-files and found this as comment in SUNWgnome-a11y-mousetweaks:


# We have removed mousetweaks from our builds since it is GPLv3.
# For now, leave in the following comment so that our ARC
scripts
# recognize that we are not shipping this module starting with
# the 2.24 release.  When we re-integrate this package, remove
# the following line:
# PACKAGE NOT ARC REVIEWED BY SUN JDS TEAM

I have also filed a bug report to see what the exact problem is.

In the meantime I built it myself from source. I downloaded JDS Common Build Environment (CBE), patched the spec-file a bit:


Index: SUNWgnome-a11y-mousetweaks.spec
===================================================================
--- SUNWgnome-a11y-mousetweaks.spec	(revision 16491)
+++ SUNWgnome-a11y-mousetweaks.spec	(working copy)
@@ -23,7 +23,7 @@
 Name:                    SUNWgnome-a11y-mousetweaks
 Summary:                 provided mouse accessibility
enhancements
 Version:                 %{mousetweaks.version}
-Source:                  %{name}-manpages-0.1.tar.gz
+#Source:                  %{name}-manpages-0.1.tar.gz
 SUNW_BaseDir:            %{_basedir}
 SUNW_Copyright:          %{name}.copyright
 BuildRoot:               %{_tmppath}/%{name}-%{version}-build
@@ -79,9 +79,9 @@
 %install
 rm -rf $RPM_BUILD_ROOT
 %mousetweaks.install -d %name-%version
-rm -rf $RPM_BUILD_ROOT%{_mandir}
-cd %{_builddir}/%name-%version/sun-manpages
-make install DESTDIR=$RPM_BUILD_ROOT
+#rm -rf $RPM_BUILD_ROOT%{_mandir}
+#cd %{_builddir}/%name-%version/sun-manpages
+#make install DESTDIR=$RPM_BUILD_ROOT
 
 %if %build_l10n
 %else

...and: voila! I have a right mouse. Nice.

(free) OpenJDK on OpenSolaris, Part 64

After getting the 32-bit IcedTea built, I also want a 64-bit OpenSolaris version. But I can't get over this error:


----------
1. ERROR in
/export/home/twisti/projects/openjdk/icedtea6-bootstrap/build-hotspot-m64/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java
(at line 28)
        import com.sun.tools.jdi.LinkedHashMap;
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The import com.sun.tools.jdi.LinkedHashMap cannot be resolved
----------
1 problem (1 error)make[7]: *** [../generated/sa-jdi.jar]
Error 255

I am absolutely sure I had the same issue with the 32-bit build, but I can't remember how I fixed it. Damn!

So I decided to build OpenJDK directly with my pre-built IcedTea. Again it took some workarounds, but it worked:


$ java -version
openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build
1.6.0-internal-twisti_19_oct_2008_17_12-b00)
OpenJDK Server VM (build 10.0-b19, mixed mode)

And the actually wanted 64-bit version:


$ java -d64 -version
openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build
1.6.0-internal-twisti_19_oct_2008_17_12-b00)
OpenJDK 64-Bit Server VM (build 10.0-b19, mixed mode)

Now I will try OpenJDK7.

(free) OpenJDK on OpenSolaris

Today I was able for the first time to build OpenJDK on OpenSolaris completely with free tools. Unfortunately I couldn't use use CACAO as bootstrap VM because Boehm-GC has some problems on OpenSolaris, which I couldn't fix yet.

Since GCJ also uses Boehm-GC, I decided to use JamVM. The port was very straight-forward, except one small getcwd problem for which Robert already had a fix for. I will contribute all JamVM changes back to Robert.

After some IcedTea build system changes (yet to commit), some JVMTI file copying (maybe this is a JamVM bug, see instructions at the end), a small OpenJDK patch and some time, I got:


IcedTea is served: openjdk/control/build/solaris-i586

And, obviously, the build works:


$ uname -a
SunOS workstation 5.11 snv_98 i86pc i386 i86pc Solaris
$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (build 1.6.0_0-b12)
OpenJDK Server VM (build 1.6.0_0-b12, mixed mode)

I tried to write down all stuff that needs to be done here, but I'm very sure some steps are missing...

CACAO 0.99.3 runs Jake2

Two days ago I actually released CACAO 0.99.3, but didn't have time to do the announcement yet. Nonetheless the release has one very cool feature: you can play Jake2 for the first time! Simply run the Jake2 Webstart (I used the jogl-1.1 one) and start fragging.

Here is a screenshot playing it on x86_64-linux:

It should run on other architectures too, I'll try powerpc when I'm back home.

Finally: OpenJDK 6 b11 on Alpha Linux

Yesterday I finally was able to finish the OpenJDK build on Alpha Linux. I'm not exactly sure what really fixed the build, but definitely adding the missing compiler flags again (with -D_LITTLE_ENDIAN) helped. When Gary commited his zero work we lost some architecture dependent flags, I'll re-add them ASAP.

And now to the fun:

Finally a new release... and another one.

Pheew! After more than one year our codebase was ready to get a new release... so I did. And then I noticed, because I was a bit out of practice doing a release, it had a few bugs. Yeah, of course :-( So I made another one, called 0.99.1.

With official OpenJDK Java runtime library support we are now heading to a 1.0.0 release. I hope that one will be without bugs...

Changing Emacs' default font

I wanted to change the default font of Emacs without setting properties in the .Xresources. The window font can be changed with:

M-x customize-face RET default RET

I set it to misc-fixed with height 113.

The menubar font can be changed with:

M-x customize-face RET menu RET

I'm still searching for the correct font, but in my .Xresources it was:

Emacs*menubar.font: Lucida
Which OpenSolaris package contains pkg-config?

It took me some time to figure that out, because it's not installed per default from CD and I haven't upgraded the whole system yet (because I'm still running on my swap partition).

It's in SUNWgnome-common-devel. Pheew...

Password storage of nwamd(1)

Because I didn't know my WIFI password from the top of my head, I entered the wrong one when nwamd(1) was asking for it. But it didn't ask again. So I wondered where the passwords are stored.

After some google'ing I found the correct command:


# dladm show-secobj

Then I could delete the stored password with:


# dladm delete-secobj nwam-twisti-xx.xx.xx.xx.xx.xx

It seems dladm(1) is just a frontend for text files. The passwords are actually stored in /etc/dladm/secobj.conf.

Switch to OpenSolaris?

I'm thinking about to switch to OpenSolaris on my Apple mac mini. I installed Indiana on my Linux swap partition to see how it works.

Right now I'm trying to get suspend working (http://blogs.sun.com/randyf/entry/solaris_suspend_and_resume_how), but I'm not sure it will work with this version:


May 28 21:19:41 workstation genunix: [ID 314293 kern.info]
device pci8086,27a2@2(display#0) keeps up device
sd@0,0(sd#0), but the latter is not power managed

12 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!