Activity Not Available


  Analyzed about 1 month ago based on code collected about 1 month ago.
Posted 5 days ago
A few weeks ago an issue was opened on fwupd by pippin. He was basically asking for a command to return all the hashes of the firmwares installed on his hardware, which I initially didn’t really see the point of doing. However, after doing a few ... [More] hours research about all the malware that can hide in VBIOS for graphics cards, option ROM in network cards, and keyboard matrix EC processors I was suitably worried also. I figured fixing the issue was a good idea. Of course, malware could perhaps hide itself (i.e. hiding in an unused padding segment and masking itself out on read) but this at least raises the bar from a security audit point of view, and is somewhat easier than opening the case and attaching a SPI programmer to the chip itself.

Fast forward a few nights. We can now verify ATI, NVIDIA, INTEL and ColorHug firmware. I’ve not got any other hardware with ROM that I can read from userspace, so this is where I need your help. I need willing volunteers to compile fwupd from git master (or rebuild my srpm) and then run:

cd fwupd/src
find /sys/devices -name rom -exec sudo ./fwupdmgr dump-rom {} \;

All being well you should see something like this:

/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/rom -> f21e1d2c969dedbefcf5acfdab4fa0c5ff111a57 [Version:]

If you see something just that, you’re not super helpful to me. If you see Error reading from file: Input/output error then you’re also not so helpful as the kernel module for your hardware is exporting a rom file and not hooking up the read vfuncs. If you get an error like Failed to detect firmware header [8950] or Firmware version extractor not known then you’ve just become interesting. If that’s you, can you send the rom file to as an attachment along with any details you know about the hardware. Thanks!

Richard. [Less]
Posted 5 days ago
So this will be the first in a series of blogs talking about some major initiatives we are doing for Fedora Workstation. Today I want to present and talk about a thing we call Pinos.

So what is Pinos? One of the original goals of Pinos was ... [More] to provide the same level of advanced hardware handling for Video that PulseAudio provides for Audio. For those of you who has been around for a while you might remember how you once upon a time could only have one application using the sound card at the same time until PulseAudio properly fixed that. Well Pinos will allow you to share your video camera between multiple applications and also provide an easy to use API to do so.

Video providers and consumers are implemented as separate processes communicating with DBUS and exchanging video frames using fd passing.

Some features of Pinos

Easier switching of cameras in your applications
It will also allow you to more easily allow applications to switch between multiple cameras or mix the content from multiple sources.

Multiple types of video inputs
Supports more than cameras. Pinos also supports other type of video sources, for instance it can support your desktop as a video source.

GStreamer integration
Pinos is built using GStreamer and also have GStreamer elements supporting it to make integrating it into GStreamer applications simple and straightforward.

Pinos got some audio support
Well it tries to solve some of the same issues for video that PulseAudio solves for audio. Namely letting you have multiple applications sharing the same camera hardware. Pinos does also include audio support in order to let you handle both.

What do we want to do with this in Fedora Workstation?

One thing we know is of great use and importance for many of our users, including many developers who wants to make videos demonstrating their software, is to have better screen capture support. One of the test cases we are using for Pinos is to improve the built in screen casting capabilities of GNOME 3, the goal being to reducing overhead and to allow for easy setup of picture in picture capturing. So you can easily set it up so there will be a camera capturing your face and voice and mixing that into your screen recording.
Video support for Desktop Sandboxes. We have been working for a while on providing technology for sandboxing your desktop applications and while we with a little work can use PulseAudio for giving the sandboxed applications audio access we needed something similar for video. Pinos provides us with such a solution.

Who is working on this?
Pinos is being designed and written by Wim Taymans who is the co-creator of the GStreamer multimedia framework and also a regular contributor to the PulseAudio project. Wim is also the working for Red Hat as a Principal Engineer, being in charge of a lot of our multimedia support in both Red Hat Enterprise Linux and Fedora. It is also worth nothing that it draws many of its ideas from an early prototype by William Manley called PulseVideo and builds upon some of the code that was merged into GStreamer due to that effort.

Where can I get the code?
The code is currently hosteed in Wim’s private repository on freedesktop. You can get it at

How can I get involved or talk to the author
You can find Wim on Freenode IRC, he uses the name wtay and hangs out in both the #gstreamer and #pulseaudio IRC channels.
Once the project is a bit further along we will get some basic web presence set up and a mailing list created.


