Showing posts with label distribution. Show all posts
Showing posts with label distribution. Show all posts

05 September, 2016

Akonadi/KMail issues on Tumbleweed?

So if you, like me, have experienced how smoothly Akonadi deals with crashes and think it is still annoying, there's a solution. The problem is caused by Xapian which creates some nice backtraces but until it is fixed you are stuck with a crash every ~minute.

The solution is in this email from Christian Boltz:

I created a repo with the previous version of libxapian, and akonadi-* and baloo linkpac'd from Factory (so rebuilt against the old libxapian): https://build.opensuse.org/project/show/home:cboltz:branches:openSUSE:Factory

Packages at http://download.opensuse.org/repositories/home:/cboltz:/branches:/openSUSE:/Factory/standard/

Since I installed these packages (using zypper dup --from), I didn't see any akonadi crashes.

If someone wants to use the fixed packages _now_: I'll keep the repo as long as it's useful for me ;-) -> this is clearly caused by the libxapian update (libxapian22 -> libxapian30)


In other words, you fix it this way:

zypper ar http://download.opensuse.org/repositories/home:/cboltz:/branches:/openSUSE:/Factory/standard akonadi-fix
zypper ref
zypper lr
Now find the number of the new repository (akonadi-fix) and:
zypper dup --from 4
(where 4 is the number of the repo in my case).

Then OK the result and done, the mail client which, despite all its issues, continues to be the only one I can stand working with is smooth sailing again ;-)

Oh, to fix the mess Xapian made of the database, you probably should stop akonadi and remove the search DB, it will get re-indexed:
akonadictl stop
rm -rf ~/.local/share/akonadi/search_db
rm ~/.config/.baloorc
akonadictl start


Greetings from #Akademy2016 by the way!

03 February, 2016

Why use ZIP instead of TAR?


I've been asked recently why ownCloud zipps its files instead of tarring them. .tar preserves file permissions, for one, and with tar.gz or tar.bz2 you have compression too.

Good question. Let me start by noting that we actually have both: zip and tar.bz2. But why zip?

A long time ago and far, far away

In the beginning, we used tar.bz2. As ownCloud gained Windows Server support, we added zip. Once we dropped Windows support, we could have killed the zip files. But we had reasons not to: tar is, sadly, not perfect.

Issues with Tar

You see, tar isn't a single format or a 'real' standard. If you have a platform other than plain, modern Linux, think BSD or Solaris, or the weird things you can find on NAS devices, tar files can get you in trouble. Unlike zip, tar files also can have issues with character format support or deep folders. We've had situations where upgrades went wrong and during debugging we found that moving to zip solved the problem miraculously... And, as ownCloud, we're squarely focused on the practical user experience so we keep zip, alongside tar.bz2.

See also the GNU tar manual if you want to know more about the various tar formats and limitations.

Sadly, sometimes it is impossible to find one thing that works for everyone and in every situation.


Tarred turtle pic from wikimedia, Creative Commons license. Yes, that's a different tar, I know. But - save the turtles!

20 January, 2016

Get Started With ownCloud App Development in Six Steps - the Quick and Dirty Way!

ownCloud Mail, a great newcomer
What's simpler than downloading a zip file, extracting it and running a command in the resulting folder to get an ownCloud server up on localhost?

Yes, it can be that simple, though it might require a few minor tweaks and you have to make sure to have all ownCloud dependencies installed.

Note that this is useful if you want to develop an ownCloud app. If you want to develop on the ownCloud core, a git checkout is the way to go, get started here. Feedback on this process is highly appreciated, especially if it comes with a pull request for our documentation of course ;-)

Step 1 and Two: Dependencies

  • Install PHP and the modules mentioned here
    Your distro should make the installation easy. Try these:
    • openSUSE: zypper in php5 php5-ctype php5-curl php5-dom php5-fileinfo php5-gd php5-iconv php5-json php5-ldap php5-mbstring php5-openssl php5-pdo php5-pear php5-posix php5-sqlite php5-tokenizer php5-xmlreader php5-xmlwriter php5-zip php5-zlib
    • Debian: apt-get install php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl php5-common php-xml-parser php5-ldap bzip2
  • Make ownCloud session management work under your own user account.
    Either change the path of php session files or chmod 777 the folder they are in, usually something like /var/lib/php (debian/SUSE) or /var/lib/php/session (Red Hat).

The Final Four Steps


ownCloud should present you with its installation steps! Give your username and password and you're up and running with SQLite.

Alternative with OCDev

An alternative is to use OCDev which you can grab here. After installation, you run
ocdev setup core

See the app development tutorial here.

Start with the app

Now you create a subfolder in the owncloud/apps with the name of your app and put in a skeleton. With OCDev:
ocdev startapp MyApp

By hand, you can copy an existing app and hack that up ;-)

It's probably wise to now get going with the app development tutorial here. Be sure to check out the changelog, we try to make sure the latest changes are noted there so even if we didn't manage to fully update the tutorial, you can find out what will and won't work in the changelog. Also, be sure to update the links to get the latest dev doc - this all links to 9.0, once that is out it is probably better to directly target 9.1 and so on.

Your input is very much welcome! If you run through these steps and get stuck somewhere, let me know and I'll update the documentation. Or, of course better still, do a pull request on the documentation right in github. You don't even have to do a full checkout, smaller fixes can easily be done in the web interface on github.

Thanks, good luck, and have fun building ownCloud apps!

04 January, 2016

Use ownCloud provided Packages, then VM, then Zip, no distro packages.

Last week I wrote a blog about why running an old ownCloud release isn't more stable and you should upgrade. There are many ways to install, run and upgrade ownCloud. What is best depends on your situation but some general rules of thumb can be given.

Use ownCloud Provided Packages If You Can

The best solution from a security and stability point of view are the official ownCloud packages, provided you have the basic know-how needed to run your own Linux server.

Packages give you the advantage of a relatively clean and easy upgrade process, with the ownCloud team taking care of any special steps which have to be taken. The upgrade itself will still have to be kicked off by the system administrator (see our latest update) but you won't risk forgetting to remove old files, correcting file permissions and so on.

