DevFest 2020 Mauritius

DevFest 2020 Mauritius

After a long wait on the island, post-confinement, we are going to have a first physical tech conference happening this month. It is the DevFest 2020 scheduled for 21 November at the Uniciti Education Hub at Pierrefonds.

The call for speakers was announced last month and the deadline for submission is today. ЁЯШЙ


Further details about the event will be published soon. Let's anticipate the COVID-19 restrictions such as compulsory face mask and social distancing during the event this year. I am pretty sure this must be a great challenge for the organisers and volunteers. Therefore, all the best to folks at MSCC and GDG Mauritius.

Microsoft Edge preview for Linux

Microsoft Edge preview for Linux

Last November, Microsoft announced that its Edge browser is coming to Linux in the near future. That day has arrived.

On 20 October 2020, Microsoft released Edge preview builds for Linux and with that Microsoft Edge is now available for all major desktop and mobile platforms.

Microsoft Edge preview for Linux
Microsoft Edge on all major platforms

DEB and RPM packages are available on the Microsoft Edge Insider website. These packages are updated weekly.

Hence, to install Microsoft Edge on openSUSE, simply download the .rpm file and use zypper for the installation.

sudo zypper in ~/Downloads/microsoft-edge-dev-88.0.680.1-1.x86_64.rpm

That's it! You should now be able to run Edge on openSUSE. In fact, the above screenshots are from the Edge build version 88.0.680.1 running on openSUSE Tumbleweed.

Microsoft Edge preview for Linux
Microsoft Edge build version 88.0.680.1

Hacktoberfest Mauritius 2020

Hacktoberfest Mauritius 2020

Saamiyah pinged me a few days ago about the Hacktoberfest event that she was organising and asked whether I would be free to present a topic. Sure, why not?

As many tech meetups at the moment, the Hacktoberfest event also was virtual. It was hosted on the Jitsi instance of the Mauritius Software Craftsmanship Community. The event was scheduled to start at 19h30 on Friday, i.e last evening. I was late to join but "luckily" so was everybody.


As the event started, we had some small-talk before the presentations really kick-off. We talked about flexi-time, work-from-(home|anywhere), and how they compare to being full-time in office.

Saamiyah did the first presentation in which she talked about the concept of Hacktoberfest, a month where open source software is celebrated. Sandeep spoke about local open source projects on GitHub.

I spoke about Flatpak and how to set it up on openSUSE. I concluded my presentation with an observation on the rise of Flatpak fuelled by the idea of having immutable & maintenance-free systems such as Fedora Silverblue and openSUSE MicroOS Desktop.

Hacktoberfest Mauritius 2020
Hacktoberfest Mauritius - Flatpak on openSUSE

The presentation slides are available at speakerdeck.com.

The next speaker, Alan, spoke about Docker Swarm, followed by Pritvi who talked about software licenses. It was 22h00 by that time and I could not stay longer. I bid goodnight on the chat room and wished everyone to continue having fun!

openSUSE + LibreOffice Conference 2020

openSUSE + LibreOffice Conference 2020

oSLO 2020 kicked-off on Thursday 15 October at 10h00 UTC with an opening address by The Document Foundation's Chairman, Lothar Becker.

openSUSE + LibreOffice Conference 2020
Screenshot from the opening session at the oSLO Conference

The conference was due to happen in Nuremberg, Germany, but because of the pandemic the plan was changed and the event went fully online. Three sessions ran simultaneously in virtual rooms. Two rooms hosted the short & long talks while the third room hosted the workshops.

During the opening session, as more people kept joining, the platform started to show signs of high load. People reported issues with the audio quality and some said that the page was not loading at all. Thanks to the Telegram group dedicated to the oSLO Conference communications, issues were being promptly reported and handled. Within a matter of minutes the organizers arranged to move the all sessions to The Document Foundation's Jitsi instance. The latter worked like a charm. The organizers and volunteers who helped in the swift transition did a great job.

openSUSE + LibreOffice Conference 2020
Jitsi instance provided by The Document Foundation

The conference room 1 easily held more than 80 participants at one time and there was no degradation in the quality of audio/video.

Getting started with Podman

I had my talk on Podman scheduled at 13h30 UTC on the first day of the conference. It went fine, except my poor timing of not being able to wrap it up as a short talk of 15 mins. I'll improve next time. ЁЯШЙ

I shared my slides on speakerdeck.com right after the talk.

Beer hour ЁЯН║

The second day was even more fun. I hopped into the conference chat room from time to time to have a chit-chat with friends. It was not the same as having a geek talk over a beer during the conference after parties, but I was glad to see friends from the other side of the planet. I was happy to see that they are doing well.

openSUSE + LibreOffice Conference 2020
Where is Mauritius?

At one time during the beer chat, I was talking to two conference participants, one was from Taiwan and the other from Bulgaria. It is always funny to see people's reaction on how small Mauritius is compared to the other countries. Well, I am proud of the tiny dot in the middle of the ocean. ЁЯЗ▓ЁЯЗ║

Meet the openSUSE Board

The last session in the room 1 of the conference, on the second day, was held by the openSUSE Board members.

