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.


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 😉


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.


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).


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.


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.


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!



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



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


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.



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 🙂


Fedora 21 Release Party, Bangalore

Fedora 21 got released on 9th December 2014 targeting desktops, servers, and cloud. To celebrate this release, Fedora Release Party was organized at Red Hat, Bangalore on 10th Jan, 2015.

This was my first Fedora event which I attended and no doubt it was very nice experience. Around 40 people appeared for this event which included students from local colleges, employees from local Companies and few from Red Hat as well. Among them few were already using Fedora while some of them were using Ubunutu/Windows as primary desktop. It was good to see different people who came to celebrate Fedora 21 release party!

All talks were lined up in a very well fashion. It started with  introduction to Fedora by Archit ,  followed by what all new cool features Fedora has by Ratandeep . Fedora 21 has new flavour i.e cloud and this was covered in more detail by Neependra Khare who talked about Project Atomic. Now, its time for talk about how you can contribute to Fedora like as a Packager, Content Writer, Designer, Translator, Administrator, etc and it was well covered by Sayan .


I also got an opportunity to give a talk on Basic RPM packaging in Fedora. Now a days, I am learning Fedora packaging and wanted to contribute to Fedora as a Packager. I thought this is a great place to talk about it because most of attendee would be new to packaging. I enjoyed giving talk because everyone was quite interested in knowing about how packaging is done. It was well taken by audience and I hope they will learn more in details from awesome Fedora wiki pages.

In between, to make Release Party more awesome there was a beautiful and delicious Fedora cake. Everyone participated in cake cutting and had lots of fun 😀


(Copyright Ratnadeep Debnath)

At the end, there was Open House session where everyone participated and did fruitful discussion. All attendees also got Fedora 21 live CD which they will try at home.


Overall, event was great, organizers did very good job, everyone enjoyed Fedora 21 release party. Looking forward to be part of other Fedora events in future.

Running Plasma Media Center on Fedora, Ubuntu and openSUSE distro

Hi to all !

Good news for all PMC lovers and those who wanted to try it but haven’t yet. Anyone can easily install PMC on their system with little effort. Only you need to do is, follow the steps which are mentioned below.

Required packages

– 17, 18 and 19

$ sudo yum groupinstall “Development Tools”

$ sudo yum install kde-workspace-devel kdelibs-devel

$ sudo yum install qt-mobility-devel

$ sudo yum install taglib-devel

$ sudo yum install nepomuk-core-devel

– 20 and higher versions

$ sudo yum groupinstall “Development Tools”

$ sudo yum install kde-workspace-devel kdelibs-devel

$ sudo yum install qt-mobility-devel

$ sudo yum install taglib-devel

$ sudo  yum install baloo-devel kfilemetadata-devel

Optional Package(kffmpegthumbnailer)

In order to install  kffmpegthumbnailer, enable rpmfusion free repo

$ sudo yum localinstall –nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

$ sudo yum install kffmpegthumbnailer


– 12.10, 13.04 and 13.10

$ sudo  apt-get install cmake kde-workspace-dev kdelibs5-dev build-essential

$ sudo  apt-get install libdeclarative-multimedia

$ sudo  apt-get install libtag1-dev

$ sudo  apt-get install kffmpegthumbnailer

$ sudo apt-get install nepomuk-core-dev

– 14.04 and higher versions

$ sudo  apt-get install cmake kde-workspace-dev kdelibs5-dev build-essential

$ sudo  apt-get install libdeclarative-multimedia

$ sudo  apt-get install libtag1-dev

$ sudo apt-get install baloo-dev libkfilemetadata-dev

Optional package (kffmpegthumbnailer)

In order to install kffmpegthumbnailer package in Ubuntu 14.04,  add ppa:mc3man/trusty-media

$ sudo add-apt-repository ppa:mc3man/trusty-media

$ sudo apt-get update

$ sudo  apt-get install kffmpegthumbnailer

openSUSE (13.1 and higher versions)

– checkout blog http://sujithh.info/2013/12/plasma-media-center-on-opensuse-13-1/
Build Instructions

Common for all distro
$ git clone git://anongit.kde.org/plasma-mediacenter

$ cd plasma-mediacenter

$ git checkout  v1.4

$ mkdir build

$ cd build

$ cmake .. -DCMAKE_INSTALL_PREFIX=`kde4-config –prefix`

$ make

$ sudo make install

Note: If you find any error related to moccpp and don’t want to build test, pass -DKDE4_BUILD_TESTS=OFF to cmake


Cool! Now you are ready to try it . So, what are you waiting for? Give it a try and have fun.
Still facing any problem? Have suggestion, feedbacks? post as comment!