Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.

25 April, 2017


Today: And what if I want to remove some files?

It’s easy and obvious to add new files with a driver update (DUD). But what if you need to remove some files? Or, related: can you replace some read-only file by a writable copy?

Let’s for this article assume you want to modify the Xorg configuration. Say,
/usr/share/X11/xorg.conf.d/10-evdev.conf troubles you.

The direct way would be to write an update.pre script than removes the file and include this into a DUD.

update.pre is run right after the DUD has updated the files in the installation system.

For example:

echo \
  rm /usr/share/X11/xorg.conf.d/10-evdev.conf \
  > update.pre
mkdud --create test1.dud --dist tw --name "remove 10-evdev.conf" update.pre

But when we try test1.dud we run into this:

Driver Update: remove 10-evdev.conf
Driver Updates added:
  remove 10-evdev.conf
rm: cannot remove '/usr/share/X11/xorg.conf.d/10-evdev.conf': Read-only file system

So, we see the catch: much of the installation system resides on a read-only file system! You can’t just go and modify things.

But how does the driver update process manage to add new files to the installation system then? It does so by restructuring the file system using symlinks. In the process all directories that need to be modified are replaced by writable copies.

In other words: if you include the file you want to remove in the DUD – you will be able to remove it. It’s actually sufficient to include the directory the file resides in to make this work.

So, let’s try this:

mkdir -p /tmp/dud/usr/share/X11/xorg.conf.d
echo \
  "rm /usr/share/X11/xorg.conf.d/10-evdev.conf" \
  > update.pre
mkdud --create test2.dud --dist tw --name "remove 10-evdev.conf" update.pre /tmp/dud

Now we don’t get any error applying test2.dud and when we login to the installation system, we see:

console:vm9732:/ # ls -l /usr/share/X11/xorg.conf.d
total 0
console:vm9732:/ # 


For easy testing a DUD, boot the machine with

startshell=1 sshd=1 password=*** dud=<URL>

startshell=1 wi ll stop the installation workflow after the installation system has been fully prepared just before YaST will be started. sshd=1 will start an SSH daemon and you’ll be able to connect to the machine and look around.

A similar trick can be used to make files writable (watch out for correct shell quoting):

mkdir -p /tmp/dud/usr/share/X11/xorg.conf.d
echo \
  cp --remove-destination '$(readlink -f /usr/share/X11/xorg.conf.d/10-evdev.conf)' \
  /usr/share/X11/xorg.conf.d/10-evdev.conf \
  > update.pre
mkdud --create test3.dud --dist tw --name "make 10-evdev.conf writable" update.pre /tmp/dud

We can verify the result:

console:vm9732:/ # ls -l /usr/share/X11/xorg.conf.d               
total 4
-rw-r--r-- 1 root root 1099 Apr 24 13:06 10-evdev.conf
console:vm9732:/ #

The file is now writable.

24 April, 2017

Michael Meeks: 2017-04-24 Monday.

12:21 UTCmember

  • Mail chew, consultancy call with Miklos. Submitted a brief paper for GUADEC deadline today.

23 April, 2017



Sometimes you need to get the time stamps for each line printed by a programm. How to do it? Fortuntely there is a tool called ts (like Time Stamp).

In openSUSE it is not installed by default, but is available in the standard repositories in the moreutils package:

sudo zypper in moreutils

When using time-stamping it is a good idea to get rid of buffering which might prevent from getting the correct time. So the usual usage pattern should be something like this:

unbuffer <command> | ts

See man ts for more details, it has few but very usefull options. It can display absolute or relative time, define the precision, etc…


If you can get exact time stamps for each output line then it is easy to find the line which took too long time.

In this example I was writing a new test for the s390 YaST module. I noticed that one test took much more time than the others. So I used ts to get the real numbers, the full command in this case was unbuffer rake test:unit | ts -i %.s:

Original Test

As you can see the tests usually take just few miliseconds, 5 ms at most. Except the Write test which takes more than 500ms. I was wondering why.


So how to find the place where the test took most of the time? You could use the Ruby profiler:

ruby -rprofile -S rspec <test_file>

But I found the output too detailed without finding any relevant information, probably because it measures the CPU time, not the real time…

