Category Archives: Linux

The O/S that keeps me free (as in speech and beer)

Fedora under construction?

Fedora’s quality makes complacency easy. But in truth, we’re always under construction — or we should be. You could call that constant disruption by different names. Risk positive. Forward leaning. Embracing change. Since inception, Fedora was intended to avoid the status quo. So what’s next for shaking up said status?

2178390257_66010d4b08_o
Courtesy of US Library of Congress.

Season recap

As you’re probably aware, starting with Fedora 21 our releases are a bit different. We now have different editions, each serving a specific type of consumer. The editions today are Workstation, Cloud, and Server. The editions differ in mostly minor ways, though, and we build them mainly the same way. That’s why these editions aren’t the end goal of change. Rather, they’re a step in changing what Fedora releases.

Matthew Miller, Stephen Gallagher, and others have been steadily laying out a vision for change in Fedora. Admittedly, that vision’s high level. It uses words like “Rings” to simplify and amplify concepts that are about change. These concepts are well attuned to higher level Fedora goals. While editions can effectively broaden Fedora’s appeal to different consumer audiences, we also want to attract more makers of things.

These days, the largest maker audience is beyond just those who care about building a platform. As Red Hat’s Paul Cormier said last year, “The application is king.” Makers of applications and things above the OS are always on our minds. So how does this relate to the Fedora release of the future?

Season preview

For many years now, we’ve been building our release essentially the same way. We take a big bag of packages, like building blocks, and glue them together in a group that makes sense. We wrap that group in a shippable format (or several), sometimes with an installer, validate, and release it. Lately many Fedora folks are thinking about what that future release looks like, though. I would offer that the future release should be some combination of a strongly managed center, curated stacks, and an expanding nebula of containers.

Managed center? Does that mean the return of Fedora Core? No. Forget about Fedora Core. It’s dead, and it’s not coming back. Having the central part of the OS carefully managed in the community isn’t the same thing. Fortunately, there are emergent tools to do this. Among them, Project Atomic looks like one of the best bets in the space we care about. Atomic makes shipping an integrated, validated set of content easier. That content still comes from the packages we know well — kernel, glibc, bash, and others. But the rpm-ostree basis of Atomic can prevent slew in an installed system.

What do I mean by “slew”? Right now, the only Fedora release we know well is the one we put out at GA. After that, all bets are off. Any user potentially has a random subsets of updates on top. Saying “I’m using Fedora 22″ is not very meaningful soon after release. That slew also makes validation, troubleshooting, diagnosis, and recovery unnecessarily hard. What if we manage this central content more carefully, using a model like rpm-ostree? We could validate a release more regularly, at least at a basic functional level.

There are other benefits as well. What if we constructed Rawhide using the rpm-ostree model? Imagine that an important core piece of the OS broke. We’d want to file that bug, track, fix, and update. Right now, hundreds of developers have to manually, sometimes painstakingly, fix their systems. This wastes large amounts of aggregate time. This problem is largely why many interested developers don’t run Rawhide as much as would be helpful. In the new model, if you’re invested in the problem, you can still work on it, of course. But the rest of the Rawhide users could, with a single command, back out to the previous tree and keep working. This keeps more interested (and interesting) people using Rawhide.

You could probably make a case for file system snapshots here. I think those are still useful for user data in this model. It’s not clear that snapshots would solve the slew problem above without imposing restrictions on them in some fashion. Would users be happy with that? Hard to say.

So what about these curated stacks? Well, to be honest it’s not yet clear what tech wins here. On one hand, enhancing rpm-ostree to allow layering might be a way forward.  Currently rpm-ostree is somewhat monolithic in that you can’t really mix or match stacks readily… yet. My understanding is the Atomic guys are thinking about this problem already, though, and how to solve it. So I expect the code will catch up to (and maybe overtake) the concept before we know it.

Alex Larsson is also doing interesting work on what he calls “sandboxed apps.” Sandboxing in this model might not be too different from containers. The concepts seem quite similar. Throw into this mix the recent progress on overlayfs, which is now part of the mainline Linux kernel. What you have is ripe ground for a new method to build and release big swaths of a platform.

Again, we have building blocks of a solution for interesting problems, some long-standing. The problems of the central core above are shared at common application layers as well. But it’s useful to detach them at key dividing lines for obvious reasons. In some way, shape, or form, it seems inevitable that Fedora must take a swing at these problems, even if it’s on a per-edition basis.

