Running Blurb Booksmart in Linux (without Wine)

October 23rd, 2009  |  Published in Technology  |  36 Comments

[stextbox id="info"]Update: 2009.12.20. New version of installer released with major bugfixes.[/stextbox]
Blurb Booksmart is a book layouting application from Blurb Inc. that enables budding authors to create books using their own text and images. Think of it as a highly specialized Adobe Illustrator or Microsoft Publisher. After creating your book in the software, you upload it to Blurb’s website where you can then order printed copies of the book.

Officially, Blurb supports Booksmart only on Windows and Mac, however it is a generic Java application, and as such can easily be ran on Linux – with some finagling. You could try and run it through wine, but the layer of emulated Windows on top of the Java makes for an annoyingly sluggish experience. To make it easier for others, I’ve created a little script that will automatically download, convert, and install Booksmart in Linux.

[stextbox id="info"]Note: While, the following instructions are Ubuntu specific, a determined other-distro user could replace the apt calls in the script with calls to the appropriate package management tool.[/stextbox]

[stextbox id="download" big="true"]
Blurb Booksmart Installer
Author: Ramblurr, version: 0.2, updated: December 12, 2009,
Requires Java Version 1.6 or higher, Ubuntu Linux.[download id="1"][/stextbox]

Setting up the Location

After downloading the package, open up a terminal, and then extract the contents of the tarball.

tar zxf Blurb_Booksmart_Installer-0.2.tar.gz

Change to the directory where you want booksmart installed, and copy install.sh to that location.

Example:
cd /home/username/bin/
cp /path/to/Blurb_Booksmart_Installer/install.sh .

Run the Installer

With the terminal still open to the location where you want booksmart installed, execute the install script. Don’t forget to give it executable permissions first.

chmod +x install.sh
./install.sh

It will download all the necessary files to install booksmart 2.5.1. The process might take awhile on a slow internet connection.

Edit the launcher script

Once the script has finished executing, Booksmart should be installed in the current directory. You’ll need to edit the launcher script, so it knows where Booksmart is. The launcher script is booksmart.sh in the tarball.

Open it in an editor and edit the second line to point to the directory you created in step slash booksmart.

Example: BOOKSMART_PATH=/home/username/bin/booksmart

You can put this launcher script anywhere and use it to start bookmark. Don’t forget to give it executable permissions.

By default, Booksmart saves its data in $HOME/My Documents if you don’t like this you can change it by opening Booksmart and running File > Change Data Location.

Booksmart running in Kubuntu

Booksmart running in Kubuntu