If Pinos contains Audio support will it eventually replace PulseAudio too?
Probably not, the usecases and goals for the two systems are somewhat different and it is not clear that trying to make Pinos accommodate all the PulseAudio usescases would be worth the effort or possible withour feature loss. So while there is always a temptation to think ‘hey, wouldn’t it be nice to have one system that can handle everything’ we are at this point unconvinced that the gain outweighs the pain.

Will Pinos offer re-directing kernel APIs for video devices like PulseAudio does for Audio? In order to handle legacy applications?
No, that was possible due to the way ALSA worked, but V4L2 doesn’t have such capabilities and thus we can not take advantage of them.

Why the name Pinos?
The code name for the project was PulseVideo, but to avoid confusion with the PulseAudio project and avoid people making to many assumptions based on the name we decided to follow in the tradition of Wayland and Weston and take inspiration from local place names related to the creator. So since Wim lives in Pinos de Alhaurin close to Malaga in Spain we decided to call the project Pinos. Pinos is the word for pines in Spanish [Less]
Posted 5 days ago
In heavily populated IRC channels such as #debian on Freenode, a lot of idle IRC users are joining and leaving every couple of seconds. At the moment, we display a status message for every user in the room which in some cases results in a lot of ... [More] visual noise.
another busy day on #debian. 9 out of 17 messages in the chat view are status messages..

This problem is filed as bug 711542 in GNOME’s bug tracker. I have decided to try addressing this issue with some logic.

The main purpose of status messages is to indicate activity concerning a user, such as the user joining a channel, disconnecting or being renamed. The two primary use cases I see for displaying status messages in the chat view are:

..when a user on a channel is actively participating in a conversation, but then the user’s status suddenly changes. For anyone reading the conversation, it is interesting to know what has happened with the participating users as a change in their status can affect the conversation itself.
..when a channel is idle and no conversation is happening. In this case it is a convenience to display status messages. You might be waiting for someone particular to join the channel for example and thus is checking the channel occasionally to see if the person has joined the room. On the other hand, we also want to avoid flooding the chatView with status messages as it creates more unnecessary extra text to scroll through between conversations in log history.

To adress point one, I have implemented the concept of “active” users and “inactive” users. An active user is any user on the channel who has sent a message to the room within the last X* minutes. If the user is considered active, we allow any status messages related to this user to be displayed in the room.

Only recently active users emit status messages.

So because user Raazeer wrote “jelly, if I’m not back in ten minutes, I’ve destroyed my boot config and won’t be back today”, Polari will allow Raazeer’s status messages to be displayed the next X minutes. As can be seen in the screenshot above, a status message indicated that Raazeer disconnected shortly afterwards.

To address point 2, Polari will display status messages for any users provided there hasn’t been any conversation in the channel within the last X minutes. However, if more than 4 status messages are emitted while the channel is idling, Polari collapses the status messages and displays a single line summary instead. The summary can be expanded to reveal the details at any time.

Screenshot of a status summary in action. Clicking the “…” can be clicked to reveal the status messages.

With these changes I hope we’ll have less visual noise from status messages in Polari. Feel free to have try my current branch. With problems like these, I think the best way to find out if it’s solved, is by trying it over a longer period of time.

*duration to be discussed. It’s currently set to 5 minutes, which is unfortunate for Raazeer since he said he would return in 10 minutes. Maybe a good indication that I should use a higher number? d: [Less]
Posted 5 days ago
I am in San Francisco this week, for the second Westcoast Summit – this event was born last year, as a counterweight to the traditional GNOME summits that are happening every fall on the other coast.

Sunday was a really awesome day to arrive ... [More] in San Francisco, my hotel is right around Market St, where this was going on:

Maybe this inspired my choice of texture when I  wrote this quick demo in the evening:

Like last year, we are being hosted by the awesome people at Endless Mobile . And like last year, we are lucky to have the elementary team join us to work together and have a good time.

We started the day with a topic collection session:

Since everyone was interested in sandboxing and xdg-app, we started with Alex giving an overview of the current status and ideas around xdg-app. Endless has done an experimental build of their own runtime, and (almost) got it working in a day. After the general sandboxing discussion had run its course, Alex and I decided to patch evince to use the document portal.

In the afternoon, we did a session on GTK+ topics, which produced a number of quick patches for issues that the elementary team has in their use of GTK+.