The alternative approach is simply to add the puts call somewhere in the tested code. So you can measure how long it takes to reach this specific point. Using the usual bisect approach you can find the problematic place quite quickly.

In this case the problematic place was surprisingly calling the sleep(500) function here which obviously adds 500ms to the test time. The fix was easy, simply mock the sleep call in the test and return immediately.

The result is that the Write test now also takes few miliseconds just like the others:

Fixed Test

The test as a whole is now more than 20x faster. :wink:


In this case the real improvement was small, saving half a second is not a game changing feature.

But I used this approach in the past in the YaST registration module where the problem was caused by running a SLP network discovery without mocking it. That took much more time and scanning the local network in tests is at least not nice.

Michael Meeks: 2017-04-23 Sunday.

21:00 UTCmember

  • Fine breakfast, checked-out, swam & sauna-ified; off to pick up the babes - who had had a fine time with B&A. Lovely lunch, drove home. Picked up H. from Lynn's, back for some songs & bible study together - tea, put H. and others to bed. Watched Line of Duty - gripping.


It is an easy and a vulgar thing to please the mob, and not a very arduous task to astonish them. —Martin Werge Nissen


Back in February the fifteenth SUSE Hack Week took place. As always this was a week of free hacking, to learn, to innovate, to collaborate, and to have a lot of fun. I didn't have the full time, so I worked on a couple of small things and a few projects I maintain. I did want to summarize that, so here you go.

The first project remained unfinished. I wanted to fill out Tim Urban's Life Calendar (you might have seen that on his excellent blog "Wait But Why"), but realized that it's not trivial to map dates to weeks in your life. So I wrote a small tool to calculate that, stopped after I had a failing test and had a rough feeling for how to put the dots on the life calendar.

The second project was something I always wanted to do, implement Conway's Game of Life. I had once started an implementation in 68000 assembler on the Amiga many years ago, but never finished it. Technology has advanced, so I decided to do at as ASCII pixel art. Who needs high resolution? The result turned out to be a bit more generic, as a command line tool to manipulate pixel matrices stored in text files, the Pixelist. While I was at it, I also implemented Langton's Ant and a simulation of diffusion limited aggregation.

GivenFilesystem is a Ruby gem I maintain for writing unit tests dealing with files on disk. It's quite convenient, if you test code, which writes files on disk and you want to have a well-defined environment without side effects for testing this code. There were some open pull requests. I reviewed and merged them and released given_filesystem 0.2.0.

I already wrote about Inqlude, where I used Hack Week to finally publish the new Inqlude web site, which is based on the work Nanduni did during last year's Google Summer of Code. It's a great improvement. I also did some cleanup work, including reviewing the open issues. So we have a nice roadmap now. There is some interesting work to do. People who want to help with that are always welcome.

Trollolo is another side project I work on from time to time. We use it for supporting our Scrum work flows at SUSE in Trello, such as generating burndown charts. I didn't get around to write code, but I consolidated some of the ideas floating around and put them into issues. This also is a nice opportunity, if you want to have some fun with writing a bit of Ruby code for a small project. Issues are up for takers.

Finally I worked a bit on the next iteration of my attempt to make git support multiple authors. This would make life with git in a pair programming situation much nicer. Based on the feedback I got on my first iteration and at the Git Merge conference, I started to work on

22 April, 2017

Michael Meeks: 2017-04-22 Saturday.

21:00 UTCmember

  • Up rather early; room a bit light (despite otherwise being lovely) cooked breakfast; took a turn around the fine lawns, out together to Sutton Hoo for a walk around the bluebell woods & fine views. Back for a snacky lunch.
  • Enjoyed the pool, sauna, spa, massage, relaxing. Idly poked at fixing and merging my DelaySocket development implementation for Online some more in the evening - it works.
  • Fine dinner in the evening together, Parks & Recreation later; bed.

21 April, 2017

Michael Meeks: 2017-04-21 Friday.

