Ubuntu considers end of traditional release cycle
arstechnica.com
arstechnica.com
These approaches have the added side effect of making the distro the curator of the galaxy of 3rd-party software running on it. I find this the most surprising thing--why should the OS provider have to spend the energy curating every single well-known program that runs on the OS?
What we really need is a reform in the way dependencies and packages are managed so we can update one aspect of the system (Firefox, Pidgin, etc.) and not drag in new versions of libraries that can introduce bugs in to other parts of the system. Gobo Linux started edging towards this approach but it's sadly no longer maintained.
An approach that combines a stable core--kernel, video/network drivers, etc.--that is thoroughly tested and rarely updated, plus sandboxed apps that update at their own pace and are not curated by the distro maintainer, would be the ideal approach, I think. We could even keep the concept of centrally-sourced packages.
Is this possible given that Ubuntu inherits Debian, or given the general philosophy and practices of OSS? Maybe not. But it'd go a really long way towards assuaging the constant and unforgivable breakage that happens with every new Ubuntu release. (And before someone chimes in with "you're wrong, it works perfectly for me", I have a single anecdotal data point to counter your single anecdotal data point.)
Windows got/gets away with it because they provide the OS and a few apps, and says, "go to download.com for all your needs!".
I'm just spitballing here but the point is that theoretically we could still have something apt-get-ish and not rely on Canonical as the curator.
WT-actual-F?
A model where people are trained to download and install random unvalidated garbage from the internet and live with the ad/crap/spy/mal-ware that that entails?
Please god no.
You can, if you want, install new repos and PPAs into ubuntu and debian quite easily, and yes running a decent repo takes maintainance. It's also the reason why debian stable is rock solid.
You have to go to the web for a basic working system for windows, this is not the case on linux.
Ubuntu is moving towards this - they're encouraging developers to submit new applications to an App-Store like interface. There's still some centralised checking, but packaging and updating is the responsibility of the authors. There have been some teething troubles with reviewing applications, but I think the plan is to automate more of it.
I'm not sure how you can say it doesn't really scale. Last I saw there were 30K packages in debian.
I'm not arguing that there should be no other way of installing anything here, but I would think very hard before criticising the current model. It works extremely well.
I have given this thought. My issue with the current model is that, because packages tend to be several months out of date, third parties increasingly point users to their own installers or packages instead of those in the repos. MongoDB and Google Chrome are two examples. Besides making installation more awkward, this dilutes the security value of having the repository in the first place. The repository model only provides security if users don't need to install things outside it.
I want to keep the centralised repository/app store with security guarantees - I think that's valuable for most users. But the responsibility for handling packaging and updating applications needs to shift from the distro to the application developers. This is only for applications, though: system components - core libraries, runtimes, window managers etc. - should still be managed cohesively by the distribution.
What is a core library or runtime? Where do I draw the line? How do I know that app X is going to rely on the same version as app Y?
Google and Apples' app stores are (comparatively) full of toys and crap, I'm sorry to say. If 1% of the stuff in there is useful I'll eat my hat* . They also have the advantage of targeting a single language and runtime, anything else has to be packaged with the app itself. I don't think this is a good or useful model for an open source ecosystem.
For an open source platform and closed source ecosystem you may be on the money.
(* disclaimer - author does not currently own a hat)
Dependencies: the distribution provides, e.g. Qt 4.8 and Python 2.7. Applications that support the distribution work on those versions because their developers knew that's what they needed to support. That's how it already works for open source apps.
Usefulness: if the user wants a shiny toy, they'll go and get one. If that turns out to carry malware, it's just as much of a problem as if they were trying to install something 'useful'. It's not about what you consider useful, it's about what users want to use.
Why should you care: when a new version of, say, Libreoffice comes out, why should I have to wait 2-8 months before I can benefit from it, on the 6 month distro release cycle? Windows users can upgrade the same day. Some things, like Firefox, now get fast-tracked updates, but there isn't the manpower for any distro to do that for all apps.
To me the new version hasn't really been released for my 'OS' until the distro packages it. When using a stability-oriented distro like debian, that's important.
Usefulness: if the user wants a shiny toy, they'll go and get one.
If there's something that's not in the standard repos then I have to consider taking the same steps as a Windows user - geting something with less that 100% trust and less than guaranteed stability. Usually at this point I'll look for an alternative that's better supported. I'm not trying to claim I am in any way representative, but my behaviour differs markedly from what your 'user' does.
BTW - There is absolutely nothing to stop someone working on top of a 'normal' distro stuff to deliver cutting-edge apps. In fact it's pretty much been Ubuntu's selling point. It's also what Steam is doing. Just please don't ask distros to stop doing what they do best - make the seamless and painless experience that's made various forms of Linux my platform of choice for many years now.
All I'm going to get is more security risks (multiple versions of libraries from all sorts of sources) and less compatibility (third party packagers will screw it up as they're not focussed on my distro).
If, along with main/universe/multiverse/restricted, they had "badlands" or something, that contained all packages that would otherwise be in a PPA, it could be more scalable.
There needs to be a way for developers to provide distribution agnostic binaries. Distros can choose to provide whatever package management tools that consume the developer-produced raw data.
Well, you can use them on debian, other distros (Fedora etc) have a different model with equivalents.
"There needs to be a way for developers to provide distribution agnostic binaries."
Why? With source the distro maintainers can choose to build it as they like, apply patches if they feel the need, tweak it to run against the lib versions they have decided on etc etc. This is what makes linux distros great, that the binaries are built with and as part of the system.
"Distros can choose to provide whatever package management tools that consume the developer-produced raw data."
Big of you to allow them that freedom...
What prevents developers from providing statically linked binaries in PPAs right now?
There is for commercial server software, but then folks working on that tend to target ultra-stable platforms.
Among the raft of interesting ideas it brings to the table is application sand-boxing; many versions of a shared library can be installed with dependent apps linking against the version they depend on.
We'd have to change some system calls, of course, from load("blah.so") to load("blah.so", maj_ver=4, min_ver=2). But couldn't that solve a part of the problem?
With a package manager that allows multiple installed versions, app could link against library major versions and receive minor version (security) updates automatically.
But all this would still require everything is managed by the package manager.
And wasn't this pioneered on OSX?
Breakage is not common for me on Arch. It was probably more common a few years ago in Arch and back several years when I was using Gentoo but I rarely ever have to dive in and fix anything anymore.
That was ok since I was a hobbyist who was trying to learn Linux better.. but Ubuntu's always been about "Just Works" so they'll have to be really careful with this.
If they can make it work, it'll be awesome.
Theo de Raadt(OpenBSD founder) explain the importance of "Release Engineering".
i actually thought ubuntu hit a nice sweet spot with their 6-month release cycle. it was one of the many things they got right in the early years that gave them the leadership position they still have today, even if a lot of us are less fond of what it's become.
But I would not recommend this to inexperienced users, and I think there the current Ubuntu rapid release cycle hits a sweet spot: It's reasonably well tested to be able to recommend it to inexperienced users or set someone (grandparents, ...) up with an Ubuntu box and just let them have a go at it, while also being mostly up to date.
Seriously, after the shit ton of badness canonical have pumped into Ubuntu in the last 3 years I couldn't trust them on this.