Later on, KentonVarda and Andy Lutomirsky of came by for a very useful exchange about our approaches to sandboxing.

I have put some notes of todays discussions here. [Less]
Posted 6 days ago by (Magdalen Berns)

Firstly, it was awesome to see GNOME give the java-atk-wrapper project a mention in a recent GSoC article! :D As for the project itself: Each of the ATK interfaces (apart from AtkWindow) has an associated structure of function pointers (which ... [More] can be used to implement ATK interface methods as a wrapper functions, so over the past few weeks I have been creating the wrapper functions with the jaw_ prefix for java-atk-wrapper which I have identified. Some functions which got recently included to the wrapper's API are:
751123 jaw_table_cell_get_position (AtkTableCell function pointer)750640 jaw_object_ref_child (AtkObject function pointer)740543 jaw_action_set_description (AtkAction function pointer)740543 jaw_action_get_localised_name (AtkAction function pointer)750716 jaw_object_set_role  (AtkObject function pointer)750649 jaw_object_set_description  (AtkObject function pointer)750655 jaw_object_set_parent  (AtkObject function pointer)750647 jaw_object_set_name  (AtkObject function pointer)750620 jaw_object_get_parent  (AtkObject function pointer)750589 jaw_object_initialize  (AtkObject function pointer)751008 jaw_table_add_column_selection  (AtkTable function pointer)750998 jaw_table_add_row_selection  (AtkTable function pointer)751111 AtkTableCell interface wrapper class (AtkTableCell API)750786 jaw_object_get_object_locale (ATK function pointer)Where AtkObject is a base class and AtkAction, AtkTable, and AtkTableCell are interfaces. Java ATK interface methods are written in java classes in /org/GNOME/Accessibility. The jaw_ prefix functions which use the JNI specification to call java ATK java-atk-wrapper.jar class methods are organised in jni/src. "Class" signal handlers are written in AtkWrapper.c using the JNI specification so that they can be called by org.GNOME.Accessibility.AtkWrapper once the wrapper has been initialised with an accessible java application.

Testing and debugging java-atk-wrapper is particularly long winded and hazardous, so I have been exploring ways to improve on working practices and develop a more efficient system for testing patches too. I have also been updating the JavaAtkWrapper wiki page. Aside from all that, I have been doing a little tweaking to improve the java-atk-wrapper build, fixing a few bugs and I added a GSoC page (which still needs a bit of development!)

I suspect it might be worth adding some automated tests to check the wrapper functions with if there is some time for this. Last year, I used a gem called rspec to test wrapper functionality with FFTW, but at the moment with the wrapper, I mainly rely on Accerciser (or perhaps create a small pyatspi2 listener) for testing with SwingSet2 and Orca (I have added a few listener scripts to Alejandro's AT-SPI examples repository).

Please direct user support questions concerning the java-atk-wrapper  to gnome-accessibility-list and technical questions to gnome-accessibility-devel. All bugs are filed against Java ATK Wrapper in Bugzilla. [Less]
Posted 7 days ago by (Marcin Kolny)
Hi everyone,
This year I've been accepted to Google Summer of Code :) Last year I worked on Banshee project [1], and this year I joined to GStreamer [2] team.
This summer I work on tool for GStreamer-based applications - GStreamer ... [More] Debugger.

At the end of this summer, I'm going to provide you an application, which allows you to connect to your remote pipeline (obviously, lo interface can be used as well :)), watch pipeline graph (and its changes), spy selected queries, events, log messages, messages from bus and log messages, and even buffers. Application won't allow user modify pipeline and pipeline's state, but who knows - if it is useful feature, I implement it in the future.
GStreamer doesn't provide possibility to connect to pipeline, so I have to do it on my own.

June is a month, when I've exams on my university (fortunately, I've already passed all of them!), so I didn't spend as much time as I wanted on this project. Anyway, I accomplished a few milestones.
There's a list, what already has been done:
gst-trace [3] plugin, containing tcp server. For now, it sends GstEvents, GstMessages, and log messages to clients (todo: send GstBuffers, and GstQueries)client application, which displays events and log messages (todo: display GstBuffers, GstQueries, GstMessages). I have a lot of ideas, how to improve client application, but I'm not sure whether I meet GSOC deadline, so I suppose, most of them will be implement after Google's program. protocol - I used Google Protobuf library [4]. In general, I've defined most of protocol's structures, I just make minor improvements, when I need it.Below you can find a few screenshoots of client application. Full code can be found on my github account ([5], [6]).

[6] [Less]
Posted 7 days ago by (Jakub Brindza)
Hey everyone!

GSoC is passing by so quickly! I don't know why I'm having this feeling but I just wanted to create another blog post and, looking at the previous one, I came to the realisation that very few things have changed since then ... [More] (sadly)!

How come?! One thing is, I've been quite busy and so did not contribute 100% of my time. On the other hand, though, I have come across several tough challenges as you can see from my most recent PR. I found it quite difficult to implement some of the previously well-working feature in the GTG Task editor.

Most importantly, despite Izidor's great explanation and discussion about buffers, I marked writing code that would be responsible for removing a tag from a task as the main challenge. What I'm trying to do is to view a complete list of actively used tags in the task editor in a popover and the user will be able to tick / untick as many as he likes and the changes would be applied to that particular task. The "tick" part was quite simple as GTG offered such functionality before and so re-implementing it was easy. However, to "untick" a tag means to remove the @tag section from the text, in other words, it means to iter through the entire task text field, search for all occurrences of @some_tag and remove the one particular which was unticked.
I'm quite discombobulated by this and it's become the greatest challenge so far.

Furthermore, I managed to implement viewing a parent of a task by clicking on the parent button, however, another challenge lies ahead: What I need to do is to view a popover with all the parents in the case a task has more than one parent. User will be afterwards able to choose which one of the parents they want to modify. My idea was to create a list that would hold all the parents of the currently edited task and then iter through that list and place each of the parents as a separate field in the parents popover. However there is a piece missing in my puzzle, I need to put more effort into this, it is not working as it should be.

So to sum up, I feel like I need to speed up! A lot of great work is planned and I want to do as much as I can!
Currently I have three existing PRs which need to be finished, mid-term evaluations are here too, so this week will be crazy, full of work and I hope successful hours of coding! :) [Less]
Posted 8 days ago
tl;dr: gnome-common is deprecated, but will be hanging around for a while. If you care about modernising your build system, migrate to autoconf-archive macros.

