Running Fedora CoreOS nightly ISO and qcow2 images in libvirt

Fedora CoreOS logo

Fedora CoreOS (FCOS) is the upcoming OS which contains best of both Fedora Atomic Host and Container Linux. There is no official release yet but we do have nightly images available to try. There are various image artifacts being produced but in this blog we will focus installing and running ISO and qcow2.

Download latest nightly image

FCOS nightly images are built using Jenkins pipleine in CentOS CI . Download latest ISO or qcow2 nightly image which you like.

While writing this blog latest nightly ISO image name is fedora-coreos-30.113-installer.iso and qcow2 image name is fedora-coreos-30.113-installer.iso . I will be using these names in this blog but when you try replace it with the media name which you downloaded.

Ignition Config

Similar to Container Linux, FCOS also requires ignition config to perform initial configuration during first boot. We will create fcos.ign ignition config file which defines to create a user test with password test, authorized ssh key and adding user test to wheel group to provide sudo access.

$ cat fcos.ign
{
  "ignition": {
     "version": "3.0.0"
  },

  "passwd": {
    "users": [
      {
        "name": "test",
        "passwordHash": "$y$j9T$dahelkQ2GUy2EfzW4Qu/m/$eApizQ.vHFyGJRel.1wNbKd8PLZ5soT0vBiIp4ieBM1",
        "sshAuthorizedKeys": [
          "ssh-rsa your_public_ssh_key"
        ],
        "groups": [ "wheel" ]
      }
    ]
  }
}

 

passwordHash was created using mkpasswd . Add you public ssh key(s) which you want to add in sshAuthorizedKeys.

Running qcow2 image

qcow2 image which we download is in compressed form, let’s first extract it

gunzip fedora-coreos-30.113-qemu.qcow2.gz

This will give us qcow2 image fedora-coreos-30.113-qemu.qcow2.

qemu-system-x86_64 -accel kvm -name fcos-qcow -m 2048 -cpu host -smp 2 -nographic -netdev user,id=eth0,hostname=coreos -device virtio-net-pci,netdev=eth0 -drive file=/path/to/fedora-coreos-30.113-qemu.qcow2 -fw_cfg name=opt/com.coreos/config,file=/path/to/fcos.ign

On login prompt, enter test as user name and  test as  password as we added in the ignition config and you should be inside a FCOS system!

Installing and Running ISO image

ISO image fedora-coreos-30.113-installer.iso contains initramfs.img and vmlinuz to boot the kernel. We will also need fedora-coreos-30.113-metal-bios.raw.gz or fedora-coreos-30.113-metal-bios.raw.gz from latest nightly repo depending upon what kind of installation you want. For our example, we will download fedora-coreos-30.113-metal-bios.raw.gz image. Installer will need metal-bios image and ignition config during the install process which we will pass as kernel command args. Let’s host fedora-coreos-30.113-metal-bios.raw.gz and fcos.ign files locally.

We can use either virt-install or qemu directly:

With virt-install

virt-install --name fcos-iso --ram 4500 --vcpus 2 --disk pool=vm,size=10 --accelerate --cdrom /path/to/fedora-coreos-30.107-installer.iso --network default

With qemu:

First, create a disk image for installation  –

qemu-img create -f qcow2 fcos.qcow2 10G

Now, run –

qemu-system-x86_64 -accel kvm -name fcos-iso -m 2048 -cpu host -smp 2 -netdev user,id=eth0,hostname=coreos -device virtio-net-pci,netdev=eth0 -drive file=/path/to/fcos.qcow2,format=qcow2 -cdrom /path/to/fedora-coreos-30.113-installer.iso

 

When ISO boots, in grub menu use <TAB> to add additional args in kernel command  line . They are coreos.inst.install_dev (installation device),  coreos.inst.image_url (installer image url) and coreos.inst.ignition_url (ignition config url). It looks something like below:

fcos

Once, additional parameter is added press <ENTER> to continue the installation. Once installation completes successfully and vm reboots, it will prompt for user login which will be same as we mentioned in running qcow section.

Additional update information along with instruction for PXE boot is available in coreos-installer README

Conclusion

To remain one step ahead, you can also run latest FCOS directly from coreos-assembler whose instruction is available in its README .

FCOS is in devlopment state and new features are getting added everyday to make it better. Give a try and get a feel of how early FCOS looks like!

 

10th year of FOSSASIA

This FOSSASIA was special as it marked its 10th year! It was quite impressive to witness a FOSS conference to continue growing this long with growing community. The four day conference schedule was packed with various interesting talks, workshops, hackathon and other engaging activities.

WhatsApp Image 2019-03-23 at 8.46.20 PM

First day of the conference was single track with some insightful talks. This included speakers who have been long term contributors to FOSSASIA such as Harish Pillay and Hong Phuc. Hong talked about various FOSSASIA initiatives such as Open Tech Summit, Science Hack Day India and events conducted along with HackerSpace SG.

Another interesting talk was from Mitch Altman about the TV-B-Gone project. He started it because he was annoyed by TVs playing loud in public spaces. Little did he know that he wasn’t alone and lot of people wanted the device. Mitch went on to create hardware learning kits and  teaches introductory electronics workshops. He motivated a lot of people to go and enjoy making new things.

