Uninstalling MacFuse on Lion

Last Updated on Samedi, 28 janvier 2012 09:15 Written by Henri Gomez Samedi, 28 janvier 2012 09:13

If you installed MacFuse on Lion (10.7) and tried to uninstall you may encountered the following error :

sudo /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh
MacFUSE Uninstaller: Can not find the Archive.bom for MacFUSE Core package.

Uninstaller didn’t check for Lion (uname -r reporting 11.x).
So fix is easy, just edit uninstaller script /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh and add 11*) in case next to 10*)

...

OS_RELEASE=`/usr/bin/uname -r`
case "$OS_RELEASE" in
  8*)
    log "Incorrect uninstall. Use the Tiger version please."
    exit 1
    ;;
  9*)
    PACKAGE_RECEIPT="$INSTALL_VOLUME/Library/Receipts/MacFUSE Core.pkg"
    OUTER_PACKAGE_RECEIPT="$INSTALL_VOLUME/Library/Receipts/MacFUSE.pkg"
    BOMFILE="$PACKAGE_RECEIPT/Contents/Archive.bom"
    ;;
  10*|11*)
     PACKAGE_RECEIPT=""
     BOMFILE="$INSTALL_VOLUME/var/db/receipts/com.google.macfuse.core.bom"
     ;;
esac
Learn More

Building Universal Apache Tomcat Native Library on OS/X

Last Updated on Mercredi, 21 mars 2012 08:18 Written by Henri Gomez Mercredi, 13 juillet 2011 03:41

I recently notice that my Apache Tomcat running on OS/X 10.6.8 couldn’t use Apache Tomcat Native Library.

INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
Jul 13, 2011 11:02:30 AM org.apache.coyote.http11.Http11Protocol init

After digging around and with the help of ASFer Mladen Turk, I figure my previous build was stick to 64bits mode only and I switched my JVM to 32bits mode using -d32.

The fix was then easy, just had to rebuild tomcat-native and asking OS/X gcc to produce both 32/64 bits model library using the following CLFAGS/APXSLDFLAGS.

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386-arch x86_64'

Here is a small script I’m using now to produce Apache Tomcat Native Library on OS/X.

curl http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-connectors/native/1.1.23/source/tomcat-native-1.1.23-src.tar.gz -o tomcat-native-1.1.23-src.tar.gz
tar xvzf tomcat-native-1.1.23-src.tar.gz
cd tomcat-native-1.1.23-src/jni/native

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-ssl=/usr --with-java-home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home --with-apxs=/usr/sbin/apxs
make clean
make

sudo cp .libs/libtcnative-1.0.1.23.dylib /usr/lib/java
sudo rm -f  /usr/lib/java/libtcnative-1.dylib
sudo ln -s /usr/lib/java/libtcnative-1.0.1.23.dylib /usr/lib/java/libtcnative-1.dylib

A note about Lion

If you get Java on Lion using the java command on terminal or via the Java Developer Package for Mac OS X 10.7, Java headers are not on the usual location and you could find them under /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers

You should then update the configure command line like this :

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-apxs=/usr/sbin/apxs --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/A/

Lion came with Xcode 4.1 and there is also an impact on linker side, libtcnative is now produced as libtcnative-1.0.dylib

Commands became so :

curl http://mir2.ovh.net/ftp.apache.org/dist//tomcat/tomcat-connectors/native/1.1.23/source/tomcat-native-1.1.23-src.tar.gz -o tomcat-native-1.1.23-src.tar.gz
tar xvzf tomcat-native-1.1.23-src.tar.gz
cd tomcat-native-1.1.23-src/jni/native

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-apxs=/usr/sbin/apxs --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/A/
make clean
make

sudo cp .libs/libtcnative-1.0.dylib /usr/lib/java
sudo rm -f  /usr/lib/java/libtcnative-1.dylib
sudo ln -s /usr/lib/java/libtcnative-1.0.dylib /usr/lib/java/libtcnative-1.dylib
Learn More

Apple JDK’s / OpenJDK’s – Core2Duo vs Core i7

Last Updated on Mercredi, 21 mars 2012 08:36 Written by Henri Gomez Lundi, 18 avril 2011 07:39

Previously I did benchmark of Apple VMs and OpenJDK 6 and I wanted to see how all of the JVMs available today on our Mac on two systems, an old Core2Duo and a newer Core i7. And also see how they perform 32 / 64 bits kernel mode.

So I redo full dacapo bench suite to include OpenJDK 6, and we have now 5 VMs (3 Java 6 and 2 Java 7) :

  • Apple Java 1.6.0_22 – Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-314, mixed mode)
  • Apple Java 1.6.0_24 – Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-348, mixed mode)
  • OpenJDK 7 bsd-port – OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)
  • OpenJDK 7 macosx-port – OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)
  • OpenJDK 6 macports – OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)

Results on MacBook Pro – Core2Duo 2.66Ghz – 32bits kernel

BenchApple JDK6 b22Apple JDK6 b24OpenJDK 1.7 bsd-portOpenJDK 1.7 macosx-portOpenJDK 1.6
avrora (10 iterations)54365246491750595061
eclipse (2 iterations)4944249529371314357237292
fop (10 iterations)561519395398456
h2 (2 iterations)720466356312634111051
jython (2 iterations)651759285947
luindex (10 iterations)109521701014985953
lusearch (10 iterations)77644379507776115534
pmd (10 iterations)31783295247534382437
sunflow (10 iterations)69697038654365666564
tomcat (5 iterations)4024392435713820
tradebeans (5 iterations)80287516585159145954
tradesoap (5 iterations)1683914603124771309612943
xalan (10 iterations)31282744291737832816

Results on iMac – Core i7 2.8Ghz – 64bits kernel

BenchApple JDK6 b22Apple JDK6 b24OpenJDK 1.7 bsd-portOpenJDK 1.7 macosx-portOpenJDK 1.6
avrora (10 iterations)34523349350536003269
eclipse (2 iterations)2608124506206642267623706
fop (10 iterations)392354299303324
h2 (2 iterations)55595341481447528766
jython (2 iterations)420441684094
luindex (10 iterations)20767636202226643
lusearch (10 iterations)14842101299830551168
pmd (10 iterations)20551884161418761635
sunflow (10 iterations)28082689231522672276
tomcat (5 iterations)1935185017721751
tradebeans (5 iterations)66336127513550925242
tradesoap (5 iterations)1925018265194432021722195
xalan (10 iterations)10671673762791775

Conclusion

As seen if previous article, latest Apple JVM, 1.6.0-24 perform better than the old 1.6.0-22, and still behind OpenJDK 7 and even OpenJDK 6. OpenJDK 7 bsd-port is still faster (by a small factor) than OpenJDK 7 from macosx-port (built with LLVM), in both simple threaded (Core2Duo, 2 cores) and large threaded (i7 4 cores with hyperthreading).

This benchmark show how good is Intel Core i7 comparing to previous generation Intel Core2Duo, roughly twice as fast.

Learn More
Designed by RocketTheme
WordPress is Free Software released under the GNU/GPL License.