We do not recommend using distribution packages, for several reasons:

  •  First, there will inevitably be a lag between what distributions ship and what we make available.
  •  Second, it happens that distributions 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.
  •  Third, many distributions are reluctant to upgrade to newer ownCloud releases, which means you can get stuck on older versions. While security fixes are often still back ported, being on, say, ownCloud 7.0.4+dfsg-4~deb8u3 means you have missed out on many ownCloud fixes and improvements. And of course, they continue to ship major server releases and ownCloud client versions until long after we've abandoned them.
  •  Four. Not offering the latest ownCloud bugfix version also means upgrading can become a tricky problem: we recommend to upgrade to the latest bugfix version in a series before upgrading to the next for a reason. ownCloud 7.0.12 will contain bugfixes related to the upgrade to 8.0.x, fixes for problems you might run in to when you try to upgrade from your distribution's older bugfix release to a new major release. On top of that, our 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.
  • Last but not least. 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. It is also a performance issue. And problems will only get bigger with the upcoming code integrity checker.

I blogged on owncloud.org about the issues with distribution packages (and the distribution model in general) earlier.
"the misguided policy of not updating to even bug fix releases which some distributions have is nothing but harmful for users"
The last of the five points, distributions struggling with projects which don't fit their rules, leads to things like Iceweasel. If you're new to the world of Linux distributions, this is a tale you'll love: on Debian and perhaps soon, Fedora, Firefox is named Iceweasel. Debian does not want to update software because "that would break stuff", instead, they forked Firefox to backport security issues. I'll leave it up to you to decide how secure it is to have packagers 'maintain' software long after the project itself has moved on...

Of course, it also leads to changes coming in big chunks - we've learned that users adapt to changes far better and easier if they come small and regular. That is why mobile apps and many websites introduce changes in an Agile way. ownCloud and linux desktop KDE also increased their release speed for this reason.

I understand the reasons behind the rules and sometimes it has a pay-off which is worth the extra effort. But, as always when things are taken to an extreme, it is now blocking distributions from adapting to 2016 and onwards. The result is that technologies like Docker and the sandboxed apps the GNOME and systemd teams are working on will make much of the distributions irrelevant. A future distro will be a small base on which you run some kind of application image which comes with its dependencies built in. Is that the most secure solution, perfectly disk-space or memory efficient? Perhaps not. But by chasing perfection, distributions failed to attain good-enough.

Anyhow, enough rambling, let's talk about what to do if packages don't work for you.

Use a VM if a Server is Hard

Not everybody is comfortable on the Linux command line and while there is excellent documentation on running and securing a Linux server, it might make perfect sense to go for the Virtual Machine option. Since ownCloud 8.1 we've provided official ownCloud VM images and there are also several third party images available. This way, you get a server installation which has been set up by our experts to be secure out of the box. Upgrading and responding to immediate security threats is still in your hands but we've done what we can to make it easy.

Use Zip Files or Installer if all else fails

On some systems, like cheap hosting or a NAS, your control over the system simply does not extend to the installation of packages or running a Virtual Machine. Then, the zip files (or, for convenience, the installer) are your last resort. While the zip file is easy to use ("just extract and go"), it requires special upgrade attention which might discourage you from staying up to date. And that introduces a security risk! Also, doing the upgrade process from the web UI has limitations and risks on large installations.

Now you've learned why you should upgrade your ownCloud and what installation method to use. Time to get started!

30 December, 2015

Five Reasons To Upgrade Your ownCloud

On our user mailing list users occasionally report problems with quite old ownCloud releases. Often community members like Chris suggest to upgrade to a newer major version and use official repositories rather than those provided by distributions like Debian. That is good advice. I'll share 5 reasons why an older version isn't more stable and talk about the issues with distribution packages in a follow-up blog.

Older Releases and Stability

The oldest ownCloud release supported, according to owncloud.org/security, is ownCloud 7.0.x, with x currently being at 12. That is, this release has had 12 updates fixing stability, performance and security issues. One could thus argue that this release is more stable than newer releases like 8.0.10, 8.1.5 and our latest stable, 8.2.2.

There are five reasons why that is not really true.

openCloudMesh brings ownCloud to research

1. ownCloud Grows

The rule-of-thumb that an older release has had more use and thus issues have been shaken out is not really true with ownCloud.

The ownCloud user- and developer community is growing all the time. ownCloud 8.2 will have more users in its lifetime than 7.0 had, which had far more than, say, 5.0 ever did and so on. At some point after their release, these newer versions will already have had more users and thus more potential discovery of obscure problems than their older, still supported counterparts. If you're interested in quantifying this, we try and give an idea of our estimated user base in our time line of ownCloud history. There'll be an update early next year with our user estimate as of today, but count on at least double the number of last year.

2. Testing Continuously Improves

With the growth of ownCloud's user and developer community also come more tools and processes for testing. For example, during the 8.0, 8.1 and 8.2 development cycle we've increasingly introduced automated testing provided by the CERN-developed Smashbox tool, which is now routinely used to determine if there have been any regressions in complicated syncing and sharing scenario's. Besides Smashbox, other tools have been added to the roster and manual testing has been improved significantly as well. Older releases have simply not had the benefit of this testing and thus there is the chance of corner case issues still lingering.

3. Back Porting is Limited

Due to many users running recent ownCloud versions and the continuous improvements to testing, most bug are initially found and fixed in the latest or second-latest ownCloud release. From there they are back (or forward) ported to the others, that is, integrated in older releases. Due to the large changes in each ownCloud release, integrating fixes far back often makes little sense and generally speaking, we backport to the latest stable ownCloud version and the one before. Of course, security fixes and fixes for very severe or very simple issues are often brought all the way back to the oldest supported release.

4. Clients Take Advantage Of Server Features

The various ownCloud clients for desktop and mobile operating systems are developed alongside, though not in lock-step with the ownCloud server. Various features which improve reliability and performance of syncing require both client- and server side changes. Thus, running a newer ownCloud client with an older server means you miss out on features which could help protect your data or at least save you from getting some conflict files. For example, there's work going on to have checksums on files, a precursor to the much requested ability to sync file changes rather than the entire file. This deals with the rare but not impossible cases where files get mangled while in transit or on storage.