Another interesting talk was from Huzaifa Sidhpurwala on attacking email encryption and security in general. It was quite interesting to know that the usage of enigmail spiked a lot roughly during 2014 (around the Snowden revelations). The talk also compared S/MIME and OpenPGP approaches to email encryption.

Hardware had a lot of presence at FOSSASIA. There were interesting talks ranging from ARM Development boards to preparing embedded products to be Production ready. From the benchmarks I saw, ARM based devices are getting quite close to their x86 counterparts. Along with ARM64 based servers, the future is bright even for consumer laptops (such as the Pinebook). Also, speaking of the future, we will soon be able to talk to our Coffee Machines! Meanwhile, we do have farmers doing innovative things with Raspberry Pi in Japan 🙂

On last day of conference, I and Sayan talked about Fedora CoreOS and Silverblue respectively. In general I felt that the attendees were quite excited about Fedora CoreOS and the benefits it brings. During Q&A we discussed how the release streams in Fedora CoreOS will be in comparison to Container Linux. Another frequently discussed topic was Podman and benefits of using it over Docker. There was also interest about how CI will operate for Fedora CoreOS. Slides from my talk is available here .

 

Other than talks, the conference had a lot of activity in the exhibition area as well. We had a CentOS booth (thanks to Rich Bowen!) as well which was very engaging and a place for attendees to ask questions about various Open Source projects from CentOS, Fedora, etc.  There was an awesome demo of Open Firmware projects (like Coreboot, U-Boot etc) and how easy it is to flash FOSS firmware in modern laptops using flashrom. To add to that, I even learnt soldering like a pro! Thanks, Mitch.

WhatsApp Image 2019-03-25 at 10.37.46 AM WhatsApp Image 2019-03-23 at 8.50.30 PM

WhatsApp Image 2019-03-23 at 8.51.13 PM      WhatsApp Image 2019-03-23 at 8.55.48 PM

I must say that  conference was filled with wide range of topic and has something interesting to learn for most of the people. Organizers and volunteers has put really hard work in keeping this year conference awesome and engaging, kudos to all!

Things We did at Fedora Infrastructure Hackathon 2018

IMG_20180410_085205

Last week I got an opportunity to be part of Fedora Infrastructure Hackathon from 9th to 13th April in Fredericksburg, Virginia, USA. It was a very nice experience to work face to face with the folks I usually interact online. Additionally, as a new team member, it was good to get to know everyone in person.

It was a productive week for all of us – lot of things were discussed, planned and done. You can find these details on hackathon wiki page. Being there helped me a lot with improving my understanding around Atomic, our Fedora infrastructure setup and projects with their current state developed and maintained by Infra team. During the hackathon week, we discussed about topics such as rawhide gating via bodhi, Fedora infra team maintained apps migration to openshift, etc. More details can be read from Kevin’s and Pingou’s post.

We also discussed and planned where to put multi-arch content of the Atomic Two Week release on Fedora Website. Right now, if you go to Fedora website for Atomic downloads, there is only x86_64 related information and download links. After discussion, we decided on extending existing Atomic download page to have multi-arch content. Atomic is a fast release, and keeping all arches information at one place will help us maintain and update website easily with latest Two Week release content. Kudos to Ryan who volunteered to make UI changes in the website!

I also talked to smooge to get a better understanding of our Fedora infrastructure setup. For example – where to look for logs for a particular infra machine, querying packages installed in a builder. This is definitely going to help me with debugging and fixing some of the Atomic related issues.

There were further discussions with Patrick and Randy on having multi-arch images in Fedora registry  which currently has x86_64 specific images. We discussed about things that need to be done to enable support for pushing multi-arch images. This will include fixing prep-docker-brew-branch script to support multi-arch.

Other than that I had lots of conversation and knowledge transfer with Dusty.

  • Dusty shared with me the details of how we do Atomic Two Week release during Fedora GA release. This release is done for latest stable Fedora. For example: current Fedora Atomic Two Week release is based on F27. Other than that we also have nightly Atomic composes for pre-released Fedora (F28 at the moment) and rawhide. Things get tricky when a new Fedora GA release comes into picture. There are additional steps and scripts involved during this phase to make sure Atomic Two Week release with new Fedora GA happen successfully on time. We will soon have F28 GA release, it will be interesting to watch all steps happening and helping when needed.
  • We also discussed about having a Fedora Atomic Host release dashboard. Before doing Fedora Atomic Two Week release, we usually go through various checks to ensure that everything looks good on all supported arches. This is a time consuming and manual process. Having a dashboard where we collect results status from various places for every Two Week and other pre-release nightly composes like autocloud test, atomic-host-tests, AMIs upload status and so on will be very useful. This is going to help us to always be ready for release with Atomic Two Week.
  • We also looked into how vagrant images get updated currently after Atomic Two Week release happens. Right now we do it from the vagarantup web UI. We discussed and the plan is to do it through vagrant-cloud api.

I must say it was a very productive week for me. Being part of this hackathon made stuff happen quicker over IRC. Many thanks to Paul Frields who organized everything during this trip. Also thanks to Red Hat and Fedora Council for sponsoring this trip. It was very nice meeting you all and definitely want to meet you all again!

My experience with Flock 2017