10921733615_56f0835096_o
Courtesy of Glyn Lowe (CC-BY 2.0).

This leaves the nebula of containers I mentioned. A year and a half ago, containers were all the rage. People were thinking about how they affected the technology landscape for infrastructure. Perhaps some people reading this were thinking about containers as a fad. Time and consumers and commercial customers have pretty much proved that wrong. Containers allow app developers and users to move swiftly (or not) independent of the OS. The technology is here to stay, because it mostly makes OS maintenance issues someone else’s problem. In this case, ours — Fedora’s.

For a long time we’ve relied on people working the application layer to radically change their methods if they’re interested in deploying on Fedora. But frankly, time has shown the world doesn’t care to do that. So our choice is to adapt or face irrelevance. Matthew Miller has spoken to this point several times, so I won’t belabor it. My only other point is that, however we build the future Fedora release, it should make King App comfortable.

Renewal

For those people who might ask why we should take on this work, I’d start with a couple of thoughts. First, what’s in it for me as a contributor? Well, it depends first on whether you care about an edition that might use this model. I’m pretty involved in Workstation edition. For some time we’ve been interested in how to update Fedora for consumers at the OS and application level, rather than packages.  And something like a core + containers model using Atomic directly solves that problem. The Cloud SIG already has an Atomic image designed primarily for container management. Their user base has different expectations from Workstation. But clearly there’s room for great collaboration here, and I expect for Server too.

Another reason this is interesting is app vendor involvement in Fedora. Containers abstract the distribution problems away from application vendors. We know Fedora is in a lot of embedded hardware and other projects in the Real World. That problem space fits well with our current platform construction model. As I said before, we don’t necessarily need to stop doing that. But at the same time, embracing the rise of the app container lets us more effectively reach the developer audience. This is not just about our Workstation edition but, more generally, people who build and make interesting things. This is also somewhat tied up with the implementation of Rings. That’s why I look forward to Matthew and Stephen driving more detail and progress on that front.

Finally, by solving this problem we can effectively influence the value of future RHEL, as well as CentOS and our other family members. That value is one reason Red Hat invests time and resources in our community. Making changes to grow that value is always a win-win for Fedora as well.

The hero’s journey

So, does all this mean we won’t have live or installation ISOs in the future? Not necessarily. They could still be useful. It would depend, as most things do, on what it takes to validate and maintain all those things in the long run. For example, I don’t see this idea necessarily affecting spins. Communities around those releases are accustomed to how they build their bits.  But I think at least one (maybe more) of the official Fedora release editions will need to opt for this new model if we’re to make progress.

The entire set of changes needed isn’t yet clear, of course. One thing that is clear: release engineering process is, by definition, central. And there’s no doubt we’re looking at a healthy chunk of work. But I believe strongly enough in the possibilities that our team has an extra full-time person now to drive planning of those changes, consult with the Fedora release engineering team, and build a community around the tools needed. We are going to emphasize modularity, so the winning technology of tomorrow can plug in to releases down the road. The initial goal I’d like to set is to prototype a release of at least one Fedora edition for F23, and be part of F24 official release at GA.

That means it’s going to be an exciting year of construction ahead for Fedora. So please excuse our dust!

2363688612_6d71737477_b
Courtesy of Jakob Montrasio (CC-BY).

 

Another new Fedora team member.

I’m excited to tell you about another* new addition to the Fedora Engineering team. In mid-April, Laura Abbott joins our kernel team. She comes to us most recently from Qualcomm. Her projects there included memory management and debugging support. She’s also a regular contributor to the Linux kernel upstream. Laura will work with Josh Boyer and Justin Forbes on projects relating to both the upstream and Fedora kernel.  We’re happy to have Laura joining our team soon. Please help us extend her a warm welcome.

* As you know from my last announcement, Adam Miller also joins us in April. He’ll work on release tools and process for Project Atomic and other leading edge technologies.

New addition.

I’m proud and pleased to announce that Adam Miller is joining the Fedora Engineering team in mid-April, as our new release infrastructure guru. Adam is not new to our community — he’s been involved in Fedora for a number of years. He also has a long history of working on automation, release, and continuous integration in OpenShift, and I’m thrilled he’ll be bringing his experience and energy to our team. Among other things, Adam will be working on the next generation of release tools and deliverables in Fedora, in conjunction with the release engineering team and our community. I hope the Fedora community will join me in welcoming him.

New features in Fedora 22 Workstation.

