ownCloud on openSUSE
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Alternative Title |
| |
Title of Series | ||
Number of Parts | 63 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/54581 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
openSUSE Conference 201634 / 63
1
5
8
13
14
19
20
24
25
31
32
33
34
35
37
38
40
43
44
45
46
47
49
50
51
52
53
54
58
59
61
63
00:00
Physical lawComputer animation
00:35
Server (computing)Repository (publishing)Client (computing)MultiplicationBuildingComputing platformFactory (trading post)Point (geometry)Installation artConfiguration spaceComputer file1 (number)Web-DesignerSoftware testingWeb applicationRepository (publishing)Maxima and minimaRevision controlClient (computing)Internet service providerCross-platformBuildingEnterprise architectureServer (computing)Web pageDistribution (mathematics)System administratorComputer configurationCache (computing)Latent heatNumberCurveComputer fileVertex (graph theory)SoftwareScripting languageBeta functionNeuroinformatikOpen setWeb 2.0Installation artBitInstallable File System2 (number)Perspective (visual)Proper mapConfiguration spaceDifferent (Kate Ryan album)DatabasePoint (geometry)Point cloudFeedbackProjective planeSinc functionPhysical lawZoom lensCrash (computing)Computing platformCuboidINTEGRALFingerprintIntegrated development environmentArc (geometry)Structural loadPower (physics)StatisticsForm (programming)Computer animation
09:48
Client (computing)Revision controlFactory (trading post)Distribution (mathematics)BuildingCodePredictabilityComputing platformSoftware testingComputer fileMultiplication signSoftwareTouchscreenService (economics)Cloud computingSynchronizationSoftware maintenanceStatement (computer science)CuboidTemplate (C++)Point cloudClient (computing)Software repositoryCross-platformWeb applicationPower (physics)Revision controlBuildingOpen setOnline helpMathematicsFactory (trading post)Repository (publishing)Projective planeRule of inferenceFlagRight angleComputer iconDifferent (Kate Ryan album)CodeUniform resource locatorDistribution (mathematics)SubsetVirtual machineIntegrated development environmentEnterprise architectureWeb 2.0AdditionPredictabilityData conversionFunctional (mathematics)Proper mapKey (cryptography)Computing platformCausalityComplex (psychology)Server (computing)Water vaporStructural loadLine (geometry)BitPhysical lawPoint (geometry)WordVolumenvisualisierungInstance (computer science)Goodness of fitGraphics tabletPay televisionComputer animation
19:00
Factory (trading post)Software developerProjective planeSocial classPoint cloudService (economics)Online helpWordRule of inferenceSystem callComputing platformGame controllerGoodness of fitSoftware testingRight angleBuildingMultilateration
21:02
CodeBuildingPredictabilitySoftware testingComputing platformDistribution (mathematics)Physical systemBitExpected valueProjective planeService (economics)SoftwareOpen setBuildingXMLComputer animation
22:03
Stability theoryComputing platformDistribution (mathematics)Lecture/ConferenceMeeting/Interview
22:21
Computer animation
Transcript: English(auto-generated)
00:09
Hi, I'm Klaas Weitag. I work for OwnCloud today, but I have a long story with Suze. And I took over, heavily took over, the talk from somebody whose name I forgot.
00:24
He wanted to do this, how to run OwnCloud on OpenSuze. And that's easy enough, so I can do it. So what is it about? Small look on the agenda. Actually, I understood the topic, like,
00:41
how can you easily use OwnCloud on OpenSuze? There are a couple of ways to do that are supported, and others not, and a bit complicated or not. So we will go through all these and check some options you might have.
01:00
Since that is a bit boring, maybe I want to take the opportunity to go a bit further and talk about some steps we like to do with OwnCloud and OpenSuze. And I already did. And also maybe name some challenges that we experienced over the last more than four years that I am with OwnCloud now.
01:25
So how do we run OwnCloud on an OpenSuze server? The server installation of OwnCloud can be, of course, done by a simple top wall installation. Similar to what I did in the mid-'90s on my LST Linux
01:40
distribution back in the days, unpacking a top wall, not working, and so on and so on. I had to learn that web developers like to do that still today. Yeah. How is it done? You unpack the top wall, try to configure your web server
02:01
to where you are, do stuff, handle permissions, and that's not really working. It melts. Yeah. We have a lot of talk about that, how you can do it. And for some reasons, some people really prefer this way of installations.
02:21
Of course, from the perspective of proper Linux distributions, we don't recommend it. So what we, of course, want to do is install from RPM packages. That is also a challenge, because packaging web
02:42
applications is hard, because web developers tend to add a lot of third-party dependencies that are not really properly packaged on OpenSuze or any other Linux distribution. And it is difficult to handle all the configuration options.
03:03
On cloud, especially, on cloud server is running in a lot of different configurations, like different databases and different memory caches and stuff like that. And if you try to package that properly,
03:20
you end up with a huge amount of different options and different sub-packages that people need to install to get this or that configuration running. And we tried all that. Jurgen, who was sitting here, was going through a long history of changing and fiddling with packages.
03:41
And we got a lot of bad feedback about that work. So at one point, we went back to a very simple and rather flexible approach. That is, two server packages, they basically just install files to where they belong,
04:03
like server something and a very minimal configuration option for Apache. And that's the one package that just installed the files. And the other package is including dependencies, specific OpenSuze dependencies.
04:20
Why do we have a package without dependencies? The reason is, in enterprise environments, people don't want packages to pull arbitrary dependencies. Like they use nginx, and then the package pulls Apache, which is bad. And then the admin has a problem and stuff like that.
04:41
So for our enterprise customers especially, we came up with very simple just file-based packages. So we download owncloud org. There's this page that you probably all know from OBS, where you can pick the packages for the distributions
05:05
that are important. We use OBS from day one to provide packages for customers and for the community. And we also have now a lot of experience with cross-platform packaging, which works very nicely.
05:23
And yeah, actually, I don't know another way of doing this work without OBS. It's actually great. We have these packages that don't download owncloud org. So we're not using the download from OpenSuze anymore.
05:45
The reason for that is basically that we wanted to have download numbers of the packages and usage statistics, how many people use which distribution and stuff. And since OBS is not providing this data, we were at some point driven to go away and create
06:03
our own repository server. OK, that was so. Yeah, here is the repository setup that we had in OBS. Yes, it was also a long learning curve
06:20
how we can set up all these repositories that we needed. All these are subprojects of ISV owncloud community. We started over with 4.5. That was when I joined owncloud and started the packaging and went over 5 and 6 and created all these major versions underneath this community project,
06:44
all the major version numbers plus the testing repository. So users can choose between stable repositories like A2 or the nightly builds that we automatically package up and build every night.
07:03
And also the testing releases which are betas and RCs and stuff. Of course, this is a workshop. I mean, if you have comments or questions also, just speak up, please.
07:21
That's cool. So this is a different story. This is about the ZUNG client. The ZUNG client is a Qt-based software which needs to be compiled in opposite to the server which is just plain scripting. And compiling is more difficult because it's arch-dependent and everything.
07:44
And as you see here, this is a piece of OBS, a screenshot of OBS that didn't fit vertically. So I flipped it and you see all the distributions that we built in OBS for customers. That starts with CentOS 6.
08:01
Yes, we provide Qt 5-based software on CentOS 6 and also 7 and DBNs and Fedoras and RAL and up to all flavors of open source, of course. So we gained a lot of experience with cross-platform building. And I can show how we do it, maybe.
08:24
Let me check. Unfortunately, my computer was booting the big server. So let's see.
09:03
Second. Jenkins, OBS integration. Templates, client. Let's look into this back file.
09:24
Where is it? I'm sorry, I had that prepared, everything, but because the server crashed, it's gone away. So of course, we don't want to,
09:42
so the cross-platform spec files are pretty complex. You know that you need a lot of ifs and distinctions between is it an own cloud client or not because as you might know, the own cloud client comes white-labeled for customers.
10:01
So you can have, for example, CERN has a CERN box. That's not an own cloud client, it's a CERN box. So we have a pretty decent way of customizing the whole thing so that it has different logos and different texts, of course, and a different name and safe locations and everything is changing, is changeable.
10:21
And in addition to that, we have a tool that's called own-brander that gives the customers the opportunity to maintain their brandings by themselves in a web application. Pretty nice customer service that people can use when they buy a enterprise subscription,
10:42
they get access to this web tool to maintain the bonding and also build the client. So how can we do that? Of course, we don't want to maintain 150 spec files for each of these branding customers. And so we have a little machine behind it
11:01
that takes the branding and the templates spec file and mumbles everything together and throws it into an OBS. Of course, this is not the SUSE OBS anymore, but our private instance, because I got the feeling that we,
11:22
yeah, that it's not okay to build so much software on OBS for commercial customers and also it wouldn't be allowed, I think, from the OBS idea. So this templating works with a simple templating engine
11:45
as you see here, we don't call it own cloud client, it's called short name client and this short name template thing is replaced by the actual name. For example, CERN box is then short name CERN box and then the package is named in the end CERN box client.
12:04
Yeah, okay, and there's cross platform, spec file, of course, I don't know who tries to maintain something cross platform. You will end up with a lot of statements like here, long if center is version equals blah blah
12:21
and blah blah and blah blah. So what usually happens is like that you change, I have to change provides or requires, package names are different, or features are different and it's kind of that and then you end up with this pretty complex spec file. It looks ugly, it is ugly,
12:40
but it gives, still provides a lot of power. I mean, we're building hundreds, literally hundreds of packages with this spec file so it's really powerful. Okay, change.
13:05
Okay, so this is about now the own cloud client. The right way to do it, of course, would be to maintain, not us maintaining the client in our private environment,
13:23
especially about the community version that should be as downstream as possible. So I've worked on that for, I don't know, I'm almost a year I think, but finally today I made another full request to factory so that we have the own cloud client and for Zuse maintained in open Zuse factory.
13:45
If you want to help, I'm happy to receive any help because it's not easy to get such a cross-platform spec file into open Zuse factory, that the rules are strict and it's not easy to get through it.
14:02
This full request was already declined but maybe I get it through and then we will have our ISV own cloud desktop repository that we use for the community builds as a double project for the client in factory.
14:24
I personally would say that's very nice. Of course, I like the idea of using OBS. Finally, I said that we have a white labeling for the client. So what we could do is we could create
14:42
an open Zuse branding of the client so that every user who installs the desktop client from open Zuse gets a green branded open Zuse-like design looking client. I'm happy to do the technical side
15:01
but I'm very bad at design and stuff and icons and so on. So if anybody is interested in work on a theming, please contact me and then we can create a Zuse branding and have a nice branded client on open Zuse.
15:24
Okay, so let's talk about challenges a bit. Building packages is really challenging. Not only for server, also for client where we end up with literally hundreds of packages
15:42
on a ton of distributions and it's really hard to get everything right. And you always end up with a missing file on DBN or I don't know, some flag set in the wrong way and the build fails and all these things.
16:02
So it's really like a Sysifo's work to maintain all these templates to create the spec files and DBN build instructions. So we don't really have an answer on that yet, how to test them. There were attempts to do Docker-based install environments
16:26
where we put the packages and try to install them, see if there are file conflicts and all these things and dependencies. That always kind of works but then it turns out that it's still not enough
16:40
so it continues to be hard. Another challenge that we faced is the acceptance of OBS and other distributions is very little. So Ubuntu users who are unfortunately the huge majority of Linux users,
17:02
they just claim there is no repo. And we continue to say there's OBS, you can register this download repository, you can import the key and then you have a full functional proper software repository for Ubuntu
17:20
and it took us ages to get people used to that. Unfortunately. And DBN building in general in OBS is pretty challenging because the code that you need in OBS is not compatible to DBN upstream or downstream.
17:45
It's not compatible to a DBN downstream packaging. So if you, for example, copy a DBN package from launchpad into OBS, it will not work. You need to put the files differently and fiddle around and stuff like that.
18:00
And it's also sometimes a bit, yes, purlish, magic and this conversion script, yeah. Okay, and then we had challenges of course with rebuild speeds and predictability. Often we have releases where we have to sync up with marketing and release
18:21
at a certain point of time. And of course you cannot steer the build service. It's simply not the purpose of the build service to provide software at the time marketing once. I know that and it's okay but we had challenges with that.
18:40
Yeah, probably there are more. Jurgen, do you want to add something? Give some more details about, I can give some more details about how the packaging really works if people are interested. So we can do that on the screen if you like
19:02
or we can do it offline later. So basically this is a call for help. So the best, what Klaus already tried to announce, what we want to achieve is that more people take care about the packages that we have in the build service right now. It's not yet in factory but it is in our,
19:23
correct me if I'm wrong, it's in our development, what is it called, double project. Our own, submit request is already on the way, okay. So we have some technical details until it can go into factory and to be prepared for good packaging in factory.
19:42
I would like to invite as many people as possible to look over that and make the package pass all the requested tests because currently what we have is, we support many platforms but possibly not exactly the way that is required for SUSE factory.
20:00
So if there's anybody who wants to help and look there, that's cool. And the other request that I want to add is especially for the Debian side, I have a lot of Debian, Debian control, Debian rules, Debian whatever files sitting in the package and I've never seen such a package with all the Debian configuration go into factory.
20:22
Maybe there is examples, I would love to know about them and learn how it's probably done. So that's one interesting thing, having a real existing important package in the SUSE factory that is really trying to be cross-platform and even supports the other world,
20:41
not the RPM, even in Ubuntu world. So if there's any help, let us know. All right. Okay, so my last word is, thank you for hosting us on OBS. That was for our own cloud,
21:01
for the own cloud project which always, so we always put a huge value in easy installation and easy running on as many platforms as possible and that was also only possible because we started on OBS and could provide packages widely for a lot of systems.
21:22
We went through a long way of learning with that and some things work nicely, others not so, but in general it has helped us a lot and we even use now an internal build service for our commercial builds. So OBS in general is a great tool
21:41
and I really like to encourage the open SUSE community to continue doing that. It's very great, great piece of software and I really wonder why not more projects jump on it. It's a bit unfortunately. Okay, thank you so much. I hope this talk was meeting your expectations.
22:01
I'm not sure because it was maybe a bit off topic, but if you have questions, just ask now. Okay, then thank you very much for listening.