After attending Flock 2016, I got another chance to be part of Flock conference. This year, it took place in beautiful city Hyannis, Massachusetts, USA from 29th August to 1st September. Schedule of this 4 day conference was designed differently compared to last year. Both workshops and talks were running in parallel for the first three 3 days followed by a wrap-up session on last day.

Flock has lots of talks/workshops that are full of hot topics which are currently happening in Fedora. Being part of Fedora Alternative Architectures group, it is a good place for me to learn and understand about what is new in mainline Fedora. Also, I get to discuss with people to get an overall idea on efforts required to get those features available on different architectures like PowerPC, s390x, ARM.

This year, I attended various talks and workshops on topics related to Project Atomic, Modularity and Fedora CI. Other than that, I co-presented a workshop on Alternative Arches debugging and fixing with Dan Horak.

Keynote!

Day 1 of the conference started with keynote from our Fedora Project Leader, Matthew Miller . Best part of the talk was lots of graphs related to Fedora progress in various aspects. These included number of users using various latest Fedora releases, Fedora contributors activities across time, etc. He highlighted Fedora Atomic CI and Modularity as one of the two current objectives for Fedora.

IMG_20170829_090613

Talks

Some of the interesting talks I attended were:

Factory 2.0

In this talk Mike Bonnet talked about development around several tools to make a better and stable fedora:

  • ResultsDB – gets info from autocloud, openqa and taskotron
  • WaiverDB – waiving a failed result, when we know test is failing incorrectly
  • Greenwave – correlates data from ResultsDB and WaiverDB
  • bodhi – enhancement done to incorporate Greenwave result
  • Freshmaker – triggers rebuilds of content based on events from other services in pipeline like rebuild a module when modulemd or specific file gets updated, rebuild containers when rpm gets to stable
  • Odcs – On Demand Compose Service generate repos (signed) of pre-release content for inclusion when building aggregate content(like: ostree, etc)

Multi-Arch Container Layered Image Build System

In this talk Adam Miller covered various topics like differences between base and layered container image. In Fedora, base image gets built by Fedora releng and layered image via OpenShift Build Service (OSBS). Currently, container image gets built only for x86_64 architecture. There is a new multi-arch build-system design in progress, which will have OSBS workers for multiple arches. Multi-arch images will further be available in registry which can be easily accessed by users.

IMG_20170829_145619

New Container Technologies

Another nice talk from Dan Walsh on containers with the idea that “a container should be as generic as pdf ”. He introduced various tools being developed to achieve building generic container images. Some of the tools are:

  • skopeo  – various operations on container images and image repositories
  • Buildah – to create image without docker file. Has
  • cri- o – A daemon to ensure that kubernetes doesn’t break by providing end to end test. Later also integrated with openshift test suite
  • Kpod –  alternative of docker-cli

Automate Building Custom Atomic Host with Ansible

In this talk, Trishna Guha explained how to build your own custom OSTree and rebase an Atomic Host system with built custom OSTree. First approach involved doing all steps manually which is really tedious work. Later she demonstrated power of Ansible by adding steps involved in ansible playbook. I love ansible and its power!

Workshops

Alternative Arches debugging and fixing

This session was organized by Dan Horák and me.  During this session, Dan talked about common architectures specific issues which may occur like data endianess, usage of signed/unsigned char, etc. He also talked about various resources and links available for people to help with debugging non x86_64 specific issues. One can get access to a non x86_64 machine available at Fedora wiki. Further talked about recent work started towards CI to track changes in upstream by regularly building them on required arches.

IMG_20170829_160511

Later, I did a short walk through on an issues which I am debugging from quite sometime. This issue involves storage configuration error during anaconda install while building Atomic CloudImage locally on armhfp. It involves looking into Python code for error, followed by C Python binding code where actual problem may lie. This example was chosen to show how deep down an arch specific problem can lie and how we should step in to debug them patiently.

We further planned to work on fixing arch-specific issues which attendees might have in their packages but there were none from available attendees. Interested folks can look into slides and notes on debugging issue example and can talk to us later on IRC/ML.

Atomic Host 101

This session was taken by Dusty mabe which started with introduction on Atomic Host and followed by hands-on. Dusty did great job in distributing workshop’s prerequisites (Fedora Atomic vagrant image and local ostree repo) in advance. During the workshop, we did the following tasks which is nicely written in series of blogpost by Dusty:

I got a better understanding of Atomic Host from from this workshop. Initially faced some problems related to storage expansion of Atomic Host in vm, which got fixed with the help of Dusty.

Fedora Atomic Doc Work

This session was organized by Josh Berkus and Trishna Guha. Being interested and involved in Atomic Project, I wanted to attend this session in order to help with documentation as well. Josh and Trishna gave an overview of how these docs are organized and how to build and start adding content  here. Atomic Docs content are written in AsciiDoc and uses AsciiBinder to build and maintain documentation. Firstly, I did initial setup to build the Atomic Host doc repo locally and then picked up an issue from list which was about OSTree Compose. This first requires understanding of how OSTree compose is done, trying out local steps and then write the doc. Due to the nature of the topic, I promised Josh to work on it properly after Flock. At the end of the workshop, got a hot and spicy prize from Josh (thanks!)

prize.jpg

Let’s create a module

This session was taken by Tomáš Tomeček on creating a module. During this session he took us through content of modulemd files. Modulemd is a yaml file which has various fields defined from the list specified here . To build your own module locally, write a modulemd spec file and then run mbs-build local. This seems very simple but it takes time to do initial setup and getting successful build done.