21:00 UTCmember

  • Out for a run in the morning.
  • Saddened to see Russia's Supreme Court's approach to Jehovah's Witnesses (JW). Personally I have serious theological problems with JWs on so many levels - their frequent Conjectural Emmendation (ie. willful alteration of the text, by un-named 'translators') in their New Testament eg. around κύριος (Lord) speaks volumes for their confidence in their understanding of God. The Trinity undergirds God's very nature as love: Father, Son & Holy Spirit - and is (in my view) a foundational understanding of Christian theology from which so much beauty and truth flows. As a footnote Christ-ians (a label they are fond of presenting) has a sense of partisans of Christ (His people who are crazy about Him) which is far from my experience of JWs. The anti-intellectualism expressed in their general avoidance of higher education concerns me - although I know of notable exceptions; their use of church discipline - particularly with a mistaken lack of precedence for honoring your parents, and the primacy of loving your family is also troubling. Anyhow - I routinely invite in, and enjoy respectful conversations with those JWs who come to my door - despite our differences. When a society is not willing to tolerate and listen to passionately held, different views, and goes so far as to confiscate property and stop them from meeting and praying - it is in deep trouble. It seems to me that the defence of liberty is most important at the extremes.
  • Mail chew. Poked at a performance problem with text import - lots of dynamic_casting cost from a dynamic_cast with no check for a NULL return; hmm.
  • H, picked up by Emily for DofE expedition. Set off to Aldeburgh to drop the babes with B&A - kindly baby-sitting. On to Seckford Hall for a lovely meal and evening together.


Last week I came across pam_python, a PAM module that lets you write PAM modules in Python. It seems interesting to play in this direction, but I had to install it manually. It seems that there was no official packages for openSUSE until now…

Yesterday I built version 1.0.6 for Tumbleweed. Please test it. It’s in our security repo. Feel free to send submit requests.

After installing it we will get /lib64/security/pam_python.so PAM modul. It’s just an interface between PAM and your own plugin (that you have to implement). To test it, you will need to add PATH of your plugin to the /etc/pam.d/login file (in case of getty-access test, for example), like described here.

This code can be used as an example. It will close access for all getty.

> cat /lib64/security/access.py

def pam_sm_authenticate(pamh, flags, argv):
  if str(pamh.service) == "login":
    return pamh.PAM_AUTH_ERR

You will also need to add this line to the /etc/pam.d/login file:

auth required pam_python.so access.py

This is just an example with login service or getty. Pam-python supports also, for example, ssh- and kdm-services. It supports many other interesting things. For more info look at documentation page.


In the old setup only the MF IT team could do DNS changes for us in their DNS appliance. So we always had to run through tickets for changes.

Now we have a FreeIPA instance for the openSUSE cluster to manage the DNS zone. We use FreeIPA not only for DNS but that is a topic for another article.

After we fixed all the technical problems 3 weeks ago (you can read about it here), we finally got the approval for the change from upper management.

Now also their change control team agreed and we finally completed the change.

So lets all welcome home the opensuse.org zone!

20 April, 2017

Michael Meeks: 2017-04-20 Thursday.

21:00 UTCmember

  • Fifteenth wedding anniversary - it seems like yesterday - time flies when you're enjoying yourself; of course having an amazing, patient, graceful, intelligent, beautiful, wife is an amazing privilege as well. God is extraordinarily good to us, despite our general depravity, so much to give thanks for.
  • Mail chew; more reading about COM interception - a lovely paper on the very thing is out there; in today's world I'd hope the same paper would have lots of nice URLs, including a github link. Chat with Florian. ESC call, sync. with Tor.
  • Long delayed fridge relay turned up: good. Dropped M. to Scouts for the first time, put babes to bed, worked away until late.


Snapshots released the past two weeks of openSUSE Tumbleweed have slowed down a bit, but new software continues to be updated in the five snapshots that have been release since April 6.

The most recent snapshot, 20170417, brought Samba 4.6.2, which had an enormous amount of bug fixes and addressed regression issues introduced by the security fixes for CVE-2017-2619. gPhoto had lots of improvements thanks to the update to libgphoto2 2.5.13. The snapshot also updated ethtool to version 4.10, which synchronized the utility used for displaying and modifying some parameters of network interface controllers with the upstream release, and yast2-fonts’ 3.2.0 version fixed regression introduced in version 3.1.17 and added UTF-8 encoding to Ruby strings.