Happy Blurbing : )

  • A true rescue in case you have no license for Windows in campus where creative arts are taught and tasks on text-and-pictures agre given
  • A nice addition to the selection of scripts for Linux. Works fine on university Ubuntu -based computers.
  • Tito
    Hi! thank you very much for the post. It's really hopefull. I'd like to try but can't download the installer because the link takes me herre again. Isn't it yet available?
  • You rock! You gave me the one thing needed to get the wife's laptop away from Windows and to Linux.

    Thanks!
  • trashtu
    I'm using Ubuntu 9.10 32bit and it runs ok, but when i try to load some images, it crashes, if I start the program in root mode, it works, but very slow, it's unusable.
    Do you have some idea?
    Here is the output of the terminal:
    version: 2.5.1.30022 jvm: 14.0-b16 jre: 1.6.0_0-b16 java: 1.6.0_0
    java.lang.ClassCastException: com.blurb.booksmart.ui.ScrollProxyPopupMenuUI cannot be cast to javax.swing.plaf.synth.SynthPopupMenuUI
    at javax.swing.plaf.synth.DefaultMenuLayout.invalidateLayout(DefaultMenuLayout.java:52)
    at javax.swing.BoxLayout.addLayoutComponent(BoxLayout.java:279)
    at java.awt.Container.addImpl(Container.java:1107)
    at java.awt.Container.add(Container.java:377)
    at javax.swing.JPopupMenu.add(JPopupMenu.java:281)
    at javax.swing.JMenu.add(JMenu.java:579)
    at com.blurb.booksmart.views.pcl.AbstractBookPicturesPCL.createAndAddPhotoSourceSubMenu(AbstractBookPicturesPCL.java:568)
    at com.blurb.booksmart.views.pcl.AbstractBookPicturesPCL.populateFilterPopupMenu(AbstractBookPicturesPCL.java:384)
    at com.blurb.booksmart.views.pcl.AbstractBookPicturesPCL.rebuildFilterPopupMenu(AbstractBookPicturesPCL.java:295)
    at com.blurb.booksmart.views.pcl.AbstractBookPicturesPCL$ImagesDownlodedHandler.onEvent(AbstractBookPicturesPCL.java:1487)
    at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:938)
    at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:845)
    at org.bushe.swing.event.EventBus.publish(EventBus.java:67)
    at com.blurb.booksmart.ui.dialogs.DownloadPanel$Copier.run(DownloadPanel.java:493)
    at java.lang.Thread.run(Thread.java:636)

    Thank you!
  • tom
    gave it a try and all works well to the point of importing photo's.
    booksmart shuts down without importing pics and asks if I want to email blurb with the error.
    I'm using ubuntu 8.04
    I can import pictures succesfully if I run
    sudo ./booksmart.sh

    it's very nice what you have done, thank you, much farther along than I could have done.
  • Tim
    Thanks, you saved me a lot of work!
  • I followed ubuntu notes and redirected the java path from another install set but I get the crash when trying to import pictures too. I would like to try your fixed version but when I click on the download link I get error 404 not found. any suggestions?

    edit - if I launch booksmart as root it does not crash. I don't know what permissions I would need to change though.
  • Tony
    Furym, you probably get the same java exception as I mentioned few posts earlier. Mine installation also works with root permissions.

    Tony
  • The link is fixed. Sorry, there was a hiccup with Wordpress.

    If you have successfully installed Booksmart via a different method, and are having problems using the software I'm not sure my version will help you at, but of course feel free to try anyway.
  • New version released that fixes all the aforementioned bugs. Also it now supports for 64-bit Ubuntu
  • Tony
    Thanks for the script. I had to edit a bit, but got Booksmart running on Ubuntu 8.1 with Java 1.6.
    The problem is that Booksmart crashes while trying to get photos from hardrive. I get:
    java.lang.ClassCastException: com.blurb.booksmart.ui.ScrollProxyPopupMenuUI cannot be cast to javax.swing.plaf.synth.SynthPopupMenuUI

    I know that this isn't the best place for this kind of question, but does anybody know what's wrong?

    Thanks!
  • I'm running this on Ubuntu 8.10 (Intrepid). I had to edit the install script a bit. The copy commands were missing the -r option, but that was minor. The application is launching nicely. Now I've got to make my photo book...
  • yJ
    Hi, thanks for this, but as voidandany say cp needs the -r option ! Strange things in my config booksmart crashes on loading image if ran as normal user but working if ran as root anybody has a clue ? Ans also is very slow 'quasi unusable' but on the same computer and native windows XP it's ok any clue again ?
    Greets,
  • voidandany
    I have noticed this crash problem to when I tried to load picture (I haven't tried to run as root).

    This problem also exist on Windows when I tried to make a portable installation

    For me : booksmart = XP on dual boot....
  • Jud
    Hi, I am running Ubuntu 9.10 (Karmic). Are the instructions still the same? I think I did everything right. But when I start it from "booksmart.sh", it asks me if I want to run this executable program, I click run, and nothing happens.

    Thanks,

    Jud
  • Rob
    I was able to follow your script to manually complete the task in Mandriva Spring 2009. Thank you. The only thing hiccup I found following your script was that I tried to copy the files in the 'lib' and 'resource' directories into my directory. I then realized that I had to copy the directories there, not the files. So, I just went to the '.../Java' directory and ran 'cp -rf * .../mydirectory/'. Thanks again.
  • Thanks for this script, 2-3 remarks, errors in the script :


    First problem met, the 2 lines :
    sudo cp $MNT_DIR/BookSmart.app/Contents/Resources/Java/lib/ .
    sudo cp $MNT_DIR/BookSmart.app/Contents/Resources/Java/resources/ .

    Don't work without the -r option


    2d problems, it is better to chown the 2 directories (lib and resources) with the current user


    But othewise the script is great
    thanks again
  • Sven
    Tried this on Debian SID. It installs fine but starting the script I get the following error:

    /booksmart.sh
    Exception in thread "main" java.lang.NoClassDefFoundError: com/blurb/booksmart/application/BookSmart
    Caused by: java.lang.ClassNotFoundException: com.blurb.booksmart.application.BookSmart
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    Could not find the main class: com.blurb.booksmart.application.BookSmart. Program will exit.

    java-version gives:

    java version "1.6.0_16"
    Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
    Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)

    Any suggestion ?

    Thank's
  • Have you guys edited 'booksmark.sh' to point to the location where booksmart was installed?
  • pohaku
    I'm getting exactly the same thing for /booksmart.sh and I'm running Ubuntu (Intrepid). I'm completely new to this, so I have no clue what's going on. Any ideas?
  • Sven
    I did get it to work (running both debian sid and opensuse) following the instructions below. I found them on a webpage I lost the address to.

    #Installation
    1. Download the Mac-software

    2. Unpack the dmg file using dmg2img software (in opensuse this is available ysing yast)

    # Copy the Macsoftware to a program directory somewhere
    cp BookSmart_2.5.1.dmg ~/programs/booksmart
    cd ~/programs/booksmart/
    dmg2img BookSmart_2.5.1.dmg

    #Now there is an .img file that can be mounted

    3. Mount the sofware
    mkdir -p /macbooksmart
    modprobe hfsplus
    modprobe hfs

    # As root mount the mac-software
    mount -t hfsplus -o loop /home/XXXXXX/programs/booksmart/BookSmart_2.5.1.img /macbooksmart

    # As user: Start Booksmart but first run these java commands
    classpath=""
    for jar in lib/*.jar; do classpath=$classpath:$jar; done

    # Now the software will start using this command (work for both java5 and 6)
    java -Xincgc -ea -Xms256m -Xmx1024m -classpath $classpath com.blurb.booksmart.application.BookSmart
  • Kirsten
    I've tried your method Sven, but I'm still getting exactly the same error as before. Any thoughts?
  • batts
    Sorry, I'm having the same problems mentioned above.
    Kubuntu 9.10
    java version "1.6.0_16"
    Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
    Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)

    Same error message as Sven. I've edited the booksmart.sh for my location of the .img file, and also tried what Sven reposted to get it to work, but I'm still unsuccessful, anyone have any other ideas? Am I missing something simple here?
  • Rob
    Make sure the script copied the 'lib' and 'resources' directories to YOUR booksmart directory, not just the files. That's what failed and then fixed it for me. See my post two below this.
  • Yes, my script automates all of this I'm guessing the startup script didn't work, because it wasn't looking in the right place for the installed booksmart.
  • pohaku
    I'm getting exactly the same thing for /booksmart.sh and I'm running Ubuntu (Intrepid). I'm completely new to this, so I have no clue what's going on. Any ideas?
  • Jaap
    I am really sorry but is doesnt work, I am usin a aspire one with linux. And I am not an expert in Linux.

    This is wat I get:

    --13:38:15-- http://ppa.launchpad.net/rzr/ppa/ubuntu/pool/ma...
    => `dmg2img_1.6.1-0ubuntu0~rzr1_i386.deb'
    Herleiden van ppa.launchpad.net... 91.189.90.217
    Verbinding maken met ppa.launchpad.net|91.189.90.217|:80... verbonden.
    HTTP-verzoek is verzonden, wachten op antwoord... 200 OK
    Lengte: 19,272 (19K) [application/x-debian-package]

    100%[====================================>] 19,272 --.--K/s

    13:38:15 (316.50 KB/s) - 'dmg2img_1.6.1-0ubuntu0~rzr1_i386.deb' opgeslagen [19272/19272]

    Installing DMG2IMG. Converts from Mac OSX .dmg format to .img
    sudo: dpkg: command not found
    Converting BookSmart dmg
    ./install.sh: line 11: dmg2img: command not found
    Mounting Image and Copying Files
    FATAL: Module hfsplus not found.
  • >"sudo: dpkg: command not found"
    You must not be using Ubuntu Linux. Like I said in the post, this installer is for Ubuntu only.
  • Jaap
    Oh ok, I do not know which system I am using. I only know that is a Linux version. But which one I do not know.

    Thanks.
  • lluis
    if you type:

    cat /etc/issue

    it should give you what flavour you are using
  • Jaap
    404 Not Found

    The requested URL /code/Blurb_Booksmart-2.5.1_Installer.tar.gz was not found on this server.
    Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24) mod_ssl/2.2.8 OpenSSL/0.9.8g Server at www.binaryelysium.com Port 80
  • What does the output say?
  • Jaap
    Hi,

    I am trying to install it but the install patch doesn't work!

    Greets,

    Jaap
blog comments powered by Disqus