Wrap-up session

During last day of the conference, various attendees shared their experience on what they learnt or got done during last 3 days. Speakers talked briefly on how their session was received by attendees. This session was nice but I would prefer having a wrap-up session at the end of each day of conference rather than on last day.

What else?

Other than attending various sessions, I also took opportunity to talk with some of the people regarding problems I came across on multi-arch:

  • Talked with Adam Miller regarding status of building layered images on multi-arches. Layered images get build using OSBS which currently supports x86_64. Thanks to Adam on continuing his work to support building images for other arches as well.
  • Also, discussed with Adam Miller about possibilities on adding non x86_64 arches container images in Fedora registry. Right now, only x86_64 is possible. We had a short discussion along with Randy Barlow and it seems that it should be possible after adding a manifest file. I will be looking into video provided by Randy on scaled container registry and will work with him to make Fedora container registry mult-arch aware.
  • User Feedback on Modularity :  I also went to Modularity feedback session to see what’s going on here. I previously gave it a try when Boltron – Modular server preview release occurred. I was more interested in terms of getting it working on multi-arches. Discussed issues I came across while while trying out on ppc64le:
    • Fedora 26-modular iso boots and starts anaconda installer in text mode. Didn’t see a way to start in graphical mode.
    • Fedora 26-modular iso is not able to fetch nearest mirror during anconda installation. Even proving manual repo path, doesn’t seem to work.

Modularity team took these feedback positively and I hope that these issues will get addressed in upcoming release.

Also, I asked for possibility of getting Modular Fedora container image built for multi-arches to try out. Right now, it’s not possible because it gets built using osbs (multi-arch build support is in progress). Good thing is Tomáš Tomeček volunteered to help me with building container image locally. He will first try out on x86_64 and will share a blogpost on same.

I am looking forward to spend more time on Fedora-modular on multi-arch.

There were many more interesting sessions but I couldn’t attend due to multiple sessions in parallel. Waiting for videos from talks and workshops to be uploaded in order to watch some of them which I missed.

I fully enjoyed Flock this year – from attending sessions to meeting Fedora friends to evening Flock events to winning lot of goodies at Wackenhammer’s Clockwork Arcade and Carousel 😉 Thanks to Brian Exelbierd, rest of the organizers, volunteers and sponsors for making Flock awesome. Also, big thanks to my employer Red Hat for sponsoring my trip!

It was nice to meet you all in person, now it’s time to go back and continue working on things on fire until we meet next time 🙂

My experience with conf.kde.in 2017

conf.kde.in 2017 was held in the big and beautiful campus of IIT, Guwahati in Assam. During 10th to 12th March, the conference schedule was 2 days of talks followed by a day of workshop. Talks were lined-up in single track which helps attendees not to miss any talk. Conference pictures from my camera are available at flickr.

33348374282_19cd6e08ef_z

1st Day

The first day started with inaugural ceremony where college professors and Valorie lightened up candle to start the conference.
Later, Valorie Zimmerman gave a keynote on Your Superpower. This talk was to motivate everyone to believe in themselves because each one of us have got superpower. To do something, it is very important to first believe in yourself.
33505439955_a0fd2bf847_m       33121738790_38b47982c0_m
Further, Shantanu gave an introductory talk on Qt and QML and showed some live demo explaining how easily UI can be created using QML. This talk was one of the important base for 3rd day workshop.
Bhushan gave talk on different KDE projects where one can contribute like KDevelop, Plasma, Krita, Kstars, Calligra, etc. He also provided some important information useful for beginners like how to get a KDE project’s source code, joining project related mailing lists and asking questions on respective IRC channel on freenode. Also talked about junior bugs associated with project – an easy way to start contributing to a project.
First day ended with Pradeepto’s talk of his 11 years experience with KDE and how he made so many friends across different parts of world. I feel that this is one of the best part of any conference, we meet friends with whom we work remotely and also make some new ones.
32691070893_d79e4e9caf_z

2nd Day

The 2nd day started with my talk on how I use KDE software to survive. I started using KDE desktop as my primary desktop since I was in college in around 2009. I strongly believe that to start with contribution to any software, it is very important to first use it and understand it. This gives new contributors a better idea where she can start contributing.
In my talk I discussed some KDE software which I use everyday for my personal as well as professional work. Slides for my talk are available at github.
852118014_98488
Photo Credit – Srijan Agarwal

I liked Shantanu’s talk on using GammaRay to debug QtQuick applications. He showed how he uses GammaRay to debug his office project called SoStronk – desktop application written in Qt and QML.
Another interesting and amazing talk was given by Aditya Mehra on Mycroft integration with KDE in the form of a plasmoid. Mycroft is an open source voice assistant application which can run anywhere – on a desktop computer, inside an automobile, Raspberry Pi and so on. One can view a pre-recorded video available on YouTube and yes if you don’t like the voice, you can add your own custom voice.
33505577155_065d890933_m        33348927352_5fc88ff6c6_m
There were other several interesting talks on topics like GCompris, GSoC 2017 and how one can participate, Journey of SuperX – Linux based OS + KDE software started in Assam, India.

Workshop