Snapshot 20170414  provided the 3.5.25 version of squid in the repositories, which fixed aspects involved with data connections and FTP traffic intercepts, and yast2-dhcp-server’s 3.2.2 version fixed a crash happens with the latest yast2-core and yast2-ruby-bindings packages. The premier library for Internationalization Components for Unicode (ICU), which provides globalized support for software applications, was updated to version  58.2 and fixed some issues for Cantonese, Greek and Arabic users as well as updated Emoji characters and 19 new symbols for the new 4K TV standard.

Mozilla Firefox fixed a startup crash on Linux with it’s 52.0.2 release in Tumbleweed’s 20170413 snapshot and the Linux Kernel was updated to version 4.10.9. Linux Kernel initiator open-iscsi had a large amount of patch removals and additions. The btrfs file system matured even more with the release of version 4.10.2. The suite and art application Calligra received a fix for crash when using arrow keys in version 3.0.1 and it’s Flow chart added undo commands. The snapshot also merged upstream Ceph fixes for the codestream. WindowMaker 0.95.8 added some patches and new features for veteran users.

Mesa 17.0.3 was updated in the 20170407 snapshot and libvirt 3.2.0 dropped some patches and added a fix for an IPv6 failure. Cryptsetup 1.7.4 fixed LibreSSL compatibility and added support for OpenSSL 1.1.0.

LightDM 1.22.0 was made available in snapshot 20170406 along with ImageMagick, which deleted unneeded patches, and ccache 3.3.4 documented the different cache statistics counters and fixed a regression in version 3.3 related to “potentially” bad content of dependency files.

19 April, 2017

Michael Meeks: 2017-04-19 Wednesday.

21:00 UTCmember

  • Up late; still with some post-holiday excitement. Call with Jos. Lunch with J. Built ESC bug stats; sales & contract call. Setup new 4k monitor - to try to avoid looking down at a laptop all the time. Required a new kernel to get the skylake support into good enough shape to drive it; all well.

Nathan Wolf: Syncthing on openSUSE

18:10 UTCmember


As part of my quest for my illusion of freedom, I have been looking for an alternative to Dropbox and Google Drive to backing up and synchronizing the bulk of my data between machines. I am a user of Dropbox and Google Drive via Insync, that won't change for many of my needs. I still have a need to share data easily with other individuals. 

I also decided to stand up a replacement primary openSUSE machine to replace my nearly 10 year old Dell Latitude D630. I have done all that I can do to make this thing as fast as possible but it is time to change its role to a home-station only machine. 

I want to keep the old machine synchronized with the new machine so that I don't always have to pull the new one out of the bag and turn it on to do work. I don't want to sync everything up to Google Drive or Dropbox because, well, I'm not wiling to spend that much per month for synchronizing large volume, low churn data. I looked at several solutions but this Syncthing looked very promising and the more I acquainted myself with it, the more solutions I can see this fulfilling.

Setup and Install

Like everything on openSUSE, it's real easy. My old machine is running Leap due to the need for the proprietary graphics driver as it doesn't not play well with the open source version. The new machine is running openSUSE Tumbleweed, the rolling release, as I would like to play with the newer software available.

For openSUSE Leap it was as simple as going to the openSUSE Software site and searching "Syncthing." Since I want the handy applet that sits in my system tray and not use a browser to interface with it, I am utilizing the syncthing-gtk version. I found it to be super straight forward to setup and use.


For openSUSE Tumbleweed, it was completely the same. The only difference, ensure you are downloading the "Tumbleweed" version as opposed to "Leap 42.2." Both versions are in their respective repositories. Thank you openSUSE for making it so straightforward and easy to install software!

Alternatively, if you like playing around in the terminal, which I of course like to do, you can type this:

sudo zypper in syncthing-gtk

Since this is in the Official Repository, you can be assured of updates.

Once installed run Syncthing from the menu. It greets you with a real nice "first run wizard" to get you started and also makes a note to tell you that your configuration files are in ~/.config/syncthing folder. If you would like to manage the Syncthing remotely, you can set up a username and password to protect from unauthorized access.

For my purposes, I am just having it listen to "localhost" only but if I were setting this up on a headless server, would chose to set up

18 April, 2017

