1. %patch should DIE

    I am not maintaining packages in Fedora. But my work is related to building them for AArch64 architecture. And this means editing patches and/or adding new ones…

    When I was doing AArch64 bootstrap in OpenEmbedded it was easy. Altering Debian/Ubuntu packages was also simple task. Why? Because in both situations patches are applied in developer friendly way so it is visible which ones are applied in which order and (as quilt is used) they are also easy to refresh and edit.

    But not in Fedora. Here we have %setup and %patch macros which use workflow from 80’s. Yes, patch <px file.patch is not modern way of handling patches which may need work. especially when you first fetch and install all build dependencies just to get build failed cause nth patch does not fully apply. or when your work requires to alter patches 3rd, 7th and 13th.< p>

    Sure, there is %autosetup macro which should solve a problem. But it does not. There are packages where some patches are reverse applied or with other patch level than 1. I saw also ones where there is extra directory change during applying diffs.

    So dear package maintainers — please migrate to %autosetup (with quilt or git) to make life of other developers easier. I think that there will be more people satisfied when this will happen than just me.

    Written by Marcin Juszkiewicz on
  2. It is 10 years of Linux on ARM for me

    It was somewhere between 7th and 11th February 2004 when I got package with my first Linux/ARM device. It was Sharp Zaurus SL-5500 (also named “collie”) and all started…

    At that time I had Palm M105 (still own) and Sony CLIE SJ30 (both running PalmOS/m68k) but wanted hackable device. But I did not have idea what this device will do with my life.

    Took me about three years to get to the point where I could abandon my daily work as PHP programmer and move to a bit risky business of embedded Linux consulting. But it was worth it. Not only from financial perspective (I paid more tax in first year then earned in previous) but also from my development. I met a lot of great hackers, people with knowledge which I did not have and I worked hard to be a part of that group.

    I was a developer in multiple distributions: OpenZaurus, Poky Linux, Ångström, Debian, Maemo, Ubuntu. My patches landed also in many other embedded and “normal” ones. I patched uncountable amount of software packages to get them built and working. Sure, not all of those changes were sent upstream, some were just ugly hacks but this started to change one day.

    Worked as distribution leader in OpenZaurus. My duties (still in free time only) were user support, maintaining repositories and images. I organized testing of pre-release images with over one hundred users — we had all supported devices covered. There was “updates” repository where we provided security fixes, kernel updates and other improvements. I also officially ended development of this distribution when we merged into Ångström.

    I worked as one of main developers of Poky Linux which later became Yocto Linux. Learnt about build automation, QA control, build-after-commit workflow and many other things. During my work with OpenedHand I also spent some time on learning differences between British and American versions of English.

    Worked with some companies based in USA. This allowed me to learn how to organize teamwork with people from quite far timezones (Vernier was based in Portland so 9 hours difference). It was useful then and still is as most of Red Hat ARM team is US based.

    I remember moments when I had to explain what I am doing at work to some people (including my mom). For last 1.5 year I used to say “building software for computers which do not exist” but this is slowly changing as AArch64 hardware exists but is not on a mass market yet.

    Now I got to a point when I am recognized at conferences by some random people when at FOSDEM 2007 I knew just few guys from OpenEmbedded (but connected many faces with names/nicknames there).

    Played with more hardware then wanted. I still have some devices which I never booted (FRI2 for example). There are boards/devices which I would like to get rid of but most of them is so outdated that may go to electronic trash only.

    But if I would have an option to move back that 10 years and think again about buying Sharp Zaurus SL-5500 I would not change it as it was one of the best things I did.

    Written by Marcin Juszkiewicz on
  3. Crazy ARM Server hack idea

    During break between talks I spoke with Rob Taylor and Andreia Gaita about lack of ARM powered servers. And then cute hack appeared in my head…

    Rockchip released RK3268 (if I got numbers correctly) which uses four Cortex-A12 cores. There are HDMI dongles with it and 2 GB of ram.

    So the idea is: we take 1U server case, glue as many dongles as we can and connect them with USB cables for power and network. Then put some OpenStack or other software to maintain a cloud and it may even work.

    The problems Rob noted would be heat and lack of bandwidth. But it would be cute embedded nonsense hack.

    Written by Marcin Juszkiewicz on
  4. Is being connected a need or a must?

    For all previous FOSDEM visits I was offline. You know: high roaming costs, not liking to use random open wifi networks etc. But not this time.

    I arrived yesterday morning at BRU airport. Planned to buy a simcard there but managed to skip whole shopping part without realising what I did.

    But when I arrived in a city centre I noticed a “free wifi” sign at the Novotel hotel so decided to make use of it. Flood of Google+ and Facebook notifications was what I got. Checked in on Foursquare and minute later met XorA with Anya. We took a coffee, discussed about work, life and then went for some walk.

    Half hour later I left some small shop with a BASE simcard in my Nexus 5 with 1GB of transfer available. My standard simcard went to the backup phone (Nokia 101 this time). Quick look at Foursquare, Google+ and Facebook and I saw where my friends are and could get in contact. Met Philip, Koen, Vladimir and several other guys, got invited to a dinner etc. Managed to take some portals down in Ingress game as well ;-)

    Not that I would not be able to survive without a local simcard. There are lot of open wireless networks in Brussels but how many of them are safe?

    Written by Marcin Juszkiewicz on
  5. Conferences in February

    Next month will start with conferences… Tomorrow I go for FOSDEM 2014 then one day break (to change bags) and then Devconf.cz in Brno, Czech Republic.

    It will be 6th visit at FOSDEM for me. I do not plan to man a booth for any project and hope to find time to visit at least few talks — this year list is quite long:

    • A Method for Distributing Applications Independent from the Distro
    • Anatomy of kdbus
    • ARM: Allwinner sunxi SoC’s and the community behind it
    • CentOS: Planning for Variants and the Next Chapter
    • Ceph
    • Considering the Future of Copyleft
    • Cross Distro Automation
    • Debian Contributors
    • Discover DoudouLinux live!
    • GNURadio as a general purpose DSP environment
    • How we found a million style and grammar errors in the English Wikipedia
    • Introducing the Meson build system
    • IP risks for OSS developers
    • Is distribution-level package management obsolete?
    • Legal issues from a radical community angle
    • lima driver: Opening up the Mali instruction set
    • Lumicall — an open alternative to Viber
    • MINIX 3 on ARM
    • No more IPv4
    • Nouveau — On-going work, demos and research
    • OpenJDK on AArch64 Update
    • OpenPandora and a peek into the future
    • osmocom: Overview of our SDR projects
    • Persistent Memory
    • Porting FreeBSD on Xen on ARM
    • Reproducible Builds for Debian
    • Software Archaeology for Beginners
    • State of the X.org foundation
    • State of Thunderbird
    • Sunxi KMS driver
    • Technical introduction to the deeper parts of Sailfish OS, a Qt5-Wayland based mobile OS
    • Testing Kernel GFX Drivers
    • The evolution of Android’s runtime
    • The Lima driver
    • UEFI is not your enemy
    • Virtualization Dungeon on ARM
    • Who ate my battery?
    • Why You Should Be an Open Source Project
    • Xen on ARM

    As usual it would be success if I will manage to see 30% of them as for me FOSDEM is a place to meet people from other projects to share ideas rather than spend time on sessions.

    Next will be Devconf.cz but first ARM Hackfest a day before at Red Hat office (an option to check my badge). This conference is more Fedora related and I hope to meet interesting people there to discuss how to do some things. No talks selection as there will much smaller amount of them so I can do it between sessions ;D

    If you want to catch me at conferences then use Google Hangout, Facebook Messenger or just mail me. I plan to have local SIM card to be always online.

    Written by Marcin Juszkiewicz on
  6. New AArch64 hardware — AMD this time

    AMD announced their new SoC: Opteron A1100. But instead of yet another x86-64 chip it is AArch64 one.

    Slide from AMD Seattle announcement
    Slide from AMD Seattle announcement

    It is visible that they made Server-on-Chip but give me one and I will make a desktop computer from it. All it takes is USB 3.0 controller and graphics card with HDMI audio.

    I wonder will it boot UEFI or U-Boot…

    More information and slides are in Anandtech article.

    Written by Marcin Juszkiewicz on
  7. Xulrunner/AArch64 on a way to upstream

    I finally sent Xulrunner support for AArch64 upstream. From 76KB patch I went to 14 patches with 132KB in total due to other diff options like more context lines.

    Will not bother with whole history of a patch. It involved three external projects:

    • libffi (merged upstream long time ago, xulrunner needs to update their copy)
    • double-conversion (see Qt/AArch64 post for details) also update needed
    • libevent got fix for deprecated syscalls which needs to be merged into xulrunner’s copy

    Splitting patch went quite easy thanks to help from Xulrunner developers: mstange froydnj Tomcat Ms2ger glandium which told me how to submit my patch, which already existing bugs to update and who assign to code reviews.

    And for patches please go to dependency tree of bug #962534.

    And one note: AArch64 big endian was not fully covered. Endianness info was provided in most places for both little and big options.

    Written by Marcin Juszkiewicz on
  8. The story of Qt/AArch64 patching

    In over a year of my work as AArch64 porter I saw a lot of patches. But Qt one has the most interesting history.

    Around year ago when I was building whatever possible during my Linaro work we got to the point when Qt jumped into a queue. Build failed but fixing was quite easy — all I had to do was to take “webkitgtk” patch written by Riku Voipio and apply it to Qt 4. Resulting file landed in “meta-aarch64” layer of OpenEmbedded and is still there.

    Time passed. More common distributions like Debian, Fedora, OpenSUSE, Ubuntu (alphabetical order) started working on their AArch64 ports. And one day Fedora and Ubuntu started working on building Qt 4. I do not know who wrote QAtomic stuff but I saw few versions/iterations of it and it took me quite long time (first on model, then on real hardware) to get it fully working in Fedora — used Ubuntu version of patches.

    Up to this moment it was over 9 months and still no upstreaming was done. So one day I decided to go for it and opened QTBUG #35442. Then reopened issue #33 in “double-conversion” project (which is used in few places in Qt) as they got good fix and merged wrong one (but it is fixed now). For that one I opened a request to update to newer version of “double-conversion” as QTBUG #35528.

    But story did not end there. As Qt 4 development is more or less ended I was asked to provide fixes for Qt 5. Took me a while. Had to create a graph of build time dependencies between Qt 5 components (had to break few in meantime) and slowly module after module I got most of it built.

    There were 3 components which required patching:

    First one is solved upstream and waits for Qt guys. I was told that 5.3 will get it updated. Second one is already reviewed and merged. Last one left and here is a problem as it looks like the only person who does QtWebKit code reviews is Allan Sandfeld Jensen but he can not review code he sent. I am not able to do that due to Qt Contributor License Agreement which needs to be signed and (due to legal stuff) I can not do that.

    So how it looks now? I would say that quite good. One 3rd party project needs update (in two places of Qt 5) and one patch needs to get through code review. I still need to send package updates to Fedora bug tracker. Ubuntu will need to merge patches when they move to 5.2 version.

    Written by Marcin Juszkiewicz on
Page 28 / 105