5. New Features Improve Reliability

The checksum feature coming with ownCloud 9.0 is not the only 'pro-active data defense' improvement to ownCloud. We will introduce features like detecting apps which break ownCloud and code integrity checking. Earlier we introduced file locking, experimental in ownCloud 8.1 and enabled by default in 8.2. This protects files from concurrent changes which in rare situations could result in errors or even data loss. Especially for large, enterprise installations, these situations might not be that rare due to large numbers of users simultaneously accessing the same data and thus the benefits of upgrading includes getting rid of an entire class of impossible to reproduce issues.

So What Version Should I Run?

Above, I gave five reasons why near outdated ownCloud releases do not tend to be any more reliable than newer ones. Rather, the opposite is true, as newer versions get more scrutiny and thus have more issues found and fixed and have received new features which benefit the reliability of both server, client and their interaction.

Home Users

For home users, I still recommend to run the stable or plain latest release channel. On the whole, the benefit of new features and performance improvements in an up to date release far outweigh the stability advantage of older versions, especially if ownCloud is ran in a typical (LAMP) setup. We release ownCloud versions only after extensive testing and the vast majority of issues found shortly after a release is related to either scalability for large instances or non-standard environments like enterprise databases, caching solutions and so on. Most testers and developers use ownCloud on a recent Linux/Apache/MySQL/PHP setup and thus you can expect PHP 7 on a bleeding edge Apache to be surprisingly reliable, even when compared to a old Debian release. Note that you should test yourself if you really want to be sure that an upcoming release works smooth for you!

Enterprise

If you value stability above all else (that is, over features and performance improvements in newer versions), it is best to track ownCloud releases with a N-1 strategy: upgrade to one release before the latest about 1-2 months after a new version comes out. That is, it would be about time to upgrade to ownCloud 8.1 by now and when 9.0.2 is made available, now to be expected some time in May, 8.2 is your best bet. If you want to be sure the new ownCloud version runs great on your infrastructure and the upgrade goes smooth with your setup, I strongly suggest to get involved in testing ownCloud. It provides the best and only guarantee it works for you™

Of course, IF you value stability to this degree, you are most likely an enterprise user and you should seriously consider getting in contact with ownCloud, Inc. which can help you decide far better than a blog post what version is perfect for you. Besides advice, support and deployment tools, you get a heads-up on security, stability and performance related issues (and work around solutions) and of course have access to our enterprise features.

If you are still running ownCloud 7.0.x and it is running satisfactory, I can imagine you don't want to change. That is fine for about another 2 months (until 7.0.x is deprecated). However, if you experience any trouble, any advice other than 'upgrade' is probably unwise: I don't think it is worth the trouble of trying to fix issues with 7.0 when you will have to upgrade to 8.0 in a few months anyway.

I know, upgrading can be a pain, it is work and all that. But so are problems in old versions of software you're running and even more so is security. We're working on a new upgrade process for 9.0.

And realize you don't do your users a favor by keeping software 'the same'. "Big Bang" releases steepen the learning curve by making users swallow too many new features, and increase the likelihood of compatibility issues with other systems in the environment. Much of the web and apps (especially on mobile) is moving to faster release cycles for this reason.

In all cases, use ownCloud from the official, ownCloud-provided repositories you can find on owncloud.org/release-channels. I blogged about how to install ownCloud (packages, VM, zip files etc) here.

12 December, 2015

Western Digital Labs and ownCloud

We published a blog post about a collaboration between WDLabs and ownCloud. WDLabs is, in their words, "a division of Western Digital focused on accelerating new solutions". I'd take that as "they look for more ways to sell hard drives" and they have been playing with some interesting stuff. One such thing is their PiDrive Kit. This kit includes a connector cable which powers both the harddrive and the Pi from one power supply, simplifying the setup. We're now working with WD Labs to build something from this starting point.

WD Labs, meet ownCloud

When they approached us a few weeks ago, they told us they had been toying with a more complete kit with bundled operating system based on berry boot. This lets you choose an OS on first boot and they had put together an image with ownCloud as one of the options. They thought it was really cool and asked if we felt the same and had any ideas of what we could do with it. Well, sure, I wrote not too long ago about What's holding ownCloud back and being able to offer potential users a plug-and-play device with ownCloud on it is something we'd love.

So did they. We quickly received a prototype of a kit with Berryboot and ownCloud on it as well as a case and a Pi included. After some more discussions, we developed a plan with which we hope to get some community help to make this happen.

We need your help

You have to know - this is not something ownCloud, Inc. is very much involved with. It simply is not a commercial endeavor - Inc. works for enterprise customers and we haven't found any of them yet running ownCloud on a Pi. So, while WD Labs will take care of the hardware and has committed themselves to doing a serious number of ownCloud branded devices complete with pre installed OS in the first quarter of next year, it will depend on our free time and community help to develop the OS.

And there's serious work to be done. Berryboot can be configured to boot a headless ownCloud but right now, to even boot, you have to connect a keyboard and monitor. And booting isn't even the issue - finding and configuring an IP and then connecting to the Pi is. And once you've done that, the system has to be configured to be accessible from outside so you can use the ownCloud clients on your mobile phone and laptop to always find and connect to your ownCloud and give you the ability to share with friends and family.

There are folks in our community who have experience with this, building our community VM for example (hi Daniel!) and we'd like to solicit their help. We have 10 prototypes to send out to people who want to help build this ready-to-go ownCloud, the blog has more details on how to get one. And if there is a lot of interest, we'll get more prototypes put together, though I think it'll be tight to get them out before Christmas.

Note that it is totally cool, even advantageous, to send in a proposal ad a team. Together you can get more done!!!

Of course - without this kit there is still a LOT you can do to help out and there is no reason to wait for us sending out anything! Help get a discussion started about what this should look like, how to get there and who does what. Subscribe to the developer mailing list and get started!

Future

