New Opera 10.51 UNIX packages (.deb, .rpm & .tar)
Saturday, March 20, 2010 3:13:37 AM
Edit: If you are looking for a package read this.
This blog post is primarily aimed at our intermediate to advanced UNIX users. If you are new to UNIX you may find this to be too much detail. However, if you are interested in packaging or just want to know a little bit more about what we changed behind the scenes read on! If you are a user of the install script bundled in the tarball packages, you should certainly read on as the changes are potentially biggest for you.
This blog post is primarily aimed at our intermediate to advanced UNIX users. If you are new to UNIX you may find this to be too much detail. However, if you are interested in packaging or just want to know a little bit more about what we changed behind the scenes read on! If you are a user of the install script bundled in the tarball packages, you should certainly read on as the changes are potentially biggest for you.
Summary of the changes
The work in these packages is not limited to just to removing a few Qt references. Our packages have been completely rewritten from scratch so that they do more things sensibly. For example the .rpm and .deb packages have cleaner post-install and pre-uninstall scripts and the tarball install script is entirely replaced. Additionally, the start-up sequence has been greatly simplified (take a quick look the 'opera' startup script in a text editor and compare it with an earlier build).
Most users won't notice major changes, a few will likely appreciate the improvements and the resolution of long time outstanding issues, and a minority might get tripped up by one of two of the changes. In an attempt to keep the numbers of the latter down to a bare minimum, this posting highlights some of the changes that might lead to confusion.
For a full list of changes, see the UNIX packaging section of the Changelog for UNIX snapshot 10.51-6252.
Nothing showing up in the applications/software menu?
Just a few quick points here. On some people's systems after install via the install script included with the tarball package Opera may not immediately show up your applications/software menu. If you find this to be the case the easiest quick fix is to logout of your account and then log back in again.
If you use KDE 3 and install via the tarball install script you will find that this still does not resolve the issue. The reason being that KDE 3 does not support having XDG files (icons and *.desktop files) being placed in '/usr/local/share' (more on this later). However, outside of Desktop Environment integration, Opera will be fully functional in all other respects.
Finally, if you use Debian or a derivative distro such as Ubuntu this may also happen with certain Window Managers because we no longer create a Debian menu file. For those unaware what this means, the Debian menu system was a basically neat hack for the fact that WMs each configured their menus differently. These days there is a standard way to configure and maintain applications menus. It is the fd.o menu system. As such many WMs have started to migrate to supporting it, thus slowly rending the Debian work around less relevant.
I obviously don't want to talk at length here about how to natively configure the menus of the multitudes of different WMs available on *nix but if you think this issue affects you and you want to manually get back what you had before, you can quickly create your own Debian menu file and place it in a suitable location, .e.g. make a file called "/etc/menu/opera" (or "~/.menu/opera" if you just want an entry for your current user), with the following contents:
?package(opera):needs="x11" section="Applications/Network/Web Browsing" \ title="Opera" command="/usr/bin/opera" hints="Web browsers" \ icon="/usr/share/icons/hicolor/32x32/apps/opera-browser.xpm"
Afterwards run the command 'update-menus' (you may also have to restart your window manager).
If you are curious as to why we are not providing a Debian menu file I would point out that first and foremost we wanted to support the fd.o[/url] menu system as it works on many WMs and DEs (Desktop Environments) and is cross distro. However we will be looking into supporting the Debian menu system in the future as well, once we have ironed out a few potential issues.
Opera and GTK
As has been said previously Opera is not based on GTK, nor does not depend on the presence of GTK libraries. That said, Opera will look like a GTK native application if the GTK libraries are available. Once support is added, the same will go for Qt (i.e. Opera 10.50 no longer depends on Qt but will be able to use the Qt to present itself with a native look if the libraries are available). However, our new .deb and .rpm packages may give some users the false impression of dependency. Why? In a nutshell, Opera now depends on GStreamer for video support, which on most distros cause GTK to be pulled in as well.
The issue actually lies with bad packaging for the gst-plugins-good package (also called: gstreamer-plugins-good, gstreamer-0_10-plugins-good, gstreamer0.10-plugins-good, gst-plugins-good-0.10, etc. depending on your distro of choice). Only a sub-selection of the files within this pacakage actually need GTK libs. Some distros have rectified the situation by splitting it into two packages, one needs GTK the other doesn't. We only need some of the GTK independent files. More detail can be found in this Debian packaging bug report.
If you have GTK applications installed already, are not overly concerned with some extra GTK libs being installed or have a distro that splits up the gst-plugins-good package you will not see any problem. However if you are on an distro that does not split up this package and you have religiously avoided GTK based applications, then attempting to install Opera via either the new .rpm or .deb package will cause your package manager to try and install various GTK libraries as a result of cascading dependencies.
So what should you do if you are a user who does not want any GTK libs on their system and your distro does not split gst-plugins-good into non-GTK and GTK dependant parts? Firstly I would encourage you to contact your distro and politely ask them to consider making their GStreamer packages more modular. This benefits not just Opera but other applications that make use of GStreamer libs but do not require GTK libs themselves. That said, these are your two current options:
- If you don't need video support right away (since it is not yet widely available on the web) you can install the Opera via the install script included with the tarball package. It will not check for dependencies and hence not complain about the lack of GStreamer. Other dependencies are unlikely to be an issue on modern Linux distributions. If you are on an RPM or APT (.deb) based distro you can switch back in the future by using the 'uninstall-opera' command (set-up by the tarball installer script) and then reinstall via a native package.
- Accept the GTK libraries for now and reconsider the situation at a latter stage.
If you are affected by this issue please give feedback below. We would be particularly interested in knowing your distro and if you have given feedback to the distro (and if so if there is an open bug report for the issue).
Supported installation directories
Opera now has three standard install locations: '/usr', '/usr/local' & '~/.local'. '/usr' is the install location when installing a native package type (i.e. an .rpm or .deb package). When installing one of the tarball packages via the install script, installation is to either the system as '/usr/local' or a user install in '~/.local'.
These install locations represent standardised locations for software install. Hence when software is installed to one of these locations it will have application menu entries and MIME types set-up correctly in the default configuration of modern Desktop Environments such as KDE 4, Gnome 2, Xfce 4, etc.
Long time users will note that the previously bundled install script ('install.sh') was less strict and allowed for installation to any location the user wanted, via the 'prefix' and 'DESTDIR' options. 'prefix'/'DESTDIR' was primarily used in the past for:
- Multiple installations: e.g. installing several builds, each to a different directory.
- Easy uninstall: installing to a non standard path made it easy to find and delete all Opera install files, should you need to uninstall later.
- Repackaging: Some users of non RPM or APT (.deb) based distros used these options to temporarily 'install' to a non-standard location, prior to repackaging files into a native package format (that can then be installed via the native package manager).
Multiple side by side installs are now supported by the new install script, via install suffixes. During install a (user selected) suffix can be appended to the name of the install files and directories, e.g. if I was to use the suffix 'snapshot' the Opera startup script would become '/usr/local/bin/opera-snapshot' (for a system install) and the shared resource directory would become /usr/local/share/opera-snapshot (other files and directories will also be renamed in a similar vein). Better yet this suffixed install would get its own shortcut in the desktop environment's application menu and would use '~/.opera-snapshot' for its profile settings rather than the main profile ('~/.opera').
Uninstalling Opera is now made easier due to the fact that an uninstall script is created during installation (by the tarball install script) and placed in '/usr/local/bin' (or '~/.local/bin' for a user install). The uninstall script is called 'uninstall-opera'. If side by side suffix installs are done, a unique uninstall script is created for each, e.g. 'uninstall-opera-snapshot'.
Note: The .rpm and .deb packages do not set-up an 'uninstall-opera' script and should be uninstalled by the native package management system.
Installation to alternative locations and re-packaging Opera
If you have previously installed Opera to alternative locations and are concerned by the lack 'prefix'/'DESTDIR' options, firstly consider why you did this in the past and if you really still need this functionality. We would appreciate your feedback if we have missed other benefits of prefixed installs. Whilst some users will find it relatively easy to patch the install script to allow for installation to alternative locations, giving a clear explanation of why you need this option will likely benefit other users, since we are not adverse to making further improvements to the install script where a strong case is demonstrated.
Repackaging Opera is a good example of where alternative install locations could be needed and indeed it is something we are already very aware of. With fixed install locations our new script is not well suited to repackaging, however we do have some plans in the pipeline to assist distro maintainers and users who want to repackage Opera. For now we would advise users of non RPM or APT (.deb) distros to use the install script directly, whilst you await these improvements.
Note: If you can't wait for the proposed repackaging improvements then it is probably easiest to use the .deb or .rpm packages (rather than the tarballs) as a base for repackaging. If you use the .deb, 'ar' or libarchive utilities (e.g. 'bsdcpio' and 'bsdtar') can pull apart the package and you can then extract the contents of the internally contained 'data.tar.gz', excluding the Debian specific 'usr/share/lintian' directory and 'usr/share/doc/opera/changelog.Debian.gz' file. Alternatively the .rpm file can be opened with tools such 'rpm2cpio' or libarchive. Files extracted from either package are already set-up in the correct layout for install into the top level of '/usr'.
Edit: For example, assuming the use of '/tmp/repack' as your repackaging working directory, download a .deb appropriate for your hardware architecture and issue the following:
$ ar p opera_10.51-6252_i386.deb data.tar.gz | tar xz --exclude changelog.Debian.gz --exclude lintian -C /tmp/repack
This will create a 'usr/' directory under '/tmp/repack' with everything already in its correct location. You can then delete the opera_10.51-6252_i386.deb file.
Note: 'ar' is included as part of the GNU Binutils package, so it can be pretty much guaranteed to be present on any system that is used for repackaging.