Michael Meeks: 2017-04-18 Tuesday.

21:00 UTCmember

  • Up early; woke babes, mail chew; consultancy call; 1:1's, lunch with M & E, setup a movie for them; commercial team call. Plugged at E-mail left & right. Dinner, read stories to babes, worked extremely late.


Creating cool projects is what makes openSUSE so much fun and a recent project by an openSUSE member highlights just how creative and fun one can be using openSUSE.

Adrian Schröter took a Raspberry Pi 3 using openSUSE to create a 3D-printed foldable tripod and took the idea even further by using the Raspberry Pi 3 used to build the tripod to take interval photographs of a Storch and it’s nest with a Sony A5100 camera.

The nest appeared in 2016 and Schröter has been taking pictures of the Storch and it’s nest for a few months.

To print the foldable tripod, Schröter made the design using FreeCAD, which is a general purpose 3D Computer-Aided Design program that he packages for openSUSE’s distributions. Sony A5100 support for Gphoto from another community member, Marcus Meissner, helped to get the camera functioning to take photos roughly every 30 seconds.

Schröter has a blog about that updates pictures about the Storch and it’s nest at http://www.storch-bleckmar.de. The blog is in German, so brush up on your Deutsch or just enjoy the photos.

17 April, 2017

Michael Meeks: 2017-04-17 Monday.

21:00 UTCmember

  • Up early, out for a run with J. tidied the house, cleared up, put up N's new swing seat, and bathroom shelf. Misc. shopping on-line; played games with babes, early beds, stories; watched Line of Duty, sleep.

16 April, 2017

Michael Meeks: 2017-04-16 Sunday.

21:00 UTCmember

  • Out to Mowbray Community Church; sermon interesting but disappointingly disconnected from the text. Back for a fine lunch, quick chat with Tom & Becky; drove home, dinner, stories, bed.

15 April, 2017

Michael Meeks: 2017-04-15 Saturday.

21:00 UTCmember

  • Up; helped H. structure her work a little; read some E-mail; thrilled to see Jens Carl burning down the German comments: include/ and sc/ (calc) now clean; 1600 detected lines left across ~100 files in writer & svx.
  • David & Gillian around for lunch, and a wander through Knaesborough; good to see them. Puzzling & games variously with the family.

14 April, 2017

Michael Meeks: 2017-04-14 Friday.

21:00 UTCmember

  • Out to Sandra's to swim as a family; fun but tiring. Back for lunch. Did some carving with the babes in the afternoon. Rob & Amelia arrived, did some jigsaw puzzling with them. Up late chatting.

13 April, 2017

Michael Meeks: 2017-04-13 Thursday.

21:00 UTCmember

  • Off to Brimham Rocks with the babes and Dad; lots of excited rock climbing - taking the initiative, leaping of chasms, wiggling through cracks, bunking people up & so on. Great to see the girls as a team, all helping each other kindly, and not needing the Father nearly as much. Lunch in the sun.
  • Into Pately Bridge to see Auntie Nickie, admired a nice glass blowing place; out for tea together. Babes home - and went out for a lovely evening with J. alone - wonderful to spend some quiet time together.


Weblate 2.13.1 has been released quickly after 2.13. It fixes few minor issues and possible upgrade problem.

Full list of changes:

  • Fixed listing of managed projects in profile.
  • Fixed migration issue where some permissions were missing.
  • Fixed listing of current file format in translation download.
  • Return HTTP 404 when trying to access project where user lacks privileges.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Aptoide, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate | 0 comments

12 April, 2017

Michael Meeks: 2017-04-12 Wednesday.

21:00 UTCmember

  • To Leeds/Bradford airport early - terrible set-down experience; flew to Ulster. Positive customer meeting all day, with some debugging mixed in. Flight back late.


This is an attempt to make a list of things that someone-group of people can follow to develop a healthy community or team. This post is an overview of what I did with Kostas for the Greek openSUSE community.
A small detail is that we were only 2. So we took decisions fast. We didn't have to vote or something.
We had an "advantage" because we have an awesome global community and we asked for something we weren't sure how to proceed.

Let's start:

