Skip to content

4.1 Via Linux on a virtual box

André Knörig edited this page Nov 24, 2015 · 4 revisions

For building a release-ready Linux version of fritzing, it is useful to set up virtual machines:

We are using VirtualBox machines for building and testing releases, in total 4 virtual linux boxes using VirtualBox:

  • 32 bit ubuntu 12.04 dev (for building)
  • 32 bit ubuntu 12.04 raw (for testing)
  • 64 bit ubuntu 12.04 dev (for building)
  • 64 bit ubuntu 12.04 raw (for testing)

Set up each dev machine and run release.sh there. If that Fritzing build runs ok, transfer it to its equivalent raw machine, and if it also runs correctly there, call it good.

Set up the virtual boxes

  1. download the linux release of choice (32/64 12.04) as a disk image (.iso file)
  2. create a new linux image with virtualbox, and have it install from the disk image (you have to add the disk image to a list under the devices menu). Note: the default virtual RAM setting of 512MB seems ok, create new hard disk size should be at least 10GB.
  3. ubuntu will want to install updates, go ahead
  4. hook up a virtual folder for passing files between the virtual box and the host (http://www.virtualbox.org/manual/ch04.html)
  5. on the host, under the devices menu, add the VBoxGuestAdditions.iso to the list, then select it. This should mount it on the guest, and with any luck it will autorun (if not, click it to bring up a menu with an autorun option).
  6. now on the guest: sudo mount -t vboxsf [-o OPTIONS] sharename mountpoint

sharename is the name assigned to the shared folder in the virtual box host (usually just the basename of the folder)

mountpoint is a folder on the guest which must already be created

For a raw test virtual linux, you can stop at this point, for a dev machine continue like this:

Prepare the dev machines

*TODO: This should refer to 1.3-Linux-notes

Finish installing dev packages

sudo apt-get install zlib1g-dev build-essential libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev libboost-dev libboost-doc

Qt 5 additionally seems to require GL (or at least I haven't found the way to remove the requirement):

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

(For mac and pc, we include a C++ Boost library in the src/lib folder. Under linux we now assume that a boost library package has been installed, so the version in the Fritzing src/lib folder is not necessary. We would like to do the same for the other libraries in src/lib.)

Next download the Qt libraries: Easiest to download and install is the Qt SDK (this is the method we use), another option is to download the Qt source and build it (instructions at building qt from source).

If you want some version other than the latest, you may need git:

sudo apt-get install git-core
git clone git://gitorious.org/+qt-developers/qt/releases.git
cd releases
git checkout v4.6.2 (or whatever version you want)

If you're building Qt from source (see better instructions at building qt from source)

cd to qt folder

./configure -opensource -release -fast -no-qt3support -nomake tools -nomake docs -nomake examples -nomake demos -plugin-sql-sqlite -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -no-mmx -no-3dnow  -no-sse  -no-sse2  -no-sse3  -no-ssse3  -no-sse4.1 -no-sse4.2 -no-avx  -no-neon

If it fails: make confclean and go back to the ./configure step (note: these configuration options apply to Qt 4.8)

Then:

make
sudo make install

Build fritzing

Now build fritzing, from the /home folder:

mkdir workspace/fritzing
cd fritzing/release

Adapt the release.sh script if something has changed, and set its permission to executable

./release.sh 0.X.Yb