openSUSE + LibreOffice Conference 2020
openSUSE Board - October 2020

They provide updates and statistics about the project over the past year and tell us a bit about what the Board is planning for the future.

openSUSE + LibreOffice Conference 2020
What happened since last openSUSE Conference?

It is also the time when openSUSE members can ask questions.

The session was scheduled at 21h00 UTC which was 01h00 in the morning (the next day) for me. I was tired but I enjoyed the session. I jumped into the conversation when there was a comment about having a diverse representation on the Board with people from different parts of the world. I commented as an official of the Election Committee, encouraging members from all parts of the world to step up & run as candidate or nominate someone for the next Board election.

See you next year!

Italo Vignoli, founding member of The Document Foundation, during the closing keynote of the openSUSE + LibreOffice Conference (oSLO 2020), asked participants to share comments on how to improve the conference experience. He pointed out that this might not be the last virtual conference, considering the pandemic, although we all would love to have a physical conference soon.

Kudos to the organizers and volunteers for a successful conference. ЁЯСП

Stasiek Michalski wins the race for the openSUSE Board

The openSUSE Ad-hoc Board Election is now concluded.

Stasiek Michalski has been elected to join the openSUSE Board. The complete result is as follows:

  • Stasiek Michalski тАФ 160 votes
  • Pierre B├╢ckmann тАФ 70 votes

234 out of 510 eligible members have cast their vote in this election. We recorded 4 blank votes.

We thank both of them for stepping up and running in this election and we congratulate Stasiek for his win.

Lastly, thanks to Edwin Zakaria and Ariez Vachha for their help in the planning of this election.

openSUSE Ad-hoc Board Election 2020

Back in February 2020 Christian Boltz resigned from the openSUSE Board explaining the reasons behind his decision on the project mailing list. His resignation came about two weeks after Sarah Julia Kriesch's resignation from the Board.

The openSUSE Board was left with two vacant seats to be filled. Sarah had been a board member for just about a few weeks after the 2019-2020 board elections. After her resignation, the openSUSE Board decided to appoint Vinzenz Vietzke on the board based on the results of the 2019-2020 board elections. Following that, only one seat remained vacant on the board. However, before the Election Committee could start discussions for an election to fill that vacant seat, about two weeks after Vinzenz's appointment, openSUSE member Pierre B├╢ckmann called for a No-Confidence vote against the current board. It was unprecedented in the community and that put things on halt for a while.

The board election rules state that:

If 20 per cent or more of the openSUSE members require a new board, an election will be held for the complete elected Board seats.

The Election Committee was tasked to find out whether 20% of the community is indeed calling for a re-election. At this point I should disclose that I am an election official in the openSUSE Election Committee and the task given to us was not easy. After much consultation, we finally came up with a way to "measure" this 20% requirement of the election rule. We set up an electronic petition using the voting platform that is used for openSUSE Board elections.

A few days ago the petition ended and the result showed that only 11.6% of the community was in favour of a re-election. That does not satisfy the requirement for a forced re-election and thus an ad-hoc election will be carried to fill the one vacant seat only.

Ariez Vachha announced the ad-hoc board election schedule on the project mailing list and details are also available on the openSUSE wiki.

Starting now and until the 2nd of August openSUSE members wishing to run for this election or nominate someone from the community can do so by sending an email to [email protected]. I wish to remind that only openSUSE members can run for board candidacy and vote in this election.

The Election Committee is composed of Ariez Vachha, Edwin Zakaria and myself.

Podman – unable to pull image

Today, while pulling the latest Nextcloud container image from the docker.io repository I noticed that it is failing. Looking at the read: connection reset by peer error I assume it could be primarily due to network failure; maybe poor quality of the connection.

Note that Mauritius is far from "everywhere" else and connectivity issues are nothing new.

ish@coffee-bar:~> podman pull docker.io/library/nextcloud
Trying to pull docker.io/library/nextcloud...
Getting image source signatures
Copying blob e0276193a084 done  
Copying blob eb2d00c10344 done  
Copying blob 3a60f364b0c5 done  
Copying blob e0d3d1244592 done  
Copying blob f54006e0dc29 done  
Copying blob 8559a31e96f4 done  
Copying blob b22875b95a2a done  
Copying blob f65316e96b10 done  
Copying blob 3e309988c00b done  
Copying blob 0c78caf16ec3 [======================================] 13.1MiB / 13.2MiB
Copying blob 4fc30aae7ee5 done  
Copying blob 37b016cacdc6 done  
Copying blob fd56bf3cc539 done  
Copying blob e3cd35f544b5 done  
Copying blob 467fea8f6f80 done  
Copying blob 0dc7444f9282 done  
Copying blob 547ae6684264 done  
Copying blob 3139b6de5be7 done  
Copying blob 00e77223b529 done  
Copying blob 2b37e3b3a856 done  
  read tcp 192.168.100.6:33536->104.18.124.25:443: read: connection reset by peer
Error: error pulling image "docker.io/library/nextcloud": unable to pull docker.io/library/nextcloud: unable to pull image: Error writing blob: error storing blob to file "/var/tmp/storage720474498/10": read tcp 192.168.100.6:33536->104.18.124.25:443: read: connection reset by peer