0. Have a clear goal. What you want to do. Have a big goal that some parts aren't "visible" when you start.
1. Web page: This is the web page-blog that will show information about community, the distro or the project. Make it visible on planets. BE CAREFUL. Don't focus on how to make a great site-blog using personal wordpress, drupal etc. Set it up on blogger and start post articles. You want CONTENT (write an article every other day). Don't spend time to maintain or secure your web page.
2. Mailing list: Ask the project if they can setup for you. If not, then try to find alternatives such as google groups.
3. IRC Channel
4. Forum: Prefer to ask from the project to setup a section for your language. If your project doesn't have forum, then ask a LUG or tech forum to use their's. Do not have your forum setup in your host for the same reasons as before. Don't spend time to maintain or secure the forum.

The above list is the MUST have to start.
A key to everything is to try to have all information in your language, so it'll be "attractive" to people who like the idea of open source but they don't speak English. What's the role of such people? They can organize local events.

Next step is to advertise the whole project-distro. This can happen:
1. Write to blogs-forums (technological or not).
2. Create Facebook group/page and advertise your attempt to other groups/pages.
3. Create Twitter account and tweet news about your community.
4. Create Google Plus Profile/Community.
5. Contact press. First contact local and then national press.
6. If you have a newsletter or weekly magazine, it's good to translate it (or a piece of it), so the open source community in your country will learn about you and your projects.

Before deciding what social media accounts to create, be aware that you have to maintain them. So search the web, what social media is more famous to users. For "tech" users, Google Plus Communities is the perfect place. It also can be used instead of Forums.

A distro or project, it's not all about write code. It's have fun. So advertise it.
1. Release parties. When a new release is out, it's time to party.
2. Meet ups. A good place to organize them is http


Local open source community is bigger now and next step for you is to organize (or join) global conferences. One part of the organization is the promotion of the conference. You want to have as many visitors as you can.

I will try to write down what I did during openSUSE global conferences and some local events.


0. Web page

There MUST be a web page and a system that accepts registration, paper submission, information etc. Write everything that visitor should know about the conference.
We use OSEM in openSUSE. Check out https://events.opensuse.org

1. Blog blog blog.

You'll have some announcements for the conference. Dates, the place, new website, call for papers announcement, hotels that visitors can stay, schedule, keynote speakers etc. Usually, every open source project has a central blog or news site. You can write the articles there. Try to make fuzz by publishing your articles often.
Global communities can translate the announcements to their language and promote the conference locally.

Local communities are formed by members with blogs who publish on different planet sites. You can make a schedule so everyone can publish the announcement every other day. More eyes will see the announcement and will apply either as speaker or visitor.

Two things you want to have is contributors+visitors and sponsors. If your project is famous, then it's easy. If not, then you better publish the initial announcement to magazines, newspapers, technical blogs-sites. If you don't have access, then you better send it by e-mail or fax and then call them and ask them if they got the text. If they publish it, you're lucky.

Translate those announcements and publish them, so local population will see that there's a conference coming.

2. Promote to other FOSS conferences

There are plenty of FOSS conferences around the world.
* Community (local or global) has to apply for a booth and/or, if it's possible, present why someone should attend.
* At the booth, you should have promo materials of your conference and give away to local LUGs or hackerspaces to hang posters at their places.
* Another cool thing is to have free coupons for beer at the conference. If beer isn't the solution, then find another thing that can be found only at your conference and give free coupons.
* Wear special T-Shirts with the logo or #oSC or "Ask me for the conference". You show people that you're organizing something and can ask you questions.
* Finally, go to other project's booth and invite them. You can ask them if they want to have a booth at your conference or apply for a presentation.

3. Messages to post

Create a list of messages you'll post to social media.
First of all, you should post the announcements.
Then create a list of general messages that you should post before the conference. Content will be related to the subject of the conference or the country etc


To set a static IP in Debian based distros is easy. Just change a file (/etc/network/interfaces).
In openSUSE is easier. Everything can be done under YaST.

1. Open YaST and go to Network Devices>Network Settings.