Most of the attendees were college students and it was important to give them some hands-on experience to help them to start with contributing to Open Source. Ashish Madeti started with explaining importance of git and how create a project with git version control setup, doing commits and other basic stuff. Attendees were trying in parallel on their laptop and we helped attendees individually to make sure they are able to do it themselves.
Later, Shantanu Tushar and Tony Thomas started with creating basic UI project using QML in Qt Creator. They explained how to browse documentation in Qt Creator for available components. Attendees tried on their own laptop and we all helped them to solve problems that they were facing.
33121892090_392858fa0b_z
There were many other interesting things discussed during the conference which is hard to cover in a single blogpost.
A big thanks to all volunteers who helped from start of the conference till end. Special thanks to Bhushan Shah for organizing it and KDE eV for sponsoring my travel.
With each conference, we get some awesome KDE contributors and hoping the same this year!

Flock 2016 & my talk on ABI checking in Fedora

Flock is the annual Fedora conference where you can find Fedora contributors as the main audience. This year the conference was held at the beautiful city Kraków, Poland from 2nd to 5th August. Being a schedule of 4 days, it was split into first 2 days of talks and later on workshops. Majority of talks were enriched with various Fedora related topics.

Main Talks

Since I have recently started to contribute to Fedora, I decided to attend only couple of talks and spent rest of time talking to more Fedora contributors. Some of the talks which I attended includes keynote by Matthew Miller on State of Fedora 2016, keynote by Radek about modern and open way of education among kids, modularity in Fedora talk by Langdon White and status of Pagure by Pierre-Yves Chibon.

28737950212_939a0dff2a_m          28558622010_c73a65833c_m

Most of talks have been recorded and  has been uploaded on YouTube. Link to recordings and slides for talk can be found at Fedora wiki.

Workshops

With my interest to have patches in Kernel, I attended workshop on Building the Fedora Kernel by Laura Abbott. During this workshop I successfully built Fedora Kernel locally in fast mode using ./scripts/fast-build.sh x86_64 kernel_srpm. Also, learned building upstream kernel with enabling/disabling desired modules during build using command make menuconfig (Need to try out!)

I am not usually a design person but still went to try out my chances in Fedora badges workshop organized by Maria Leonova and Marie Nordin 🙂 To design badges you need to have inkscape software (dnf is our friend) installed. To use Fedora specific color, copy palettes files (*.gpl) into ~/.config/inkscape/palettes/ and get one of badges templates. Now pick up new open ticket and you are ready to go. I tried working on an opened ticket which was to create a badge for “You helped get NodeJS 4 into Fedora”. So far, it seemed easy but seriously placing NodeJs logo in the right way in Fedora template was not so easy. I tried some ways and thought it’s better I stay away from it otherwise Fedora might get some ugly badges 😉

28811741586_e2ac08edae_z

Our (I and Dodji Seketeli) talk on Ensuring ABI stability in Fedora

Our main goal to have this talk in Flock was to make more people aware of the concept of Application Binary Interface and how one can ensure that application which they are writing/maintaining are ABI compatible across various releases. Slides and recording of our talk are also available to view.

During this talk, Dodji covered:

  • What ABI in C/C++ applications means
  • Artifacts which may lead to ABI changes like:
    • File format – right now we support only ELF file format
    • Target architecture for which binary has been compiled
    • Calling convention
    • Addition/Removal of functions and variables in source code
    • Change in type(s) of existing functions
  • Among found ABI changes in application, only some of them are incompatible changes such as: removal of existing functions or variables, incompatible layout changes in types.

28225418924_63469694be_z

Later on, I continued the talk and explained:

  • Automatic ABI checking performed in package updates shipped in Fedora koji using abicheck task integrated with taskotron.
  • Depending upon abicheck result, status message (PASSED, FAILED or NEED_INSPECTON) with log is sent to package maintainer(s) ( whoever has subscribed) for review. This is already running in production which you can view anytime.
  • Other than abicheck task run, libabigail provides tools which can be used by package maintainers (fedabipkgdiff, abipkgdiff) and developers (abidif, abipkgdiff) during development phase to avoid releasing ABI incompatible applications.
  • Verifying ABI changes log with live example taken from abicheck task run on gpgme package.
  • Various future improvements in our tooling like reducing memory consumption during ABI check run, extending ABI check run to all koji packages(right now runs only on packages mentioned in critpath), running ABI checks in rawhide on two distinct packages.

 

Talk was well taken by attendees and they had various curious questions (which have been recorded in our talk video).

28225417524_7f171272b9_z

During this conference, We managed to talk to some taskotron maintainers (Tim Flink and Kamil Páral) and got their feedback on existing status of abicheck task run. They seem pretty ok with its current status. We also discussed on following future works which needs to be done to improve ABI checking experience in Fedora:

  • Running abicheck task on all koji packages – We are already running ABI checks on important userspace packages with few exceptions due to memory constraints (kdelibs, firefox, thunderbird). Existing runs are stable now and it is time to extend to run on all packages and we all agreed in favor of. A task has already been created on phabricator which will get done soon.
  • Compare abicheck on two distinct builds in rawhide update – Currently, when abicheck run on rawhide packages, it ends up comparing between same nvr which is not very useful. This is because there is no tags like update-testing which we have in Fedora branches. In rawhide, latest build become the greatest. We thought of multiple solutions to fix it but for now we agreed to go on easily doable solution. We will compare latest build in rawhide with second immediate latest one. More details is getting tracked on phabriactor.
  • Run abicheck task only if package has Shared library – Right now abicheck task is only relevant if run on C/C++ shared libraries. Lot of packages in Fedora are non c/C++ and without shared libraries. So, it doesn’t make sense to waste resources by running on all packages. We have a task created in phabricator which will look into rpm package content first and look for shared libraries. Regex which we will use to find out shared libraries files are \.so[0-9.]*$’. If a package has at least one shared library then only perform abicheck run on it.

