AdamW on Linux and more (Posts about ownCloud) https://www.happyassassin.net/categories/owncloud.atom 2023-06-20T12:09:42Z Adam Williamson Nikola Looking for new maintainer for Fedora / EPEL ownCloud packages https://www.happyassassin.net/posts/2015/08/29/looking-for-new-maintainer-for-fedora-epel-owncloud-packages/ 2015-08-29T14:27:21Z 2015-08-29T14:27:21Z Adam Williamson <p></p><p>So I've been maintaining ownCloud for the last little while. Unfortunately I sat down today to try again and update the package to the latest upstream (8.1.1), and somewhere in the second hour of insanely stupid PHP autoloader code, I just snapped. I can't take this crap any more.</p> <p>I only personally really needed OC for calendar and contact sync anyway, so I've set up Radicale instead: it's written in Python and it doesn't have a ridiculous forest of bundled crap.</p> <p>Given that there are dozens of other things I could be spending my time on that I'd find more rewarding, I'm just not willing to do any further major updates of the Fedora / EPEL ownCloud package, I'm sorry. I'm willing to keep the current major versions (8.x in everything but EPEL 6, 7.x in EPEL 6) updated until they go EOL, at which point if no-one else is interested, I will orphan the package.</p> <p>If anyone would like to take on the work of doing the 8.1 upgrade and maintaining the package in future, please do let me know and I'll happily transfer it over. To do a decent job, though, you are going to <em>need</em> to know or be willing to learn quite a lot of intimate and incredibly annoying details about things like PHP class loading and how Composer works. If you don't, for instance, know what it means for unbundling purposes when a PHP library specifies 'classmap' as the autoload mechanism in its composer.json file, and you're not willing to spend your time learning, you probably don't want to own this package. :)</p> <p>I'm very sorry to folks who are using it, but I really can't deal with the crap any more. If all you need is calendar/contact sync, there are easier ways. Check out Radicale or something like it.</p> <p>Upstream does of course provide ownCloud packages in an OBS repo. They do not follow Fedora web app packaging policies or unbundling rules, and probably don't work very well with SELinux. Switching from the Fedora/EPEL packages to the OBS ones is likely to require moving various things around and config file editing and stuff. I'm not going to document that, sorry. If anyone else does, though, that'd be great.</p> <p></p> <p></p><p>So I've been maintaining ownCloud for the last little while. Unfortunately I sat down today to try again and update the package to the latest upstream (8.1.1), and somewhere in the second hour of insanely stupid PHP autoloader code, I just snapped. I can't take this crap any more.</p> <p>I only personally really needed OC for calendar and contact sync anyway, so I've set up Radicale instead: it's written in Python and it doesn't have a ridiculous forest of bundled crap.</p> <p>Given that there are dozens of other things I could be spending my time on that I'd find more rewarding, I'm just not willing to do any further major updates of the Fedora / EPEL ownCloud package, I'm sorry. I'm willing to keep the current major versions (8.x in everything but EPEL 6, 7.x in EPEL 6) updated until they go EOL, at which point if no-one else is interested, I will orphan the package.</p> <p>If anyone would like to take on the work of doing the 8.1 upgrade and maintaining the package in future, please do let me know and I'll happily transfer it over. To do a decent job, though, you are going to <em>need</em> to know or be willing to learn quite a lot of intimate and incredibly annoying details about things like PHP class loading and how Composer works. If you don't, for instance, know what it means for unbundling purposes when a PHP library specifies 'classmap' as the autoload mechanism in its composer.json file, and you're not willing to spend your time learning, you probably don't want to own this package. :)</p> <p>I'm very sorry to folks who are using it, but I really can't deal with the crap any more. If all you need is calendar/contact sync, there are easier ways. Check out Radicale or something like it.</p> <p>Upstream does of course provide ownCloud packages in an OBS repo. They do not follow Fedora web app packaging policies or unbundling rules, and probably don't work very well with SELinux. Switching from the Fedora/EPEL packages to the OBS ones is likely to require moving various things around and config file editing and stuff. I'm not going to document that, sorry. If anyone else does, though, that'd be great.</p> <p></p> Post-F22 plans https://www.happyassassin.net/posts/2015/06/09/post-f22-plans/ 2015-06-09T19:21:57Z 2015-06-09T19:21:57Z Adam Williamson <p></p><p>Hi, folks! I've been away on vacation for a few weeks, but I'm back now - if you'd been holding off bugging me about something, please commence bugging now. Of course, I have a metric assload of email backlog to dig out from under.</p> <p>I'll probably have lots more on the list fairly soon, but just thought I'd kick off with a quick list of stuff I'm intending to do in the post-F22 timeframe:</p> <ul> <li>Replace <a href="https://www.happyassassin.net/wikitcms/">python-wikitcms</a>' homegrown, regex-based mediawiki syntax parsing with <a href="https://github.com/earwig/mwparserfromhell">mwparserfromhell</a> (which will imply packaging it)</li> <li>Improve python-wikitcms' handling of Test Days and add a new tool (a <code>relval</code> analog for Test Days) - initial focus on getting useful stats out, but I may set up a similar wiki template-based Test Day page creation system so you can create the initial page for a Test Day with a single command</li> <li>Write openQA tests for more of the release validation test cases</li> </ul> <p>I should also add better logging and unit tests to python-wikitcms, fedfind and relval, but let's be honest, I'll probably wind up doing shiny exciting things instead...</p> <p>I'm also going to update the ownCloud packages to 8.0.4 (everything except EPEL 6) and 7.0.6 (EPEL 6) soon.</p> <p></p> <p></p><p>Hi, folks! I've been away on vacation for a few weeks, but I'm back now - if you'd been holding off bugging me about something, please commence bugging now. Of course, I have a metric assload of email backlog to dig out from under.</p> <p>I'll probably have lots more on the list fairly soon, but just thought I'd kick off with a quick list of stuff I'm intending to do in the post-F22 timeframe:</p> <ul> <li>Replace <a href="https://www.happyassassin.net/wikitcms/">python-wikitcms</a>' homegrown, regex-based mediawiki syntax parsing with <a href="https://github.com/earwig/mwparserfromhell">mwparserfromhell</a> (which will imply packaging it)</li> <li>Improve python-wikitcms' handling of Test Days and add a new tool (a <code>relval</code> analog for Test Days) - initial focus on getting useful stats out, but I may set up a similar wiki template-based Test Day page creation system so you can create the initial page for a Test Day with a single command</li> <li>Write openQA tests for more of the release validation test cases</li> </ul> <p>I should also add better logging and unit tests to python-wikitcms, fedfind and relval, but let's be honest, I'll probably wind up doing shiny exciting things instead...</p> <p>I'm also going to update the ownCloud packages to 8.0.4 (everything except EPEL 6) and 7.0.6 (EPEL 6) soon.</p> <p></p> LinuxFest NorthWest 2015, ownCloud 8 for stable Fedora / EPEL https://www.happyassassin.net/posts/2015/05/01/linuxfest-northwest-2015-owncloud-8-for-stable-fedora-epel/ 2015-05-01T18:09:49Z 2015-05-01T18:09:49Z Adam Williamson <p></p><h3>LinuxFest NorthWest 2015</h3> <p>As I have for many of the last few years, I attended <a href="http://linuxfestnorthwest.org/2015">LinuxFest NorthWest</a> this year. It's been fun to watch this conference grow from a couple hundred people to nearly 2,000 while retaining its community-based and casual atmosphere - I'd like to congratulate and thank the organizers and volunteers who work tirelessly on it each year (and a certain few of them for being kind enough to drive me around and entertain me on Sunday evenings!)</p> <p>The Fedora booth was extra fun this year. As well as the <a href="https://en.wikipedia.org/wiki/OLPC_XO-1">OLPC XO</a> systems we usually have there (which always do a great job of attracting attention), <a href="https://fedoraproject.org/wiki/User:Paradoxguitarist">Brian Monroe</a> set up a whole music recording system running out of a Fedora laptop, with a couple of guitars, bass, keyboard, and even a little all-in-one electronic drum...thing. He had multitrack recording via <a href="http://ardour.org/">Ardour</a> and guitar effects from <a href="http://guitarix.org/">Guitarix</a>. This was a great way to show off the capabilities of <a href="https://fedoraproject.org/wiki/Fedora_jam">Fedora Jam</a>, and was very popular all weekend - sometimes it seemed like every third person who came by was ready to crank out a few guitar chords, and we had several bass players and drummers too. I spent a lot of time away from the booth, but even when I was there we had pretty much a full band going quite often.</p> <p>It was good to meet Brian and also <a href="https://fedoraproject.org/wiki/User:Immanetize">Pete Travis</a>, who does fantastic things for <a href="https://docs.fedoraproject.org/en-US/index.html">Fedora Docs</a>, as well as <a href="https://fedoraproject.org/wiki/User:Steelaworkn">Jeff Fitzmaurice</a>. <a href="https://fedoraproject.org/wiki/User:Jsandys">Jeff Sandys</a> was there as usual as well, so we got to catch up over lunch.</p> <p>I didn't have a talk this year (I proposed one but it didn't make it through the voting process), so I was able to take it nice and easy and just meet up with folks and watch talks. In between all of that I also got myself 3D scanned by <a href="https://twitter.com/pythondj">Dianne Mueller</a>, who had herself set up in a trailer with a big lazy Susan and a Kinect and software I know nothing at all about which managed to produce a scarily accurate model of me and my terrible posture. She's promised I'll get a tiny plastic bust of myself in the mail sometime soon, though I'm not sure exactly what to do with it...so thanks, Dianne!</p> <p>Hard to mention everyone else I ran into or met, but of course there was the (thankfully) inimitable <a href="http://lunduke.com/">Bryan Lunduke</a> and <a href="https://en.opensuse.org/User:Bear454">James Mason</a> of openSUSE fame, who took up their traditional spot opposite us and cried all weekend as they watched the huge crowds flock our booth...</p> <p>There were a lot of really good presentations. I particularly enjoyed <a href="http://franceshocutt.com/">Frances Hocutt</a>'s <a href="http://linuxfestnorthwest.org/2015/sessions/developers-eye-view-api-client-libraries"><em>A developer's-eye view of API client libraries</em></a>, which sounds a little dry but was very well presented and full of good notes for API client library producers and consumers. Frances wrangles API client libraries for the <a href="https://wikimediafoundation.org/">Wikimedia Foundation</a>, so it was good to get to thank her for her work on the <a href="https://www.mediawiki.org/wiki/API:Client_code">list of Mediawiki client libraries</a> and the <a href="https://www.mediawiki.org/wiki/API:Client_code/Gold_standard">Gold standard</a> set of guidelines for Mediawiki client library designers and all the other things she's done to improve API client libraries for Mediawiki - obviously this has been invaluable to <a href="https://www.happyassassin.net/wikitcms/">wikitcms</a> development.</p> <p>It was also great to meet <a href="http://karlitschek.de/">Frank Karlitschek</a> at his <a href="http://linuxfestnorthwest.org/2015/sessions/crushing-data-silos-owncloud"><em>Crushing data silos with ownCloud</em></a> talk. I've been packaging ownCloud and making small upstream contributions for a while now so I've chatted with several of the devs on IRC and GitHub - I didn't even know Frank was going to LFNW, so it was an unexpected bonus to be able to say 'hi' in real life, and inspired me to do some work on OC, of which more later!</p> <p>Diane's <a href="http://linuxfestnorthwest.org/2015/sessions/building-next-gen-paas-openshift-docker-kubernetes-project-atomic-oh-my">presentation on the latest bleeding-edge bits of the OpenShift stack</a> went partly over my head - my todo list includes items like 'learn what the hell is going on with all this cloudockershifty stuff already' - but she always presents effectively and it was interesting to learn that OpenShift 3.0 is a real production thing built on <a href="http://www.projectatomic.io/">Project Atomic</a>, which is a bit astonishing since in my head Atomic is still 'this weird experimental thing <a href="http://blog.verbum.org/">Colin Walters</a> keeps bugging me about'. These cloud people sure do move fast. Kids these days, I don't know.</p> <p>Finally it was great to see <a href="https://www.eff.org/about/staff/seth-schoen">Seth Schoen</a> present <a href="http://linuxfestnorthwest.org/2015/sessions/lets-encrypt-free-robotic-certificate-authority"><em>Let's Encrypt</em></a>. I'd heard a little about this <a href="https://letsencrypt.org/">awesome project</a> but it was good to get some details on exactly how it's being implemented and how it will work. Their goal is, pretty simply, to make it possible to get and install a TLS certificate <em>that will be trusted by all clients</em> for any web server by running a single command. They're basically automating domain validation: the server comes up with a set of actions that will demonstrate control of the domain, the script running on your web server box (the 'client' in this transaction) demonstrates the ability to make those changes, the server checks they were done and issues a certificate, the script installs it. None of it is rocket science, but it's so immeasurably superior to doing it all one awkward step at a time with openssl-generated CSRs and janky <a href="http://www.startssl.com/">web interfaces</a> that the only wish I have is for it to be in production already. The real goal is to enable a web where unencrypted traffic simply doesn't happen - make it sufficiently easy to get a trusted certificate that, simply, everyone does it. It was pretty cool that at the end of the talk Seth was mobbed by Red Hat / Fedora folks offering help with integration - I'm guessing you'll be able to use this stuff on RHEL and Fedora servers from day 1.</p> <p>All that and we had the now-traditional Friday night games night (beer, pizza, M&amp;Ms, and Cards Against Humanity - really all you need on a Friday night!) too. It was a very enjoyable event as always.</p> <h3>ownCloud 8 for Fedora 21, Fedora 20, and EPEL 7</h3> <p>The other big news I have: ownCloud 8.0.3 came out recently, and it seemed like an appropriate time to kick most of the still-maintained stable Fedora and EPEL releases over to it. So there are now <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.fc21,php-Assetic-1.2.1-1.fc21,php-bantu-ini-get-wrapper-1.0.1-1.fc21,php-doctrine-dbal-2.5.1-1.fc21,php-natxet-cssmin-3.0.2-2.20141229git8883d28.fc21,php-Pimple-3.0.0-1.fc21">Fedora 21</a>, <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.fc20,php-Assetic-1.2.1-1.fc20,php-bantu-ini-get-wrapper-1.0.1-1.fc20,php-doctrine-dbal-2.5.1-1.fc20,php-natxet-cssmin-3.0.2-2.20141229git8883d28.fc20,php-Pimple-3.0.0-1.fc20,php-PHPMailer-5.2.9-1.fc20">Fedora 20</a> and <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.el7,php-Assetic-1.2.1-1.el7,php-bantu-ini-get-wrapper-1.0.1-1.el7,php-doctrine-dbal-2.5.1-1.el7,php-natxet-cssmin-3.0.2-2.20141229git8883d28.el7,php-Pimple-3.0.0-1.el7">EPEL 7</a> testing updates providing ownCloud 8.0.3 for those releases. Please do read the update notes carefully, and back everything up before trying the update!</p> <p>EPEL 6 is still on ownCloud 7.0.5 for now; I'd have to bump even more OC dependencies to new versions in order to have ownCloud 8 on EPEL 6. That might still happen, but I decided to get it done for the more up-to-date releases first.</p> <p>This build also includes some fixes to the packaged nginx configuration from <a href="https://blogs.gnome.org/ignatenko/">Igor Gnatenko</a>, so I'd like to thank him very much for those! I still haven't got around to testing OC on nginx, but Igor has been running it, so hopefully with these changes it'll now work out of the box.</p> <p></p> <p></p><h3>LinuxFest NorthWest 2015</h3> <p>As I have for many of the last few years, I attended <a href="http://linuxfestnorthwest.org/2015">LinuxFest NorthWest</a> this year. It's been fun to watch this conference grow from a couple hundred people to nearly 2,000 while retaining its community-based and casual atmosphere - I'd like to congratulate and thank the organizers and volunteers who work tirelessly on it each year (and a certain few of them for being kind enough to drive me around and entertain me on Sunday evenings!)</p> <p>The Fedora booth was extra fun this year. As well as the <a href="https://en.wikipedia.org/wiki/OLPC_XO-1">OLPC XO</a> systems we usually have there (which always do a great job of attracting attention), <a href="https://fedoraproject.org/wiki/User:Paradoxguitarist">Brian Monroe</a> set up a whole music recording system running out of a Fedora laptop, with a couple of guitars, bass, keyboard, and even a little all-in-one electronic drum...thing. He had multitrack recording via <a href="http://ardour.org/">Ardour</a> and guitar effects from <a href="http://guitarix.org/">Guitarix</a>. This was a great way to show off the capabilities of <a href="https://fedoraproject.org/wiki/Fedora_jam">Fedora Jam</a>, and was very popular all weekend - sometimes it seemed like every third person who came by was ready to crank out a few guitar chords, and we had several bass players and drummers too. I spent a lot of time away from the booth, but even when I was there we had pretty much a full band going quite often.</p> <p>It was good to meet Brian and also <a href="https://fedoraproject.org/wiki/User:Immanetize">Pete Travis</a>, who does fantastic things for <a href="https://docs.fedoraproject.org/en-US/index.html">Fedora Docs</a>, as well as <a href="https://fedoraproject.org/wiki/User:Steelaworkn">Jeff Fitzmaurice</a>. <a href="https://fedoraproject.org/wiki/User:Jsandys">Jeff Sandys</a> was there as usual as well, so we got to catch up over lunch.</p> <p>I didn't have a talk this year (I proposed one but it didn't make it through the voting process), so I was able to take it nice and easy and just meet up with folks and watch talks. In between all of that I also got myself 3D scanned by <a href="https://twitter.com/pythondj">Dianne Mueller</a>, who had herself set up in a trailer with a big lazy Susan and a Kinect and software I know nothing at all about which managed to produce a scarily accurate model of me and my terrible posture. She's promised I'll get a tiny plastic bust of myself in the mail sometime soon, though I'm not sure exactly what to do with it...so thanks, Dianne!</p> <p>Hard to mention everyone else I ran into or met, but of course there was the (thankfully) inimitable <a href="http://lunduke.com/">Bryan Lunduke</a> and <a href="https://en.opensuse.org/User:Bear454">James Mason</a> of openSUSE fame, who took up their traditional spot opposite us and cried all weekend as they watched the huge crowds flock our booth...</p> <p>There were a lot of really good presentations. I particularly enjoyed <a href="http://franceshocutt.com/">Frances Hocutt</a>'s <a href="http://linuxfestnorthwest.org/2015/sessions/developers-eye-view-api-client-libraries"><em>A developer's-eye view of API client libraries</em></a>, which sounds a little dry but was very well presented and full of good notes for API client library producers and consumers. Frances wrangles API client libraries for the <a href="https://wikimediafoundation.org/">Wikimedia Foundation</a>, so it was good to get to thank her for her work on the <a href="https://www.mediawiki.org/wiki/API:Client_code">list of Mediawiki client libraries</a> and the <a href="https://www.mediawiki.org/wiki/API:Client_code/Gold_standard">Gold standard</a> set of guidelines for Mediawiki client library designers and all the other things she's done to improve API client libraries for Mediawiki - obviously this has been invaluable to <a href="https://www.happyassassin.net/wikitcms/">wikitcms</a> development.</p> <p>It was also great to meet <a href="http://karlitschek.de/">Frank Karlitschek</a> at his <a href="http://linuxfestnorthwest.org/2015/sessions/crushing-data-silos-owncloud"><em>Crushing data silos with ownCloud</em></a> talk. I've been packaging ownCloud and making small upstream contributions for a while now so I've chatted with several of the devs on IRC and GitHub - I didn't even know Frank was going to LFNW, so it was an unexpected bonus to be able to say 'hi' in real life, and inspired me to do some work on OC, of which more later!</p> <p>Diane's <a href="http://linuxfestnorthwest.org/2015/sessions/building-next-gen-paas-openshift-docker-kubernetes-project-atomic-oh-my">presentation on the latest bleeding-edge bits of the OpenShift stack</a> went partly over my head - my todo list includes items like 'learn what the hell is going on with all this cloudockershifty stuff already' - but she always presents effectively and it was interesting to learn that OpenShift 3.0 is a real production thing built on <a href="http://www.projectatomic.io/">Project Atomic</a>, which is a bit astonishing since in my head Atomic is still 'this weird experimental thing <a href="http://blog.verbum.org/">Colin Walters</a> keeps bugging me about'. These cloud people sure do move fast. Kids these days, I don't know.</p> <p>Finally it was great to see <a href="https://www.eff.org/about/staff/seth-schoen">Seth Schoen</a> present <a href="http://linuxfestnorthwest.org/2015/sessions/lets-encrypt-free-robotic-certificate-authority"><em>Let's Encrypt</em></a>. I'd heard a little about this <a href="https://letsencrypt.org/">awesome project</a> but it was good to get some details on exactly how it's being implemented and how it will work. Their goal is, pretty simply, to make it possible to get and install a TLS certificate <em>that will be trusted by all clients</em> for any web server by running a single command. They're basically automating domain validation: the server comes up with a set of actions that will demonstrate control of the domain, the script running on your web server box (the 'client' in this transaction) demonstrates the ability to make those changes, the server checks they were done and issues a certificate, the script installs it. None of it is rocket science, but it's so immeasurably superior to doing it all one awkward step at a time with openssl-generated CSRs and janky <a href="http://www.startssl.com/">web interfaces</a> that the only wish I have is for it to be in production already. The real goal is to enable a web where unencrypted traffic simply doesn't happen - make it sufficiently easy to get a trusted certificate that, simply, everyone does it. It was pretty cool that at the end of the talk Seth was mobbed by Red Hat / Fedora folks offering help with integration - I'm guessing you'll be able to use this stuff on RHEL and Fedora servers from day 1.</p> <p>All that and we had the now-traditional Friday night games night (beer, pizza, M&amp;Ms, and Cards Against Humanity - really all you need on a Friday night!) too. It was a very enjoyable event as always.</p> <h3>ownCloud 8 for Fedora 21, Fedora 20, and EPEL 7</h3> <p>The other big news I have: ownCloud 8.0.3 came out recently, and it seemed like an appropriate time to kick most of the still-maintained stable Fedora and EPEL releases over to it. So there are now <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.fc21,php-Assetic-1.2.1-1.fc21,php-bantu-ini-get-wrapper-1.0.1-1.fc21,php-doctrine-dbal-2.5.1-1.fc21,php-natxet-cssmin-3.0.2-2.20141229git8883d28.fc21,php-Pimple-3.0.0-1.fc21">Fedora 21</a>, <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.fc20,php-Assetic-1.2.1-1.fc20,php-bantu-ini-get-wrapper-1.0.1-1.fc20,php-doctrine-dbal-2.5.1-1.fc20,php-natxet-cssmin-3.0.2-2.20141229git8883d28.fc20,php-Pimple-3.0.0-1.fc20,php-PHPMailer-5.2.9-1.fc20">Fedora 20</a> and <a href="https://admin.fedoraproject.org/updates/owncloud-8.0.3-1.el7,php-Assetic-1.2.1-1.el7,php-bantu-ini-get-wrapper-1.0.1-1.el7,php-doctrine-dbal-2.5.1-1.el7,php-natxet-cssmin-3.0.2-2.20141229git8883d28.el7,php-Pimple-3.0.0-1.el7">EPEL 7</a> testing updates providing ownCloud 8.0.3 for those releases. Please do read the update notes carefully, and back everything up before trying the update!</p> <p>EPEL 6 is still on ownCloud 7.0.5 for now; I'd have to bump even more OC dependencies to new versions in order to have ownCloud 8 on EPEL 6. That might still happen, but I decided to get it done for the more up-to-date releases first.</p> <p>This build also includes some fixes to the packaged nginx configuration from <a href="https://blogs.gnome.org/ignatenko/">Igor Gnatenko</a>, so I'd like to thank him very much for those! I still haven't got around to testing OC on nginx, but Igor has been running it, so hopefully with these changes it'll now work out of the box.</p> <p></p> Fedora 22 Alpha, Ipsilon Test Day, openQA progress, and ownCloud status https://www.happyassassin.net/posts/2015/03/11/fedora-22-alpha-ipsilon-test-day-openqa-progress-and-owncloud-status/ 2015-03-11T19:23:44Z 2015-03-11T19:23:44Z Adam Williamson <p></p><h3>Fedora 22 Alpha</h3> <p>The big news this week is definitely that <a href="http://fedoramagazine.org/fedora-22-alpha-released/">Fedora 22 Alpha is released!</a> We even managed to ship this one on time, though as it's an Alpha, it is of course <a href="https://fedoraproject.org/wiki/Common_F22_bugs">not bug-free</a>. For me the nicest thing about Fedora 22 is all the improvements in GNOME 3.16, which Alpha has a pre-release of. The new notification system is a huge improvement. I'm fighting some bugs in Evolution's new composer, but mostly it's working out.</p> <h3>Ipsilon Test Day</h3> <p>We also have the next Fedora 22 Test Day coming up tomorrow, <a href="https://fedoraproject.org/wiki/Test_Day:2015-03-12_Ipsilon">Ipsilon Test Day</a>. This is one of those pretty specialized events that requires some interest in and probably knowledge of a specialist area; it also requires a fairly powerful test system with a decent amount of spare disk space.</p> <p><a href="https://fedorahosted.org/ipsilon/">Ipsilon</a> provides SSO services together with separate identity management systems; it's being implemented into Fedora's identity/authentication system to replace Fedoauth (or this may have already happened, I'm not quite sure on the timelines!). It's one of those things where you go to some website, and you need to log in, and you get redirected through an authentication system that might be shared with lots of other websites - like when you log in to various Fedora sites through the shared Fedora authentication process.</p> <p>If you're already interested in <a href="http://www.freeipa.org/page/Main_Page">FreeIPA</a> and might be interested in looking at web application-focused SSO on top of it, you may well be interested in this Test Day. So come join us in #fedora-test-day on Freenode IRC and help out!</p> <h3>openQA automated install testing for Fedora</h3> <p>Personally, I've been working on our <a href="https://os-autoinst.github.io/openQA/">openQA</a>-based automated install testing system for the last few days.</p> <p><em>Waaaaaaaaait</em>, I hear you say, <em>Fedora has an automated install testing system</em>?</p> <p>Well, it does now. We are still expecting <a href="https://taskotron.fedoraproject.org/">Taskotron</a> to be our long-term story in this area, but after the awesome <a href="https://www.rebelmouse.com/openSUSE/richard-brown-testing-fedora-w-907001233.html">Richard Brown demonstrated</a> the feasibility of getting a quick-and-dirty Fedora deployment of openQA running, some of the Red Hat folks working on Fedora QA in our Brno office - <a href="http://jansedlak.cz/">Jan Sedlak</a> and <a href="https://fedoraproject.org/wiki/User:Jskladan">Josef Skladanka</a> - threw together an implementation in literally a few days, as a stopgap measure until Taskotron is ready.</p> <p>The original couple of deployments of the system are behind the Red Hat firewall, just because it works out easier for the devs that way, but I now have my <a href="https://openqa.happyassassin.net">own instance</a> which is running on my own servers and is entirely public; you can look in on all my experiments there. (Please don't download any really huge files from it - all the images I'm testing are available from the public Fedora servers and mirrors, and I have limited bandwidth).</p> <p>The <a href="https://bitbucket.org/rajcze/openqa_fedora">Fedora tests</a> and the <a href="https://bitbucket.org/rajcze/openqa_fedora">dispatcher and other miscellaneous bits</a> are available, and there's a <a href="https://bitbucket.org/rajcze/openqa_fedora_tools/src">deployment guide</a> - click on <code>InstallGuide.txt</code>, I'm not giving a direct link because BitBucket doesn't seem to make it possible to do a direct link to the current master revision of an individual file - if you're feeling adventurous and want to set up your own deployment. We are running our instances on openSUSE at the moment, because packaging openQA for Fedora and making any necessary adjustments to its layout would sort of defeat the object of a quick-and-dirty system. And hey, openSUSE is a pretty cool distro too! We're all friends.</p> <p>The first thing I did was make the system use <a href="https://www.happyassassin.net/fedfind/">fedfind</a> for locating, downloading and identifying (in terms of version and payload) images. This had the benefit of making it work for builds other than Rawhide nightlies.</p> <p>I have my own forks of the <a href="https://www.happyassassin.net/cgit/openqa_fedora/">tests</a> and <a href="https://www.happyassassin.net/cgit/openqa_fedora_tools/">tools</a> where I'm keeping topic branches for the work I'm doing. Currently I'm working on the <em>live</em> branches, where I'm implementing testing of live images (and really just uncoupling the system from some expectations it has about only testing one image per build per arch in general). It's mostly done, and I'm hoping to get it merged in soon. After that I'm probably going to work on getting the system to report bugs when it encounters crashes. It's painful sometimes figuring out how to do stuff in perl, but mostly it's been pretty fun working with the system; you can argue that a test system based on screenshot recognition is silly, but really, just about any form of automated testing for interactive interfaces is silly in <em>some</em> way or another, and at least this one's out there and working.</p> <p>The openQA devs have been very open to questions and suggestions, so thanks to them! I have a <a href="https://github.com/os-autoinst/openQA/commit/d26324790aedff77b022a5b1fb69706c2796361e">couple</a> of trivial <a href="https://github.com/os-autoinst/openQA/commit/ec0479d6578fcfca78764f2d2f73ad489e187e21">commits</a> upstream to fix issues I noticed while running the development packages on my instance.</p> <p>When you look at Fedora 22 (and later?) release validation pages, results you see from 'coconut' and 'colada' are from the openQA instances - 'coconut' results are from the deployments managed by the main devs, and 'colada' results are from my deployment.</p> <h3>ownCloud updates</h3> <p>Finally, before I dived into openQA I did find a bit of time to work on ownCloud. I got ownCloud 8 into good enough shape (I think!) to go in Rawhide and Fedora 22: it's now in Rawhide, and there's an <a href="https://admin.fedoraproject.org/updates/FEDORA-2015-3524/owncloud-8.0.1-0.1.rc1.fc22,php-Pimple-3.0.0-1.fc22,php-doctrine-dbal-2.5.1-1.fc22">update pending</a> for Fedora 22.</p> <p>The other distro which gets a major update is EPEL 6; there's an <a href="https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-1155/owncloud-7.0.4-3.el6,php-google-apiclient-1.1.2-2.el6">update pending</a> for 7.0.4 (current stable for EPEL 6 is OC 6).</p> <p>7.0.4-3 is also pending as an update for the stable Fedora releases and EPEL 7; for those releases it's a minor update which mostly tweaks the Apache HTTP configuration file handling. I came up with a new layout which, as well as making the App Store actually <em>work</em>, should make it easier to 'fire and forget' a typical ownCloud deployment's HTTP configuration; after you do the initial setup, you can run <code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf</code> to open up access from anywhere, and you won't have to manually check config files on future upgrades, because I'll keep <code>owncloud-access.conf.avail</code> up to date with any directory/path changes that crop up in future releases. If you have an existing ownCloud install and you'd like to 'migrate', I recommend:</p> <ul> <li>Move any customizations you have to the HTTP configuration into an override file, e.g. <code>/etc/httpd/conf.d/z-owncloud-local.conf</code></li> <li>Restore the clean packaged copy of <code>/etc/httpd/conf.d/owncloud.conf</code></li> <li>Run <code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf</code> (assuming you want to allow access from any host!)</li> <li>Never edit any of the packaged files in future (including the <code>.inc</code> and <code>.avail</code> file(s)), always do customizations in override files</li> </ul> <p>Happy Clouding!</p> <p></p> <p></p><h3>Fedora 22 Alpha</h3> <p>The big news this week is definitely that <a href="http://fedoramagazine.org/fedora-22-alpha-released/">Fedora 22 Alpha is released!</a> We even managed to ship this one on time, though as it's an Alpha, it is of course <a href="https://fedoraproject.org/wiki/Common_F22_bugs">not bug-free</a>. For me the nicest thing about Fedora 22 is all the improvements in GNOME 3.16, which Alpha has a pre-release of. The new notification system is a huge improvement. I'm fighting some bugs in Evolution's new composer, but mostly it's working out.</p> <h3>Ipsilon Test Day</h3> <p>We also have the next Fedora 22 Test Day coming up tomorrow, <a href="https://fedoraproject.org/wiki/Test_Day:2015-03-12_Ipsilon">Ipsilon Test Day</a>. This is one of those pretty specialized events that requires some interest in and probably knowledge of a specialist area; it also requires a fairly powerful test system with a decent amount of spare disk space.</p> <p><a href="https://fedorahosted.org/ipsilon/">Ipsilon</a> provides SSO services together with separate identity management systems; it's being implemented into Fedora's identity/authentication system to replace Fedoauth (or this may have already happened, I'm not quite sure on the timelines!). It's one of those things where you go to some website, and you need to log in, and you get redirected through an authentication system that might be shared with lots of other websites - like when you log in to various Fedora sites through the shared Fedora authentication process.</p> <p>If you're already interested in <a href="http://www.freeipa.org/page/Main_Page">FreeIPA</a> and might be interested in looking at web application-focused SSO on top of it, you may well be interested in this Test Day. So come join us in #fedora-test-day on Freenode IRC and help out!</p> <h3>openQA automated install testing for Fedora</h3> <p>Personally, I've been working on our <a href="https://os-autoinst.github.io/openQA/">openQA</a>-based automated install testing system for the last few days.</p> <p><em>Waaaaaaaaait</em>, I hear you say, <em>Fedora has an automated install testing system</em>?</p> <p>Well, it does now. We are still expecting <a href="https://taskotron.fedoraproject.org/">Taskotron</a> to be our long-term story in this area, but after the awesome <a href="https://www.rebelmouse.com/openSUSE/richard-brown-testing-fedora-w-907001233.html">Richard Brown demonstrated</a> the feasibility of getting a quick-and-dirty Fedora deployment of openQA running, some of the Red Hat folks working on Fedora QA in our Brno office - <a href="http://jansedlak.cz/">Jan Sedlak</a> and <a href="https://fedoraproject.org/wiki/User:Jskladan">Josef Skladanka</a> - threw together an implementation in literally a few days, as a stopgap measure until Taskotron is ready.</p> <p>The original couple of deployments of the system are behind the Red Hat firewall, just because it works out easier for the devs that way, but I now have my <a href="https://openqa.happyassassin.net">own instance</a> which is running on my own servers and is entirely public; you can look in on all my experiments there. (Please don't download any really huge files from it - all the images I'm testing are available from the public Fedora servers and mirrors, and I have limited bandwidth).</p> <p>The <a href="https://bitbucket.org/rajcze/openqa_fedora">Fedora tests</a> and the <a href="https://bitbucket.org/rajcze/openqa_fedora">dispatcher and other miscellaneous bits</a> are available, and there's a <a href="https://bitbucket.org/rajcze/openqa_fedora_tools/src">deployment guide</a> - click on <code>InstallGuide.txt</code>, I'm not giving a direct link because BitBucket doesn't seem to make it possible to do a direct link to the current master revision of an individual file - if you're feeling adventurous and want to set up your own deployment. We are running our instances on openSUSE at the moment, because packaging openQA for Fedora and making any necessary adjustments to its layout would sort of defeat the object of a quick-and-dirty system. And hey, openSUSE is a pretty cool distro too! We're all friends.</p> <p>The first thing I did was make the system use <a href="https://www.happyassassin.net/fedfind/">fedfind</a> for locating, downloading and identifying (in terms of version and payload) images. This had the benefit of making it work for builds other than Rawhide nightlies.</p> <p>I have my own forks of the <a href="https://www.happyassassin.net/cgit/openqa_fedora/">tests</a> and <a href="https://www.happyassassin.net/cgit/openqa_fedora_tools/">tools</a> where I'm keeping topic branches for the work I'm doing. Currently I'm working on the <em>live</em> branches, where I'm implementing testing of live images (and really just uncoupling the system from some expectations it has about only testing one image per build per arch in general). It's mostly done, and I'm hoping to get it merged in soon. After that I'm probably going to work on getting the system to report bugs when it encounters crashes. It's painful sometimes figuring out how to do stuff in perl, but mostly it's been pretty fun working with the system; you can argue that a test system based on screenshot recognition is silly, but really, just about any form of automated testing for interactive interfaces is silly in <em>some</em> way or another, and at least this one's out there and working.</p> <p>The openQA devs have been very open to questions and suggestions, so thanks to them! I have a <a href="https://github.com/os-autoinst/openQA/commit/d26324790aedff77b022a5b1fb69706c2796361e">couple</a> of trivial <a href="https://github.com/os-autoinst/openQA/commit/ec0479d6578fcfca78764f2d2f73ad489e187e21">commits</a> upstream to fix issues I noticed while running the development packages on my instance.</p> <p>When you look at Fedora 22 (and later?) release validation pages, results you see from 'coconut' and 'colada' are from the openQA instances - 'coconut' results are from the deployments managed by the main devs, and 'colada' results are from my deployment.</p> <h3>ownCloud updates</h3> <p>Finally, before I dived into openQA I did find a bit of time to work on ownCloud. I got ownCloud 8 into good enough shape (I think!) to go in Rawhide and Fedora 22: it's now in Rawhide, and there's an <a href="https://admin.fedoraproject.org/updates/FEDORA-2015-3524/owncloud-8.0.1-0.1.rc1.fc22,php-Pimple-3.0.0-1.fc22,php-doctrine-dbal-2.5.1-1.fc22">update pending</a> for Fedora 22.</p> <p>The other distro which gets a major update is EPEL 6; there's an <a href="https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-1155/owncloud-7.0.4-3.el6,php-google-apiclient-1.1.2-2.el6">update pending</a> for 7.0.4 (current stable for EPEL 6 is OC 6).</p> <p>7.0.4-3 is also pending as an update for the stable Fedora releases and EPEL 7; for those releases it's a minor update which mostly tweaks the Apache HTTP configuration file handling. I came up with a new layout which, as well as making the App Store actually <em>work</em>, should make it easier to 'fire and forget' a typical ownCloud deployment's HTTP configuration; after you do the initial setup, you can run <code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf</code> to open up access from anywhere, and you won't have to manually check config files on future upgrades, because I'll keep <code>owncloud-access.conf.avail</code> up to date with any directory/path changes that crop up in future releases. If you have an existing ownCloud install and you'd like to 'migrate', I recommend:</p> <ul> <li>Move any customizations you have to the HTTP configuration into an override file, e.g. <code>/etc/httpd/conf.d/z-owncloud-local.conf</code></li> <li>Restore the clean packaged copy of <code>/etc/httpd/conf.d/owncloud.conf</code></li> <li>Run <code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf</code> (assuming you want to allow access from any host!)</li> <li>Never edit any of the packaged files in future (including the <code>.inc</code> and <code>.avail</code> file(s)), always do customizations in override files</li> </ul> <p>Happy Clouding!</p> <p></p> ownCloud 8.0.0 preliminary testing for Fedora 21 / 22 https://www.happyassassin.net/posts/2015/02/23/owncloud-8-0-0-preliminary-testing-for-fedora-21-22/ 2015-02-23T18:39:51Z 2015-02-23T18:39:51Z Adam Williamson <p></p><p>Hey folks!</p> <p>For any ownCloud'ians out there; I worked some more on the OC 8 packages for Fedora today and I think they're in reasonably testable shape now. I just updated my production deployment and it worked first time.</p> <p><strong>IMPORTANT</strong>: back up really, <em>really</em> carefully before testing these out. They should work, but I want to get more testing to be sure. This is what you'll be doing. Please, please make sure beforehand that if the upgrade breaks completely, you have everything you need to recover. Ideally, test these on a dev instance or test machine or something.</p> <p>Please ensure you have this line in <code>/etc/owncloud/config.php</code> before updating:</p> <pre><code> 'check_for_working_htaccess' =&gt; false, </code></pre> <p>or else the OC updater will refuse to run. I will probably add a belt-and-braces fix for this later, but it's a good idea to have that set in any case. It has been part of the default config in the package for some time, but very old installations may not have it.</p> <p>If you have edited <code>/etc/httpd/conf.d/owncloud.conf</code> at all <em>please</em> merge in the changes from the package before attempting to access the server. There are substantial changes in the Apache config files. I have tried to make them easier to work with. If all you need to do is make the OC installation accessible (override the config that makes it only accessible from localhost out of the box), you do not need to modify <code>owncloud.conf</code> at all, all you have to do is:</p> <pre><code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf </code></pre> <p>if you previously enabled global access in any other way I recommend switching to this one, as it will ensure things keep working in future without you needing to do anything, but you can see the directories you need to allow access to in that file if you want to do it any other way. <code>/var/lib/owncloud/apps</code> must be allowed and must be <code>Alias</code>ed to <code>/owncloud/appstore-apps</code> (or else installing apps from the 'app store' won't work, and you're really going to need it to, see below). <code>/var/lib/owncloud/assets</code> should be allowed and should be <code>Alias</code>ed to <code>/owncloud/assets</code> (though this only matters if you enable the <code>asset-pipeline.enabled</code> setting in <code>config.php</code>).</p> <p>Please keep <code>owncloud.conf</code> (and all the <code>.inc</code> files in the package) unmodified if at all possible, and use a separate file to make any overrides you want to the configuration. This way when I need to update <code>owncloud.conf</code> in future you will get the changes automatically.</p> <p>After upgrading you will find that most of your apps have disappeared. Don't panic! ownCloud just decided to move a lot of apps that were previously shipped in the tarball (including even Contacts and Calendar) into the 'app store'. You can go into the 'Apps' screen as an admin user and enable the apps you need. When you enable them, all your existing data and configuration for them should reappear, they will not be blank.</p> <p>I am considering whether to provide packages for some of the core apps or even add them back to the ownCloud package itself, but for now, installing them from the app store should work fine - <em>as long as</em> you followed the instructions above about making sure the Apache config snippets are up to date.</p> <p>The packages are available in my <a href="https://www.happyassassin.net/temp/oc8_repo/">side repo</a> for Fedora 21 and 22 (I've symlinked 22 to 'rawhide' as well, as the 22 builds should probably work for Rawhide). Get <a href="https://www.happyassassin.net/temp/oc8_repo/oc8.repo">the repo file</a> and place it in <code>/etc/yum.repos.d</code> to enable the repo.</p> <p></p> <p></p><p>Hey folks!</p> <p>For any ownCloud'ians out there; I worked some more on the OC 8 packages for Fedora today and I think they're in reasonably testable shape now. I just updated my production deployment and it worked first time.</p> <p><strong>IMPORTANT</strong>: back up really, <em>really</em> carefully before testing these out. They should work, but I want to get more testing to be sure. This is what you'll be doing. Please, please make sure beforehand that if the upgrade breaks completely, you have everything you need to recover. Ideally, test these on a dev instance or test machine or something.</p> <p>Please ensure you have this line in <code>/etc/owncloud/config.php</code> before updating:</p> <pre><code> 'check_for_working_htaccess' =&gt; false, </code></pre> <p>or else the OC updater will refuse to run. I will probably add a belt-and-braces fix for this later, but it's a good idea to have that set in any case. It has been part of the default config in the package for some time, but very old installations may not have it.</p> <p>If you have edited <code>/etc/httpd/conf.d/owncloud.conf</code> at all <em>please</em> merge in the changes from the package before attempting to access the server. There are substantial changes in the Apache config files. I have tried to make them easier to work with. If all you need to do is make the OC installation accessible (override the config that makes it only accessible from localhost out of the box), you do not need to modify <code>owncloud.conf</code> at all, all you have to do is:</p> <pre><code>ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf </code></pre> <p>if you previously enabled global access in any other way I recommend switching to this one, as it will ensure things keep working in future without you needing to do anything, but you can see the directories you need to allow access to in that file if you want to do it any other way. <code>/var/lib/owncloud/apps</code> must be allowed and must be <code>Alias</code>ed to <code>/owncloud/appstore-apps</code> (or else installing apps from the 'app store' won't work, and you're really going to need it to, see below). <code>/var/lib/owncloud/assets</code> should be allowed and should be <code>Alias</code>ed to <code>/owncloud/assets</code> (though this only matters if you enable the <code>asset-pipeline.enabled</code> setting in <code>config.php</code>).</p> <p>Please keep <code>owncloud.conf</code> (and all the <code>.inc</code> files in the package) unmodified if at all possible, and use a separate file to make any overrides you want to the configuration. This way when I need to update <code>owncloud.conf</code> in future you will get the changes automatically.</p> <p>After upgrading you will find that most of your apps have disappeared. Don't panic! ownCloud just decided to move a lot of apps that were previously shipped in the tarball (including even Contacts and Calendar) into the 'app store'. You can go into the 'Apps' screen as an admin user and enable the apps you need. When you enable them, all your existing data and configuration for them should reappear, they will not be blank.</p> <p>I am considering whether to provide packages for some of the core apps or even add them back to the ownCloud package itself, but for now, installing them from the app store should work fine - <em>as long as</em> you followed the instructions above about making sure the Apache config snippets are up to date.</p> <p>The packages are available in my <a href="https://www.happyassassin.net/temp/oc8_repo/">side repo</a> for Fedora 21 and 22 (I've symlinked 22 to 'rawhide' as well, as the 22 builds should probably work for Rawhide). Get <a href="https://www.happyassassin.net/temp/oc8_repo/oc8.repo">the repo file</a> and place it in <code>/etc/yum.repos.d</code> to enable the repo.</p> <p></p> ownCloud 8 and Fedlet 22(?) updates https://www.happyassassin.net/posts/2015/02/22/owncloud-8-and-fedlet-22-updates/ 2015-02-22T01:54:20Z 2015-02-22T01:54:20Z Adam Williamson <p></p><p>Hi there folks!</p> <p>Between testing and working on my current work-related-ish pet projects <a href="https://www.happyassassin.net/fedfind/">fedfind</a> and <a href="https://www.happyassassin.net/wikitcms/">python-wikitcms/relval</a>, I haven't had much time for <a href="https://www.happyassassin.net/fedlet-a-fedora-remix-for-bay-trail-tablets/">Fedlet</a> or the ownCloud package lately. However, I finally managed to squeeze in a few hours to work on them this week.</p> <h3>Fedlet</h3> <p>The Fedlet repository now has a 3.20-pre kernel build that more or less works, for me, in testing. It seems like perhaps it's buggier than 3.18 was, but it at least built and it boots and it has sound and wifi and power status on the V8P. I did throw in a patch which may help with the RPMB bugs. For me it seems slower than 3.18 and touch input is rather worse than it was before, but I haven't had time to look into that in any detail yet. I have built a test Fedora 22-based image which boots, but given the apparent state of 3.20 and the pre-Alpha state of F22 at present I'm not going to release it.</p> <p>I also set up a <a href="https://www.happyassassin.net/cgit/kernel/">public copy of the actual repo</a> from which the Fedlet kernel is built. You can clone that repo and check out the <code>baytrail</code> branch and you have the actual build bits right there. There's one small caveat: I make a few changes right before actually building which are never checked into the repo. They are:</p> <ol> <li>Add the changelog</li> <li><code>make config-release</code></li> <li><code>sed -i -e 's,%define debugbuildsenabled 1,%define debugbuildsenabled 0,g' kernel.spec</code></li> </ol> <p>Step 2 disables debugging in the kernel build (which you really want, on slow Fedlet-ish hardware) and step 3 says not to build a separate kernel-debug package with debugging turned on. Obviously if you actually want kernel debugging to do some...kernel debugging...you can skip 2 and/or 3.</p> <p>I don't check those changes in because they tend to make merging from upstream (Fedora kernel package) much messier. Aside from that, though, all the substantial stuff is checked in. Mostly the delta is down to patch files now; there's only a couple of changed CONFIG settings any more.</p> <h3>ownCloud</h3> <p>I'm working on getting the ownCloud packages up to the recently-released 8.0. Major OC releases always require quite a bit of gardening downstream. I now have a <a href="https://www.happyassassin.net/temp/oc8_repo/">side repo for OC 8</a> available; for now there's only a repo for Fedora 22, but you could use it for Rawhide too, and it'll be easy to add at least Fedora 21 soon.</p> <p>The repo contains OC 8 packages plus Pimple 3.0 (which OC 8 needs) and Doctrine DBAL 2.5.1 with a <a href="https://github.com/doctrine/dbal/commit/32ab659628b9abe2c6f66b6c2dc6239027148d6d">change that seems to break ownCloud</a> partly reverted.</p> <p>So far it's at the point where a clean deployment with sqlite as the database works, and you can install apps from the 'app store'. This is important as some apps that were previously part of the core - notably Contacts, Calendar, and Documents - have been moved to the store. I am not sure whether to provide packages for these or even roll them back into the main owncloud package, but for now I'm following upstream.</p> <p>I haven't yet tested any other database, and I have not tested upgrading an existing install. It goes without saying that you should only do <em>anything at all</em> with this repository on a test setup. :)</p> <p>You can use <a href="https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks">oc8-httpd-sqlite.ks</a> to do a full turnkey test install; as usual for my OC test kickstarts, running an F22 install with that kickstart will give you a box with OC running and accessible from <em>any system</em> right out of the box, with insecure admin account (admin/admin) and database credentials, never use my test kickstarts unmodified in production or on any box which is publicly accessible. The kickstarts for other databases need a quick tweak which I'll get around to tomorrow as I test them.</p> <p>As part of the OC 8 work I wound up overhauling the Apache config layout quite heavily; I needed to fix a few bugs and update it with the latest upstream changes, and took the opportunity to use some <code>Include</code> directives to make it rather cleaner. I've sent a <a href="https://lists.fedoraproject.org/pipermail/devel/2015-February/208149.html">modest proposal</a> about standardizing config snippets intended for inclusion to devel@.</p> <p>And with that, to bed!</p> <p></p> <p></p><p>Hi there folks!</p> <p>Between testing and working on my current work-related-ish pet projects <a href="https://www.happyassassin.net/fedfind/">fedfind</a> and <a href="https://www.happyassassin.net/wikitcms/">python-wikitcms/relval</a>, I haven't had much time for <a href="https://www.happyassassin.net/fedlet-a-fedora-remix-for-bay-trail-tablets/">Fedlet</a> or the ownCloud package lately. However, I finally managed to squeeze in a few hours to work on them this week.</p> <h3>Fedlet</h3> <p>The Fedlet repository now has a 3.20-pre kernel build that more or less works, for me, in testing. It seems like perhaps it's buggier than 3.18 was, but it at least built and it boots and it has sound and wifi and power status on the V8P. I did throw in a patch which may help with the RPMB bugs. For me it seems slower than 3.18 and touch input is rather worse than it was before, but I haven't had time to look into that in any detail yet. I have built a test Fedora 22-based image which boots, but given the apparent state of 3.20 and the pre-Alpha state of F22 at present I'm not going to release it.</p> <p>I also set up a <a href="https://www.happyassassin.net/cgit/kernel/">public copy of the actual repo</a> from which the Fedlet kernel is built. You can clone that repo and check out the <code>baytrail</code> branch and you have the actual build bits right there. There's one small caveat: I make a few changes right before actually building which are never checked into the repo. They are:</p> <ol> <li>Add the changelog</li> <li><code>make config-release</code></li> <li><code>sed -i -e 's,%define debugbuildsenabled 1,%define debugbuildsenabled 0,g' kernel.spec</code></li> </ol> <p>Step 2 disables debugging in the kernel build (which you really want, on slow Fedlet-ish hardware) and step 3 says not to build a separate kernel-debug package with debugging turned on. Obviously if you actually want kernel debugging to do some...kernel debugging...you can skip 2 and/or 3.</p> <p>I don't check those changes in because they tend to make merging from upstream (Fedora kernel package) much messier. Aside from that, though, all the substantial stuff is checked in. Mostly the delta is down to patch files now; there's only a couple of changed CONFIG settings any more.</p> <h3>ownCloud</h3> <p>I'm working on getting the ownCloud packages up to the recently-released 8.0. Major OC releases always require quite a bit of gardening downstream. I now have a <a href="https://www.happyassassin.net/temp/oc8_repo/">side repo for OC 8</a> available; for now there's only a repo for Fedora 22, but you could use it for Rawhide too, and it'll be easy to add at least Fedora 21 soon.</p> <p>The repo contains OC 8 packages plus Pimple 3.0 (which OC 8 needs) and Doctrine DBAL 2.5.1 with a <a href="https://github.com/doctrine/dbal/commit/32ab659628b9abe2c6f66b6c2dc6239027148d6d">change that seems to break ownCloud</a> partly reverted.</p> <p>So far it's at the point where a clean deployment with sqlite as the database works, and you can install apps from the 'app store'. This is important as some apps that were previously part of the core - notably Contacts, Calendar, and Documents - have been moved to the store. I am not sure whether to provide packages for these or even roll them back into the main owncloud package, but for now I'm following upstream.</p> <p>I haven't yet tested any other database, and I have not tested upgrading an existing install. It goes without saying that you should only do <em>anything at all</em> with this repository on a test setup. :)</p> <p>You can use <a href="https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks">oc8-httpd-sqlite.ks</a> to do a full turnkey test install; as usual for my OC test kickstarts, running an F22 install with that kickstart will give you a box with OC running and accessible from <em>any system</em> right out of the box, with insecure admin account (admin/admin) and database credentials, never use my test kickstarts unmodified in production or on any box which is publicly accessible. The kickstarts for other databases need a quick tweak which I'll get around to tomorrow as I test them.</p> <p>As part of the OC 8 work I wound up overhauling the Apache config layout quite heavily; I needed to fix a few bugs and update it with the latest upstream changes, and took the opportunity to use some <code>Include</code> directives to make it rather cleaner. I've sent a <a href="https://lists.fedoraproject.org/pipermail/devel/2015-February/208149.html">modest proposal</a> about standardizing config snippets intended for inclusion to devel@.</p> <p>And with that, to bed!</p> <p></p> ownCloud 8.x preview packages for Fedora Rawhide https://www.happyassassin.net/posts/2014/12/30/owncloud-8-x-preview-packages-for-fedora-rawhide/ 2014-12-30T20:05:10Z 2014-12-30T20:05:10Z Adam Williamson <p></p><p>Oh hey there, good lookin' - are you on the hunt for some instability in your life? Well look no further, I've got just the thing for you.</p> <p>I've got a very experimental <a href="https://www.happyassassin.net/temp/oc8_repo/">ownCloud 8 git snapshot repo</a> up, mainly for me to use in working on the OC 8 packages. At present it's only for Fedora Rawhide (22). There's some hackiness to it - ownCloud doesn't (so far as I can tell) post its build scripts anywhere, and it splits the stuff that's usually shipped in the tarballs across a bunch of git repos, so the source is actually a bunch of git checkouts sloppily piled into one tarball.</p> <p>The repo has builds for versions of some dependencies I don't want to push to Rawhide at least until official OC 8 pre-releases are out, as well.</p> <p>As of right now, OC 8 contains some <a href="https://github.com/owncloud/core/issues/13052">technically non-free code</a> (see previous post for lots more gory details on that). The package currently in the repo still uses the technically non-free JSMin, but it certainly won't go into official Fedora that way; I'm working with upstream to switch to a minifier with a non-problematic license, and they've said they'll take care of it for the 8.0 release.</p> <p>The package doesn't have a changelog and I didn't bother changing the License: field to reflect the JSMin license.</p> <p>I've put up an <a href="https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks">OC8 variant</a> of one of my test deployment kickstarts. If you install from a Rawhide boot.iso with <code>inst.ks=https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks</code> you should wind up with a working (and hilariously insecure, so don't attach it to the public internet!) OC 8 deployment - just browse to http://(host)/owncloud and you'll be at the main interface, logged in as 'admin' with password 'admin' (system root password is '111111' - I told you it was insecure).</p> <p>I was able to successfully upgrade a bare stock OC 7 + sqlite install to OC 8, but haven't tested with a populated instance or any other databases yet. I really, really, <em>really</em>, <strong>really</strong>, <strong><em>really</em></strong> heartily recommend you don't let this within fifty yards of production data, production systems, or a publicly accessible host.</p> <p>The asset pipelining stuff - which concatenates and minifies OC's JS and CSS - isn't actually enabled by default, but if you want to try it out, you can edit <code>/etc/owncloud/config.php</code> and change the <code>asset-pipeline.enabled</code> setting to <code>true</code>. You will also need to configure Apache to allow access to the directory <code>/var/lib/owncloud/assets</code> in the usual way.</p> <p></p> <p></p><p>Oh hey there, good lookin' - are you on the hunt for some instability in your life? Well look no further, I've got just the thing for you.</p> <p>I've got a very experimental <a href="https://www.happyassassin.net/temp/oc8_repo/">ownCloud 8 git snapshot repo</a> up, mainly for me to use in working on the OC 8 packages. At present it's only for Fedora Rawhide (22). There's some hackiness to it - ownCloud doesn't (so far as I can tell) post its build scripts anywhere, and it splits the stuff that's usually shipped in the tarballs across a bunch of git repos, so the source is actually a bunch of git checkouts sloppily piled into one tarball.</p> <p>The repo has builds for versions of some dependencies I don't want to push to Rawhide at least until official OC 8 pre-releases are out, as well.</p> <p>As of right now, OC 8 contains some <a href="https://github.com/owncloud/core/issues/13052">technically non-free code</a> (see previous post for lots more gory details on that). The package currently in the repo still uses the technically non-free JSMin, but it certainly won't go into official Fedora that way; I'm working with upstream to switch to a minifier with a non-problematic license, and they've said they'll take care of it for the 8.0 release.</p> <p>The package doesn't have a changelog and I didn't bother changing the License: field to reflect the JSMin license.</p> <p>I've put up an <a href="https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks">OC8 variant</a> of one of my test deployment kickstarts. If you install from a Rawhide boot.iso with <code>inst.ks=https://www.happyassassin.net/ks/oc/oc8-httpd-sqlite.ks</code> you should wind up with a working (and hilariously insecure, so don't attach it to the public internet!) OC 8 deployment - just browse to http://(host)/owncloud and you'll be at the main interface, logged in as 'admin' with password 'admin' (system root password is '111111' - I told you it was insecure).</p> <p>I was able to successfully upgrade a bare stock OC 7 + sqlite install to OC 8, but haven't tested with a populated instance or any other databases yet. I really, really, <em>really</em>, <strong>really</strong>, <strong><em>really</em></strong> heartily recommend you don't let this within fifty yards of production data, production systems, or a publicly accessible host.</p> <p>The asset pipelining stuff - which concatenates and minifies OC's JS and CSS - isn't actually enabled by default, but if you want to try it out, you can edit <code>/etc/owncloud/config.php</code> and change the <code>asset-pipeline.enabled</code> setting to <code>true</code>. You will also need to configure Apache to allow access to the directory <code>/var/lib/owncloud/assets</code> in the usual way.</p> <p></p> Adventures in PHP web asset minimization https://www.happyassassin.net/posts/2014/12/29/adventures-in-php-web-asset-minimization/ 2014-12-29T19:45:14Z 2014-12-29T19:45:14Z Adam Williamson <p></p><p>When I've had time for 'side projects' lately I've mostly been working on preparing the ground for ownCloud 8 in Fedora, trying to get out ahead of upstream changes and package new library dependencies.</p> <h3>ownCloud's web asset minification</h3> <p>Today I wound up looking at OC's <a href="https://github.com/owncloud/core/pull/11430">new web asset minification stuff</a>. A few releases back OC <a href="https://github.com/owncloud/core/issues/4469">delivered CSS and JavaScript itself and minified them in real time</a>, using minifiers ripped out of the Mediawiki source code. That was pretty ugly.</p> <p>In ownCloud 7 they switched to using <a href="https://github.com/kriswallsmith/assetic/">Assetic</a> for asset management, which is a lot better. It didn't do any minification at that point, though.</p> <p>With the PR linked above, OC 8 does minification using Assetic filters. This means it grows some new dependencies on the minimization libraries that back the Assetic filters.</p> <p>Not surprisingly, this being the world of PHP, there's some fun craziness here. Craziness follows - but if you're interested in a performance comparison of available PHP web asset minifiers, skip it and look down a bit further.</p> <p>The filters ownCloud currently uses are Assetic's <code>CssMinFilter</code> and <code>JSMinFilter</code>. To back those, ownCloud's <code>composer.json</code> now pulls in <code>mrclay/minify</code> and <code>natxet/CssMin</code>.</p> <h3>natxet/CssMin</h3> <p>I started out by taking a look at <a href="https://github.com/natxet/CssMin">natxet/CssMin</a>, which isn't too horrible. It loses some points for not being sanely laid out (there's one source file with a whole bunch of classes in it and it just uses classmap autoloading...), but basically it minifies CSS and that's it. It was fairly simple to <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1177692">build a package</a>. It claims to be just a github mirror of <a href="https://code.google.com/p/cssmin/">this 'cssmin' project</a>, but in fact it's clearly being actively maintained and has developed on from that project; I'm treating it as its own project, now. It doesn't appear to be a port or rewrite of any other minifier.</p> <h3>mrclay/minify and its exciting assortment of minifiers</h3> <p>Then I looked at the JS minifier, though, and started to encounter the crazy. <a href="https://github.com/mrclay/minify">mrclay/minify</a> looks, to my monkey eyes at least, like a fairly hairy ball of olde-worlde PHP craziness. It's not just a minification library, or even <em>several</em> minification libraries. In its own words, it's "an HTTP content server", i.e. it's sort of trying to do the same thing as Assetic, only it's a rather older and smaller implementation. But because choice is <em>oh so tasty</em>, it includes at least three CSS minifiers and two JS minifiers, and lets you pick whichever you like!</p> <ul> <li>It has its own CSS minifier, <code>Minify_CSS_Compressor</code>.</li> <li>It includes the github project <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port">YUI-CSS-compressor-PHP-port</a> - which is, as the name suggests, a PHP port of the CSS bit of Yahoo's <a href="https://github.com/yui/yuicompressor">YUI Compressor</a>, which is written in Java. This is named <code>CSSmin.php</code>.</li> <li>It also, for no goddamn reason I can see, ships a <em>different</em> but far less complete port of the YUI Compressor, as <code>lib/Minify/YUI/CssCompressor.php</code>.</li> </ul> <p>For JavaScript:</p> <ul> <li>It includes <code>JSMin.php</code>. This (so far as I can figure out) originated as a port of <a href="http://www.crockford.com/javascript/jsmin.html">Douglas Crockford's JSMin</a> (which is written in C), by Ryan Grove. It lived at <a href="http://code.google.com/p/jsmin-php/">Google Code</a> until it was moved for license reasons (see long bit below!) to <a href="https://github.com/rgrove/jsmin-php/">GitHub</a>, where it is now very definitely unmaintained. mrclay has continued to work on it in his tree since it was abandoned by Mr. Grove, so the <code>mrclay/minify</code> version is now a fork. Again see below for details, but briefly, this code is clearly non-free by <a href="http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines">Debian</a> and <a href="https://fedoraproject.org/wiki/Licensing:Main">Fedora</a> standards, as it imposes a 'field-of-use' restriction.</li> <li>It includes <code>JSMinPlus.php</code>. This is a copy of <a href="http://crisp.tweakblogs.net/blog/cat/716">JSMin+</a>, which is by all appearances abandoned by its author (though there were two years between the releases of 1.3 and 1.4, so who knows). Despite the name, JSMin+ is a completely different project from (anything else at all called) JSMin, it is not an unofficial successor nor is it based on JSMin (again, whatever you consider to be 'JSMin' exactly - the original code, or any of its various ports) in any way.</li> <li>It includes <code>lib/Minify/ClosureCompiler.php</code>, which is a wrapper around the offline Java version of Google's <a href="https://developers.google.com/closure/compiler/">Closure Compiler</a> - you're expected to provide it with a copy of the CC .jar file.</li> <li>Not at <strong><em>all</em></strong> confusingly it also provides <code>lib/Minify/JS/ClosureCompiler.php</code>, which is an entirely different way to use the Closure Compiler - this time via Google's <a href="https://developers.google.com/closure/compiler/docs/gettingstarted_api">public REST API</a> for it.</li> </ul> <p>When I say it 'includes' or 'has' something, of course, I don't mean it sensibly expresses a dependency on a copy of it, or anything. In classic fashion for the PHP 'Wild West' interregnum between the reigns of <a href="https://pear.php.net">PEAR</a> and <a href="https://packagist.org/">Packagist/Composer</a>, copies of the libraries are just dumped willy-nilly into minify's tree, not in any particularly obvious layout (in fact most of them appear to be <a href="https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md">PSR-0</a> compliant relative to <code>lib/</code>, but you have to poke about a bit to figure that out), without any kind of manifest to explain clearly what they all are, never mind what they're <em>for</em>.</p> <h3>Interlude: Adam is sad</h3> <p>So I was, obviously, rather reluctant to just package up the mrclay 'minify' for Fedora simply in order to satisfy ownCloud's need for a JavaScript minimizer. This kind of haphazardly bundled source tree is a goddamn nightmare to package in a guideline-compliant way just in general, and the redundancy was too absurd for me to swallow - if you're not keeping count, so far we've found that minify has three CSS minimizers, two JavaScript minimizers, and two different ways you can use yet a <em>third</em> JavaScript minifier it doesn't directly include. And don't forget that <code>natxet\CssMin</code> is not the same thing as minify's <code>CSSmin.php</code> (which, if you've forgotten, is tubalmartin's port of the YUI compressor). If I'd just gone ahead and packaged minify, I'd have been packaging six minifier libraries and eight minifier approaches in order to provide ownCloud with two minifiers. No. Not happening.</p> <p>My next thought was to just package the actual minifier ownCloud uses, via Assetic's JSMinFilter, which is <code>JSMin.php</code> - not any of the other bits of minify. It looks like it'd pretty much lift right out (not surprisingly, as it was initially a third party lib that minify dumped into its tree, see above). At this point, though, I run into another rather larger problem which I mentioned briefly above.</p> <h3>JSMin, freedom, and the JSON License</h3> <p><code>JSMin.php</code> is not free. This is because the original, Douglas Crockford-written JSMin is not free; no port or derivative of it is free either. It's licensed under the MIT license, but with an <a href="https://github.com/douglascrockford/JSMin/blob/master/jsmin.c#L16">added clause</a>:</p> <p>"The Software shall be used for Good, not Evil."</p> <p>There's a <a href="http://wonko.com/post/jsmin-isnt-welcome-on-google-code">page</a> where the story of JSMin being kicked off Google Code for this is related, which includes an excerpt from a talk the author gave where he plays the whole situation for laughs and talks about how ha ha funny it is that Google and IBM want him to allow them to use his software for evil, and that's all nice and cute, but the best legal advice available to Debian, Red Hat and (to my knowledge) all other authorities on software licensing is that such restrictions clearly make the software non-free. License wonks refer to this license as 'the JSON license' and it is explicitly listed as non-free by <a href="https://www.gnu.org/licenses/license-list.html#JSON">the FSF</a>, <a href="https://fedoraproject.org/wiki/Licensing:Main#Bad_Licenses">Fedora</a>, and <a href="https://lists.debian.org/debian-lint-maint/2013/01/msg00153.html">Debian</a> (it's hard to find a good reference for DFSG determinations, that's the best I could get).</p> <p>So, I can't possibly have Fedora's OC package use that code regardless of how or where it comes from. Darn.</p> <h3>Yet more minifiers (no, of course we're not done yet)</h3> <p>So I started looking into alternatives, which (me being me) turned into a bit of a review of PHP web asset minifiers. Here's the ones I found beyond those listed above:</p> <ul> <li><a href="https://github.com/tchwork/jsqueeze">JSqueeze</a>, a native PHP JS minifier</li> <li><a href="https://github.com/tedious/JShrink">JShrink</a>, a different native PHP JS minifier</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a>, a native PHP JS and CSS minifier (not at all the same thing as mrclay/minify)</li> </ul> <p>There may have been others, but I'm sort of losing the will to live at this point. As I was planning to suggest ownCloud switch away from JSMin, it seemed prudent to check out all the alternatives, so I hacked up <a href="https://www.happyassassin.net/blog/mintest.php.txt">a script</a> for doing some quick and dirty benchmarking on minifiers. (If you want to try it, you'll have to download all the minifier libs and dump them in the directory with the script, dump some .css and .js files in the same directory, and edit <code>CSSmin.php</code> to rename the class to <code>CSSmin1</code> so it doesn't conflict with <code>CssMin.php</code> - I told you it was dirty).</p> <h3>Benchmarking minifiers</h3> <p>I dumped all ownCloud's CSS and JS assets (minus translations) into a directory and wrote a thing which just calls each minifier on all the files for its asset class, saves the output with a unique extension, and tells me how long it took. Then I compared the sizes of the minified files. The contenders are:</p> <h4>JS</h4> <ul> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/JSMin.php">mrclay/minify's JSMin.php</a>, (today's git master)</li> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/JSMinPlus.php">mrclay/minify's JSMinPlus.php</a>, which I believe is still identical to <a href="http://crisp.tweakblogs.net/blog/cat/716">upstream JSMin+</a> 1.4</li> <li><a href="https://github.com/tchwork/jsqueeze">JSqueeze</a> (today's git master) - tested as 'strong', with its global var, method and property renaming enabled, and 'safe', with it disabled</li> <li><a href="https://github.com/tedious/JShrink">JShrink</a> (today's git master)</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a> (today's git master)</li> </ul> <h4>CSS</h4> <ul> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/CSSmin.php">mrclay/minify's CSSmin.php</a> (today's git master), which is <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port">tubalmartin/YUI-CSS-compressor-PHP-port</a></li> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/Minify/CSS/Compressor.php">mrclay/minify's Minify/CSS/Compressor.php</a> (today's git master)</li> <li><a href="https://github.com/natxet/CssMin">natxet/CssMin</a> (today's git master)</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a> (today's git master)</li> </ul> <p>My CSS results are probably a bit questionable as OC has fairly little CSS, but here they are:</p> <pre><code>[adamw@adam jstest]$ php ./mintest.php CSSmin (tubal) time: 0.15763902664185 CSS Compressor time: 0.099493980407715 natxet time: 0.51680493354797 MM minifiy (CSS) time: 0.090332984924316 [adamw@adam jstest]$ for i in css compressor cssmin natxet mmmcss; do echo $i; du -c *.$i | grep -i total; done css (original) 360 total compressor (CSS Compressor) 344 total cssmin (CSSmin tubal) 340 total natxet (CssMin natxet) 344 total mmmcss (MM minify) 344 total </code></pre> <p>Compressor and Matthias Mullie's minify are the fastest, tubalmartin's CSSmin is a bit slower, and natxet/CssMin is quite a lot slower...but in practice, for OC's purposes, they'd all run pretty much instantly, the 'slowest' takes half a second. They're all almost the same in file size - tubalmartin's 'wins' by 4KB but that's probably in the margin of error (which I don't know how to calculate cos I'm not a scientist), and they only save about 5% on the original size, not really worth crowing about.</p> <p>The JS results are rather more interesting, as OC has a <em>lot</em> of JS.</p> <pre><code>JSMin time: 13.471320867538 JSMinPlus time: 15.368160009384 JSqueeze (strong) time: 6.8297760486603 JSqueeze (safe) time: 6.8371610641479 JShrink time: 11.497622013092 MM minifiy (JS) time: 19.345649003983 js 3364 total jsmin 2468 total jsminplus 2408 total jsqueeze.strong 2192 total jsqueeze.safe 2220 total jshrink 2468 total mmmjs 2464 total </code></pre> <p>I noticed that JSqueeze's global renaming feature seems to cause quite a lot of issues - half the bug reports in its github repo seem to be related to it - so it seemed prudent to test it both ways: the 'safe' version is simply <code>$jsqueeze-&gt;squeeze(file_get_contents($filename), $specialVarRx=false)</code> instead of <code>$jsqueeze-&gt;squeeze(file_get_contents($filename))</code> (the 'strong' version).</p> <p>JSqueeze rather beats the pants off of everything else, there - it's nearly twice as fast as the closest competitor, and does substantially better on file size, even in its 'safe' version.</p> <p><strong>edit 2014-12-30</strong>: After initially writing this post I managed to get a test instance of ownCloud git master up and running and tried plunking JSqueeze in in place of JSMin and, lo and behold...<a href="https://github.com/tchwork/jsqueeze/issues/14">it had a bug</a>.</p> <p><strong>edit 2015-01-01</strong>: p@tchwork fixed the bug mentioned in the previous edit; JSqueeze 2.0.1 works well with ownCloud in my testing. 2.0.1 also namespaces the class (which makes the layout a PSR-4 one), and disables the global renaming stuff by default (i.e. 'safe' not 'strong' is now the default). Also, Matthias Mullie <a href="https://github.com/matthiasmullie/minify/commit/bbdc79ef655c1ee6be5540ff80436a0a16b9fc77">substantially sped up his minifier</a>: after that commit his is the very fastest for me, at 5.8328921794891 seconds. Its compression ratio still ranks in the group at the back of the pack, though.</p> <h3>What did we learn on the show tonight, Adam?</h3> <p>PHP developers, for the love of all that is freaking holy, can you all please just goddamn well sit down together and decide on <em>one</em> implementation of trivial things like asset minifiers, and just work on that? Yeeeeeeeeeeeeeeesh, people. And please don't dump your code's third party dependencies into its tree by hand, without an apparent plan or a manifest. At <em>least</em> use Composer, that gives us a fighting chance at figuring out what the hell you've got in there and splitting it out. And, you know, sit down and really think about whether your minifier blob needs seven different goddamned minifier implementations in different places, half of which are variants of each other...</p> <p>All things considered for JS I'd recommend using JSqueeze, JShrink or Matthias' 'minify', in about that order - those three all seem to be actively maintained and following good current practices. Avoid JSMin due to the licensing issue and because it's not very actively maintained, and JSMinPlus as it doesn't seem to be maintained at all.</p> <p></p> <p></p><p>When I've had time for 'side projects' lately I've mostly been working on preparing the ground for ownCloud 8 in Fedora, trying to get out ahead of upstream changes and package new library dependencies.</p> <h3>ownCloud's web asset minification</h3> <p>Today I wound up looking at OC's <a href="https://github.com/owncloud/core/pull/11430">new web asset minification stuff</a>. A few releases back OC <a href="https://github.com/owncloud/core/issues/4469">delivered CSS and JavaScript itself and minified them in real time</a>, using minifiers ripped out of the Mediawiki source code. That was pretty ugly.</p> <p>In ownCloud 7 they switched to using <a href="https://github.com/kriswallsmith/assetic/">Assetic</a> for asset management, which is a lot better. It didn't do any minification at that point, though.</p> <p>With the PR linked above, OC 8 does minification using Assetic filters. This means it grows some new dependencies on the minimization libraries that back the Assetic filters.</p> <p>Not surprisingly, this being the world of PHP, there's some fun craziness here. Craziness follows - but if you're interested in a performance comparison of available PHP web asset minifiers, skip it and look down a bit further.</p> <p>The filters ownCloud currently uses are Assetic's <code>CssMinFilter</code> and <code>JSMinFilter</code>. To back those, ownCloud's <code>composer.json</code> now pulls in <code>mrclay/minify</code> and <code>natxet/CssMin</code>.</p> <h3>natxet/CssMin</h3> <p>I started out by taking a look at <a href="https://github.com/natxet/CssMin">natxet/CssMin</a>, which isn't too horrible. It loses some points for not being sanely laid out (there's one source file with a whole bunch of classes in it and it just uses classmap autoloading...), but basically it minifies CSS and that's it. It was fairly simple to <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1177692">build a package</a>. It claims to be just a github mirror of <a href="https://code.google.com/p/cssmin/">this 'cssmin' project</a>, but in fact it's clearly being actively maintained and has developed on from that project; I'm treating it as its own project, now. It doesn't appear to be a port or rewrite of any other minifier.</p> <h3>mrclay/minify and its exciting assortment of minifiers</h3> <p>Then I looked at the JS minifier, though, and started to encounter the crazy. <a href="https://github.com/mrclay/minify">mrclay/minify</a> looks, to my monkey eyes at least, like a fairly hairy ball of olde-worlde PHP craziness. It's not just a minification library, or even <em>several</em> minification libraries. In its own words, it's "an HTTP content server", i.e. it's sort of trying to do the same thing as Assetic, only it's a rather older and smaller implementation. But because choice is <em>oh so tasty</em>, it includes at least three CSS minifiers and two JS minifiers, and lets you pick whichever you like!</p> <ul> <li>It has its own CSS minifier, <code>Minify_CSS_Compressor</code>.</li> <li>It includes the github project <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port">YUI-CSS-compressor-PHP-port</a> - which is, as the name suggests, a PHP port of the CSS bit of Yahoo's <a href="https://github.com/yui/yuicompressor">YUI Compressor</a>, which is written in Java. This is named <code>CSSmin.php</code>.</li> <li>It also, for no goddamn reason I can see, ships a <em>different</em> but far less complete port of the YUI Compressor, as <code>lib/Minify/YUI/CssCompressor.php</code>.</li> </ul> <p>For JavaScript:</p> <ul> <li>It includes <code>JSMin.php</code>. This (so far as I can figure out) originated as a port of <a href="http://www.crockford.com/javascript/jsmin.html">Douglas Crockford's JSMin</a> (which is written in C), by Ryan Grove. It lived at <a href="http://code.google.com/p/jsmin-php/">Google Code</a> until it was moved for license reasons (see long bit below!) to <a href="https://github.com/rgrove/jsmin-php/">GitHub</a>, where it is now very definitely unmaintained. mrclay has continued to work on it in his tree since it was abandoned by Mr. Grove, so the <code>mrclay/minify</code> version is now a fork. Again see below for details, but briefly, this code is clearly non-free by <a href="http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines">Debian</a> and <a href="https://fedoraproject.org/wiki/Licensing:Main">Fedora</a> standards, as it imposes a 'field-of-use' restriction.</li> <li>It includes <code>JSMinPlus.php</code>. This is a copy of <a href="http://crisp.tweakblogs.net/blog/cat/716">JSMin+</a>, which is by all appearances abandoned by its author (though there were two years between the releases of 1.3 and 1.4, so who knows). Despite the name, JSMin+ is a completely different project from (anything else at all called) JSMin, it is not an unofficial successor nor is it based on JSMin (again, whatever you consider to be 'JSMin' exactly - the original code, or any of its various ports) in any way.</li> <li>It includes <code>lib/Minify/ClosureCompiler.php</code>, which is a wrapper around the offline Java version of Google's <a href="https://developers.google.com/closure/compiler/">Closure Compiler</a> - you're expected to provide it with a copy of the CC .jar file.</li> <li>Not at <strong><em>all</em></strong> confusingly it also provides <code>lib/Minify/JS/ClosureCompiler.php</code>, which is an entirely different way to use the Closure Compiler - this time via Google's <a href="https://developers.google.com/closure/compiler/docs/gettingstarted_api">public REST API</a> for it.</li> </ul> <p>When I say it 'includes' or 'has' something, of course, I don't mean it sensibly expresses a dependency on a copy of it, or anything. In classic fashion for the PHP 'Wild West' interregnum between the reigns of <a href="https://pear.php.net">PEAR</a> and <a href="https://packagist.org/">Packagist/Composer</a>, copies of the libraries are just dumped willy-nilly into minify's tree, not in any particularly obvious layout (in fact most of them appear to be <a href="https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md">PSR-0</a> compliant relative to <code>lib/</code>, but you have to poke about a bit to figure that out), without any kind of manifest to explain clearly what they all are, never mind what they're <em>for</em>.</p> <h3>Interlude: Adam is sad</h3> <p>So I was, obviously, rather reluctant to just package up the mrclay 'minify' for Fedora simply in order to satisfy ownCloud's need for a JavaScript minimizer. This kind of haphazardly bundled source tree is a goddamn nightmare to package in a guideline-compliant way just in general, and the redundancy was too absurd for me to swallow - if you're not keeping count, so far we've found that minify has three CSS minimizers, two JavaScript minimizers, and two different ways you can use yet a <em>third</em> JavaScript minifier it doesn't directly include. And don't forget that <code>natxet\CssMin</code> is not the same thing as minify's <code>CSSmin.php</code> (which, if you've forgotten, is tubalmartin's port of the YUI compressor). If I'd just gone ahead and packaged minify, I'd have been packaging six minifier libraries and eight minifier approaches in order to provide ownCloud with two minifiers. No. Not happening.</p> <p>My next thought was to just package the actual minifier ownCloud uses, via Assetic's JSMinFilter, which is <code>JSMin.php</code> - not any of the other bits of minify. It looks like it'd pretty much lift right out (not surprisingly, as it was initially a third party lib that minify dumped into its tree, see above). At this point, though, I run into another rather larger problem which I mentioned briefly above.</p> <h3>JSMin, freedom, and the JSON License</h3> <p><code>JSMin.php</code> is not free. This is because the original, Douglas Crockford-written JSMin is not free; no port or derivative of it is free either. It's licensed under the MIT license, but with an <a href="https://github.com/douglascrockford/JSMin/blob/master/jsmin.c#L16">added clause</a>:</p> <p>"The Software shall be used for Good, not Evil."</p> <p>There's a <a href="http://wonko.com/post/jsmin-isnt-welcome-on-google-code">page</a> where the story of JSMin being kicked off Google Code for this is related, which includes an excerpt from a talk the author gave where he plays the whole situation for laughs and talks about how ha ha funny it is that Google and IBM want him to allow them to use his software for evil, and that's all nice and cute, but the best legal advice available to Debian, Red Hat and (to my knowledge) all other authorities on software licensing is that such restrictions clearly make the software non-free. License wonks refer to this license as 'the JSON license' and it is explicitly listed as non-free by <a href="https://www.gnu.org/licenses/license-list.html#JSON">the FSF</a>, <a href="https://fedoraproject.org/wiki/Licensing:Main#Bad_Licenses">Fedora</a>, and <a href="https://lists.debian.org/debian-lint-maint/2013/01/msg00153.html">Debian</a> (it's hard to find a good reference for DFSG determinations, that's the best I could get).</p> <p>So, I can't possibly have Fedora's OC package use that code regardless of how or where it comes from. Darn.</p> <h3>Yet more minifiers (no, of course we're not done yet)</h3> <p>So I started looking into alternatives, which (me being me) turned into a bit of a review of PHP web asset minifiers. Here's the ones I found beyond those listed above:</p> <ul> <li><a href="https://github.com/tchwork/jsqueeze">JSqueeze</a>, a native PHP JS minifier</li> <li><a href="https://github.com/tedious/JShrink">JShrink</a>, a different native PHP JS minifier</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a>, a native PHP JS and CSS minifier (not at all the same thing as mrclay/minify)</li> </ul> <p>There may have been others, but I'm sort of losing the will to live at this point. As I was planning to suggest ownCloud switch away from JSMin, it seemed prudent to check out all the alternatives, so I hacked up <a href="https://www.happyassassin.net/blog/mintest.php.txt">a script</a> for doing some quick and dirty benchmarking on minifiers. (If you want to try it, you'll have to download all the minifier libs and dump them in the directory with the script, dump some .css and .js files in the same directory, and edit <code>CSSmin.php</code> to rename the class to <code>CSSmin1</code> so it doesn't conflict with <code>CssMin.php</code> - I told you it was dirty).</p> <h3>Benchmarking minifiers</h3> <p>I dumped all ownCloud's CSS and JS assets (minus translations) into a directory and wrote a thing which just calls each minifier on all the files for its asset class, saves the output with a unique extension, and tells me how long it took. Then I compared the sizes of the minified files. The contenders are:</p> <h4>JS</h4> <ul> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/JSMin.php">mrclay/minify's JSMin.php</a>, (today's git master)</li> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/JSMinPlus.php">mrclay/minify's JSMinPlus.php</a>, which I believe is still identical to <a href="http://crisp.tweakblogs.net/blog/cat/716">upstream JSMin+</a> 1.4</li> <li><a href="https://github.com/tchwork/jsqueeze">JSqueeze</a> (today's git master) - tested as 'strong', with its global var, method and property renaming enabled, and 'safe', with it disabled</li> <li><a href="https://github.com/tedious/JShrink">JShrink</a> (today's git master)</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a> (today's git master)</li> </ul> <h4>CSS</h4> <ul> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/CSSmin.php">mrclay/minify's CSSmin.php</a> (today's git master), which is <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port">tubalmartin/YUI-CSS-compressor-PHP-port</a></li> <li><a href="https://github.com/mrclay/minify/blob/master/min/lib/Minify/CSS/Compressor.php">mrclay/minify's Minify/CSS/Compressor.php</a> (today's git master)</li> <li><a href="https://github.com/natxet/CssMin">natxet/CssMin</a> (today's git master)</li> <li><a href="https://github.com/matthiasmullie/minify">matthiasmullie/minify</a> (today's git master)</li> </ul> <p>My CSS results are probably a bit questionable as OC has fairly little CSS, but here they are:</p> <pre><code>[adamw@adam jstest]$ php ./mintest.php CSSmin (tubal) time: 0.15763902664185 CSS Compressor time: 0.099493980407715 natxet time: 0.51680493354797 MM minifiy (CSS) time: 0.090332984924316 [adamw@adam jstest]$ for i in css compressor cssmin natxet mmmcss; do echo $i; du -c *.$i | grep -i total; done css (original) 360 total compressor (CSS Compressor) 344 total cssmin (CSSmin tubal) 340 total natxet (CssMin natxet) 344 total mmmcss (MM minify) 344 total </code></pre> <p>Compressor and Matthias Mullie's minify are the fastest, tubalmartin's CSSmin is a bit slower, and natxet/CssMin is quite a lot slower...but in practice, for OC's purposes, they'd all run pretty much instantly, the 'slowest' takes half a second. They're all almost the same in file size - tubalmartin's 'wins' by 4KB but that's probably in the margin of error (which I don't know how to calculate cos I'm not a scientist), and they only save about 5% on the original size, not really worth crowing about.</p> <p>The JS results are rather more interesting, as OC has a <em>lot</em> of JS.</p> <pre><code>JSMin time: 13.471320867538 JSMinPlus time: 15.368160009384 JSqueeze (strong) time: 6.8297760486603 JSqueeze (safe) time: 6.8371610641479 JShrink time: 11.497622013092 MM minifiy (JS) time: 19.345649003983 js 3364 total jsmin 2468 total jsminplus 2408 total jsqueeze.strong 2192 total jsqueeze.safe 2220 total jshrink 2468 total mmmjs 2464 total </code></pre> <p>I noticed that JSqueeze's global renaming feature seems to cause quite a lot of issues - half the bug reports in its github repo seem to be related to it - so it seemed prudent to test it both ways: the 'safe' version is simply <code>$jsqueeze-&gt;squeeze(file_get_contents($filename), $specialVarRx=false)</code> instead of <code>$jsqueeze-&gt;squeeze(file_get_contents($filename))</code> (the 'strong' version).</p> <p>JSqueeze rather beats the pants off of everything else, there - it's nearly twice as fast as the closest competitor, and does substantially better on file size, even in its 'safe' version.</p> <p><strong>edit 2014-12-30</strong>: After initially writing this post I managed to get a test instance of ownCloud git master up and running and tried plunking JSqueeze in in place of JSMin and, lo and behold...<a href="https://github.com/tchwork/jsqueeze/issues/14">it had a bug</a>.</p> <p><strong>edit 2015-01-01</strong>: p@tchwork fixed the bug mentioned in the previous edit; JSqueeze 2.0.1 works well with ownCloud in my testing. 2.0.1 also namespaces the class (which makes the layout a PSR-4 one), and disables the global renaming stuff by default (i.e. 'safe' not 'strong' is now the default). Also, Matthias Mullie <a href="https://github.com/matthiasmullie/minify/commit/bbdc79ef655c1ee6be5540ff80436a0a16b9fc77">substantially sped up his minifier</a>: after that commit his is the very fastest for me, at 5.8328921794891 seconds. Its compression ratio still ranks in the group at the back of the pack, though.</p> <h3>What did we learn on the show tonight, Adam?</h3> <p>PHP developers, for the love of all that is freaking holy, can you all please just goddamn well sit down together and decide on <em>one</em> implementation of trivial things like asset minifiers, and just work on that? Yeeeeeeeeeeeeeeesh, people. And please don't dump your code's third party dependencies into its tree by hand, without an apparent plan or a manifest. At <em>least</em> use Composer, that gives us a fighting chance at figuring out what the hell you've got in there and splitting it out. And, you know, sit down and really think about whether your minifier blob needs seven different goddamned minifier implementations in different places, half of which are variants of each other...</p> <p>All things considered for JS I'd recommend using JSqueeze, JShrink or Matthias' 'minify', in about that order - those three all seem to be actively maintained and following good current practices. Avoid JSMin due to the licensing issue and because it's not very actively maintained, and JSMinPlus as it doesn't seem to be maintained at all.</p> <p></p> wikitcms and ownCloud stuff https://www.happyassassin.net/posts/2014/12/20/wikitcms-and-owncloud-stuff/ 2014-12-20T16:48:32Z 2014-12-20T16:48:32Z Adam Williamson <p></p><p>For my salary this week I mostly worked on <a href="https://www.happyassassin.net/wikitcms/">relval/wikitcms</a> - I shipped 1.7 yesterday which is a major rewrite, on top of recent updates which added support for nightly build testing. <code>relval nightly</code> can create the validation pages for nightly composes, <code>relval report-results</code> can report results in them, and <code>relval testcase-stats</code> and <code>relval user-stats</code> can handle them in statistics generation.</p> <p>Of course there was some work on the magic wiki templates to go along with that, including some little finicky details like getting valid download URLs for the <code>boot.iso</code> images for Rawhide and Branched nightly composes. It all seems to work pretty well, and we've 'nominated' two Fedora 22 nightly composes for testing so far. The nightly currently being tested is 2014-12-16 - here's the <a href="https://fedoraproject.org/wiki/Test_Results:Fedora_22_20141216_Summary">results summary page</a>, and I'm hosting hourly-updated <a href="https://www.happyassassin.net/testcase_stats/22/">testcase-stats info</a>.</p> <p>(holy crap, I've got the Maple Leafs / Flyers game going on TV while I write this post - I've missed six goals since I started writing it and it's only half way through the first period...)</p> <p>Today I spent a bit of time working on my packages, mainly ownCloud. Well, I updated roundcubemail to 1.0.4 and sent out updates for that, too. For ownCloud I backported the upstream updates to its Google Drive support (which, er, I wrote...) which make it compatible with v1.x of <a href="https://github.com/google/google-api-php-client">Google's API library</a>, updated the client library package to 1.0.6, and dropped the ownCloud package's bundled copy of the 0.6 version of the library, which I've been working on forever - good to finally get it done.</p> <p>Of course, in the mean time the library went up to 1.1.2 and added an autoloader - unfortunately, not in a way that's very consumable for downstreams. So I sent a <a href="https://github.com/google/google-api-php-client/pull/437">pull request</a> to improve that, and I've done a scratch build of 1.1.2 with that patch and verified ownCloud works fine with it. I sent a <a href="https://github.com/owncloud/core/pull/12987">PR</a> for ownCloud to update its bundled copy to 1.1.2.</p> <p>If anyone who's using this stuff can test the updates:</p> <ul> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.el6">Roundcube 1.0.4 for EPEL 6</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.el7">Roundcube 1.0.4 for EPEL 7</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.fc20">Roundcube 1.0.4 for F20</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.fc21">Roundcube 1.0.4 for F21</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.fc21,php-google-apiclient-1.0.6-0.3.beta.fc21">ownCloud and php-google-apiclient for F21</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.fc20,php-google-apiclient-1.0.6-0.3.beta.fc20">ownCloud and php-google-apiclient for F20</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.el7,php-google-apiclient-1.0.6-0.3.beta.el7">ownCloud and php-google-apiclient for EPEL 7</a></li> </ul> <p>that'd be a great help.</p> <p></p> <p></p><p>For my salary this week I mostly worked on <a href="https://www.happyassassin.net/wikitcms/">relval/wikitcms</a> - I shipped 1.7 yesterday which is a major rewrite, on top of recent updates which added support for nightly build testing. <code>relval nightly</code> can create the validation pages for nightly composes, <code>relval report-results</code> can report results in them, and <code>relval testcase-stats</code> and <code>relval user-stats</code> can handle them in statistics generation.</p> <p>Of course there was some work on the magic wiki templates to go along with that, including some little finicky details like getting valid download URLs for the <code>boot.iso</code> images for Rawhide and Branched nightly composes. It all seems to work pretty well, and we've 'nominated' two Fedora 22 nightly composes for testing so far. The nightly currently being tested is 2014-12-16 - here's the <a href="https://fedoraproject.org/wiki/Test_Results:Fedora_22_20141216_Summary">results summary page</a>, and I'm hosting hourly-updated <a href="https://www.happyassassin.net/testcase_stats/22/">testcase-stats info</a>.</p> <p>(holy crap, I've got the Maple Leafs / Flyers game going on TV while I write this post - I've missed six goals since I started writing it and it's only half way through the first period...)</p> <p>Today I spent a bit of time working on my packages, mainly ownCloud. Well, I updated roundcubemail to 1.0.4 and sent out updates for that, too. For ownCloud I backported the upstream updates to its Google Drive support (which, er, I wrote...) which make it compatible with v1.x of <a href="https://github.com/google/google-api-php-client">Google's API library</a>, updated the client library package to 1.0.6, and dropped the ownCloud package's bundled copy of the 0.6 version of the library, which I've been working on forever - good to finally get it done.</p> <p>Of course, in the mean time the library went up to 1.1.2 and added an autoloader - unfortunately, not in a way that's very consumable for downstreams. So I sent a <a href="https://github.com/google/google-api-php-client/pull/437">pull request</a> to improve that, and I've done a scratch build of 1.1.2 with that patch and verified ownCloud works fine with it. I sent a <a href="https://github.com/owncloud/core/pull/12987">PR</a> for ownCloud to update its bundled copy to 1.1.2.</p> <p>If anyone who's using this stuff can test the updates:</p> <ul> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.el6">Roundcube 1.0.4 for EPEL 6</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.el7">Roundcube 1.0.4 for EPEL 7</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.fc20">Roundcube 1.0.4 for F20</a></li> <li><a href="https://admin.fedoraproject.org/updates/roundcubemail-1.0.4-2.fc21">Roundcube 1.0.4 for F21</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.fc21,php-google-apiclient-1.0.6-0.3.beta.fc21">ownCloud and php-google-apiclient for F21</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.fc20,php-google-apiclient-1.0.6-0.3.beta.fc20">ownCloud and php-google-apiclient for F20</a></li> <li><a href="https://admin.fedoraproject.org/updates/owncloud-7.0.4-2.el7,php-google-apiclient-1.0.6-0.3.beta.el7">ownCloud and php-google-apiclient for EPEL 7</a></li> </ul> <p>that'd be a great help.</p> <p></p> ownCloud news (7.0.3 coming) https://www.happyassassin.net/posts/2014/11/10/owncloud-news-7-0-3-coming/ 2014-11-10T21:22:37Z 2014-11-10T21:22:37Z Adam Williamson <p></p><p>I should have some good Fedlet news soon (later today or tomorrow), but in the meantime, I also spent some time working on ownCloud today.</p> <p>ownCloud 7.0.3 has been tagged and tarballed upstream, and I've bumped the Fedora and EPEL 7 builds in Koji already. I have it running on my 'test' (that is, er, production) server and it looks fine, so I'll probably edit 7.0.3 into the EPEL 7 update and submit new updates for F20 and F21 tomorrow. Rawhide is already on 7.0.3.</p> <p>I also sent a chunk of work upstream. I've been trying to get a <a href="https://github.com/owncloud/core/pull/6989">pull request</a> merged which updates ownCloud's bundled copy of <a href="https://github.com/google/google-api-php-client">Google's PHP library for their APIs</a> to the current upstream 1.0 series - they're using an old, unsupported and kinda buggy release. I really just wanted to do this to make the library easier to unbundle for Fedora, but somehow it's turned into a bit of work involving fixing some bugs in the ownCloud code that uses it - OC can use Google Drive as an 'external storage' source, i.e. you can map a Google Drive account to a directory in an OC install - and dealing with some issues in the PHP library itself.</p> <p>So aside from the big(gish) PR which updates the library I submitted a <a href="https://github.com/owncloud/core/pull/12087">few</a> <a href="https://github.com/owncloud/core/pull/12088">other</a> <a href="https://github.com/owncloud/core/pull/12090">misc</a> <a href="https://github.com/owncloud/core/pull/12093">fixes</a> based on unit testing which should actually make the thing work a lot better than it did before. Not that I'm actually at all interested in Google Drive, but hey! I'm hoping this will provide some motivation to get the 1.x update PR merged and then I can drop one more bundled dep from the OC packages.</p> <p></p> <p></p><p>I should have some good Fedlet news soon (later today or tomorrow), but in the meantime, I also spent some time working on ownCloud today.</p> <p>ownCloud 7.0.3 has been tagged and tarballed upstream, and I've bumped the Fedora and EPEL 7 builds in Koji already. I have it running on my 'test' (that is, er, production) server and it looks fine, so I'll probably edit 7.0.3 into the EPEL 7 update and submit new updates for F20 and F21 tomorrow. Rawhide is already on 7.0.3.</p> <p>I also sent a chunk of work upstream. I've been trying to get a <a href="https://github.com/owncloud/core/pull/6989">pull request</a> merged which updates ownCloud's bundled copy of <a href="https://github.com/google/google-api-php-client">Google's PHP library for their APIs</a> to the current upstream 1.0 series - they're using an old, unsupported and kinda buggy release. I really just wanted to do this to make the library easier to unbundle for Fedora, but somehow it's turned into a bit of work involving fixing some bugs in the ownCloud code that uses it - OC can use Google Drive as an 'external storage' source, i.e. you can map a Google Drive account to a directory in an OC install - and dealing with some issues in the PHP library itself.</p> <p>So aside from the big(gish) PR which updates the library I submitted a <a href="https://github.com/owncloud/core/pull/12087">few</a> <a href="https://github.com/owncloud/core/pull/12088">other</a> <a href="https://github.com/owncloud/core/pull/12090">misc</a> <a href="https://github.com/owncloud/core/pull/12093">fixes</a> based on unit testing which should actually make the thing work a lot better than it did before. Not that I'm actually at all interested in Google Drive, but hey! I'm hoping this will provide some motivation to get the 1.x update PR merged and then I can drop one more bundled dep from the OC packages.</p> <p></p>