2. Then choose Statically Assigned IP Address (move with tab button and click on space button). Give the static IP you want (IP address needs to be in the same range as the router's) and as Subnet Mask, Press Next (press enter).

3. You'll see an overview of the ethernet card.

4. Go to Hostname/DNS and add Google's DNS servers (optional).

5. Next, go to Routing and add your router ip (usually

Now press OK, reboot and try to login again with SSH.


I see the official documentation has full tutorial for RHEL 6 or CentOS 6 and RHEL 7 or CentOS 7. The main documentation covers Ubuntu 14.04 LTS

openSUSE already has the Nextcloud client packaged in Tumbelweed and the Server is in the PHP extra repo! Personally, I prefer to install eveything from official repository, so when an update is available, I can have it without a glitch. This tutorial describes how to install Nextcloud using command line. I followed the official documentation of Ubuntu 14.04 LTS installation.

Why choose openSUSE Leap? openSUSE Leap is a brand new way of building openSUSE and is new type of hybrid Linux distribution. Leap uses source from SUSE Linux Enterprise (SLE), which gives Leap a level of stability unmatched by other Linux distributions, and combines that with community developments to give users, developers and sysadmins the best stable Linux experience available. Contributor and enterprise efforts for Leap bridge a gap between matured packages and newer packages found in openSUSE’s other distribution Tumbleweed. You can download openSUSE Leap from the site https://software.opensuse.org/.

Make sure that ssh (sshd) is enabled and also the firewall either is disabled or make an exception to the apache and ssh services. You can also set a static IP (check out how).

First of all, let's install the required and recommended modules for a typical Nextcloud installation, using Apache and MariaDB, by issuing the following commands in a terminal:

zypper in apache2 mariadb apache2-mod_php5 php5-gd php5-json php5-fpm php5-mysql php5-curl php5-intl php5-mcrypt php5-zip php5-mbstring php5-zlib

Create Database (optional since it'll create eveything automatically)

Next step, create a database. First of all start the service.

systemctl start mysql.service
systemctl enable mysql.service

The root password is empty by default. That means that you can press enter and you can use your root user. That's not safe at all. So you can set a password using the command:

mysqladmin -u root password newpass

Where newpass is the password you want.

Now you set the root password, create the database.

mysql -u root -p
#you'll be asked for your root password


GRANT ALL ON nextcloudb.* TO ncuser@localhost IDENTIFIED BY 'dbpass';

Database user: ncuser
Database name: nextcloudb
Database user password: dbpass

You can change the above information accordingly.

PHP changes

Now you should edit the php.ini file.

nano /etc/php5/apache2/php.ini

change the values

post_max_size = 50G
upload_max_filesize = 25G
max_file_uploads = 200
max_input_time = 3600
max_execution_time = 3600
session.gc_maxlifetime = 3600
memory_limit = 512M

and finally enable the extensions.


Apache Configuration

You should enable some modules. Some might be already enabled.

a2enmod php5
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Now start the apache service.

systemctl start apache2.service
systemctl enable apache2.service

Install Nextcloud

Before the installation, create the data folder and give the right permissions (preferably outside the server directory for security reasons). I created a directory in the /mnt directory. You


Weblate 2.13 has been released today pretty much on the schedule. The most important change being more fine grained access control and some smaller UI improvements. There are other new features and bug fixes as well.

Full list of changes:

  • Fixed quality checks on translation templates.
  • Added quality check to trigger on losing translation.
  • Add option to view pending suggestions from user.
  • Add option to automatically build component lists.
  • Default dashboard for unauthenticated users can be configured.
  • Add option to browse 25 random strings for review.
  • History now indicates string change.
  • Better error reporting when adding new translation.
  • Added per language search within project.
  • Group ACLs can now be limited to certain permissions.
  • The per project ALCs are now implemented using Group ACL.
  • Added more fine grained privileges control.
  • Various minor UI improvements.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Aptoide, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English Gammu phpMyAdmin SUSE Weblate | 0 comments

11 April, 2017

Michael Meeks: 2017-04-11 Tuesday.

21:00 UTCmember

  • Up, bit of mail chew; out for a walk with the family down the river, and back to Knaesborough - found some Oak ( and other) leaves to carve; enjoyed seeing a heron fishing.
  • Back for lunch; cut some lime pieces, Dad got his carving chisels out & started the babes off in pairs on wood carving - lime: such a great wood for that.

Older blog entries ->