When creating updates remember to build for rawhide and Fedora 25 (devel)

When ever we branch for a new release of Fedora I, and others, end up spending a non trivial amount of time ensuring that there’s a clean upgrade path for packages. From the moment we branch you need to build new versions and bug fixes of packages for rawhide (currently what will become Fedora 26), for the current stabilising release (what will become Fedora 25) as well as what ever stable releases you need to push the fix for. For rawhide you don’t need to submit it as an update but for the current release that’s stabilising you do need to submit it as an update as it won’t just automagically get tagged into the release.

As a packager you should know this, it’s been like it for a VERY LONG TIME! Yet each cycle from the moment of branching right through to when a new release goes GA I still end up having to fix packages that “get downgraded” when people upgrade between releases!!

So far this cycle I’ve fixed about 20 odd with the latest being bash-completion (built but not submitted as an update for F-25) and certmonger (numerous fixes missing from F-25 and master branch).

The other silly packaging bug I end up having to fix quite a bit is NVR downgrades where even though it’s a newer package the way the NVR is handled makes rpm/dnf/yum think the newer package is a lesser version than the current version and hence you’re new shiny fix won’t actually make it to end users. I see this a lot where people push a beta/RC package to a devel (F-25/rawhide) release. Just something to be aware of, there’s lots of good docs around the way rpm/dnf/yum handles eNVR upgrades.

Allwinner ARM SoCs

Allwinner ARM Systems on a Chip is a cheap SoC producing some cheap and interesting devices. The SoCs themselves are made in China by a company that licensed the Cortex-A8 reference design from ARM, it was one of the earlier ARMv7 chips so isn’t bleeding edge but it is ARMv7 so fully hardfp compatible. They currently produce two widely available chips the Allwinner A10 and A13.

The Allwinner chips are something I’ve been interested in supporting in some form or another on Fedora ARM for a while as they simply have a lot of cheap hardware available that is of reasonable specs. There’s a few things that have stopped me to date. Firstly it doesn’t appear that all their kernel code is upstream as yet so we’d be in a similar situation as we are with the Raspberry Pi. I’ve also not had a lot of time of late (as can be seen by my lack of blog posts recently!) as I’ve had other more pressing things non Fedora ARM things on my plate. Lastly I’ve been concentrating on ensuring Fedora 18 and rawhide remains in reasonable shape, the kernels of the devices we support keep moving forward and I’ve also got some other boards that have upstream kernel support I would like to see being usable on Fedora. Simply put… there’s just not enough hours in the day.

The other day I noticed that the company behind the Allwinner SoC (or some other company) had decided the create a cheap development board similar to that of the Pi, BeagleBoard or some of the other devices on the market. It’s called the CubieBoard.

It’s an interesting board. It’s some what higher speced than the Pi being an 1Ghz ARMv7 Cortex-A8 processor with 1Gb of RAM (or 512Mb), 4Gb of NAND Flash, 100Mb ethernet, most of the usual peripherals and interestingly a onboard SATA port. All for $49.

I contacted the CubieBoard team to see what their plans were for Fedora support and offered my assistance. I’ve since got an email back saying they’ll send me a board to enable us to get it working with Fedora. So once I’m back from holidays I should have a Allwinner A10 board waiting for me which I can start investigating what is required to support the Allwinner devices in Fedora. It seems they’re moving to get the kernel support upstream, there’s also a project to write an open source X driver for the MALI 200 and 400 GPUs. So with luck before long we might have another class of cheap ARM devices for people to play with Fedora on.

Failure to build

Having done two complete OS builds of Fedora on ARM. First with Fedora 14 and now with Fedora 17 on both hardfp and softfp flavours of ARM is never ceases to amaze me how many packages won’t build on mainline Fedora. Now days if I get a build failure on ARM the very first thing I do is a scratch build on mainline so I can be sure whether the problem is ARM specific or a general failure, in a lot of cases sadly it’s the later.