Matthias Clasen recently posted some updates on the Fedora development list about new features in Fedora 22 Workstation. As you may know, we’re getting ready to issue an Alpha, so it’s a great time to try out these changes.

  • Notifications have improved significantly in Fedora 22. The message tray no longer hides in the bottom, but is subsumed into the top bar. You can review them from the calendar popup. (Here are the original mockups.) Please try out the notifications with your favorite applications and report bugs if you find functional problems.
  • The GNOME Shell theme has been refreshed.
  • The login screen in Fedora 22 Workstation now runs over Wayland, but falls back to the standard Xorg server if something goes wrong. This is part of Fedora’s overall strategy of getting things running on Wayland early. Wayland as a session option was available in Fedora 21, but we are ultimately moving toward having it as the default in a future release. Note that the fallback calls Xorg in a slightly different way, so you may see bugs (and filing a bug report is welcome).
  • The UI for installation of codecs, fonts, MIME types, and so on is now handled by GNOME Software. This change further enhances the sense of GNOME Software as a one-stop shop for installing things, which was a highly praised feature in Fedora 21.
  • Nautilus has had multiple improvements, including more pleasant and logical context menus and controls (here are the designs).

Fedora 22 Alpha is scheduled to release on March 10. We hope you’ll give it a try, so you can test drive these new features. Those of you knowledgeable about Fedora 22 pre-releases can find early test candidate images for Alpha in the usual places. Please use Bugzilla to file helpful bug reports. If you need help filing a bug report, this wiki page may be useful.

Fedora kernel engineer.

Red Hat has an immediate opening for a full-time engineer to join the kernel team in Fedora Engineering. This job will work with Josh Boyer and Justin Forbes to maintain and improve the kernel in Fedora, and participate and contribute to upstream development and testing. This job interacts with the Fedora team and community, the RHEL kernel engineering groups, and the upstream kernel community.

Ideally we’re looking for someone with significant kernel experience. We want someone who can help manage our own kernel releases. But also we want to get patches and code upstream where it can benefit the entire community, for example to improve hardware support. Red Hat’s a challenging and exciting place to work, and the Fedora team is a great bunch of people to work with. A talented, motivated kernel hacker will find plenty of opportunity here for growth and collaboration.

Applications are being accepted now. You can find more information about the job, and apply online, via the posting here on our Red Hat Jobs site.

 

Design Team FAD 2015.

I’m here in Westford over the weekend with other members of the Fedora Design Team for their Fedora activity day. I traveled up to chilly Boston on Thursday midday, so I could assist by transporting people from the airport to our hotel in Westford.

On Friday, we convened in the Red Hat office in Westford. As is usual for my Westford visits, I pretty much spent the day running from place to place taking care of things unrelated to the Design team, but which needed to be done in my role as a manager. Fortunately most of the day was spent by the team figuring out policy and processes. I don’t feel like my input was needed there, or even appropriate since I’m not a frequent contributor to design tasks — as much as I love the team! So it all worked out for the best, I think.

Today, though, I was able to contribute. One of the major task areas was to do issue triage and fix up the team’s Trac instance. That was something I was (somewhat) qualified to do. I helped the team go through all the pending tickets, closing stale tickets (no response, unclear goals, redundant, etc.).

Then, using the categories developed by the team on Friday, I helped update the parameters on the Trac instance to match. I also set up a bunch of reports on Trac to match relevant agenda items for the reboot of the Design team meetings. This way, they can call up a set of reports to follow up on tickets methodically.

I even learned some good SQL-fu thanks to my buddy Langdon White. I finally got a start shedding my misunderstanding of joins, so I can do more complicated queries. One of the results was this report, which tells the team when an issue reporter is not responsive to questions, in line with the processes the team worked up on Friday.

People tried hard to make sure the FAD was remote accessible, so if you couldn’t be here, you could still monitor or participate. It was difficult to keep some of the facilities working. For instance, this afternoon I discovered that someone had bounced us from our own room on OpenTokRTC. That made it, well, rather difficult for us to broadcast there. I hope remote attendees will understand the difficulties and be confident we tried to make this a decent remote event.

Tonight I’ll probably think about some additional reports, and then do a little personal work. Tomorrow will be some more work sprints until I start chauffeuring people to the airport after lunch. I was happy to be part of the group and to help the participants have an effective FAD.

Fedora Engineering internships.