Overall, the conference was productive to me both technical and community wise. I met a lot of people in person to whom I have only talked over IRC channel/mailing lists. Also met some new people from the community. Thanks to all the organizers who did a great job with the organization. Everything was so great including venue, arrangements and evening events (sadly I couldn’t attend walking tour to city). I captured some pictures during my Flock trip which can be found at flickr.

28558664680_b608079857_z

Would love to visit Flock again with more contribution in Fedora 🙂

Devconf – Amazing place for a developer

As a fresh start of 2016, I got a chance to be part of Devconf – an annual conference which takes place in the beautiful Brno city of Czech Republic. From past three years, its been happening in February month’s first Friday to Sunday and hence this year it was from 5th to 7th February.

24773396030_35784f5c66_z2

This conference attracts not only developers but also Testers, System Administrators, Product Security groups, Packagers,  DevOps, and many more from different technologies and communities e.g. OpenShift, OpenStack, Container, SELinux, Fedora, Gluster, Kernel ,  JBoss, etc. If you don’t believe me, check out this year’s Devconf schedule yourself 🙂  I am sure that after looking into the schedule, you want to see interesting recorded talk’s videos.  No worries, Devconf organizers and volunteers did amazing job in uploading videos quickly on youtube. You can also find couple of photos taken by me during conference on flickr.

In this blog, instead of going into any kind of technical details of a talk, I will be doing a small walk-through of the conference from my perspective. In case you are looking for technical details, I recommend to look for schedule and recorded talks 🙂

At the beginning of conference, every participant was welcomed with a conference schedule booklet and pen! It was very handy to have the schedule in hand during conference. Later on,  Radek Vokál welcomed everyone to enjoy this year conference and insisted to be at conference till the end to win some interesting prizes 😉

The conference began with two parallel keynotes among which I went for Tim Burke ‘s talk on  Rock Star Recipe . He was previously a programmer and now vice president for Software Engineering at Red Hat. With his own experience, in 10 slides he explained beautifully how an engineer or a normal person can become a rock star. I am sure, everyone wants to be a rockstar. So, don’t forget to watch his talk 😀

24442073143_f5e00fc8ae_m1        24950812002_dfcfd720ae_m

In chilly Czech weather, I felt that Containers were the hottest topic of discussion for this year’s Devconf.  Very first day, talks in the main conference room were either directly about containers or integration with containers. To be honest, with my limited working experience with container technology I really like it!  To improve my knowledge about these, I mostly attended containers related talks on the first day. It’s good to see rapid growth and seriousness among people about docker containers. Lot of people are either trying or already running their applications in containers. Since there is discussion of containers, it is also good to keep track of project atomic – Create, deploy and manage containerized applications on a proven and trusted platform.

25065895736_6950efa694_z1   25042622406_b0d7b7566b_z

I love to know and learn about different Open Source projects, their communities and most important interacting with people. So, I spent the rest of the conference attending workshops, talks on Networking tools, POWER, QML, Product Security and Fedora community. Among lot of workshops, I managed to attend only two – Advanced packaging by Miroslav Suchý and Creating Automated Jobs to Run Against Fedora by Tim Flink. Packaging workshop improved my packaging skills and I hope to (c0)maintain some more packages. My love towards Libabigail project drew me to Tim Flink’s workshop. I wanted to understand and later implement a Taskotron task  which triggers ABI checks when a package is pushed for update in bodhi. I managed to understand some bits and soon will work on it!

24701204279_f998ee8d4e_z

 

Other than talks, there were multiple fascinating booths outside the main conference hall. Some of booths were about Red Hat, RDO, OpenShift, Foreman, Project Atomic, Fedora. I loved going to every booth and interacting with them to understand what’s new happening there. I also got awesome goodies from them (thanks for that!).

25042585956_54259bf885_m    24701311939_7a459e77f7_m

Conference ended with grand finale where winners got some interesting prizes like Yubikey, Raspberry Pi, Devconf T-shirts.

If you are interested in knowing precise information (data taken from Devconf site), there were total 3 Keynotes, 203 talks + workshops and 22 lightning talks :O Other than that, one organized city tour (which I missed) and one networking party at Starobrno brewery pub. I must say the conference was rich with variety of talks. There were 8 parallel tracks running for 3 days comprising around 1600 attendees. To keep everyone alive during conference, there were even sponsored beverages and food! And to manage everything, there were 110 awesome volunteers (Kudos to all of them!).

Thanks to all volunteers, organizers, sponsors, speakers, etc for this awesome Devconf. I hope to see you all again in next Devconf 😀

24975564931_0ee837f0cd_m          Cheers!

 

My first presence in Fedora Conference with FUDCon, Pune 2015