Now we know the Raspberry Pi 2 isn't the very best device to run ownCloud on, in terms of performance. It won't run with 100 users, indeed, though it isn't too bad for a few users at home. But, aside from the fact that there is a lot of room for tuning (PHP 7, for one, should help a lot, see some stats here), we're not married to the Raspberry with a single hard drive. It is a popular device and thus a great place to start but WD Labs has already shown us prototypes using a Rasberry Pi Compute device and 2 hard drives and we could work with devices like the Banana Pi or more powerful boards, too. That won't happen immediately, it simply depends on how well the first version turns out and the interest from users.

That means it matters a lot now: can we make this work? I'll sure put a portion of my free time in this as I'm quite excited about it. You too?

05 November, 2014

openSUSE 13.2 out: PARTY time!

It's the 5th of November, a date the Brits are told to remember - for me, it is the day after openSUSE 13.2 was released! It's a kickin' release, good reason for a release party tonight at the Belug in Berlin.

13.2

End users will probably notice the revamped YaST most during installation, but the integration of functionality like snapper, Dracut and Wicked is also quite significant. With Snapper, you can roll back upgrades of your system, configuration changes and so on - and if an upgrade made the system unbootable, you just boot from an older version. I haven't seen it in action yet, as unfortunately my btrfs filesystem broke just a week ago - which is of course the one thing snapper can't fix. Yes, bug is fixed, but annoying.

Dracut 'just' leads to faster booting, I've been playing with it on my laptop for a while and it is cool that it made it in now. And yes, 5 second boot is realistic, my new desktop at work does that easily. It also reduces the huge scripted mess that the old mkinitrd system was with something distributions can work together on - that is a good thing in itself, I like collaboration.

I can't say anything smart about Wicked, to be honest. It's network management, but where it fits and what it does exactly somebody else would have to explain in normal-human-terms ;-)

Of course there's much more, including the latest kernel, GNOME, KDE and 5 more desktops (including a preview of Plasma 5.1!), the best selection of what Free Software has to offer and so on. Find a nice overview of openSUSE 13.2 on the info page.

party time

The Party part is easy to explain. The Berlin LUG (BeLUG) has offered their place as party space tonight, I'll give a quick intro into what is new in this release, we'll have some time for debate and then it's all up for grabs. The BeLUGgers promised there would be beer, so what can go wrong?

See you at:
Belug e.V.
Lehrter Straße 53
10557 Berlin
Be there at 18:00 for some informative fun and a beer!

If you aren't in Berlin, check if there is a release party close to you or organize one yourself!

15 May, 2014

LinuxTag 2014 Fun



Thursday, Friday and Saturday last week, LinuxTag took place in Berlin. A few months ago, in a moment of temporary insanity, I had proposed to three projects to organize their booths: KDE, openSUSE and ownCloud. As that wasn't challenge enough, I wanted to experiment with doing workshops at the booth, specifically aimed at attracting and training potential new contributors.

How it came to be

Music outside!
I proceeded to register a booth, promising the LinuxTag exhibition manager (Elke Moritz), the KDE e.V. board, the openSUSE Board and my brand new boss at ownCloud that we would set up a great show. As I wouldn't be able to separate ownCloud (PHP) or KDE (C++, QML) code from text in a openSUSE .spec file nor can staff three booths at once, you can imagine I promised more than I could ever deliver on my own. But that's where friends come in, right?

And they came through - the result was great.
Re:Publica area

The new LinuxTag

First, a short introduction. LinuxTag is one of the oldest European Linux events, operating under the credo: "bringing .org and .com together". That is, they feature both commercial and community booths and a big selection of talks.

LinuxTag has been taking place at the Messe in Berlin in the last years, and this has not been a hugely successful location. But this year, there was change: a co-location with the immensely popular Re:Publica event as well as collaboration with DroidCon was meant to bring a lot of new energy. The new location, Station Berlin, gives a more fitting Linux feeling: much more raw. If you ask me, it worked out, LinuxTag was a much better event than it has ever been in the Messe.

What did we do

openSUSE, ownCloud and KDE
As I noted, our plan was two-fold. We, that is KDE, openSUSE and ownCloud, would have a combined booth. We would use the combined space not for a traditional table+swag, instead set up an area for workshops. In short, 1 hour slots, visitors would learn the basics of working within each of the three communities. For example:

  • writing ownCloud apps
  • developing KDE applications
  • packaging for openSUSE.

We wouldn't plan for a big audience: the workshops would go deep and be personal.

Daniel giving a workshop
So, we got together speakers and defined a program (see my blog). I received the ownCloud and openSUSE booth materials home and the day before LinuxTag, drove it all to the venue, picking up KDE stuff from Lydia Pintscher at the wikimedia office later in the evening. Due to some snafu's with the booth area preparations we had to set up the booth in the morning - which happened even before Danimo and myself arrived with some more materials (thanks booth team!).

The booths

