Skip navigation.

Opera Desktop Team

Posts tagged with "build"

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

Opera 9.52 snapshot "summer edition"

, , , ...

Hei
We are still doing polishing on Kestrel and have some more crashfixes etc for you all to play with.
Please look for regressions since 9.50

Changelog:
  • Lots of stability fixes
  • Fixed an issue with history navigation: an iframe with document.write is not added to history anymore
  • Fixed an issue where IRC would disconnec users without informing them
  • Fixed window.close() not functioning after invoking context menu - now also in widgets :whistle:
  • Fixed an issue where "Mark all as read" in M2 would also mark as read some mails not visible in the current view
  • Fixed creation of POP aim.com account


Download
Windows
Windows Classic
Macintosh
UNIX

8518,3466,383

, , ,

No, it is not the size of the Opera source code, but the build numbers of todays weekly. p:

Oh, and Ubuntu is now distributing Opera 9! Great news for us UNIX users :smile:

Enjoy!

Changelog
  • Spell checking now works on Gmail
  • Allowing third party cookies in site prefs when allowing only site-cookies globally now works
  • NTLM should now work through HTTP proxies
  • Improvement to interaction with plugins on Mac
  • Typed history is now removed when deleting history from prefs
  • Fixed a display problem relating to Windows media player
  • Added support for exls:node-set in XSLT
  • Links in ismap/map now works properly
  • Several SVG fixes
  • Several stability fixes and memory usage optimizations
  • Several IMAP fixes


UNIX notes
The rpm packages have the wrong dependencies, but will work fine if installed with
rpm -Uhv --nodeps opera-package.rpm


Known Issues:
  • This build will delete Emptied spam permanently
  • Chat style is different that previously, this is not intended
  • Static Linux packages are missing
  • Internal error pages appear blank


Download links

Windows MSI
Windows Classic
Macintosh
Unix

Friday once more!

, , ,

We got a Friday this week as well! And we have some builds for you again (the stress on some is unfortunately intentional).

First off: make sure you know that there are

Known issues
  • Searches are broken.
  • No FreeBSD 6 packages, and no .rpm or .deb packages available this time. Sorry…


and then, on the brighter side, read the

Changelog
  • Middleclick features (Paste'n'Go and Panning) are fixed.
  • Opening standalone files that require plugins are fixed.
  • opera: and mailto: links now work again.
  • Animated gif images no longer speed up! (Wheeee!!)
  • Added support for DOM level 2 Style Sheets and associated parts of DOM level 2 CSS. (Yay!!)
  • Improved handling of offsetTop, offsetLeft and offsetParent.
  • When enabling the status bar, link and form tooltips will not show the URL address anymore, and will display the content of the title attribute without the "Title: " prefix.
  • Multiple stability fixes.
  • IMAP fixes.
  • several NTLM fixes.


Have fun - and Happy testing!

Download links
Windows MSI
Windows Classic
Macintosh
Unix

yet another "weekly" build

, , ,

As olli announced just a few days ago, we are getting closer to a second beta release - the changelog is short:

Changelog
  • Fixed display on betanews.com.
  • Cache is not shared between widgets and pages opened from widgets.
  • Fixed Bittorrent downloads on Unix.
  • Fixed crash that could occur when exiting pages with Flash 8.
  • Fixed IPv6 on FreeBSD.


Download links
Windows MSI
Windows Classic
Macintosh
Unix

Weekly.. uhm or daily?

, , ,

Oki so we have yet another weekly build. The reason for the short time between the weeklies is that we are working on a beta 2 :smile:


Changelog
  • Fixed session handling for widgets.
  • Fixed bug with creating folders in widget panel.
  • Fixed wrongly nested tags freezer.


Known issue
  • betanews.com still broken


Download links
Windows MSI
Windows Classic
Macintosh
Unix

Post-beta weekly #1

, , ,

Again I would like to thank you for helping us bring Opera 9 to beta level.

The reason we had to use the second-last build for beta was that we included more fixes in that build than we planned, which again reopened earlier bugs on our regression testing list (which we simply don't accept in a public delivery).

The weekly build today should contain the best of both: The stability enhancements from the last build, but without the regressions since the beta. Oh, and mouse gestures don't crash in Widgets anymore...

Next week you should look forward to a rougher ride again as we plan many, many fixes and improvements :smile:

Download links
Windows MSI
Windows Classic
Macintosh
Unix

Easter egg/bug hunting edition

, , ,

This is as close as we get to a public beta release candidate before easter, so have fun with it, hunt down and report problems here and in the beta forum.

Oh, and if you use a Mac, there's another egg to be found. Hint: You need a remote control.

Some of the changes:
  • Fixed widget crash in in 16-bit/24-bit resolutions
  • Fixed crash caused by corrupted language files
  • Fix crash when resetting a form with a fieldset inside
  • Fixed bug with some archive files opened blank
  • Fixed bug where width calculation of images in Java-Script doesn't work
  • Fixed flash crasher
  • Fixed Bit Torrent crash and leak when resuming a torrent with one file missing
  • Fixed a couple of memory leaks


Mac specific:
  • Easter egg added

Windows specific:
  • MSI installer fixes for win98/win95

Unix specific:


Download links:
Windows Build 8359 MSI
Windows Build 8359Classic
Macintosh Build 3329
Unix build 229

Mid Weekly/Pre Beta RC

, , , ...

Hi
We are working hard on a Beta RC right now so we do need some feedback from ya'll :left:





Changelog

  • Fixed SVG context menu
  • Attempt to fix Widget Cache crasher
  • Fixed memory leak in Bit Torrent
  • Fix for a log-on problem that would occur with some IRC-servers (namely Freenode) when the user id entered in the account (typically the users e-mail address) contained a period (.)
  • Fixed problem with viewing non quick mail headers
  • Several finetunings in the MSI installer
  • Improved Widgets handling on Win98/win95
  • Fix for windows not loading on restart when widgets are open
  • Changed default installation location



Unix specific:

It's Friday again.

, , ,

Some were worried we would have moved our weeklies to Wednesdays - but do not fear: there is the usual Friday's Weekly for you too!

Widget UI (would you have guessed?) is still under development - but we keep seeing progress.

Changelog
  • Several memory leaks fixed;
  • Display issues fixed - noticeable e.g. on gmail and vBulletin sites;
  • Fixed bug with attachment button on gmail;
  • Fixed bug with pages not loaded on restart;
  • Fixed content blocker;
  • Fixed Proxy On/Off toggle in Quick Preferences;
  • Added setting for show widget handle in Preferences > General;
  • Ongoing work on widget GUI;


Unix Specific
  • Netscape Plug-in API 0.16 enabled on Linux/Unix
  • A shared .6 package is not available this time.


Yes - you saw that correctly: Netscape Plug-in API 0.16 has been enabled on Linux/Unix! This means for our Linux users, among other things, that mplayerplug-in now is working in Opera :smile:

Download Links
Windows Build 8333 MSI
Windows Build 8333 Classic
Macintosh Build 3312
Unix build 206