What’s more it’s surprising to see how many packages are FTBFS post mass rebuilds even though it’s advertised that packagers need to fix their build failures post mass rebuild. In fact post F-17 mass rebuild there’s still nearly 300 packages that are FTBFS in F-17 and that’s just doing a basic grep against the latest f-17 tagged packages so it doesn’t take into account packages that were built in the f17-build prior to gcc 4.7 landing but are FBTFS with gcc 4.7.0, ruby or some of the other F-17 features.

I know of the last 3-4 months I’ve personally fixed into the 100s of broken packages, and I know spot fixes a lot too but it still amazes me that maintainers don’t fix the build failures for their packages. A lot of fixes, especially for the older build packages, are basic things like patch fuzz so shouldn’t be hard to fix!

A list of the current < f17 packages currently tagged into F-17 stable (sorry if there's already a fix in the works via updates-testing): Mayavi-3.4.0-2.fc15 Panini-0.71.103-5.fc15 PyKDE-3.16.6-7.fc15 Temperature.app-1.5-8.fc16 UnihanDb-5.1.0-7.fc15.3 alacarte-0.13.2-3.fc16 alevt-1.6.2-16.fc15 amanda-3.3.0-2.fc16 apache-commons-fileupload-1.2.2-2.fc15 apache-commons-jxpath-1.3-6.fc15 apache-commons-launcher-1.1-7.20100521svn936225.fc15 ape-1.1.0-3.fc15 aplus-fsf-4.22.4-21.fc16 async-http-client-1.6.1-1.fc16 audtty-0.1.12-3.fc15 autoarchive-0.2.0-3.fc15 ax25-apps-0.0.6-8.fc16 barcode-0.98-17.fc15 base64coder-20101219-2.fc16 blahtexml-0.8-3.fc16 boolstuff-0.1.13-2.fc15 bwa-0.5.9-1.fc16 cargo-parent-4.7-1.fc15 chronojump-0.8.14-1.fc12 cmucl-20b-1.fc15 cobertura-1.9.3-3.fc15 compat-flex-2.5.4a-6.fc12 coredumper-1.2.1-10.fc12 crossvc-1.5.2-7.fc12 ctemplate-0.97-1.fc14 dhcp-forwarder-0.9-1501.fc15 diveintopython-5.4-19.fc16 driftnet-0.1.6-21.20040426cvs.fc15 dvipdfm-0.13.2d-42.fc15 eboard-1.1.1-7.fc15 eclipse-anyedit-2.3.3-2.fc15 eclipse-collabnet-merge-2.2.1-2.fc15 eclipse-emf-query-1.4.0-2.fc15 eclipse-emf-transaction-1.4.0-2.fc15 eclipse-emf-validation-1.4.0-2.fc15 eclipse-m2m-qvtoml-3.0.0-2.fc15 eclipse-mdt-ocl-3.0.0-2.fc15 eclipse-mdt-uml2-3.1.0-2.fc15 eclipse-mercurial-1.8.2-1.fc16 emacs-common-proofgeneral-3.7.1-5.fc15 email2trac-0.13-6.fc12 erlang-ebloom-1.0.2-5.fc15 erlang-js-0.5.0-3.fc16 esc-1.1.0-14.fc15 ext3grep-0.10.2-2.fc15 ezmorph-1.0.6-3.fc15 fbdesk-1.4.1-7.fc15 fbida-2.07-8.fc15 fedora-idm-console-1.1.3-3.fc15 felix-parent-1.2.1-6.fc16 felix-shell-1.4.2-3.fc15 fillmore-lombard-0.1.0-5.fc15 flickcurl-1.18-2.fc15 freenx-client-0.9-11.fc15 fuse-emulator- fvwm-2.5.30-4.fc16 fwbuilder-4.1.2-1.fc15 g-wrap-1.9.11-4.fc12 gant-1.8.1-5.fc15 gconf-cleaner-0.0.3-2.fc15 gdmap-0.8.1-8.fc15 gengetopt-2.22.3-1.fc13 gforth-0.7.0-5.fc16 gimmix- gmpc-0.20.0-4.fc15 gnaughty-1.2.4-2.fc15 gnofract4d-3.13-2.fc15 gnome-do-docklets-0.8.2-4.fc15 gnome-speech-0.4.25-5.fc15 gok-2.30.1-1.fc15 goldendict-1.0.1-4.fc16 gooddata-cl-1.1.9-2.fc15 google-gson-1.7.1-3.fc16 grace-5.1.22-9.fc16 gshutdown-0.2-8.fc16 gtkglextmm-1.2.0-10.fc12 gtkmm-utils-0.4.1-3.fc15 gtksourceview-1.8.5-8.fc15 gtksourceview-sharp-2.0.12-14.fc16 gtksourceview2-sharp-1.0-10.svn89788.fc16 gtksourceviewmm-2.10.2-2.fc16 gwget-1.0.4-5.fc15 hardinfo-0.5.1-3.fc15 healpix-2.13a-2.fc14 ibus-table-cangjie- ibus-table-cantonese- ibus-table-code- ibus-table-others- ibus-table-xingma- ibus-table-yinma- icewm-1.3.7-1.fc16 ini4j-0.5.1-1.fc16 ipe-6.0-0.32.pre32patch1.fc12 jaffl-0.5.9-1.fc16 jgraph- jmol-12.0.41-1.fc16 jpoker-1.0.16-2.fc15 json-lib-2.3-5.fc15 kadu- kaffeine-1.2.2-1.fc16 kismet-0.0.2011.03.R2-1600.fc16 komparator-0.9-5.fc15 krecipes-1.0-0.2.beta2.fc15 ksplice-0.9.9-2.fc15 latexila-2.3.0-1.fc16 lekhonee-gnome-0.11-4.fc15 libAfterImage-1.20-2.fc15 libbsr-0.2-4.fc12 libcrystalhd-3.5.1-1.fc14 libfc14audiodecoder-1.0.2-3.fc17 libfwbuilder-4.1.2-1.fc15 libgdbus-0.2-6.fc15 libgdiplus-2.10-2.fc16 libgtkhotkey-0.2.1-4.fc15 libgtksourceviewmm-0.3.1-7.fc15 libharu-2.1.0-3.fc15 libhid-0.2.17-6.fc15 libinfinity-0.5.0-2.fc15 libkml-0.6.1-8.fc15 libmnetutil-0.8.0-0.3.20100629svn3775.fc15 libofx-0.9.4-1.fc16 libopensync-plugin-opie-0.22-5.fc15 libpano12-2.8.6-5.fc15 libqttracker-6.11.0-2.fc15 libsoup22-2.2.105-9.fc15 libvpd-2.1.1-2.fc15 licq-1.3.5-10.fc15 links-2.2-13.fc15 lsvpd-1.6.8-3.fc15 maven-changelog-plugin-2.2-7.fc16 maven-changes-plugin-2.6-2.fc16 maven-invoker-plugin-1.5-5.fc16 maven-license-plugin-1.8.0-5.fc16 maven-plugin-cobertura-2.5.1-1.fc16 maven-stage-plugin-1.0-0.3.alpha2.fc16 mercury-1.0-0.4.alpha6.fc16 metapixel-1.0.2-7.fc15 mimetic-0.9.6-2.fc15 mod_scgi-1.13-5.fc15 mod_security-2.5.12-4.fc15 moksha-0.5.0-5.fc15 munipack-1.2.10-2.fc15 nagios-plugins-rhev-1.0.0-2.fc16 natus-0.1.5-2.fc15 ndesk-dbus-0.6.1b-1.fc13 node-0.3.2-8.fc15 notify-sharp-0.4.0-0.14.20100411svn.fc15 ntfs-config-1.0.1-13.fc15 numptyphysics-0.3-0.6.20080925svn.fc15 ocaml-augeas-0.4-9.fc15 ooo2gd-3.0.0-1.fc16 openoffice.org-diafilter-1.7.0-6.fc15 openvrml-0.18.8-2.fc16 ovaldi-5.9.1-1.fc16 parole- perl-Config-Augeas-0.701-5.fc16 perl-Crypt-CBC-2.29-8.fc16 perl-Log-Any-0.11-6.fc16 perl-MD5-2.03-10.fc16 perl-Module-Starter-Plugin-CGIApp-0.30-6.fc16 perl-Test-Refcount-0.07-1.fc16 perl-XML-Filter-XInclude-1.0-9.fc16 pgp-tools-1.1.3-4.fc16 php-ezc-Authentication-1.3.1-2.fc15 php-pear-File-Find-1.3.1-1.fc15 php-pear-Payment-Process-0.6.6-7.fc16 pianobooster-0.6.4b-3.fc15 piccolo2d-1.3-9.fc16 pino-0.3-0.3.20101112hg.fc15 pioneers-0.12.3-3.fc15 pki-java-tools-1.3.1-1.fc14 plexus-sec-dispatcher-1.4-4.fc16 pmd-4.2.5-11.fc16 pngcrush-1.6.10-7.fc15 pngnq-1.1-1.fc16 pnmixer-0.3-1.fc16 polyxmass-bin-0.9.8-2.fc12 postgresql-odbcng-0.99.101-0.5.test1.fc15 postgresql-pgpoolAdmin-2.2-2.fc12 postgresql_autodoc-1.40-2.fc14 printoxx-2.8.1-2.fc15 professor-is-missing-0.1-6.fc15 putty-0.60-7.20100910svn.fc15 pxe-kexec-0.2.3-3.fc15 pysvn-1.7.5-1.fc16 python-GeoIP-1.2.5-0.4.20090931cvs.fc15 python-HTMLgen-2.2.2-14.fc14 python-bitarray-0.3.5-4.fc15 python-blinker-1.1-1.fc16 python-blist-1.3.4-1.fc16 python-catwalk-2.0.2-4.fc15 python-cclib-1.0.1-1.fc16 python-cement-0.8.18-2.fc16 python-cerealizer-0.7-3.fc15 python-cherrypy2-2.3.0-15.fc15 python-cherrytemplate-1.0.0-12.fc15 python-chm-0.8.4-10.fc15 python-clientform-0.2.10-2.fc15 python-cloudservers-1.2-3.fc16 python-coffin-0.3.5-2.fc16 python-compositor-0.2b-4.fc15 python-configobj-4.7.2-3.fc15 python-couchdb-0.6.1-4.fc15 python-cpio-0.1-12.fc15 python-cssutils-0.9.7-2.fc15 python-ctags-1.0.5-4.fc15 python-daap-0.7.1-7.fc15 python-daemon-1.6-1.fc16 python-dialog-2.7-14.fc15 python-dictclient-1.0.1-6.fc14 python-dmidecode-3.10.13-3.fc15 python-dns-1.9.4-1.fc16 python-dotconf-0.2.1-12.fc15 python-dpkt-1.7-2.fc15 python-drizzle-0.08.2-7.fc15 python-dtopt-0.1-8.fc15 python-durus-3.9-2.fc14 python-empy-3.3-7.fc15 python-enum-0.4.4-3.fc15 python-epdb-0.11-6.fc15 python-exif-1.0.8-6.fc15 python-formencode-1.2.2-4.fc15 python-modjkapi- python-mpmath-0.17-2.fc15 python-pywt-0.2.0-3.fc15 python-unidecode-0.04.7-4.fc16 qalculate-kde-0.9.7-3.fc15 qbrew-0.4.1-7.fc15 qtparted-0.4.5-26.fc15 quesoglc-0.7.2-2.fc15 qwtplot3d-0.2.7-10.fc15 ragel-6.6-3.fc15 raul-0.8.0-2.fc15 rinputd-1.0.4-1.fc16 rmic-maven-plugin-1.1-7.fc16 rpmdepsize-1.0-7.fc15 scite-2.22-2.fc15 selenium-core-1.0.2-0.5.20100324svn.fc15 selenium-remote-control-1.0.3-8.20100318svn.fc15 sinjdoc-0.5-10.fc15 snoopy-1.8.0-1.fc16 sofsip-cli-0.16-3.fc15 specto-0.3.1-3.fc15 sphinx-0.9.9-6.fc16 spor-1.0-4.fc15 sshfp-1.2.0-1.fc16 stardict-3.0.2-2.fc16 stratagus-2.2.4-9.fc15 subcommander-2.0-0.7.fc15.7 surf-0.4.1-3.fc15 svnkit-1.3.4-2.fc15 symkey-1.3.0-4.fc13 synapse-0.2.6-1.fc16 synfigstudio-0.62.02-1.fc15 tesseract-3.00-2.fc15 testng-6.0.1-1.fc16 tilda-0.9.6-6.fc16 tomoe-0.6.0-19.fc15 tucnak2-2.31-1.fc13 txmpp-0.0.2-3.fc14 txt2man-1.5.6-1.fc15 tyrion-0.1.0-1.fc15 ucblogo-6.0-8.fc15 umlgraph-5.4-2.fc15 uncrustify-0.58-1.fc16 vifm-0.5-5.fc15 vorbisspi-1.0.3-3.fc15 winwrangler-0.2.4-2.fc15 wmdrawer-0.10.5-11.fc16 wmfire-1.2.3-4.fc15 wmweather+-2.11-3.fc15 wormux- writer2latex-1.0.2-6.fc16 xaos-3.5-2.fc15 xdrawchem-1.9.9-15.fc15 xesam-glib-0.5.0-5.fc15 xmlbeans-2.4.0-7.fc15 xulrunner-python-2.0-1.20110406hg.fc16 xxdiff-3.2-14.fc15 yaws-1.89-4.fc15 zhu3d-4.2.2-3.fc15

Fedora 17 and rawhide build failures from the mass rebuild

I would like to remind people to check if their package is in the failure list for packages that have failed to compile since the Fedora GCC 4.7 mass rebuild. There’s still well over 550 packages that have failed to build! I’ve fixed well over 50 of them myself as they packages were holding up the Fedora 17 ARM building but frankly I’m getting somewhat sick of fixing things that the package maintainers should be actively dealing with. So check the failure list and if a package is yours or you can fix it please do so 🙂

Projects I would love to see packaged in Fedora

I suspect this won’t be my last post like this. I use to just package them up myself but I’m finding that the amount of packages I maintain is increasing and the time I have to actually maintain them is decreasing and I know there’s people that are likely better suited to some of these packages than I am.

PinPoint – a tool for making hackers do excellent presentations
What more do I need to say! PinPoint is a clutter based tool for making cool presentations without death by bullet point.

Media Explorer – a media centre application for Linux
Media Explorer is another clutter/Mx based project for playing various types of media. It leverages existing libraries (GUPnP, Grilo, Tracker, GStreamer) to find, index and play local and remote media. It comes from the original Moblin team and looks very cool.

SqueezeBox server
SqueezeBox server is a music server for Logitech’s excellent SqueezeBox devices but it works with other devices. There’s upstream rpms but its unfortunately broken with Fedora 15. The server is written in perl and I believe the code is all open source including a number of clients.

There’s a couple of utils that are part of the libiMobileDevice project that some people might find useful that aren’t yet packaged. ideviceinstaller for app management is one, nautilus-ideviceinfo for extended information in Nautilus is the other.