One of the popular Fedora conference called FUDCon which recently happened in beautiful campus of MIT College of Enginnering Pune. FUDCon stands for Fedora Users and Developers Conference and organized in different regions of world. After 2011, once again FUDCon APAC was organized in Pune from 27th to 29th June. I couldn’t attend FUDCon 2011 because I wasn’t involved in Fedora in any ways and sadly never came to know about it from any of my friends. Around 3 years back, when I heard about FUDCon, I decided that I will definitely go to this conference whenever and wherever it happens in India. In early months of 2015, I was thrilled when heard about FUDCon, Pune announcement. I also submitted a talk on ABI Compatibility with positive hope of getting it accepted (Yes! it got accepted as well 🙂 . Talk selection committee did very good job in selecting talks and putting them in a very well organized schedule

 

Day1

It started with very early reaching to MITCoE around 8:30am. We soon rushed to main Auditorium to attend first day keynote by Dennis Gilmore on Delivering Fedora for everything and everyone. In his keynote, he talked about upcoming changes in future Fedora releases. I was surprised when I saw his last slide where it was written ausil. Reason of getting surprised was that, I have seen this name at lot of places in section “built by” in  koji web interface while browsing through packages. It was good to see ausil talking on stage upfront. Keynote was followed by traditional lamp lightning by MITCoE professors and Amit Shah.

     

Later, I rushed to the seminar room where I was supposed to give a talk on ABI Compatibility I kept my talks simple, basic and easy so that even students can understand as well. I started with API and how API changes in an application can affect all API consumers by demonstrating API change in C printf() function. Further, talked about how ABI of an application may change and can lead to wrong results or crashes in application. Also discussed how you can make use of tools like readelf, objdump, abidiff, abicompat to do ABI analysis on C and C++ binaries. Audience were interested in knowing if we can use these tools on application from other programming languages as well but sadly answer is No. Talk ended with showing demo about how Libabigail‘s abidiff tool detects ABI changes between two versions of a library. Talk was well accepted by attendees.

Next talk was presented by Samikshan Bairagya which was about ABI changes in Kernel. He talked about advantages and limitation of genkysyms tool which is currently being used in kernel for ABI checks. Later, he introduced us to new tool called Spartakus on which he is currently working on. Spartakus aims to solve limitations of genkysyms. He also welcomed new interested contributors to Spartkus.

    

After the talk, I had a brief talk with Suchakra who other than contributing to Fedora does research and study in areas like profiling, debugging, OS and other low level stuff which interests me as well. I planned to attend his talks and workshop which was schedule on Day 2.

Outside conference hall, there was Fedora booth as well from where we all attendees picked awesome Fedora swags like stickers, DVDs, badges. It was also a great place for different people to interact with each other and talk and ask for help if needed.

Day 2

Day2 started with keynote by Jiri Eishchmann on current status and upcoming features in Fedora workstation. Everyone was thrilled when Jiri told in his talk that MP3 patent is going to expire soon and we can use it for free to play mp3 media!  Further, I attended Suchakra’s morning talk on different tracing tools like LTTng, SystemTap, Dtrace which went very well. I also attended workshop on Kernel module development  where I learned creating your own network packet filtering kernel module. Sadly, module didn’t compiled on my machine because of mismatch of kernel sub-packages versions. Error got fixed next  day when I updated my whole system with new kernel sub-pacakges versions.

      

In between, we also had group photo session with all Fedorians

FUDPub

After end of Day 2 conference, all volunteers and speakers gathered for FUDPub in Blue O. It was way awesome than I thought, free drinks, free games and Fedora friends ! Most of the time I spent doing bowling because it was unlimited 😀 Next day, I got reward of doing so much bowling by getting pain in hand 😛

Day 3

I attended introductory Docker workshop in morning which was lead by Lalatendu and Aditya. They did very well set-up for distributing Fedora vm with docker images already available in it. This avoided hassle of waiting for college internet for downloading on demand. Whole session was hands-on and that’s why I liked it very much. Further session was on Kubernetes which I attended partly and then moved to AskFedora UX/UI hackfest. I didn’t actually hack on anything related to UI/UX there rather was listening and noticing to what improvements they made and planning to do in AskFedora web interface.

      

Day3 ended up with closing ceremony where Rupali expressed her thanks on behalf of all Fedora community to  each group of attendees. I was amazed to see the enthusiasm of organizers and volunteers throughput the conference. Both of them did a great job in making this FUDCon a grand success. I would personally like to thank Fedora for approving my travel sponsorship request and providing a great stay in Pune. Few pictures which I captured is available on flickr . Will update with FUDCon talks videos link once it is available.

In one sentence, “Another great conference” for me! Looking forward to be part of upcoming Fedora events and conferences.

 

Talk on ABI Compatibility in FUDCon, Pune

I am happy and excited to attend FUCon APAC 2015. It is a Fedora user and developer conference with wide varieties of talks on topics like packaging, QA, design, documentation, etc. This year, it is happening in MIT College of Engineering, Pune, India from 26th June to 28th June. Schedule of FUDCon is already up and you can choose in advance what all talks you want to attend. This year, there will be 3 parallel tracks going on as main talks. If you don’t like listening to talks much, then you can go for workshop which is also happening in parallel.

This FUDCon is special to me because it will be my first Fedora conference and on top of it I will be speaking as well on ABI Compatibility . Slides and demo to be shown during talk are already available on github. This talk will walk you through why and how your application could be incompatible with upgrading dependent packages required for your application. Later, introducing to different tools which you can use to avoid using/developing incompatible ABI (Application Binary Interface) in your application. At the end, a demo showing how ABI incompatibility gets introduced in a C library across its two versions, its effect on application consuming that library and how  ABI tools detect that ABI change, will make your understanding even more clear.

See you all during FUDCon!

 

 

Another amazing conf.kde.in !

Conf.kde.in 2015 –  KDE conference organized by passionate KDE India team. This year it took place in Amrita college, Kerala from 17th to 18th April.  Schedule of these two days conference included talks on various KDE applications, Qt tutorial,  how to contribute to KDE, etc. We also organized Qt workshop to give a hands-on feeling to attendees.  Slides and pictures from conference are available.

 

Compared to past conf.kde.in, I felt venue of this year pretty different because this college had very cultural touch as it was near to Ahsram, it also had beautiful beach around 10 minutes walking distance from venue, beautiful backwater flowing very near to Guest house we were staying, also teachers of college were interested and involved as well throughout conference and were personally taking care whether everything is fine or not.

    

Day1

After registration, first day of conference started with opening ceremony where college teachers involved in FOSS community, Pradeepto Bhattacharya and Noufal Ibrahim addressed it by lighting lamp and traditional college prayer.

    

This year we did something different and as a result we had a keynote speaker Noufal Ibrahim who is Kerala based and is founder of PyCon India and PSF board member since 2012. It was pleasure in listening to his talk Reusable software – the UNIX way. In his talk he showed how easily you can come to know what exactly a book is about by using few UNIX command – sort, ls, wc, grep, awk, tail, uniq. It was good to see the power of UNIX commands and people appreciating it.

Further Pradeepto gave brief introduction to what KDE is, its aim and objective. In addition to that Shantanu gave a glimpse of different awesome KDE applications and showed how beautiful KDE software and helpful community is.  To keep conference interactive, Shantanu announced among audience that whoever will ask or answer question will get Qt/KDE stickers and goodies and it really worked 😀

In order to keep audience curious and interested, next talk was on Krita– Awesome digital Painting Software by Somsubhra Bair who is contributing to Krita from around 2 years.  He showed couple of beautiful videos about painting in Krita and talked what other powerful and amazing work you can do using krita.

        

Later Pinak Ahuja talked about his SoK experience and how he started contributing to KDE. This talk was quite motivating to attendees in order to getting started with KDE. To add more motivation and building confidence in attendees,  Shantanu gave Qt/QML basic tutorial and showed how easily you can create basic elements like Rectangle, images, etc in QML and how easily you can add animation to it. To give a hands-on experience we also added workshop for students in college lab where Qt creator and needed libraries were already set-up by local volunteers. Everyone enjoyed building basic application themselves and few of them were also able to do what Shantanu gave task. We all speakers were helping out attendees with problem and queries.

 

     

Day 2

Second day started with A tour to Marble project  by Sanjiban Bairagya where he talked about  different features of Marble like virtual tour from one place to another comprises of earth and also other planets like Mars. He also demonstrated how easily you can navigate from one place to another over globe.

Next was my talk where I talked this time on a different topic – Qt on Android.  I opted this topic because I knew there is lot of craze among students for creating android apps. So, I thought let me learn how to make Android app using Qt and talk on same. I demonstrated how easily you can run your Qt application on android and distribute generated .apk file to others and also how to publish app to Google play store. Android app which I created was Imgs and somehow I managed to publish it to Google play store. Attendees were very much interested in listening to this talks and it seems more than  50% of them had android phone and most of them were interested in creating their own Android application.

 

   

Further, talks were going on in conference room and in parallel we also conducted Qt/QtQuick workshop for few first year students who missed out in Day1. I was helping students with their doubts, issues and monitoring ensuring if everyone is on track. It was good to see that all first year college students were able to grasp whatever Shantanu demonstrated and were able to do it by own.

Interesting talk from Ashish Madeti on MPRIS support for multimedia applications. Ashish started his KDE journey from conf.kde.in 2014 and in one year he did really great work in KDE and especially in Plasma Media Center and Simon project in order to add MRIS support and enabling voice command in PMC. It was very good to see a student  giving talk who started his KDE journey from same conference, it felt rewarding and worth doing KDE conference in India 🙂

   

Last talk of the day and conference was by Karan Luthra on Trojitá project. Karan talked about what all features Trojitá provides and why to use it and how  to contribute into it. It was good to see a fast and lightweight  email client. Looking forward to try it out in my system and will see whether it fits my need or I should continue using Kmail.

        

At the end of conference, attendees and speakers were talking to each other and having discussion on  KDE projects they were interested on. I also distributed Fedora stickers sheets among attendees which I got from my Fedora friends and talked to few attendees/teachers regarding attending upcoming FudCon APAC conference.

Another conf.kde.in ended with the help of hard work involved by Organizers, volunteers and local college authorities. I was so excited to know how Harish who took initiation for organizing this year conf.kde.in met Pradeepto and rest all happened.  Many thanks to KDE eV for sponsoring me as well as other speakers to make this event successful. I am proud to be a KDE contributor and being a part of such an awesome and loving community. I hope with this year conf.kde.in we will get another few new member in our KDE family 🙂

Cheers!