Can't install Opera 51 on Ubuntu 14.04 LTS
-
ygbourhis last edited by
Thanks @jimunderscorep for your reply
Statics builds can be proposed as rpm and deb packages too. Some devs C(++) in my team already did this plenty of times, so it's just totally possible, and it covers even more distros by doing so, meaning more users and revenues for your company (deb and rpm are just packaging methods, and do not imply that you need to do dynamic linked builds. dynamic linked builds are just distribution "politics", and very useful for "open source" packages, but non static builds for proprietary software is mainly the exact case of a wrong way to go).
Concerning your proprietary app, if you make a "static" build on a distro having the library (some change in the Makefile to make static builds), and since it's statically built you can remove some "Depends" from the "control" file in the deb source ("Depends" does not need all that is used for "Build-Depends"), than it could probably install as a deb package and work on your older distro (the deb package would just have some extra Megabites in size because of the static built-in libraries). For rpms, you have an src rpm and an rpm, you need a distro with the dependencies of the src rpm to build, but need less dependencies for the built rpm.
So to sum it up, it is totally possible to provide deb and rpm packages with static builds. Meaning you do not need to change an inch the distributing method. With C(++) apps It's no more than compiler options to pass during compile time. No more than that. Just a tiny little ting to change in the Makefile used to compile, and dependencies to remove in the "control" file of the deb package source (some "Depends" to remove).
All that is required is to build the package on a distro providing all the "Build-Depends", but then it installs on all distros having the "Depends" matching, and the less "Depends" you have in the "control" file, the more distro's it installs on.Most of what is compiled statically can be removed from the "Depends" section.
Some packages well crafted can then run on a distro which can't compile it
NOTE: it's the wrong way to go for "open source", (and against debian politics for distribution packages) but this is not the case of Opera. It's that the distribution packagers' job to do backports and etc... if they want to provide a dynamic linked package. It's not the proprietary vendor's job, unless you want to open opera's source code and put it on github (You would be loved for this )Currently you are using an open source package building strategy for a closed source app, this implies less distribution compatibilities.
The only thing that can be blocking is that some "extremely badly coded frameworks" may (I don't know your development framework) not allow this. If your framework allows this (if it's decently and intelligently coded), development would even be easier for your team because you would not need to do backports depending on distro libraries, and could even use more recent libraries without conflicting with the distro's own libraries, and the build would still be packaged in deb or rpm whatsoever, this would not change the way end users install.
I've already seen some deb packages with a Build-Depends library not provided by the distro, but statically built in the package, working properly.
I've even seen some proprietary rpms when I was working in Mandriva (Mandrake Linux) which where build on proprietary libraries we did not even provide or have at all. The libraries where simply statically linked by the vendor during the rpm build (so we where not even able to build the rpm ourselves). And believe me : it worked.So I don't understand why you have a full open-source approach in package building for a closed source app unless you intend to surprise us and make your code open source in a while
I'm just trying to help propose that you have more users (and if your revenues depend on your users, well, you know what it implies).
Kindest regards.
-
metaltrabant last edited by
@jimunderscorep: My bad, my mind was just so focused on that both current LTS versions reach their end of support in April 2019, that it just seemed logical that then will be when the next LTS comes out. But of course, I know they're released in even years... silly me
So I'll have a look at the 18.04 LTS and might consider upgrading soon, even though I'd loose a year of support from 14.04, but still, it might worth doing it.
Just the endless time it takes to create a full backup of my entire system is mind-boggling... and never did a separate Linux upgrade on my dual-boot system, so I'm a bit afraid of it. And also, I don't really like the Plasma 5 GUI... and all for this just because of a browser... meh.
-
A Former User last edited by
If you are really bored of backing up stuff in order to reinstall, you should really consider a rolling release distro. I moved from ubuntu 6.06 lts to debian testing back in February 2008, I have made countless of installations and removals of packages and I only had to reinstall twice: once when I moved from 32 bit to 64 and once more when openshot made my system hang completely and f-ed up my filesystem.
As for plasma, no one is forcing you to install it. Just choose an ubuntu "flavor" with a different desktop enviroment. And keep in mind that the most important changes from 14.04 to 16.04 and newer are under the hood, e.g systemd is far better than upstart.
-
ygbourhis last edited by
I agree that a rolling release distro is by far the best and if it was up to my personal choice I would install an LMDE (Linux Mint Debian Edition). I was even running Gentoo at a time, BUT, for "job" reasons, I need a distro based on our production servers versions to make sure that what I develop will run on them. And that's because I do server backend development. So a lot of us do not have the "choice..." But with the technique I explained above we where able to develop deb packages built on 14.04 LTS which could install and run on 12.04 LTS before it was EOS (because theyr where "static" builds). So it's possible.
-
A Former User last edited by
Have you ever thought of running the os of your choice on your main system and use a virtual machine for your job needs?
-
ygbourhis last edited by
For my job needs I need to run virtual machines already (devstack : I run a mega huge virtual machine which itself will run multiple virtual machines) and concerning these virtual machines which I need (for my job needs), My job requires me to create and destroy them all the time. So I can't develop on VMs which I need to destroy.
So I need my machine itself for the development and the "builds".
I can't run another virtual machine just to develop while the other "cluster-like VM" is also running because I only have a 16Gb of RAM on may core i7 laptop (and devstack does not work with less than 8B of ram, it is in my case assigned 12Gb to 14Gb of ram since it will itself host multiple VMs. I need it since I develop on this: https://www.openstack.org/). And also my SSD drive will be saturated. I need to develop "while" I have this huge virtual cluster running. And aside from this I also have bigger clusters in data centers, but need to be able to work remotely even when I have no network available. reason why I need my devstack for tests before pushing modifications to the datacenters for wider tests.I'm turning back the question now: Have you never considered Appimage for Opera builds? : https://appimage.org/ ?
And I'm sorry, but making a static build is easy so easy... that telling your users to use VMs because you do not know how to do static builds... well.. is kinda what it sounds like...
-
A Former User last edited by A Former User
I am not an opera dev or something similar, so I can not decide wether an appimage/flatpak/snap package is needed or not.
In fact, I am just a simple opera user, and definitely an advanced linux user, who is very chatty at forums of any kind. Bear with meBtw, if you consider yourself unlucky because you can not upgrade to a newer version because of some vital lib, please check the next thread where opera can not even be installed without breaking an entire 18.04 system because of another lib.
-
ygbourhis last edited by
Sorry, my bad, you sounded like an opera dev :o)
My apologiesIf opera breaks the whole distro on 18.04, it looks a lot to me like opera would add a library which replaces the distro library... and this would never happen if opera was a single and unique .deb package statically build (and bringing no other dependencies). One more reason why opera devs should strongly consider static builds
Again, to not get mistaken, I'm strongly against static builds for distro packages, but definitely "for" static builds concerning 3rd party proprietary packages.
Kind Regards
-
bbatten last edited by
Seems like, as long as the signatures of the libdbus-1-3 library functions opera actually uses are unchanged, and their semantics remain compatible, the dependency could be safely left downrev. In my case >=1.8.20 would work just fine even if the library was actually at - say - 1.9.14.
-
A Former User last edited by
Actually no, opera 52 still depends on libdbus 1.9.14 or newer, so the problem still applies for users of old distros
$ apt-cache show opera-stable Package: opera-stable Version: 52.0.2871.30 ... Depends: ... libdbus-1-3 (>= 1.9.14),
You obviously meant the issue with libcurl3/4.
-
leocg Moderator Volunteer last edited by
@jimunderscorep Even those that follow the minimum requirements : https://www.opera.com/pt-br/download/requirements?
-
A Former User last edited by A Former User
I don't get you. Can you be more specific, please?
All the complaints made in this thread here start from one small change on the version of a lib that opera depends on. I think I nave analysed the "why" behind that change as much as possible on my posts above.
Opera 52 depends on the exact same version of libdbus that opera 51 was and that alone is what makes it impossible to install on old distros, so nothing has changed to all I say except for opera's (and chromium's) version number. -
huwanhsin last edited by
There are a lot of browsers in the market. Should Opera insist only supporting Ubuntu 16.04 starting from Opera 51, the only choice we users can do is to stay with Opera 50 or stop using Opera. I don't think Opera team will give in based on the small user base of Ubuntu 14.04.
-
A Former User last edited by A Former User
@huwanhsin
There are obviously many other browsers out there for someone looking a substitute for opera on an old distro, butHow many of them are built with a good browser engine like firefox's gecko or chrome's blink and not some webkit fork for qt/gtk? A good browser engine is the key feature that provides decent performance to today's web pages whose complexity is increasing every year.
How many of them draw their ui with a good toolkit like gtk or qt and not with today's really famous crap, electron, like vivaldi, min and brave do? For me, this is a major issue, because I refuse to use an app that uses a huge amount of libs and an engine ONLY to draw its ui and nothing more. The reason behind that is usually a lazy dev that does not bother to build the application's ui with a nice toolkit.
If you are disappointed by opera's decision to move forward and drop support for distros that use an older version of some lib, you are free to use chrome which depends on an even older version of libdbus than opera 50 used to. Keep in mind however that asking for support on an 4-year old distro is pretty much the same as asking for support for an os like vista, which is neither supported by chrome or firefox right now.
Kinda offtopic, but since qt4 was mentioned on this thread, ubuntu drops support for qt4 completely for the next year's release
http://news.softpedia.com/news/ubuntu-preps-to-remove-qt-4-support-from-the-archives-target-ubuntu-19-04-520351.shtml -
bbatten last edited by bbatten
@leocg I think the reason for opera's ubuntu 16.04 requirement is that it has version 1.10.6 of libdbus-1-3. Again, if the set of functions in that library that opera actually uses hasn't changed, then it seems that the version dependency could be safely left down rev. That would have the advantage of increasing the target population of installable systems, which I think opera would have in interest in maximizing.
-
A Former User last edited by
Opera 51 was released like ~1.5 months ago. If the there was someone really, REALLY interested to make it install and test it on 14.04, he would change the control file so as to list libdbus 1.2.x (or whatever opera 50 had) as dependency and install it.
But no. This thread has 30+ comments (and 4500+ views) at the time I am writing this. Most them are either mine explaining the obvious "why linux sucks as a desktop os" situation or others complaining with "but this browser does install" examples. Why? Because complaining is easier than admitting something. I even got a downvote from someone who can not accept how things are,
-
bbatten last edited by bbatten
Well, I guess I'm really talking for the benefit of opera as a business. A quick look at Distrowatch shows that Mint, Manjaro, and Debian all are downloaded more than Ubuntu. In addition there are many other deb based distributions (my own is Devuan Jessie) that would seem to argue for anyone distributing on a Linux based platform to be interested in supporting.
So the takeaway is that downrevved dependencies help maximize the potential market. Hopefully the fine folks at Opera will incorporate that observation in evaluating dependency policy going forward.... just one man's opinion, folks.
-
ygbourhis last edited by
@jimunderscorep
I'm just replying from Opera 52 under Linux mint Qiana (Ubuntu Trusty)
To do this I did the following:
fakeroot
dpkg-deb -R opera-stable_52.0.2871.30_amd64.deb opera-stable_52
vim opera-stable_52/DEBIAN/control # Change to "libdbus-1-3 (>= 1.6.18)" and save
dpkg-deb -b opera-stable_52 opera-stable_52_trusty.0.2871.30_amd64.deb
exitThe repackaged file is here:
https://storage.fr1.cloudwatt.com/v1/AUTH_71c6d0f9c3eb4f5a95cebeae99f3b468/Opera_Repackaged/opera-stable_52_trusty.0.2871.30_amd64.debSo now I confirm it works with "libdbus-1-3 (>= 1.6.18)" so could Opera devs learn how to package things as I mentionned before?
Hope this helps.