Podman does not retry to copy the image in case of failures.

A few days ago there was a suggestion to implement a similar feature in Podman that is present in Buildah, which provides the image copy retry functionality.

For the curious, the implementation can be seen here.

Container images that are pulled by Buildah are stored in the local repository which can also by accessed by Podman, so that's an advantage. I tried pulling the Nextcloud container image using Buildah and it completed successfully.

ish@coffee-bar:~> buildah pull nextcloud
Getting image source signatures
Copying blob e0d3d1244592 done  
Copying blob 8559a31e96f4 done  
Copying blob eb2d00c10344 done  
Copying blob 3a60f364b0c5 done  
Copying blob f54006e0dc29 done  
Copying blob e0276193a084 done  
Copying blob f65316e96b10 done  
Copying blob b22875b95a2a done  
Copying blob 3e309988c00b done  
Copying blob 0c78caf16ec3 done  
Copying blob 4fc30aae7ee5 done  
Copying blob 37b016cacdc6 done  
Copying blob e3cd35f544b5 done  
Copying blob fd56bf3cc539 done  
Copying blob 467fea8f6f80 done  
Copying blob 0dc7444f9282 done  
Copying blob 547ae6684264 done  
Copying blob 2b37e3b3a856 done  
Copying blob 00e77223b529 done  
Copying blob 3139b6de5be7 done  
Copying config 327476ebe3 done  
Writing manifest to image destination
Storing signatures
327476ebe3280c7b570d8463edd136956eab120959976b643cb7dbfaa73f98c1

Now, the downloaded container image is also accessible by Podman.

ish@coffee-bar:~> podman images
REPOSITORY                     TAG      IMAGE ID       CREATED        SIZE
docker.io/libreoffice/online   latest   0586fecfa3c1   28 hours ago   2.84 GB
docker.io/library/nextcloud    latest   327476ebe328   3 days ago     774 MB

To conclude, while we are waiting that a retryCopyImage function is available in Podman, we can use Buildah to pull container images that are troublesome due to network issues.

Running Flatpak on openSUSE Leap the first time

Flatpak comes pre-installed in openSUSE Leap 15.2. However, executing the flatpak command for the first time had a minor quirk in a freshly installed Leap 15.2 machine.

error: While opening repository /var/lib/flatpak/repo: opendir(objects): No such file or directory

I see other users commenting about this on Reddit. So, for now, just remove the repo file.

sudo rmdir /var/lib/flatpak/repo

Then, add the Flathub repository as its documentation describes.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Voil├а! Now, you may search apps and install them with the flatpak command. For example, if you would search for Visual Studio Code, you would do:

flatpak search code

Find its Application Id from the result obtained with the above command and install it as follows:

flatpak install flathub com.visualstudio.code

The installation command arguments format is:

flatpak install repo_name application_id

In order to remove an application that you previously installed through Flatpak, just replace install by remove followed by the Application Id and it's done.

A quick intro to Podman by Estu Fardani

Estu Fardani is a helpful & jovial fellow whom I met at the openSUSE Asia Summit last year in Bali, Indonesia. Recently, for the openSUSE Virtual Summit, Estu did a short presentation on Podman. His presentation video is available on YouTube and slides deck available on Google Slides.

While I am not a fan of alias docker=podman I believe Estu added that part in his slide below to make the Podman transition a bit smoother for users already familiar with Docker commands.

Slide from Estu's presentation

Note that the latest release of openSUSE Leap, i.e version 15.2, comes with support for Podman through the libcontainers-common package.

Previously, if one needed to experiment with Podman and/or deploy in production then openSUSE Tumbleweed, Kubic or MicroOS were the supported choices. Now, one may deploy Podman containers on their existing Leap infrastructure (after upgrading to the latest version 15.2).

рдХреБрдЫ рдмрд╛рддреЗрдВ openSUSE Leap 15.2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВ

реи рдЬреБрд▓рд╛рдИ реирежреиреж рдХреЛ openSUSE Leap 15.2 рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реБрдЖред

openSUSE Leap рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рдФрд░ рд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ рдЖрдк рдЕрдкрдиреЗ рдкреАрд╕реА, рд▓реИрдкрдЯреЙрдк рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИред Leap 15.2 рдФрд░ SUSE Linux Enterprise рдПрдХ рд╕рдорд╛рди рдХреЛрдбрдмреЗрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИ рдЬрд┐рд╕ рд╕реЗ openSUSE Leap 15.2 рдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдЬреНрдпрд╛рджрд╛ рдордЬрд╝рдмреВрдд рд╣реЛрддреА рд╣реИред

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛, рдпрд╛рдиреА рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕, рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рдСрдлрд┐рд╢рд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдЬ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рдЯреВрд▓рд╕реН рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреБрдмрдиреЗрдЯрд┐рд╕реН (рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдХреЗ рд▓рд┐рдП Leap рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реБрдЖ рд╣реИ) рд╣реЗрд▓реНрдо рдФрд░ рд╕рд┐рд▓реНрдпрдоред