|
|
Subscribe / Log in / New account

ownCloud and distribution packaging

By Nathan Willis
January 6, 2016

The hurdles of pushing new software releases out to users via Linux distribution mechanisms have been well-documented in recent years. The sometimes lengthy delay between an upstream release and a new package being available from distributions motivated Mozilla's Extended Support Release (ESR) program and to various efforts at application sandboxing (such as GNOME's xdg-app). But sometimes the gulf between the upstream developers and the distribution is more fundamental, as a recent debate about ownCloud packages for Debian revealed.

Jos Poortvliet, community manager for the ownCloud project, posted a blog entry on January 4 recommending that users eschew distribution-provided ownCloud packages and install only those packages released by ownCloud itself. He cited the lag between the release and the distribution's package update, along with several other complaints. Distributions, he said, sometimes "don't grab the right code (like relying on a git tag rather than final zip files) or miss changes in dependencies which can break installations".

In addition, distribution packages can make upgrading problematic, he said, since:

[O]ur upgrade code looks at the ownCloud version to know how to upgrade - good luck if you run a Frankenstein version. Also, we don't support skipping ownCloud releases on upgrade. So once you're ready to upgrade your distribution with ownCloud 7.0.ancient to a new distro with ownCloud 8.2.shiny, well, it won't work.

Finally, he contended that:

The distribution packagers try to do weird shit, shoehorning ownCloud (and other web apps) into their rules made for C/C++ apps. You'll find packagers trying to move the ownCloud configuration php file out into the /etc folder or split up ownCloud core in separate packages because we maintain some external components as part of our setup. Of course, this breaks in beautifully surprising ways and provides few if any of the benefits they are hunting for.

Not surprisingly, some in the distribution community took umbrage at Poortvliet's characterization of the situation. Martin Steigerwald brought the post to the attention of the Debian ownCloud package maintainers, noting in his message that he had tried both the official Debian package and the one provided by ownCloud. The ownCloud package, he said, "was a *complete* disaster."

In particular, he said it was "like a tar.gz inside a Debian package. It just unpacks everything to /var/www/htdocs or something like that". The configuration files were not placed in /etc (as they are in the official Debian package), and it required the user to manually perform upgrade tasks like updating the application's database—another task that is automated in the Debian package. Apart from the shortcomings he saw in the upstream package, though, Steigerwald asked Poortvliet why he seemingly did not try to fix any of the problems he encountered with Debian's packages, asking "how about trying to find a way to *work* together and thus stop splitting man power? How about providing properly packaged packages that actually meet the Debian Policy for them? Did you ever talk to the distro teams about this?"

He also mentioned that he had talked to the maintainer of Debian's ownCloud package, David Prévot, who said it was unlikely that Debian could backport the current ownCloud release (version 8) to "jessie" (which includes ownCloud 7) because such a backport would pull in backports of other potentially problematic packages, like PHP. It would be better, Steigerwald said, for ownCloud to provide Debian-compatible backports. Doing so for security fixes is vital, while doing so for regular releases would help end users stay current. He invited further participation:

I understand the different policies and goals here. Upstream wants to move fast, Debian wants to provide a stable experience for its users. [...] What about looking for common ground and ways to cooperate instead – for the benefit of everyone involved?

There were commenters on Poortvliet's blog post who raised concerns as well. For instance, Nicolás Alvarez said: "If your git tags and your tarballs / zip files differ, you are doing things wrong, not the packagers." Prévot also replied to Steigerwald's email and said that he had tried in the past to work with ownCloud, providing patches to ownCloud's Debian packages, but without success.

Poortvliet wrote back in reply to the thread with a message that did not seem to improve the spirit of collaboration. He called concern over where a package stores its configuration files "because of some outdated policy", then advised the list that:

It is 2016. This is a web app. Your conventions do not apply. Live with it or become irrelevant. I know, the choice for option 2 was already made. Sorry, this is a flame, but there is a reason for Docker's popularity: the distributions have failed to keep up.

Much of the remainder of the email reiterated his criticisms of distribution packaging, while dismissing ideas raised by Steigerwald. He closed by suggesting that Debian create a set of guidelines for packaging web apps, moving to "an open, transparent platform where distribution and upstream people can collaborate on creating packages" (having suggested GitHub and the Open Build System earlier) and synchronizing such efforts with other distributions so as to reduce work.

Steigerwald then replied with surprise at the level of frustration expressed in Poortvliet's email. Debian, he said, has principles that make moving to a proprietary platform like GitHub impossible, and it is not reasonable to ask a distribution to drop its own project infrastructure for the sake of working with one upstream project.

In the exchange that followed, Poortvliet made it clear that he regards the "packaging problem" as one that distributions need to fix from their side. To his eye, the future of packaging is in projects like Docker, while "Debian and other distributions are going to be that thing you run docker on, little more." He also rejected a call to work with Debian's packaging team as:

Doing it all on your own, private infrastructure, closed off from other folks. Yes, if we want to collaborate with you, we have to be on Debian infrastructure, following Debian rules. And on Fedora infrastructure following Fedora rules. And on Arch and on openSUSE and on Ubuntu and on 10 more. You're saying that is "a middle ground"???

Steigerwald, however, contended that packaging trends come and go, and said he would rather help shape a solution than simply react.

I still hope that at some time ownCloud upstream and distro packagers can work more closely together again – maybe there is a common ground between using distro infrastructure and using Github, Open Build Service and other key points where goals and needs differ.

Eventually, Poortvliet did note that ownCloud's packaging team believes that its own packages could stand improvement, but he reiterated that he is interested in solutions that make packaging uniform across Linux distributions.