This GNOME release cycle (3.18), we plan to do the last ever release of ... [More] gnome-common. A lot of its macros for deprecated technologies (scrollkeeper?!) have been removed, and the remainder of its macros have found better replacements in autoconf-archive, where they can be used by everyone, not just GNOME.

We plan to make one last release, and people are welcome to depend on it for as long as they like. However, if you want new hotness, port to the autoconf-archive versions of the macros; but please do it in your own time. There will be no flag day port away from gnome-common.

Note that, for example, porting to AX_COMPILER_FLAGS is valuable, but will probably require fixing a number of new compiler warnings in your code due to increased warning flags. We hope this will make your code better in the long run.

There’s a migration guide here:

We’ve tried to make the transition as easy and smooth as possible, but there will inevitably be hiccups. Please let me know about anything which breaks or doesn’t make sense, or discuss it on the desktop development list thread. First person to complain about -Wswitch-enum gets a prize.

For developers

When building from a tarball of a module which uses the new macros, you will no longer need gnome-common installed. (Although you may not have needed it before.)

When building from git, you will need m4-common or autoconf-archive installed.

JHBuild bootstrap installs m4-common automatically, as does gnome-continuous; so you don’t need to worry about that.

For packagers

In the 3.14.0 release, gnome-common installed some early versions of the autoconf-archive macros which conflicted with what autoconf-archive itself installs. It now has a --[with|without]-autoconf-archive configure option to control this. We suggest that all packagers pass --with-autoconf-archive if (and only if) autoconf-archive is packaged on the distribution. See bug #747920.

m4-common must not be packaged. See its README. m4-common is essentially a caching subset of autoconf-archive.

For continuous integrators

Modules which use the new AX_COMPILER_FLAGS macro gain a new standard --disable-Werror configure flag, which should be used in CI systems (and any other system where spurious compiler warnings should not cause total failure of a build) to disable -Werror. The idea here is that -Werror is enabled by default when building from git, and disabled by default when building from release tarballs and in buildbots.

For further discussion

See the thread on the desktop development mailing list. [Less]
Posted 9 days ago by (Bradley M. Kuhn)
I've been otherwise impressed with John Oliver and his ability
on Last Week Tonight to find key issues that don't have
enough attention and give reasonably good information about them in an
entertaining way — I
even ... [More] lauded
Oliver's discussion of non-profit organizational corruption last
year. I suppose that's why I'm particularly sad (as I caught up
last weekend on an old episode) to find that
John Oliver
basically fell for the large patent holders' pro-software-patent rhetoric on
so-called “software patents”.