Our booth area (all the way to the left!)
We planned for little space (essentially one combined booth) but the LT team had given us so much space, we had to set up three big booths! openSUSE got the big table, ownCloud took two round ones and a third round table was covered in the KDE tablecloth, with a huge KDE flag hung up next to it. Behind it all 12 chairs and a table with a projector. All this was quite a bit more than we planned, so the initial idea (we'd only need 1-2 people at a time to do 'booth duty' for the 3-in-1 booth) didn't work out very well: all three booths had to be staffed most of the time. We did have some overlap at quiet times, but full house during especially the breaks.

I had printed posters with the schedule, one for each day as we had slight schedule changes every day. We hung them up all over the place, after which we put down openSUSE, ownCloud and KDE flyers wherever there was space. The openSUSE Beer coasters did particularly well - we had put them on the tables in the eating/drinking area and we had to 'refill' several times a day.

Us vs them?
The posters and most of the flyers I had created for ownCloud pointed people to the booth (I stole the concept of the 'consume vs create' poster from the openSUSE Conference in Dubrovnik, btw!). We should have asked people how they found out about the workshops, from posters, blog, workshop or being told at our booth. I have no idea how effective each of those is...

Let me now point to this blog by Danimo about the owncloud presence, the KDE blog by Sebastian is out too. And I expect the openSUSE team to publish their blog(s) very soon.

Booth fun

Give some balloons to Frank, and...
For me, there was some fun synergy: meeting KDE-on-openSUSE users interested in installing ownCloud. Or, after starting a conversation with somebody about one of these projects, continuing the conversation about one of the others. Several times, I got users interested in all three at once: Server Linux (openSUSE/ownCloud) and Desktop Linux (openSUSE/KDE).

I also noticed that many visitors already knew ownCloud, or had at least heard of it. At some point, I was talking to a visitor, explaining ownCloud, while a second visitor joined the conversation. He already knew about ownCloud and took over, while I talked to a third visitor, answering some questions. Then a fourth showed up, who begun answering their questions while I turned to a fifth, explaining ownCloud... Great to get in conversations like that!

During a quiet moment, a visitor came to me, complaining he had been 'in line' to talk to me several times, but it was so busy, he didn't get a chance before! Indeed, we had busy times, especially Thursday. But that's awesome, right?

I also gave two talks - one at the evening program of LinuxTag about where the Linux Desktop is going (it didn't go very well, I'm afraid) and one about Community Governance at the first European Community Leadership Summit, that did go quite well. Shame I couldn't stay too long for the CLS as we had friends over and I had to go home...

All in all, for me, it was a great event.

Re:Publica Hippies

The team

Let me also not forget to introduce the team at LinuxTag to you:
  • Daniel Molkentin (ownCloud)
  • Arthur Schiwon (ownCloud)
  • Georg Ehrke (ownCloud)
  • Frank Karlitschek (ownCloud)
  • Sebastian Gottfried (KDE)
  • Christian Boltz (openSUSE & PostfixAdmin)
  • Bernhard Wiedemann (openSUSE)
  • Marcel Külhorn (openSUSE)
We had several people come by and help out a bit, as well as three others giving booth workshops:
  • Maik Aussendorf (Bareos)
  • Gratien D'haese (REAR)
  • Jörg Schilling (fraunhofer, cdrecord)

Sebastian's KDE workshop

The workshops

During the booth work, we had the workshops going on. It had a bit of a slow start on Thursday morning, but quickly, the workshops started to attract some more people. At one point did I see Sebastian surrounded by six visitors interested in KDE development... I think, on average, the workshops attracted about 3-6 visitors each. Which is quite good, considering they were primarily aimed at introducing people to contributing to our projects.

Despite the amount of work preparing the booth workshops, I'd do it again. Imagine if only a third of the visitors decides to join the respective communities!

openSUSE booth team in action

Feedback

If you visited one of these booth workshops or our booth at LinuxTag, I'd love your feedback! Knowing how we did, if we were friendly, fun, interesting, or what was missing and what you'd like to see next time - it all helps us improve in the future!

In any case, everybody who contributed to the booths and presentations as well as everybody who visited us: thank you very much!

Of course very special hugs to the booth- and presentation team.

25 August, 2013

On Distributions, Numbers and Breaking Prism

A week or two ago I noticed the prism-break.org site. It's quite cool to see a site offer some concrete links on how to opt out of the global data surveillance. Granted, I already use Linux and I cryptographically sign (not encrypt) almost all my mails because Kontact makes it so easy. Otherwise, I'm not particularly careful - my main mail account is still GMail (although work mail is on SUSE's servers) and I extensively use Google Plus and to a lesser extend Facebook and Twitter.

What distro is popular and easy to use?

The site has many interesting tools listed but obviously my eye was drawn to the Operating Systems on top. I notice that Ubuntu hasn't made the cut due to some of the stuff they've pulled recently. And I see Fedora appointed as 'most popular' with Linux Mint Debian Edition as 'easiest to use'. I tweeted to Peng Zhong that I find it hard to not disagree with these choices...

Fact or fiction

We all prefer our technology to speak for itself. Yet, better technology often looses out. And I thus feel I should at least try to correct common misconceptions.

Statistics presented at the openSUSE Conference show over twice as many unique IP's connect regularly to the openSUSE update servers compared to Fedora. We know that these numbers are not terribly reliable: a more reliable method has shown the IP addresses to over-estimate our user base by about a factor 10. But both being equally biased, we can assume they are comparable.

That is not to say that Fedora isn't doing awesome stuff - they're the ones pushing a lot of technology like systemd and GNOME Shell. But many end users did pick a more conservative OS like openSUSE. And they probably appreciate our work on improving YaST or technologies One Click Install!

More fiction?

About the ease of use - the recommended distribution there is Mint Debian edition and I would find it hard to argue that it is easier to use than openSUSE (the Mint team talks about 'rough edges' and 'less easy to use'). But I'd leave that to random choice as facts seem to bear very little on what is considered 'easy to use'...

Of course, if you mean with popular "the number of articles on LWN" or a metric like that, well, Fedora and Mint probably win.

06 August, 2013

using software.opensuse.org

A Frequently-Asked-Question: should I grab packages from software.o.o and should I add the repositories offered by One Click Install? Read on for an explanation of what is going on with One-Click-Install and what is wise.
software.opensuse.org in action

What does it all mean?

A basic explanation of repositories, packages and software.openSUSE.org.

On Linux, Software usually comes from a central location: your distribution. Apple used this model for its appstore, so did Google with the playstore - they are the same thing, expect that there is a payment system included. Every piece of software comes in a package (.rpm on openSUSE, .apk on Android). Like with Android app stores, there are various locations where you can get 'additional software'. As we all know, Apple prefers to keep you in your golden cage, no additional legal application stores for you there.

Thanks to the unique Open Build Service, openSUSE has also been offering a central place to get additional software outside the distribution: software.opensuse.org. This web based application store allows you to search not only in the official, released openSUSE packages but also offers access to the numerous (200K+) packages on build.opensuse.org. These are build as part of the process of developing openSUSE (in the 'devel projects', often offering newer versions of official software) or by private users for their own purposes (in their 'home projects', offering newer versions, obscure packages or special builds).

OBS is not all about obscure or updated software: some software is build by software vendors or otherwise 'officially blessed'; other things are there because they are too big for openSUSE Factory (games for example) or require very frequent updates (some software development tools and libraries).

The web interface works with openSUSE's One Click Install, a tool which makes it easy to install packages while adding the originating devel- or home projects to your software sources ('repositories').
Software vendors integrate OBS for official packages
When your openSUSE checks for updates to your packages, it will not only look in the official openSUSE sources, but also go over these additional repositories added when you installed extra software, making sure you have the latest security, feature and stability updates.

Adding repositories or not?

So, should you use software.opensuse.org and should you add the repositories which One Click Install will offer you? Installing software from software.opensuse.org should be fine as long as you follow the rules below.
  • Add the repo. Yes, you should. Your package gets updated/fixed, giving you security and stability improvements and preventing future system updates from getting stuck on a single obsolete package.
  • Make sure you pick repos for your specific openSUSE version. Don't mix repo's of Factory with 12.2 and 12.3 or such...
  • Pick 'devel projects' over home repos, devel projects are maintained by a group of people and thus safer from a stability and security point of view. Home projects start with 'home:'.
  • When upgrading to a new openSUSE, make sure all repos are modified for the new version or remove those which are not available (yet). Use the Apper or YaST repository management tool for this.
  • Don't use zypper dup after adding repositories unless you keep a very close eye on what is changing repositories and know what it means. Zypper up should service you fine (tools like Apper and YaST are safe by default).
The biggest potential issue with additional repositories is that besides the package(s) you wanted, they might contain more. And a 'zypper dup', in which zypper will pick the newest updates no matter the repository they're from, can thus break things. That chance is relatively small with special-purpose software sources like the games repository. But in some home projects a wide variety of things is build. The Devel projects for KDE and GNOME are a interesting case: you can indeed grab ONE updated application from there, but usually, it is wise to make it an either/or deal: grab them all or none of them. You can grab them all by doing a 'zypper dup --from REPOSITORY' on the command line and the YaST UI similarly allows you to switch packages to a specific repository.
What and how to pick on software.o.o
In the image above, you see the choices presented after clicking 'show other versions' and then 'show unstable packages'. Unstable, here, refers of course to anything not available as official update. Here, the official update is as new as anything and unless you want a testing version (2.7.9XXX) you should stick with it. But IF there were other options, this are the options:
  • KDE:Distro:Factory - Factory is where we develop openSUSE. The packages are often available for older openSUSE releases, but be careful, Factory is usually not very stable!
  • KDE:Release:410 - the KDE team maintains repositories with KDE releases. You can pick one of these and be sure to have quite stable, yet up to date software.
  • KDE:Unstable:Playground - guess... No, it is not very stable, as a matter of fact, this is a checkout directly from the source repositories at KDE - no guarantees, applications might not even start up.
  • KDE:UpdatedApps - this is a repository with updated applications. It is by far the best, safest choice.
  • devel:ARM:AArch64:12.3 - this is where the openSUSE ARM team develops their software. Only interesting if you run ARM hardware!
  • home:XX - these are home projects from individual users. If they are your only choice you should proceed with caution. Note that SOME home projects have tens of thousands of users and are very reliable - it just isn't visible from software.o.o (something we should indeed fix, help is welcome).

Zypper power

In dealing with multiple repositories, there are a few more advanced things you can do to keep things from breaking.
  • locking - if a package tends to break often and you want to keep total control over what happens to it, you can lock it. Commandline: "zypper addlock PACKAGENAME"
  • repository priorities - you can set priorities on repositories. "zypper dup" will always prefer packages from the highest priority (lowest number). Commandline: "zypper mr -p PRIORITY REPOSITORY"
  • zypper help - learn more on any command from zypper by typing "zypper help COMMAND"

You can find more information, as well as some more tips, in this article on news.opensuse.org.

02 August, 2013

oSC13, Strategy and Stable


At the openSUSE conference there were discussions about the future of openSUSE. Last Wednesday I summarized some of the ideas around Factory. Today I blog about the openSUSE releases.

Note: This is a combination of stuff I heard (not just at oSC but also earlier - even from the first strategy discussion, 3 years ago) and ideas I have. I just attempt to put it into text so it is easier to shoot at, comment upon, think about.

Stable - big picture

On the Stable release future, things are much more in the air. In his keynote, Ralf hinted that SUSE has some ideas about how the future of openSUSE should look:
  • Open Governance - SUSE wants openSUSE to be successful and independently strong. Ralf noted that SUSE does not expect or aim to make money on openSUSE directly; other parties however are very much welcome to build a business around openSUSE.
  • Filling the gap - SUSE and openSUSE have a great win-win relationship. But SUSE notices a gap between openSUSE and SLE in the market: SLE is oriented to large enterprises and the current openSUSE has a too wide market to feed, from newbies to hard core developers to professionals.
This is, from the SUSE side, the big picture; SUSE wants to provide room in the openSUSE ecosystem for initiatives, both from volunteers and from the commercial side. And SUSE would like openSUSE to move up a little, offer solutions for people serious about computing in a professional capacity. But what does this mean exactly?

Concrete changes

Let's start again with what came out with the keynote. Ralf essentially summarized some of SUSE and openSUSE's history and talked about our current situation. openSUSE Stable, our final release coming out every 8 months, is a compromise between stability and being-up-to-date. But this compromise was made in a time when far less people used the many repositories on OBS offering more up-to-date software; and before Tumbleweed and Evergreen saw the light of day. It is 2013 now and Ralf hinted at a possible re-evaluation of the choices that were made back then: perhaps, we should limit our scope, improve quality and increase the life cycle of openSUSE?

Improve quality

Let's talk about quality first. This is difficult, harder than it seems. Factory has some automated testing and openQA got better thanks to some recent work, but nothing can replace human testing and there is not enough of it. There is room for improving our processes here, but there is also the fact that some people in our community care more about Stable and others more about moving forward with Factory. We need to find a way to service the needs of both. Having Factory more stable, hence more usable on a day-to-day base, would be a great first step here.

Limit the scope

If you want to do something well, you should focus on it. It's the Unix philosophy many of us share: do one thing, and do it well. openSUSE is well known for doing everything a bit - making everybody a little happy, but nobody REALLY happy. Part of why this model is still working reasonably well is thanks to OBS - which has grown in this role. Many, many users these days use the openSUSE release as simply a base for their favorite OBS repositories. If we want to improve quality and lengthen the life cycle, we can use this model.

For example, parts of openSUSE which can be and are maintained longer get in the stable releases; other parts with a shorter life cycle (Firefox for example) stay on OBS. This means that being part of Stable depends on commitment from both upstream and the openSUSE maintainers of the packages; as well as testing capacity and our quality standards.

Lengthen life cycle

A portion of the openSUSE users would like to have a longer release cycle - the interest in Evergreen and questions on our mailing lists and forums make that clear. SUSE has dedicated a set amount of resources for maintaining openSUSE releases; checking security and entering bug fixes. The maintenance process is now opened up and some teams in openSUSE are contributing to the maintenance, lowering the load on the SUSE maintenance team. A smaller scope (resulting in a smaller release) would do the same, as Ralf mentioned in his keynote. This will have to be a part of the solution we're looking for to increase our maintenance window.

In practice

To put it in perspective, three examples of how we could do this. Keep in mind that sticking to the openSUSE-has-all-and-comes-every-8-months model is of course also an option...

Rings, rings, and rolling!

Presume we will have rings in Factory (see blog from Wednesday)? Let's put them in the distro. There's the core with ring 0 and ring 1 ("everything up to X"). It is released every 2 years and maintained for 3. Then, there is ring 2, with the basic desktops and their devel frameworks. They are maintained 2 years after release (every year). Then, ring 3, the applications and development tools. They are updated from OBS, essentially rolling.
It would of course be possible to keep ring 3 also stable - for, say, 1 year. Update it when a new release comes out - you can keep the core and desktop from the previous version but have the new apps.

Split it up in components

As Robert proposed on the factory ML this week it would be possible to split openSUSE Factory not per-se in rings, but in smaller components, dictated by their dependencies. Some would be one package, others would be multiple. Each component is developed by a team in a factory-like model. Rob states: "Each component advances based on it's own release cycle and the component team decides which release of it's dependent components to build against. Some tooling will be needed to help sort out the combinatorial problem."

And "when a release approaches,the release team picks a version of the core component that will be the base for the next openSUSE release. This version is used to populate factory and may be the only component that is in factory for a little while." This scheme should make the job of the release team easier but would still allow us to release the same openSUSE. Perhaps faster, perhaps slower - or perhaps in pieces, giving users an unprecedented level of flexibility!

Core, selection + OBS

How about we take the core of openSUSE (ring 0 and 1 from Coolo?), add a few components which have a long-term commitment from their teams; and let OBS take care of the rest! So, we'd have, say, the Core, our default desktop with a base set of applications for it, LibreOffice and Firefox. That is the release. The rest you grab off of OBS. The core is maintained for a longer time (this very much depends on community input!) and much more tested than what we ship today.

To limit the impact of the change and for the convenience of our users, the installer would still be able to offer the same choices as it always has; but besides adding the packages, it also enables the repository they are found in!

Initially, the release would be a lot smaller than it is today - but in time, as people step up for long(er) term maintenance, it will grow again. The idea is similar to what was proposed on the factory ML this week, but might lead to less clashes between components as there are less of them (much is in the core, presumably).

The real discussion

The issue with all the above scenarios is that while we can technically do them (some are harder than others, of course) the choice doesn't just depend on what we can do but also on what we should do. That makes the discussion a lot more interesting. We have to fix some things in our process, adjust to reality, that is clear. But do we want to shift direction, too? What is our real goal?

Our previous strategy discussion hinted at the fact that most of our users are professionals, people used to computers. We decided not to focus on newbies and making things simple to the expense of flexibility of our distribution. Should we go further on that path, make harder choices to focus on people using computers for a living?

Conclusion

What I tried to illustrate with the 3 examples is that we can go in various directions. It will be up to some of our core developers as well as the dev teams to comment on what makes most sense, what is the least amount of work for the biggest benefit (to users). But there's also the question of who those users are!

31 July, 2013

oSC13, Strategy and Factory

The openSUSE conference had some chats about strategy. Ralf talked about suggestions from SUSE in his keynote and there were more suggestions discussed in person between various people. I'd like to summarize some of the things I heard. In this blog I will talk about the directions of Factory, what Ralf mentioned as SUSE's ideas from his keynote; later this week I will blog about the openSUSE releases.

This is a combination of stuff I heard (not just at oSC but also earlier - even from the first strategy discussion, 3 years ago) and ideas I have. I just attempt to put it into text so it is easier to shoot at, comment upon, think about.

Factory

Let's start with talking about Factory.

Who is it for

We need to think about who factory is for, how these people are supposed to be using it etcetera. Right now, we have a shared understanding - but it probably isn't always as shared as it seems and it can be good to write things down and talk about them (see my keynote at oSC). Some of these thoughts will come to the mailing lists, I am sure, over the coming months.

Where should it go


On the technical side, there are some things I've heard about and seen several times and which will most likely see some form of implementation:
  • more automated testing - the openSUSE team did a openQA sprint but many agree that there is more room for improvement.
  • getting more people involved - As Ralf said, SUSE will commit to more SLE engineers on openSUSE; and the community & the openSUSE team should work more on both growing our dev pool and training people. In a GSOC discussion about this at oSC, this point was made as well: it would be good to use GSOC also for bringing existing contributors to a higher level.
  • Bringing Tumbleweed, Devel projects and Factory in alignment - As Ralf noted in his keynote, not all work on Devel projects and Tumbleweed benefits Factory and openSUSE ultimately - it would be great to unite forces and bring them all in one process!
  • segmenting Factory in rings - which Coolo has been talking about for a while now. It would create a Ring 0 with the bootstrap- and compiler infrastructure, ring 1 with the base system and other rings on top of that. He has been experimenting with this, hinting at some results in this mail. I leave it up to a later post (perhaps by/with Coolo) to be more concrete about this whole thing once the core Factory team has talked to more people and expanded upon it...

That last point is by far the least concrete - it is an idea which is discussed and toyed with. How much and what exactly will happen - only the Geeko knows ;-)

Some discussion has started on the mailing list, by the way, with the idea of segmenting Factory in even more 'components' than just the rings. I had a chat with Coolo before this proposal came out and I suggested the same thing. He noted that it would lead to a huge mess of dependency issues, including many circular ones (he gave libpoppler as example). This is already brought into the discussion there, let's see where this goes!

20 July, 2013

Akademy and openSUSE Conference

It's been a insane 7-8 days. Starting with Akademy, where I gave just one talk but still have notes on 5 or 6 sessions to send to the mailing lists, followed up with the openSUSE conference where I give 3 workshops, 3 talks and a keynote, luckily not all unique or alone. The latter is still happening, I just wanted to share some thoughts ;-)

Akademy...

... was awesome as always. I really like that the community is moving forward with thinking about the future. The manifesto is of course a first step but there were BoF sessions talking about the position of KDE e.V. and how it relates to other projects which might want to join us or that we work with; and I ran a session with Valorie and Peter on how to deal with the dark side of community - the least fun moments. (I'll mail to the community ML about this)

Now I am aware that some of these things don't move as quickly as many would like. The manifesto is great but also excluding projects and people many of us actually don't want to exclude. And I bet that beyond that there is even more room for KDE e.V. to play a role, say in helping other FOSS organizations handle GSOC money or even more. Or think about our relationship to Qt...

Meanwhile, I'm of course still concerned with the Marketing side of things. At my presentation I put forward some strategic thoughts from the KDE Marketing Workgroup in this area and there was some good feedback, also in the BoF session about this. If you're on the promo list you can expect mail some time next week.

And many thanks to Carl and everybody at Akademy in helping getting articles out on the dot! It was real team work and that does not only lead to better results but is also a whole lot more fun... Awesome!

openSUSE Conference

Like Akademy, I spend the first oSC day running around, talking to people. And having a few more hours of meeting-with-the-board than I care for. The keynote by Georg however was a great start of the day (see article on news) and I must say the Greeks have outdone, well, everybody. There is a lot of creativity and fun everywhere - from the beach ball shooting (at the audience...) in the welcoming talk to the small pools outside, the style of the event is just awesome. Lots of fun.

On the content side, I really enjoyed talk by Alexjan Carraturo. He pointed out many hard issues with promoting Linux in Italy. And he's an excellent speaker, too - his English might be a tad Italian but it is not hard to follow and his presentation and slides are awesome. Most importantly, he brings up a lot of real excellent, interesting issues which the local team bumps into. From political and economical to social. They have found very creative solutions like the 'openSUSE Live USB station' where people can put in a USB stick and get their live openSUSE on it or using bare ARM board to draw people into the booth.

Max Huang (sakana) gave a great talk on how things are going in Taiwan - amazingly much better. Where Alexjan brought up the many troubles he and his fellow Geekos (and tuxies and more) run into, Max seems almost exhausted by the many open source events taking place in Taiwan! He showed some impressive numbers and facts about what is going on in Asia - clearly, that's where we, as FOSS community, need to put more focus.

Before these two ambassadors sharing their experience, Richard and myself spoke about new directions in the ambassador program and merchandising handling. Of course there were many, many more talks but I haven't seen that many and the above did catch my attention mostly because this is the area I care strongly about...

Currently I'm listening to the openSUSE Board talk about technical directions for openSUSE in response to a question. SUSE has some ideas on that and is sharing those with the community at this event, which is an interesting experience.

oSC isn't over yet and there is much more to come, I look forward to much of that ;-)

(edit: fixed some stupidity with names, I wrote this too quickly)

11 May, 2013

Building for your version of openSUSE in 5 simple steps!

Today I bumped into a blog about dfc, a more fancy version of the df command. There were instructions on installation for Arch and an older Ubuntu version - a link to software.opensuse.org/package/dfc wasn't there but easily found.

There were packages, thanks to the awesome Open Build Service packagers. Unfortunately, it wasn't build for 12.3 yet. Now what? Luckily, this is what OBS makes easier than pie, let me show you how you can build this package for YOUR openSUSE version without ANY technical knowledge!



Step one, you click on the repository name, "home:tcpip4000". You now go to the OBS page where Juan "tcpip4000" Danza builds dfc. In order to be able to make changes, we need to branch dfc into our own home (you need to log in on OBS first to do this).



Step two, you click on "Branch Package" and say OK to the question if you're sure about this. Now, you've got dfc in your own home and the Open Build Service will immediately begin building it. However, it still just builds for the operating systems tcpip4000 had defined - we have to add a new one!



Step three, click on "repositories" and change them. You'll see on that page you first have to go to the project that dfc is a part off, as you can only enable or disable building for a package, not the build targets themselves. Click on the branch ("home:jospoortvliet:branches:home:tcpip4000") and under "Repositories" there, you pick "Add repositories".





Step 4, you can pick what you want and hit the button on the bottom of the page to add them. By default, packages are build but not 'published' in a repository for easy download. You can change that by hovering over the "Publish Flag" section and enabling the publishing.



Step 5, go back to the dfc package which will be build by the Open Build Service and then published in the repository. You can use the little refresh button to check for the status - and once it is build successfully, click the download button and call it a success!





Now, enjoy your new package and have a lot of fun!

If you want dfc for openSUSE 12.3 and Factory, check here. Of course, not all packages will build successfully for a newer or older version of openSUSE: you might have to make changes to the spec file. That is where things get more complicated and you'll need the documentation on packaging and help on IRC. Also, if you're up for it, this can all be done even faster from the command prompt with a few simple commands. But that's a lesson for another day ;-)


To add one more DFC tip: if you edit the .bashrc file in your home folder, you can use this command by default. I have this in my bashrc:
alias df='df -h' # human-readable sizes
[ -f /usr/bin/dfc ] && alias df='dfc -T' # use dfc if there for prettier df info and show filesystems

This will ensure that if you have dfc installed, it uses it by default (the [ -f ] thing checks for that) and if you don't have it, df -h will show the output in human-friendly sizes :D