As a further example for Archlinux users, here is a sample Arch PKGBUILD using the .rpm packages as a base. You'll again note how simple this script is.
Ok, questions??














1 2 Next »
richlv # Saturday, March 20, 2010 10:34:03 AM
are there plans to support other backends in the future ?
Chris Cunninghampasserbycmc # Saturday, March 20, 2010 12:42:04 PM
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Saturday, March 20, 2010 12:58:54 PM
/usr/local is traditionaly used for software compiled from source manually, by root user, and make installed. As far as I could understand, even installing Opera to /usr with install script now is quite troublesome. --prefix/DESTDIR usage is very common in *nix world, so I think that dropping them is of now benefit to anyone.
Daniel HoffmannFalconHoffmann # Saturday, March 20, 2010 1:07:36 PM
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Saturday, March 20, 2010 1:27:30 PM
Originally posted by Daniel Hoffmann:
If you use XFCE, you've got GTK+ installed and loaded.
Originally posted by Daniel Hoffmann:
Surely not!
Originally posted by Daniel Hoffmann:
It shoild not. I daresay it'd read GTK+ settings, that's all.
FransFrenzie # Saturday, March 20, 2010 2:25:13 PM
Originally posted by Daniel Hoffmann:
Not that I know anything about what happens, but this post was all about how GTK is not required (but that some distros mistakenly pull it in as a dependency), so why would it load any GTK libraries?
Unregistered user # Saturday, March 20, 2010 3:05:42 PM
FransFrenzie # Saturday, March 20, 2010 3:06:46 PM
Originally posted by anonymous:
The interface feels more responsive because it looks more native? That's a new one.
marcorion # Saturday, March 20, 2010 3:30:44 PM
Joonas Lehtolahtigodjonez # Saturday, March 20, 2010 5:52:36 PM
I have installed gstreamer0.10-plugins-good package, but when I tried to play the test video at http://snapshot.opera.com/resources/BigBuckBunny.html it would only display the poster image, pressing Play button does nothing but change the button to look like Pause button; the video itself does not start playing. I installed the latest snapshot from the tarball instead of using .deb package (for the same reason I use classic installer over MSI installer on Windows...), so it looks like it's still missing something to enable video, but aside from the gstreamer package what else could be required?
For the record, installing gstreamer0.10-plugins-good did not ask to install any extra gnome stuff on this system
Unregistered user # Saturday, March 20, 2010 6:21:24 PM
Ruarí Ødegaardruario # Saturday, March 20, 2010 6:26:32 PM
Originally posted by richlv:
video doesn't playOriginally posted by richlv:
NoOriginally posted by Sterkrig:
'/opt' is supposed to be for apps that don't conform to FHS (Opera does). '/usr/local/' can be apps not installed/managed by a native package manager.Originally posted by Sterkrig:
. We'll provide a solution that allows for repackaging in the future.Originally posted by FalconHoffmann:
No it won't.Originally posted by FalconHoffmann:
If you have GTK libs installed there is no benefit in not using them. Also GTK is not used for video .. you might want to re-read that section.Originally posted by marcorion:
As you know I use Arch myself. Yes, the old PKGBUILDS are broken by the lack of prefix, which they expect to use. A new one could be made using the .deb as a source. If you don't fancy that a direct install should work. Are you saying that it doesn't for you?Originally posted by godjonez:
The tarball does no dependency checking, hence why gstreamer0.10-plugins-good and hence GTK was not pulled down. Install gstreamer0.10-plugins-good via apt-get or aptitude and you will have working video, though GTK libs will come along with them.Joonas Lehtolahtigodjonez # Saturday, March 20, 2010 6:29:05 PM
Originally posted by ruario:
As I mentioned, I did install that package (did it via apt-get) but the video didn't play.
Ruarí Ødegaardruario # Saturday, March 20, 2010 6:52:33 PM
Originally posted by godjonez:
Hmm, sorry I misunderstood then. I am not sure why it is not working for you but this is not something I can replicate.Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Saturday, March 20, 2010 8:55:04 PM
Originally posted by ruario:
Actually, there is. They may be installed, but not loaded, so there's additional time for loading and additional RAM consumed. Does Opera load them?
Originally posted by ruario:
It seems like there's several interpretations.
Yep, my point exactly.
Originally posted by ruario:
All right, that's fine by me (and probably distro packagers as well) (-:E
Roman Kyrylychrkyrylych # Saturday, March 20, 2010 9:11:31 PM
Ruarí Ødegaardruario # Saturday, March 20, 2010 11:33:50 PM
rasive # Sunday, March 21, 2010 12:00:46 AM
Ruarí Ødegaardruario # Sunday, March 21, 2010 12:07:42 AM
Trying to force it always not be present in all window managers would make us less 'native' IMHO.
Unregistered user # Sunday, March 21, 2010 1:02:21 AM
svdb0 # Sunday, March 21, 2010 2:12:44 AM
For me, the file system is the package manager. I'm not using an off-the-shelf Linux distribution myself, but I know that at least the GoboLinux distribution follows the same principle.
Ruarí Ødegaardruario # Sunday, March 21, 2010 8:55:07 AM
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Sunday, March 21, 2010 9:14:56 AM
Originally posted by ruario:
Plus, if you think that tabbar with titlebar eats up too much of vertical space on your display, you could get rid of both of them! (As I did).
Jakalynxlynxlynx # Sunday, March 21, 2010 12:55:01 PM
EuGene Wolfeeugenewolfe # Sunday, March 21, 2010 1:05:49 PM
Joonas Lehtolahtigodjonez # Sunday, March 21, 2010 1:13:31 PM
Originally posted by eugenewolfe:
Did you read the "Known Issues" part of the snapshot release?
Unregistered user # Sunday, March 21, 2010 3:46:27 PM
Unregistered user # Sunday, March 21, 2010 4:19:06 PM
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Sunday, March 21, 2010 4:44:37 PM
Unregistered user # Sunday, March 21, 2010 5:42:55 PM
EuGene Wolfeeugenewolfe # Sunday, March 21, 2010 10:53:19 PM
Originally posted by godjonez:
Oh... true. What a disappointment...
Must wait for another one.
Originally posted by Sterkrig:
Cuz Windows and Mac have their one for a long time, and we have still only alpha. And I cannot even test this version because of no Polish signs.
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Sunday, March 21, 2010 11:19:49 PM
Originally posted by eugenewolfe:
So do I. So what?
Sorry if I offend you, but your words are of no use or help or anything. To anyone. "Your alpha build is too buggy for me to test" sounds quite strange for me. All right, don't test it. Can you help? No. You want to know why *nix version still lags behind? That's obvious, Qt disposal is a lot of work. And I'm quite sure Windows building was speeded up by "Select your Windows browser" celebration. That will benefit all Opera and Web users, so I appreciate it. And advise you to do the same. We're all grown-up here, let's not behave like capricious kids.
Originally posted by ruario:
Another solution is to turn off titlebar for maximized Opera. I did this in KDE3 times, and I'm pretty sure Fluxbox can do that.
Cutting Spoonhellspork # Monday, March 22, 2010 2:22:34 AM
http://mso-chronicles.blogspot.com/2008/09/gstreamer-is-future.html
To the above concerned over MPlayer, the GStreamer libs needed are minimal and should not affect your system (since none of your other software should be looking for it).
paulgca # Monday, March 22, 2010 1:08:33 PM
Ruarí Ødegaardruario # Monday, March 22, 2010 1:24:45 PM
Originally posted by paulgca:
You'll no doubt have noticed I have been avoiding your (and other's) questions on Solaris. At the moment it is hard to comment on our specific plans but I hope to be able to give you a proper update soon. Sorry for the lack of feedback thus far.Unregistered user # Monday, March 22, 2010 2:41:48 PM
Ruarí Ødegaardruario # Monday, March 22, 2010 2:53:43 PM
Aaron WatryVeerappan # Monday, March 22, 2010 4:47:47 PM
Originally posted by ruario:
It's understandable, even if I'm impatient... Mostly the problem that I have is that I see all these wonderful enhancements in Linux/Windows and want to get the benefits on my work machine.
I've benched Peacekeeper on this machine (Ultrasparc IIIi 1.6Ghz, Solaris 10) at 389 for Opera 10.10, and Firefox 3.6 rings in at 589. Being able to get this machine up into the 800+ realm would be like a dream (I've been spending the last few months developing AJAX applications on this excruciatingly slow machine).
Edit:
Oh, and I forgot to comment on the removal of the --prefix option. As I said, my machine is a work machine, and in this case I don't have root access. Installing in /usr/* is not an option. I've also been maintaining a shared install of Opera on a network drive so that several of my similarly-disadvantaged co-workers could benefit from running Opera. If I installed to ~/.local, I'd have to hand-edit the wrapper script and symlink ~/.local to the network share (and get my co-workers to symlink as well). In this case, installing directly to the network share is ideal for me, but I can probably make do with a workaround for now.
Ruarí Ødegaardruario # Monday, March 22, 2010 6:11:45 PM
Ruarí Ødegaardruario # Monday, March 22, 2010 8:26:14 PM
Of course, if we alter the install script then this may fail in the future.
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Monday, March 22, 2010 8:51:11 PM
Originally posted by ruario:
Yep. Every package is installed into something like /var/tmp/portage/www-client/opera-10.51_pre6252/distdir/. I think I could probably ping Gentoo maintainer for Opera and point him here if he's interested.
You could see how it's done in current ebuild
Unregistered user # Tuesday, March 23, 2010 7:43:23 AM
gibson # Tuesday, March 23, 2010 12:54:07 PM
I used to set the Opera install prefix to
/proj/PROJECTNAME/tools/lib/opera-$version
like
/proj/PROJECTNAME/tools/lib/opera-10.20-4744.gcc4-qt4.x86_64
and installed a symbolic link
/proj/PROJECTNAME/tools/bin/opera-10.20-4744.gcc4-qt4.x86_64
to the Opera wrapper script.
On and I created an "opera" and/or "opera1020" link, or the likes.
This is not urgent for me, but just to point out the use case. Other companies may want to put the software under their own tools directory, and not have to copy things around and adjust paths.
Ruarí Ødegaardruario # Tuesday, March 23, 2010 1:46:49 PM
Then run the script as follows:
This should give you what you had before.
However, you may wish to consider making use of the --suffix to do things differently. Consider the following:
Followed by:
Now, all x86_64 builds would be installed the same directory but each would have its own startup script, e.g. in this case 'opera-10.51-6252'. Additionally each would write to a different prefs folder, e.g. in this case "$HOME/.opera-10.51-6252". This would allow you to install multiple snapshots for your users, without them mixing profiles between snapshot versions.
Just something to consider.
Ruarí Ødegaardruario # Tuesday, March 23, 2010 2:01:56 PM
Originally posted by Sterkrig:
So they are repackaged there first but should have their prefix set to /opt/opera (based on your earlier comments)?
Originally posted by Sterkrig:
Hmm ... it is probably just me but I am having a little trouble following that. I think he is just shifting around the contents of the tarball but this would leave @@{PREFIX} and @@{[U_]*SUFFIX} in the *.desktop, man and MIME files. Also the opera wrapper needs to be rewritten to use the correct profile '~/.opera'.
I before I can attempt to assist I think I'll need to better understand the ebuild system.
Ruarí Ødegaardruario # Tuesday, March 23, 2010 2:30:19 PM
Of course this could be tidied up and I presume "/var/tmp/portage/www-client/opera-10.51_pre6252/distdir/" is set as a variable so I don't really need to list it out in full each time.
Of course I have probably completely misunderstood how things work on Gentoo, in which case. Go easy on me!
Ruarí Ødegaardruario # Tuesday, March 23, 2010 2:43:32 PM
(You'll need the GNU Binutils package for 'ar').
Then make an 'install/' directory and place a suitable 'slack-desc' file in it. Then tar './usr/' and './install/' up in an appropriately named package and you should have something suitable.
P.S. I am sure you are already aware of it (but just in case you are not), see also the linuxpackages.net perfect package page.
Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Tuesday, March 23, 2010 2:57:56 PM
Now about ebuild system. Basically ebuild is bash script defining variables for package manager and functions for various actions. All the work (compiling, installing, repackaging etc.) is done in temporary directory /var/tmp/portage/${PACKAGE-CATEGORY}/${P_NAME}-${P_VERSION}/, with several directories, including:
After installation in ${D} has been completed, everything from it is merged into root file tree.
So, for Opera to be easy ebuilt, installer script should ease installation into ${D}, using '~/.opera' as a profile.
Hope it did clarify something a bit (-:E
Ruarí Ødegaardruario # Tuesday, March 23, 2010 3:02:11 PM
Originally posted by Sterkrig:
Well that makes things much easier, assuming the maintainer has no problem with using the .deb file rather than the .tar.bz2. If so, then presumably the following would work:
$ ar x opera_10.51-6252_*.deb data.tar.gz $ tar xf data.tar.gz --exclude changelog.Debian.gz --exclude lintian -C ${D}Шуйский Николай [krigstask, Ŝtérkrìg]Sterkrig # Tuesday, March 23, 2010 3:07:58 PM
Originally posted by Ruari Ødegaard:
There's plenty of ways to hack new install script, special sed magic never let *nix users down (-;E
But I think everyone agrees, that's the less hacks both users and maintainers / repackagers have to use to achieve pretty common and obvious goals, the better Opera expirience *nix users get, am I right? So I hope our discussion will help everyone in it, and we'll get good'n'proper installation script, allowing for easy Opera installation in every system (-:E
Originally posted by Ruari Ødegaard:
Yep, probably that do. But that makes installer more or less useless, if it's easier to repack .deb than to use script!