Each summer, Red Hat’s intern program brings in highly motivated and qualified students for a unique, enriching experience. Red Hat internships are demanding, challenging, and fun, just like our full-time jobs. They’re highly selective and (hopefully) highly rewarding for the participants. In the best cases, we find interns who are right for Red Hat, and we may look to hire them permanently after they leave school.

This year, the Fedora Engineering team has two summer intern positions open, and I wanted to make sure people in the community have seen them:

These internships expose students to Red Hat culture and give them opportunities to interact in person with other interns and Red Hat associates. For that reason, both internships are in the Westford, MA (USA) office. Being with other Red Hatters daily will help interns learn more about Red Hat as a company while they work on Fedora. (We may be flexible for a truly exceptional candidate.)

We’re still accepting applications, but we need to talk to specific candidates and make selections soon. So if one of these opportunities sounds like the perfect challenge, use the links above to get your application in before next week!

Congratulations to the Fedora community on F21.

This release has been a long time coming. It has been about a year since F20 release, and the pause we took as a community to embark upon the first steps of Fedora.next. I know many people have been anxious for the pause to be over. Finally the day has come and gone, and the release seems to be hitting on all cylinders!

I wanted to say thanks to the whole community that contributed to Fedora 21 release. It’s impossible to name everyone who helped, and if I leave someone out it might disappoint someone. So let me just say to everyone:

AWESOME JOB!

Now go get some Fedora 21 awesomeness.

Git by a bus.

David Gay pointed me to an interesting project called Git by a Bus. Git by a Bus analyzes your git repository and attempts to quantify risk of having lots of code knowledge tied up in only a few people. Git by a Bus does its analysis by going through the repo history and making an estimate of what it calls unique knowledge.

This project blog page describes the analysis and metrics used. Perhaps this is a useful way to show how Fedora is doing as a project, across repositories like our web applications and infrastructure. It might show where we need to encourage further community development and participation so we avoid the “eaten by raptors” problem.

You might recall that “eaten by raptors” is Fedora shorthand for “hit by a bus” (violent idiom) or “going to work for another company” (not always applicable to Fedora, although certainly to Red Hat as a major contributor). We try to solve this problem by spreading project knowledge and documenting our processes. That way, if someone was eaten by velociraptors, the project can keep going without too much of a disturbance. This problem is common to any team or enterprise, not just open source. But I like to think our velociraptor spin is unique.

Here’s an example output I prepared for the MirrorManager project, which we use to provide content to Fedora mirrors worldwide. This is a potential example of high risk. One developer (the inimitable and awesome Matt Domsch) has unique knowledge of this project that is at risk if velociraptors manage to track and eat him. No doubt Matt would put up a good fight, but as you probably know they are clever girls.

Thankfully, there is a MirrorManager related Fedora Activity Day happening later this year. During that time the Fedora infrastructure, release engineering, and applications teams hope to accumulate and document more MM-related knowledge. At the same time they’ll be using this knowledge to architect, plan, and further develop the next revision of MirrorManager.

If you’re a principal in an FOSS project using git for your code, you might find Git by a Bus useful.

Samsung ATIV 9+ loves Fedora 21 Alpha.

Today I received my brand new laptop, a Samsung ATIV 9+ (model 940X3G-K04), and of course my first exercise was to boot it on Fedora 21 Alpha. This model has the QHD+ 3200×1800 text display with a touchscreen, and a solid state 256 GB storage device.

First steps with Samsung ATIV 9+

I downloaded the manual on another system, which I read to discover I should hold down the F2 key at power-up to get into the BIOS setup.

I inserted a USB stick with Fedora 21 Alpha installed, before starting the laptop. By the way, I published a screencast on how to make that Live stick. Then I got into BIOS setup, and used the Boot options to enable booting from the USB stick.

I decide to make a full disk image of the pristine hard disk, compress it, and send it to backup just in case. I don’t feel like keeping 20 GB of the disk reserved for a Windows operating system I’m unlikely to use. So:

dd if=/dev/sda bs=1M | gzip -c | ssh paul@192.168.0.X 'cat - > samsung-ativ-full-disk.img.gz'

I’m pretty sure this is going to tie up the laptop for longer than I’d like. On the plus side, it will give the CPU a bit of a burn-in as well. I ran through an installation after the disk copy was finished.

Booting after installation

The first hurdle was that the GRUB text screen is so small as to make it almost impossible to see for anyone over the age of 18. With the aid of a microscope I was able to find the right option to boot without testing. 😉