The discussion wound down shortly thereafter, when both sides concluded that there was little to be gained by retreading the same ground yet again. It remains to be seen whether any minds will be changed with the addition of more time to reflect on the question. Certainly there are many (particularly from the web-development community) who would agree with Poortvliet that existing Linux packaging rules do not fit their software's needs.

But there are certainly others with valid reasons to be suspicious of claims that Docker-style containers represent the zenith of package evolution. There have been other pretenders to that throne in past, after all. Perhaps the saddest outcome of the debate is the fact that neither side seemed to be able to persuade the other to commit to long-term collaboration. In the end, that represents a lost opportunity for both the projects and end users alike.


to post comments

ownCloud and distribution packaging

Posted Jan 7, 2016 2:50 UTC (Thu) by smoogen (subscriber, #97) [Link] (9 responses)

There seemed to have been a similar situation in Fedora earlier this year with OwnCloud. The maintainer I believe ran into the same issues and came to the conclusion that dropping it was better case for their own wellbeing. As you said in the end, these sorts of packaging wars come and go. They were very big in the early 1990's and then when people had to maintain production versus student projects the need for various packaging standards became more needed. I expect that Docker and similar tools will end up with the same types of packaging as continual deployment reaches its limits in various environments.

ownCloud and distribution packaging

Posted Jan 7, 2016 14:07 UTC (Thu) by jospoortvliet (guest, #33164) [Link] (8 responses)

Perhaps, unlike what the article above claims, I don't see docker as the pinnacle of deployment tools - on the contrary, I think the distributions' model is better. But they gotta update it to the needs and requirements of today.

Software, in general, has moved from "old is stable and dependable, let's not bother users with change" to "do fast, incremental changes to make it easier for users to keep up and fix problems faster".

It isn't just docker which shows people see a need for working around distributions. So is the work by the systemd/GNOME team working on different solutions. So are the various cross-distribution packaging tools. And what about language-specific tools like RubyGems / Bundler (Ruby), PIP / PyPI (Python), Packagist / Composer (PHP), NPM (Node.JS), Bower (JS, CSS, HTML) and so on.

That's not even talking about the needs of proprietary software and games - at least with those you can debate if you want to provide a nice, convenient platform for them or not. But, as of today, even the manuals and canonical way of installing many open source applications like drupal and wordpress escew packages and is simply based on a zip file or tar ball.

That shows, imho, that distributions fail to meet the needs of a growing number of developers and users. Here, as often, perfect is beaten by good enough (all these tools have massive flaws, I grant you that in a second).

And that was what my ranting was about. We might drop packages altogether, follow our fellow web apps offering a installer in a zip file or something. We already have a VM which is growing in popularity. A container might be next.

As I come from a distro background (openSUSE) I find that sad. I think distributions have an important role to play, for security but also Software Freedom reasons. So I'd rather see it differently, but for that, the distributions have to adapt. Not the rest of the world.

IF they care, of course, about being relevant. Many folks probably are happy if things work for them and that might explain the responses I got. Besides the, to be expected, anger about my tone and ppl taking it far more personal than they perhaps should have. Then again, had I been nice, nobody would've noticed the blog, so go figure.

ownCloud and distribution packaging

Posted Jan 7, 2016 14:13 UTC (Thu) by jospoortvliet (guest, #33164) [Link]

And credit where it is due: there are people, projects and distributions trying to solve this. Ubuntu, with Snappy, for example. Kudos for them.

ownCloud and distribution packaging

Posted Jan 7, 2016 16:00 UTC (Thu) by smoogen (subscriber, #97) [Link] (6 responses)

I understand your point, but the issue is that "not meeting the needs of developers" looks like a bubble view of the world. Most of the packaging rules are in place for dealing with the needs of "operations" where you might end up having to install 2-3 different versions of PHP, java, node and python because payroll still has to happen at the end of every week. Or where depending on what regulations your company has to follow you need to be able to show that every version of every library has some sort of seal of approval on it, and you can have multimillion dollar fines or jail time if it isn't.

And while that is probably a small percentage of overall "operations" they are usually the ones who have the most to lose and are usually the ones closest to company finance groups (as they are the ones with the most to lose when things go wrong). It may not be the world you want to "sell" to and that is fine and great, but it is what you are going to run into and the ones you need to at least show "I understand your concerns but we don't think our software will ever be good in your environment." which is what they need to hear when their finance guy says "I want an inhouse cloud like I read in Forbes but remember we can all go to jail if systems go down".

ownCloud and distribution packaging

Posted Jan 7, 2016 17:32 UTC (Thu) by jospoortvliet (guest, #33164) [Link] (4 responses)

If we're talking about the enterprise version of ownCloud, this conversation is of course moot. Who gets his enterprise software from distributions?

We ship directly to customers, including several financial institutions (though only a few are willing to be open about that for now, you can check which ones on owncloud.com if you want).

And I would guess this is the norm for enterprise software. Or do you get your Oracle packages from Debian?

The conversation I started was mostly for the benefit of home users, but for the enterprise it is of course also messy. To support RHEL, SLE and Debian, you have to either create about ~10 sets of packages or ship one container. Or a VM, ours is becoming surprisingly popular among our enterprise customers.

ownCloud and distribution packaging

Posted Jan 7, 2016 20:41 UTC (Thu) by smoogen (subscriber, #97) [Link]

We are clearly talking past each other with little hope of meeting. I will bow out here as there is no point in filling up LWN's db.

ownCloud and distribution packaging

Posted Jan 7, 2016 23:34 UTC (Thu) by Jandar (subscriber, #85683) [Link] (2 responses)

> The conversation I started was mostly for the benefit of home users,

As a home user I considered using ownCloud to consolidate various quick&dirty hacks of my own. I'm using my own hacks because they are *stable* due to the fact that they are based on *stable* software provided by debian. As long as my requirements don't change absolutely no maintenance necessary.

I'm using debian at home on my servers and on my desktop because it is stable. There would have to be a very compelling reason to accept a package which requires more maintenance than "apt-get update && apt-get upgrade".

Being a *user* means using not maintaining.

There are thing I'm passionate about and for these I spend a lot of time. Other things I use because they are convenient for me, ownCloud would be such a convenient thing. For me convenient software means: ease of use, stable way of use and don't steal my *time* with required individual maintenance and pampering.

It seems to me ownCloud isn't ready to be only used, my private hacks to scratch my own needs are given more years to live. This is unfortunate because I was looking forward to learn ownCloud, but only to learn for a limited time not to maintain indefinitely.

ownCloud and distribution packaging

Posted Jan 8, 2016 17:47 UTC (Fri) by jospoortvliet (guest, #33164) [Link] (1 responses)

Look, if everybody used ownCloud with a specific PHP version and a specific apache on a specific distribution with a specific client version, I think we could create a package which works perfectly. And we'd love to create something like that.

Reality, right now, is that the many, sometimes conflicting, demands make it very hard to make a super reliable solution, especially if you throw in not only different databases and web servers but also, of course, a variety of ownCloud apps.

So we get often bugreports of users, using our or distribution packages, which experienced problems. We think that losing data sucks more than having to do manual steps on installation or upgrade, so we've "simplified" our packages a lot to the point where, right now, it isn't more than a tarball in a package.

That, too, sucks, so we're working on improving the upgrade process, to be more robust even when you have a weird setup or missing or broken dependencies or broken apps.

Until that is done, the automatic upgrade will go right 99.8% of the time and create irreparable ownCloud installations in 0.2%.

We've got millions of users (somewhere between at least 3 and possibly up to 8) so that 0.2% is hurting a lot of users, hence the changes we did and the blog post warning users.

Though the blog post was also me trying to tell distributions that the barrier they have created for software vendors is too big. But that's a different thing.

Anyhow. In your case, you want no changes and no work. Right now, we can't offer that. If you run ownCloud, you'll have to run the upgrade process, manually, on every upgrade, from the command line. Or risk data loss (a risk which gets progressively smaller on smaller installations by the way, a home user will be just fine).

Perhaps have a look again after 9.0 is out, the new upgrade process might have made it possible to create packages which cause less work. Of course, if you take the default stable distribution packages, you have to wait some more years to get that release, I suppose.

ownCloud and distribution packaging

Posted Jan 12, 2016 18:18 UTC (Tue) by jospoortvliet (guest, #33164) [Link]

I just published a blog with more information about the work we're doing to make all this easier: https://owncloud.org/blog/making-owncloud-upgrades-more-r...

ownCloud and distribution packaging

Posted Jun 8, 2016 0:57 UTC (Wed) by linuxrocks123 (subscriber, #34648) [Link]

What locale are you living in where programmers and IT administrators routinely go to jail if they make mistakes, so I can add it to my personal list of hellholes never to visit?

ownCloud and distribution packaging

Posted Jan 7, 2016 6:06 UTC (Thu) by ptman (subscriber, #57271) [Link] (1 responses)

I'm amazed at how many projects still try to provide poor quality packages for various distributions. Many projects would probably be better off just providing source and docker images. Whoever is interested in packaging software for distributions should be encouraged to work with distributions.

ownCloud and distribution packaging

Posted Jan 7, 2016 9:03 UTC (Thu) by aleXXX (subscriber, #2742) [Link]

I think there is a difference between Open Source package created by commercial companies and such created by non-commercial communities.

In my experience companies feel responsible that their software works without problems on the end user machine. If the end user has a problem, the company support has to be able to fix the problem. So they often prefer to bundle the versions of libraries they are using, so they know what is running on the client machine. They don't care much whether this duplicates a library which already exists on this machine. They ship their own, so they know what's going on.

A non-commercial community feels responsible that their source releases work (build) properly, so distribution packagers can build packages. If the application then doesn't work for an end user e.g. on Fedora, it's in the first step a problem of the Fedora packager, but the community can say "our source package is just fine, the packager did something wrong".

This can be seen here in Jos' blog too. He is working now for OwnCloud, which is a company now, so they want to make sure their stuff works for the end user, and they can fix issues if there are any, without a man in the middle fiddling around.

ownCloud and distribution packaging

Posted Jan 7, 2016 9:48 UTC (Thu) by Seegras (guest, #20463) [Link] (22 responses)

I'm a Systems Engineer. I build solutions. And not only solutions that "run", but solutions that are maintainable throughout the whole life-cycle.

And one of the keystones to do that properly, is package management. The last few years we've seen constant disputes between distributions and things like developer-only languages like ruby, weird packaging-solutions as docker, and now ownCloud. And it's always the same: The developers of these things usually focus on developers and small-time end-users. And very much ignore system administration.

Yes you can have the newest ruby-on-rails, but then puppet won't work at the same time, on the same machine. Yes you can install these containers on some machine, but they won't be updated. Yes you can have the latest ownCloud, but then it pulls in duplicate libraries that won't get security upgrades. You can do this if you run one machine, you can't do this if you run dozens of machines.

And while they're arguing they need the latest and newest framework from git, they're packaging old SSL libraries at the same time. Because if you're working like that, you don't have any package management yourself. You don't really have the slightest idea what versions of what you really use, and this will be reflected by what you push out.

And this is simply not how you build sustainable systems. If you have a lot of machines, you need to be sure that you're running the same things, in the same versions everywhere; you can't just go "pip install" somewhere, and two weeks later somewhere else, where it will install a different version. And then wonder why it works on one machine but not on the other. And you can't just install some tarballs, and keep track of dozens of these things all around your systems to keep the up-to-date. You need to be able to rely on the package management, and on timely security upgrades; and that these upgrades really upgrade every instance of the vulnerable library.

So yeah, in fighting against distributions package management, you're actually fighting against system engineers and system administrators. Against the people that most likely need to install your software. Stupid.

ownCloud and distribution packaging

Posted Jan 7, 2016 10:23 UTC (Thu) by aleXXX (subscriber, #2742) [Link] (20 responses)

There are many different views on this, as can be seen here.
You see a big network with many machines, which all should be updated reliably, and which probably all run the same distribution.
The developing company sees many users with many different distributions and different packaging formats, each with their own packager. So either they have to create a package in each format (that's a hard task), or rely on all the packagers, and on all the distribution update schedules, also not very pleasant.

ownCloud and distribution packaging

Posted Jan 7, 2016 10:52 UTC (Thu) by dgm (subscriber, #49227) [Link] (10 responses)

Different views, certainly. Also different goals, as stated in the article, and I would dare to add that they are fairly incompatible ones.
Debian users value reliability and security, ownCloud (and other software packages) developers value frequent updates and direct final user interaction.

I am convinced that there's no middle ground to be found that could be acceptable for this situations. We have to accept that we need two different solutions for two different problems. Docker is a way to allow developers have it their way, and that's fine. Debian must make sure that users do realize that there's danger of breakage and insecurity if you take install containers in your system, and that problems in containers do not (and cannot) propagate to the rest of the system.

Also, software developers must acknowledge that almost all users do not want to live on the bleeding edge, eventually. Even those developing solutions based on ownCloud right now will need to move onto other things eventually, and then they will need a system that requires as little attention as possible. For this, requiring that users update to the latests and greatest is not a solution in many cases. They need to copy a page from the Kernel and publish "LTS" releases that distributions can integrate, and keep publishing patches for them for as long as possibly.

All this mimics more or less how people are using their systems right now. The thing that's missing is recognition of the situation and commitment from all sides.

ownCloud and distribution packaging

Posted Jan 7, 2016 12:40 UTC (Thu) by sebas (guest, #51660) [Link] (8 responses)

What I'd really like to see is that I can set up a server using Debian, install the owncloud package and then use that server for 5 years with only logging in every other week to run apt-get update && apt-get upgrade more or less blindly, with minimal risk of breaking.

Adding a repository for every app I want this server to serve makes me a lot less confident about this, and I'd suddenly have to extend my network of trust to more than one single vendor. I'd much rather have Debian ship a version that is sanctioned by Owncloud upstream and which receives security fixes. This doesn't seem a priority for the Owncloud team, in fact Jos dismisses this concept. I can't judge why an LTS version suitable for the Debians and enterprise distributions is not something Owncloud considers important, it could be that they don't think the codebase is mature enough to support it for a longer amount of time, it could be that their business cases just don't allow this, it could be that paying customers have different requirements, but to me as a "home user" it sounds most appealing to have something trusteable, reliable and easy to maintain. Just like almost all other software running on that server. (The 1% Jos quotes here seems rather misinformed.)

Right now, running owncloud on a publically visible server means administration overhead, as it's one special case to look at. If every developer team did that, sysadmin overhead increases, and I as a lazy user/admin get unhappier with every bit of software added. It simply doesn't scale.

This means that it becomes a lot harder for me to run my own, trusted and privacy-respecting services, something which is right at the center of what Owncloud claims as its goals, yet they're failing spectacularly by providing what's necessary to make this possible. It's concerning to me that Debian's valid concerns are met with that level of ignorance.

I think if Jos's aim would be happy end users like me instead of just preventing outdated installations, the conversation would have gone differently. The bottom line is that systems like Debian have solved a lot of problems that also matter for the use of server software like owncloud, dismissing that doesn't go a long way to fixing these problems. Making owncloud distro-friendly from a deployment and maintenance point of view would be a real feature.

ownCloud and distribution packaging

Posted Jan 7, 2016 14:20 UTC (Thu) by jospoortvliet (guest, #33164) [Link] (7 responses)

There are two things here.

About the long term support, see my blog from the end of last year. Maybe there is a need, we don't provide it atm but we might some day in the future - IF we can be convinced it is really beneficial. It will be work, technically speaking, to make it happen, but we're working on overhauling our upgrade process which will help.

About the collaboration with distributions: the thing is, and this is what I was, in the end, ranting about most: the distributions failed to provide an easy infrastructure for that. You can say - not their job. Maybe. But the result is that people decided to work around them, and that benefits nobody.

See also my comment earlier on this page.

ownCloud and distribution packaging

Posted Jan 8, 2016 17:52 UTC (Fri) by jospoortvliet (guest, #33164) [Link] (5 responses)

I've been thinking about what you asked for. Something which always works, never breaks on upgrade. With the myriad of combinations of distributions, php versions and modules, caching solutions, web servers and of course ownCloud apps, this has been very hard. Especially as preventing data loss is even more important - and as I wrote in earlier and other blogs, the changes we made to packaging (and the reason we have our own packages) is to protect and prioritize that. But we're getting closer to our ideal and 9.0 gets a overhaul of the upgrade process for precisely this reason - make it never break, ever.

As KDE developer, you should be able to appreciate how hard it is to get to that point for all users and use cases...

In any case, this is certainly what we *want* to provide and we will get there. We've got a dedicated team of hard working people with a strong vision and direction, plus some very large customer/users helping to push and even directly involved.

ownCloud and distribution packaging

Posted Jan 8, 2016 23:21 UTC (Fri) by rahvin (guest, #16953) [Link] (2 responses)

You are still dismissing the main point here as others have noted when you can't even acknowledge the issue there is little point in arguing about it. I was considering deploying ownCloud on my home server right up until I read this article. I don't want to spend 10's of hours every month trying to make sure your software is up to date and secure. As the parent poster said, using apt periodically and cron'ing unattended-updates within Debian helps me feel secure that my server is staying up to date and secure without me having to spend multiple hours of my free time fixing it every week, I of course have the occasional panicked update like the heartbleed vulnerability but those are rare.

Honestly if you want your company to move beyond large enterprises and capture the small business market you need to realize that these people don't have the time and money to spend on securing the software. Even within the large enterprises they will at some point realize the extreme amount of IT budget being spent and will evaluate other solutions.

The distributions figured out how to do secure deployments with standard configurations a long time ago. Yes each distribution is a little different. But honestly going by other development projects you really only need to cover two distributions to cover the bulk of potential customers. These are Fedora and Debian as most of the others are built on top of their package management or outright modified copies of their distributions. And who knows, the work the systemd team is doing might become the one package manager or some other solution might satisfy that need.

As a home user and occasional small business person I want stable and secure above everything else and I'd be willing to bet my views are quite common in a very large market. A competitor is going to eat your lunch by filling this need if you don't acknowledge the use case. You should consider the release cycle on RHEL for a moment and consider what that says about the market they serve. Just saying.

ownCloud and distribution packaging

Posted Jan 9, 2016 0:48 UTC (Sat) by bronson (subscriber, #4806) [Link] (1 responses)

The Mail-in-a-Box project has had a hell of a time with ownCloud: https://github.com/mail-in-a-box/mailinabox/issues/514

I hope Jos is right, and that they now understand that having broken point releases and corrupting your data on upgrades is bad. Really bad. (This seems like a change of heart... was it inspired by anything?)

Mail-in-a-Box originally used the ownCloud Debian package, ran into issues, and now just installs from source. The downside is that this leaves them without security updates. That's been OK since ownCloud hasn't taken security very seriously.

How about PPAs at a minimum? (no tarball packages!) And, agreed, not sure I'll ever install a webapp by clicking a download link: https://download.owncloud.org/download/repositories/stabl...

ownCloud and distribution packaging

Posted Jan 12, 2016 18:24 UTC (Tue) by jospoortvliet (guest, #33164) [Link]

I don't know where you got the idea that we don't take security serious when a project like HackerOne happily cites us as a project which does.

Anyhow, I wanted to post a link to our blog about the work on the upgrade process: https://owncloud.org/blog/making-owncloud-upgrades-more-r...

We're working on addressing issues on our side.

ownCloud and distribution packaging

Posted Jan 11, 2016 15:21 UTC (Mon) by sebas (guest, #51660) [Link] (1 responses)

I don't see how creating your own packages contributes to reducing complexity of the system as a whole, php versions, etc., that you note.

In fact, even just putting the configuration into /etc/ and allowing it to be read from there could already give some confidence, I'm quite used to "update whatever is in share, but if you want to overwrite anything in /etc, please ask me first". Those are semantics common to pretty much everything else installed.

Really, the point is that i don't want non-standard packaging on my system, I don't want to add sources for packages that are incompatible with what the distribution ships. These things are entirely possible, it seems, just not a priority right now, and it makes it a pain for me to maintain my owncloud installation.

So, are you saying that you want to make owncloud installation adhere to common practices for package installation? I'd love that, but I realize that it'd be a 180° turn from all the info I could read that you published previously.

ownCloud and distribution packaging

Posted Jan 12, 2016 18:28 UTC (Tue) by jospoortvliet (guest, #33164) [Link]

It is about data safety, I'm afraid. For example, we kept getting bug reports of server owners who broke off the upgrade process started by the package manager and were left with a broken server. Now you can say "that is stupid, they should not have done it" but that does not solve the problem. Turning off the automatic run of upgrades does, and helps people, even though it creates extra work.

So are the other issues and differences between our packages and those from distributions: we simply had to respond to bug reports and telling people "you're doing it wrong" is just not something we see as a solution. Many ownCloud users are not very technical, heck, github is already quite a barrier, facebook messages are a frequent source of bug reports and issues...

In that sense, you could say we had a different focus than the distributions when it comes to user experience.

I just published a blog with more information about the work we're doing to make all this easier: https://owncloud.org/blog/making-owncloud-upgrades-more-r...

Of course, it won't solve all problems but it will help.

ownCloud and distribution packaging

Posted Jan 27, 2016 4:09 UTC (Wed) by Rudd-O (guest, #61155) [Link]

Distros DO provide infrastructure you can use in order to dispatch new package builds. Fedora and Ubuntu both have PPAs (called differently in Fedora) which are channels through which you can push updates to distributions properly, and allow you to slowly add conformance to their packaging standards, as well as automated no-downtime schema upgrades when updates take place.

tar cvzf tarfile.tar.gz directory is not the way to do it. Multiple people have told you this. Focus on making end users happy.

ownCloud and distribution packaging

Posted Feb 13, 2016 22:52 UTC (Sat) by jospoortvliet (guest, #33164) [Link]

To revive an old discussion: not so sure if using Debian packages is so much more secure. There's some evidence to the contrary.

https://statuscode.ch/2016/02/distribution-packages-consi...

ownCloud and distribution packaging

Posted Jan 8, 2016 10:44 UTC (Fri) by epa (subscriber, #39769) [Link] (8 responses)

Surely there is a lot of common ground between Fedora, Debian, SuSE and so on - some minimal set of policies which an upstream could follow so that their software can straightforwardly be packaged by all major distributions. If there are substantial conflicts between policies for different distributions then I would agree with the upstream that they cannot be expected to accommodate all of them. But I don't think that is really the case.

ownCloud and distribution packaging

Posted Jan 8, 2016 14:19 UTC (Fri) by pizza (subscriber, #46) [Link] (6 responses)

> Surely there is a lot of common ground between Fedora, Debian, SuSE and so on - some minimal set of policies which an upstream could follow so that their software can straightforwardly be packaged by all major distributions.

Oh, there certainly is considerable common ground -- but I believe the article's point is that OwnCloud upstream doesn't appear to care enough to even try. Heck, even just following the FHS's guidelines would be a big improvement.

ownCloud and distribution packaging

Posted Jan 11, 2016 10:34 UTC (Mon) by epa (subscriber, #39769) [Link] (5 responses)

Yes, and the excuse they use is that they don't want to have to follow umpteen different sets of packaging guidelines - which isn't really the case.

ownCloud and distribution packaging

Posted Jan 11, 2016 12:13 UTC (Mon) by jospoortvliet (guest, #33164) [Link] (4 responses)

I think the two of you should read the blog post and conversation again... The article by LWN isn't entirely an accurate representation, I think, though not wholly wrong either. If you want my summary:

* distribution packages are more likely to break and result in data loss than ours
* the way distributions work doesn't mesh well with what most of our users want and need or with what we consider best for our users
* I think that that isn't exclusive to ownCloud, other projects suffer from it and thus don't recommend distribution packages (from Wordpress to Drupal etc) and it is also visible in the growing popularity of alternative ways of handling deployment and management (various containers).
* I think that's bad and the distributions should have a look at what they could do to ease deployment and management so they don't become 'the thing you run a container on'.

Note that we put in a LOT of effort supporting users with proper distribution packages, most projects don't. We had to because distributions don't provide what users want, including up to date packages for stable platforms.

Despite the efforts we still get loads of bug reports and users with issues. In response to bug reports and issues we've stupidified our our packages to avoid breakage, which unfortunately SUCKS as it made the packages barely better than a tarball :( (eg no auto-upgrade, no split, no config in etc, not even dependencies on most platforms as of today).

We'd also like to have our cake and eat it too, so we're looking to fix that but it is a hard problem. Maybe we will drop packages altogether, perhaps try to facilitate distributions providing them (though that often results in outdated packages but so be it) or provide a container (our VM is already VERY popular) or a tar.bz2 installer or something else... In any case, I'm publishing a blog post this week on what we're doing for 9.0 which is a fully revamped installer which might make it possible (after extensive testing) to re-enable automatic upgrading as part of the package installation process. Maybe.

Remember, our goal has been: provide 100% data safety. That is why we recommend not to use distribution packages. Users are free to decide not to follow that advice, at their own risk.

ownCloud and distribution packaging

Posted Jan 11, 2016 16:46 UTC (Mon) by pizza (subscriber, #46) [Link] (2 responses)

> * distribution packages are more likely to break and result in data loss than ours

And my point, based on my personal experience, is that the official OC packages tended to break more often than not. No data loss, but manual intervention was still necessary to restore service.

Are things better now? I certainly hope so, but for my use case (PIM/groupware) OC doesn't offer a sufficiently compelling reason for me to migrate back over and try again.

ownCloud and distribution packaging

Posted Jan 11, 2016 18:51 UTC (Mon) by bronson (subscriber, #4806) [Link] (1 responses)

Just curious, what are you using?

I'm still on ownCloud but I've been wanting to migrate away for months.

ownCloud and distribution packaging

Posted Jan 11, 2016 22:06 UTC (Mon) by pizza (subscriber, #46) [Link]

I went back to using Horde, or more specifically, Fedora's packaged version of it. (Fedora's packages are very well maintained, but Horde made that task much easier by following the PEAR guidelines.

ownCloud and distribution packaging

Posted Jan 13, 2016 13:41 UTC (Wed) by epa (subscriber, #39769) [Link]

Thanks for your response, I agree it is not an easy problem.

ownCloud and distribution packaging

Posted Jan 9, 2016 16:44 UTC (Sat) by lsl (subscriber, #86508) [Link]

In fact, those parts of the policies that might take some actual work to make your package conform to are exactly the same between Debian and Fedora (and I guess OpenSUSE, too, not sure about it). A solid Debian package whose maintainers already did the initial work of cleaning it up for distro inclusion can, in most cases, be easily made into a Fedora package, needing only minor changes (and vice versa).

ownCloud and distribution packaging

Posted Jan 7, 2016 13:07 UTC (Thu) by philipstorry (subscriber, #45926) [Link]

Cheers. You've saved me a lot of time by typing up almost all my thoughts on the subject.

All I'd like to add is that I'm now quite suspect of the ownCloud project's code. If they have this short-sighted attitude to package management, then what other potentially poor decisions have they taken in the design or implementation?
Sadly, I'm not a PHP developer, so can't check their code myself. Therefore I'm forced to not trust their project by default, despite its noble intentions.

ownCloud and distribution packaging

Posted Jan 7, 2016 11:06 UTC (Thu) by remicardona (guest, #99141) [Link] (2 responses)

ownCloud upstream sound a bit like the ion3 upstream: "me and my precious code".

There's a reason linux distros work: package management. We wouldn't be celebrating 20 years of Debian if it weren't for APT. As a Gentoo dev, I've had my share of upstream projects not wanting to help, belittling the work we put, and swathes of other unpleasantries.

Usually, the packaging problems we encounter (and fix) do help upstream directly by having more predictable build systems and software all around. There are simple steps that any upstream project can follow, at almost zero cost, that will make life so much easier for distributions:

  • VCS discipline: proper tarballs published from a known revision/tag
  • no bundling of 3rd party libraries in said tarballs (bundling may be done elsewhere)
  • no automagic dependencies (this one is a bigger issue for Gentoo since packages are built on user systems, not in clean/empty chroots)

To conclude on a happier note, thankfully not all upstreams are like ownCloud. I think one of the best examples of a great upstream is PostgreSQL. They provide standard source tarballs for distrubtions to package, but since distributions usually carry only one version of PostgreSQL (whereas upstream support 5 major versions at any given time), they provide binary repositories for Debian/Ubuntu and RHEL/Centos.

ownCloud and distribution packaging

Posted Jan 14, 2016 4:35 UTC (Thu) by gwg (guest, #20811) [Link] (1 responses)

> There's a reason linux distros work: package management.

There's a reason that Linux has never been successful "on the desktop" : linux distros.

Lack of a common and stable Linux application API & ABI is now leading some people to ridiculous measures : - Containers, re-inventing the operating system within an operating system, in an attempt to paper this over.

As an application developer, the API/ABI problem is the technical reason that Linux is the least attractive platform to develop for.


ownCloud and distribution packaging

Posted Jan 15, 2016 1:18 UTC (Fri) by flussence (guest, #85566) [Link]

I think it's a bit disingenuous to claim it's “some people” doing this when in reality these are all backed by corporate entities, with an order of magnitude more resources on hand than the mostly-volunteer distros they're trying to pave over.

ownCloud and distribution packaging

Posted Jan 7, 2016 11:09 UTC (Thu) by k3ninho (subscriber, #50375) [Link] (1 responses)

>To his eye, the future of packaging is in projects like Docker, while "Debian and other distributions are going to be that thing you run docker on, little more."

We're reading how Ian Murdock put together a system to manage interdependencies on GNU/Linux systems as part of reflecting on losing Ian Murdock while, next to it, there's this. It has the familiar pattern of a business saying 'not invented here -- use our tarballs' in place of proper package management. This claim that serious production deployments will use download-and-deploy containers deserves contempt -- almost everything has a small amount of custom configuration and kludges, and everything done right has verification from the ground up and systems which ensure continued effective interoperation. Worse, when we benefit from distribution communities working hard to have packaged software play nicely together, this is Jos Poortvliet and OwnCloud (careful to not apply my own mental habit of s/cloud/clown here) wanting to drop that work on their users.

K3n.

ownCloud and distribution packaging

Posted Jan 7, 2016 17:35 UTC (Thu) by jospoortvliet (guest, #33164) [Link]

They actually mis-qualified my statement here, I certainly didn't claim that Docker and stuff will be the future. Rather that the risk is that it is going in that direction and it's high time that distributions tried to do something about it before it was too late.

Considering how extensively projects work around distribution packaging already (from pep and gem to the various containers) I'm not sure if the ship hasn't already sailed.

Distribution packaging and package version interdependencies

Posted Jan 7, 2016 16:04 UTC (Thu) by jhhaller (guest, #56103) [Link] (3 responses)

One of the problems, which I suspect OwnCloud is facing is mutually conflicting interdependent software, especially on 3rd-party distributions. If there is a dependency on package X being at version xii, while there is another dependency on package Y, which will only run with package X at version xi, there is a conflict. In one package, it's easier to manage that conflict, either by fixing package Y to work with package X version xii, or working around the direct dependency of package X version xii, possibly by forking project X and only backporting one fix from version xii to the fork. Solving this problem with a distribution is harder, as the original package may have nothing to do with package Y, leaving the distributor with little knowledge of the original package or package Y to come up with a reasonable solution. By the same token, if the distribution changes package Y to backport a fix, they are unlikely to ensure that this change doesn't affect the original package. Since each upstream is independent, they work at their own pace, and it's difficult to find mutually interworking versions of all packages, which is why making distributions is so hard. The major advantage of distributions is incorporation of security fixes on a timely basis, minimizing storage and memory requirements by using common versions.

I'm not sure how to best addresses these issues, but one approach would enable more packages to support multiple versions, and for packages to declare compatible package versions of its dependencies. This would require each package to have it's own set of links to the packages it needs, and starting another package from the first one would be complicated. But neither the current package model, nor the integrated application model seems to be optimal.

Distribution packaging and package version interdependencies

Posted Jan 8, 2016 14:19 UTC (Fri) by mjthayer (guest, #39183) [Link] (1 responses)

> I'm not sure how to best addresses these issues, but one approach would enable more packages to support multiple versions, and for packages to declare compatible package versions of its dependencies.

At least for libraries, static linking can help here. A distribution could provide one version of a library for dynamic linking and multiple versions statically. Of course, it means more packages to update if there is a security issue.

Distribution packaging and package version interdependencies

Posted Jan 8, 2016 16:47 UTC (Fri) by pizza (subscriber, #46) [Link]

> At least for libraries, static linking can help here. A distribution could provide one version of a library for dynamic linking and multiple versions statically. Of course, it means more packages to update if there is a security issue.

In this case, we're talking about PHP, which provides no meaningful mechanism for parallel installation of multiple versions of the same library. You could privately bundle some things (ie pure PHP/PEAR stuff) with your application but with other things that rely on native compiled extensions (ie PECL) you're stuck using whatever the system has installed globally.

Unless you bundle your own PHP runtime, and maybe a webserver too.... and oh look, it's turtles all the way down.

Distribution packaging and package version interdependencies

Posted Jan 9, 2016 16:59 UTC (Sat) by lsl (subscriber, #86508) [Link]

Another solution would be to steer clear of any library/package where, at any point in time, there are more than 2 incompatible versions of it in common use. Those are madness, anyway.

Then package those two versions (current and legacy/compat) in distros. Drop the compat packages as users disappear, but no sooner. Hopefully, for most packages, their developers have enough taste and engineering discipline that, most of the time, you only need a single version of it.

ownCloud and distribution packaging

Posted Jan 7, 2016 19:53 UTC (Thu) by flussence (guest, #85566) [Link]

> Sorry, this is a flame, but there is a reason for Docker's popularity: the distributions have failed to keep up.

Distros certainly are struggling to keep up... with how rapidly standards of software engineering are plummeting.

Even Windows now discourages this attitude of “we own a chunk of your computer if you use our software”. ownCloud apparently didn't get the memo.

I've been qutie disappointed in OwnCloud's official packages.

Posted Jan 7, 2016 22:50 UTC (Thu) by pizza (subscriber, #46) [Link] (3 responses)

Their poor package quality and inability to sanely upgrade from one point release to the next was one of the reasons I ended up giving up on OC entirely in the 7.x days.

I'm talking about basic failures like having to manually disable maintenance mode and more often than not, be forced to manually re-enable the PIM plugins which, for me, were the entire point of using OC.

As a final insult, their CalDav and CardDAV export features turned out to be a little buggy too, but in their defence those specs have a lot of ambiguity.

I've been qutie disappointed in OwnCloud's official packages.

Posted Jan 8, 2016 14:22 UTC (Fri) by mstone_ (subscriber, #66309) [Link]

pretty much--it's a neat idea, but the implementation is downright scary from the perspective of long-term administration.

I've been qutie disappointed in OwnCloud's official packages.

Posted Jan 8, 2016 17:54 UTC (Fri) by jospoortvliet (guest, #33164) [Link] (1 responses)

Well, we've put data safety first, over ease of upgrade. That's been a pain, which we're aware off, and a complete overhaul of the upgrade process is coming for 9.0 which should deal with this once and for all (yeah, famous last words).

Also, CalDAV and CardDAV have been pulled into the core and should, with that, make a huge step forward in terms of reliability.

Have another look in half a year or so, I don't think you'll be disappointed.

I've been qutie disappointed in OwnCloud's official packages.

Posted Jan 12, 2016 18:29 UTC (Tue) by jospoortvliet (guest, #33164) [Link]

Some more about the upgrade process overhaul in our blog post: https://owncloud.org/blog/making-owncloud-upgrades-more-r...

ownCloud and distribution packaging

Posted Jan 12, 2016 18:18 UTC (Tue) by jospoortvliet (guest, #33164) [Link]

I just published a blog post on ownCloud.org on <a href="https://owncloud.org/blog/making-owncloud-upgrades-more-r...">our work on improving the upgrade process</a>. It might address some of the comments and concerns, too.

"having suggested GitHub and the Open Build System"

Posted Jan 14, 2016 13:53 UTC (Thu) by pboddie (guest, #50784) [Link]

Seriously? Firstly, with all the cool people shovelling their stuff onto GitHub, when can we expect the accompanying BitKeeper moment? The editor obviously didn't feel confident enough to pencil that in for this year in his predictions.

And from my experiences with another fairly visible project, the Open Build System just seems to be another way that the SuSE brigade gets to tick all the distribution boxes by putting out poor quality packages for all the other distributions. My impression is that OBS is advocated by people who don't fully appreciate all the necessary aspects of distribution packaging, especially when those advocates insist on it being used as the basis of proper distribution packages.

It is certainly the case that distribution packagers have got things wrong in the past. For example, a few years ago now, some developers of a certain Web solution told me that there had been some odd practices in Debian to migrate content between versions of their software when there is actually a standard migration script for that purpose that the package maintainers had either overlooked or discounted needlessly. That isn't an encouraging sign when you are relying on the distribution to do the right thing, but maybe this was either misreported or I misunderstood.

But there is tremendous benefit in having distribution packages for things that you need to run but don't have the time to become immersed in, where it would be beneficial to rely on others' expertise. I've deployed MediaWiki on Red Hat Enterprise Linux before - not my choice, but mandated by my boss at the time - but there's just no way I'd want to familiarise myself personally with every aspect of PHP deployment just to be able to do this, especially alongside having to do real work.

People just want things to work, rather than having to become experts in everything, particularly when everything involves every half-baked "off onto the Internet to download stuff" language- and application-specific packaging system known to man, woman and animal. And adding random package sources with "up today, down tomorrow" characteristics and vague repository key availability, just because that's where some company serves "the fresh stuff", isn't the answer, either.

Thanks, very enlightening

Posted Jan 15, 2016 15:19 UTC (Fri) by oldtomas (guest, #72579) [Link]

To me, a distro is mainly about trust. I can't be a specialist on the many packages (currently 1680) installed on my box. Of those, I know perhaps a dozen, I compile perhaps half a dozen.

I really appreciate the fact that there's some specialist looking at the rest of those and putting lots of work towards making sure that they Just Work (in the context of the distro). When I feel specially about one package, I'll get that from upstream and do whatever magic it needs to get it running -- but I like to choose myself which package is important to me and which not.

So thanks, distros! (and very especially: thanks Debian!)

Another thing: this discussion has made my decision about ownCloud: I'll stay clear of it.


Copyright © 2016, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds