Daily Archive for July 18th, 2008

File I/O, Video, 3D Canvas - all in one go!


We have previously released experimental Labs builds containing File I/O, and 3D . For the first time we now have bundled them all into one build. On all of our desktop platforms.

Head over to the Labs to read more about the newest singing, dancing labs build… and to download your build!


WARNING: These are development snapshots: they contain the latest changes, but they also have severe known issues, including crashes and data loss situations. In fact, they may not work at all.

Opera Mobile 9.5 Beta Released for WM Touchscreen Devices

The first public beta of Opera Mobile 9.5 has finally arrived. Some of the new features:

  • Speed tests show Opera Mobile 9.5 beta loads Web pages 2.5 times faster than Internet Explorer Mobile
  • Opera Mobile 9.5 defaults to full Web page viewing and allows users to pan and zoom into their desired content in just a few clicks
  • With a click, simply save your selected content and view it later offline
  • Multitask with tabbed browsing, view content in widescreen, and enjoy small-screen rendering
  • Browse with the full richness of AJAX
  • Save time with address auto-complete and Password Manager
  • Upload to Web sites such as online mail services or blogs

A more complete list of features can be found here.

Be warned, however, that this beta is for Windows Mobile / Pocket PC touchscreen devices only. Non-touchscreen Windows Mobile and Symbian users are out of luck. The Opera Mobile blog reports they are “planning to add compatibility for non-touchscreen phones in the future.” The Mobile team has already promised a Symbian version.

Keep in mind this is beta software: “This release is intended for developers and advanced users. It may cause data loss or other unintended actions.”

And be sure to check out the “Reviewer’s Guide to Opera Mobile 9.5 Beta,” which looks excellent!

Download Opera Mobile 9.5 Beta

A peek under the hood


Today's post will be a bit unusual in the sense that it won't be about Opera itself, but rather about how Opera is brought to you. This post will attempt to explain to you how we get from a lump of source code that can be compiled in a lot of different ways with many different options to the Opera packages that you can download and install from this blog.

Install? That is already a complex process on its own. You do it once and never think about it again, but the fact is that installation is a crucial process and it has to work properly, otherwise you can't enjoy your favorite software! So, how do we fit all our code in an executable, then pack it in an installer?

There are essentially two processes that take part here: Building and packaging. We have a build system that realizes both of them. The first part of it is a web interface that collects build requests from everyone and then dispatches them to our build servers, each of which can make a build for the requested OS. The second part is a script, partly different for each OS, running on each build server which takes care of building and packaging.

The building part is pretty much the same on each platform: it obtains the requested version of the source code, compiles it with the right options and builds it into an executable (and libraries). The compilation part is taken care of by a compiler specific to the platform on which the build is made and it mostly takes care of itself, as long as the source code is correct.

At that point, everything is ready for packaging, and the script becomes very different depending on the OS. I will talk more specifically about packaging on Windows, since I am responsible for the Windows part of the build system.

There are two kind of packages on Windows: MSI packages made with InstallShield and "Classic" packages made using an old version of the WISE installer. The WISE installer is relatively easy to configure. It takes a sort of installation script, written in its own scripting language, and just executes it. It uses an additional DLL to realize functions that are not possible with only the script itself (like detecting Windows Vista). Although it is nice and easy, the WISE installer is not very well adapted to Windows versions more recent than Windows 98.

InstallShield is a much more powerful tool and MSI installers are a lot more complicated to put together. I won't get into much details here, but there is a huge amount of configuration that can be applied to an InstallShield package. It relies on an ISM file (Installer definition) which is XML formatted and indicates what the package should do, once compiled.

The packaging script starts by opening the installer definition file and set up a few things in it, preparing languages and translations of the installer itself. It enumerates all the files that need to be in the package and puts them in the right place. After a few more tweaks it builds the MSI package. The process is done once for each MSI package. The WISE installer is built along with the english-only MSI package but the process is trivial in comparison.

Maintaining and improving the build system and packaging scripts is no small task, but also an important task. Without it all builds and packages would have to be made manually!

This was it, a small peek at a hidden, but important part of Opera development.

In other news, our QA team has started their own blog - head over to the new QA blog for more peeks "under the hood".



Changelog:
  • Fixed a URL encoding issue in javascript: URLs
  • Fixed an issue with the BBC iPlayer RealPlayer plugin not working
  • Several stability fixes
  • Fixed a problem where GMail would not load



Download
Windows
Windows Classic
Macintosh
UNIX