Note #1: If the screen is also very dim, you can visit the BIOS setting to turn off the automatic screen dimming at boot time.

The actual boot from the Live USB stick was completely uneventful. Of course systemd was super-fast. In no time at all I was in the Live session.

Applications and interface

GNOME 3.14 did an excellent job detecting the HiDPI type display. The GNOME top bar and dock were sharp and readable. The display is gorgeous, quite comparable to a Retina-model MacBook Pro.

Some apps are still suffering a bit on HiDPI, though. LibreOffice and Firefox UI elements are far too small by default. Epiphany a.k.a. GNOME Web, on the other hand, works great. This is probably because GNOME Web responds to the overall GNOME display settings for HiDPI.

Note #2: To make the Firefox interface more HiDPI-friendly, visit the about:config URL page, and change the setting for layout.css.devPixelsPerPx to 2.

The Ctrl and Fn keys are reversed from my Lenovo x220 I’ve used for the last 3.5 years. Sigh, muscle memory. But the function keys mostly seem to work (other than the Windows specific ones).

Samsung ATIV 9+ touchpad issues

After hitting Fn+F5 to test the touchpad enable/disable function on the keyboard, I found the touchpad worked erratically. It sometimes didn’t work at all, even after a cold restart of the laptop. The pointer would disappear when the Terminal application or other text entries came to the foreground. The GNOME on-screen keyboard would emerge at these times, even if I didn’t need it and wasn’t touching the screen.

GNOME hacker and Fedora buddy Ray Strode, in his usual generous style, kindly entertained my questions and found some help for me. This seemed to do the trick:

sudo modprobe -r samsung_laptop
gsettings set org.gnome.settings-daemon.plugins.peripherals.touchpad touchpad-enabled true

Ray opined that the routine that was catching the function key to disable touchpad was, for some reason, no longer catching it to re-enable. This might have something to do with the kernel module. I plan to investigate further next time I reboot the system.

Touchscreen

This is where the enabling work in GNOME shines. A lot more systems these days have touch screens available. I love the fact that I can drag my apps around the screen with a finger as opposed to the touchpad. The standard auto-sizing targets at top, left and right all work well, so I can quickly maximize or half-size windows.

Unfortunately, the resizing handles on window sides and corners are difficult to grab accurately, which is frustrating. On HiDPI touchscreens, perhaps there’s a way to increase the size of these targets. Overall though, far more goodness than badness.

Other issues

The keyboard backlight does not work if you install in EFI mode. Presumably, I should be able to reinstall the system after turning off Secure Boot in the BIOS, and then regain this capability. I’ll probably try that over the weekend so I don’t take more time away from productive work during the week.

Overall impression

The laptop itself seems to have sturdy build quality. It’s an attractive slate/charcoal color. The shell definitely shows oil from even clean, dry hands. The glossy touchscreen of course shows even more smudging. It would be nice if Samsung included a cleaning cloth.

I already love the touchscreen and find myself using it to quickly select the Activities overview, the GNOME settings at the upper right, and to swipe the notifications area into or out of view. The display is gorgeous and very bright even at half brightness.

One of the Samsung’s primary draws is its very slim profile. Besides the power adapter port and one USB 3.0 port on each side and the ubiquitous Kensington port, there is a mini-DisplayPort, a small port for the included gig-Ethernet dongle, a mini-HDMI port, and a TRRS-compatible 3.5mm headset port.

I wish the power adapter, whose jack is very slim and concerns me as potentially fragile, was something more like Apple’s “MagSafe” power connector. I’m sure that’s patented up and down to prevent anyone having such a feature. But for klutzes like me it’s definitely a huge help.

The 8GB of RAM seem well-suited, even generous, for a productivity user like myself who occasionally dabbles in virtual machine guests or other memory-intensive applications. It might be sub par for someone who has to run a lot of such apps often. But the ATIV 9+ seems weird to buy an ultralight laptop if that’s your use case, so I think 8GB is about right.

The 256GB solid state drive is incredibly fast. It’s my first SSD and I was shocked at the difference for doing not just the installation, but post-installation updates and software additions, as well as migrating my data over GbE from my older Lenovo x220 to the Samsung. It remains to be seen how the SSD stamina works out based on my routine style of use. However, I suspect if SSD is moving into the general marketplace it’s a good match for me since I’m usually more like a general productivity or creative content user.

I would say the ATIV 9+ is the best rival for the MacBook Air or Pro that I’ve seen.