In short, Oliver mimics the trade association and for-profit software
industry rhetoric of software patent reform rather than abolition
— because trolls are the only problem. I hope the worlds'
largest software patent holders send Oliver's writing staff a nice gift
basket, as such might be the only thing that would signal to them that they
fell into this PR trap. Although, it's admittedly slightly unfair to blame
Oliver and his writers; the situation is subtle.

Indeed, someone not particularly versed in the situation can easily fall
for this manipulation. It's just so easy to criticize non-practicing
entities. Plus, the idea that the sole inventor might get funded
on Shark Tank has a certain appeal, and fits a USAmerican
sensibility of personal capitalistic success. Thus, the first-order
conclusion is often, as Oliver's piece concludes, maybe if we got rid of
trolls, things wouldn't be so bad.

And then there's also the focus on the patent quality issue; it's easy to
convince the public that higher quality patents will make it ok to restrict
software sharing and improvement with patents. It's great rhetoric for a
pro-patent entities to generate outrage among the technology-using public
by pointing to, say, an example of a patent that reads on every Android
application and telling a few jokes about patent quality. In fact, at
nearly every FLOSS conference I've gone to in the last year, OIN has
sponsored a speaker to talk about that very issue. The jokes at such talks
aren't as good as John Oliver's, but they still get laughs and
technologists upset about patent quality and trolls — but through
carefully cultural engineering, not about software
patents themselves.

In fact, I don't think I've seen a for-profit industry and its trade
associations do so well at public outrage distraction since the “tort
reform” battles of the 1980s and 1990s, which were produced in part
by George H. W. Bush's
beloved M.C. Rove
himself. I really encourage those who want to understand of how the
anti-troll messaging manipulation works to study how and why
the tort
reform issue played out the way it did. (As I mentioned on
the Free as in
Freedom audcast, Episode
0x13, the
documentary film Hot Coffee is a good resource for

I've literally been laughed at publicly by OIN representatives when I
point out that IBM, Microsoft, and other practicing entities do
software patent shake-downs, too — just like the trolls. They're
part of a well-trained and well-funded (by trade associations and
companies) PR machine out there in our community to convince us that trolls
and so-called “poor patent quality” are the only problems.
Yet, nary a year has gone in my adult life where I don't see a some
incident where a so-called legitimate, non-obvious software patent causes
serious trouble for a Free Software project.
From RSA, to the codec
to Microsoft
FAT patent shakedowns, to
shakedown of the Hercules open source project,
to exfat
— and that's just a few choice examples from the public tip of the
practicing entity shakedown iceberg. IMO, the practicing entities are just
trolls with more expensive suits and proprietary software licenses for
sale. We should politically oppose the companies and trade associations
that bolster them — and call for an end to software patents. [Less]
Posted 9 days ago
Special GNOME PERU FEST 2015 video captures almost all the conferences we presented in this fifth edition. Thanks to Erick Cachay for this contribution that let us show all the work we did for spreading the GNOME word in Lima ... [More] Peru.

While there are certainly general coordination-skilled and time management-demand, I must say that there is not only my volunteer job, there is more people behind the scenes. Thanks to many people who did the designer job, marketing job, Wi -Fi and internet connection tests, who attendees to meetings to set permissions and denies in companies, the pre – event, during the event and post- event support, even the carry-on packages job was so important! Thanks for their good attitude and extra effort they put in all the activities.

I was lucky to had grown up every year with this event, thanks to the GNOME Foundation, IBM, FEDORA, INFOPUCP-PUCP, Grupo LA REPUBLICA, Floreria La Bouquette, and all the institutions that helped me a lot! Many thanks to my IBM managers, PUCP authorities and recognition for Linux Peruvian masters: Felipe Solari, Rodolfo Pimentel, Genghis Rios and Flavio Contreras.

Please enjoy the video. Thanks again Erick! Great volunteer worker during and post- event :)

Filed under: GNOME, τεχνολογια :: Technology Tagged: Erick Cachay, Gnome foundation, GNOME PERU FEST 2015, Julita Inca, Julita Inca Chiroque, video GNOME, volunteer job [Less]