Skip to main content

the avatar of Agustin Benito Bethencourt

Sponsored vs supported

Probably the most relevant non technical action that a community executes is events. Most mature communities organize one or several big events in different part of the world with different goals, but one of them is common in every single case: engagement needs face to face relations. We are humans....after all.

In order to organize these events, sooner or later you need a legal organization that provides financial support to these actions. You might not know that, in words of the founders, this was the main reason behind the foundation of KDE e.V. .

And when you want to bring contributors together, most organizations end up having as goal to financially support some of them since they cannot afford it:
  • The trip is expensive since they come from the other side of the world.
  • They come from countries where the cost of the trip or accommodation represent the salary of a year.
  • They are students, so they have little income.
  • They have family and they cannot afford the expenses derived from being a week far from home.

There are many more use cases.

So one way or the other, most organization that support FLOSS communities dedicate resources for supporting contributors to attend to its main event(s). But if we look closer, there are small differences among different organizations.

Some differences among organizations.

Since resources are limited, organizations try to make sure they support those who have made significant contributions to the project throughout the year. Being supported/sponsored though, have frequently attached an expectation of being heavily involved in the event itself. Giving a talk or helping the organizers are the more obvious expected actions.

The difference comes when making these variables a plus or a requirement for being sponsored.

The process for being sponsored is also different. The tools used to manage the request/reimbursement process and the "amount of support" too. I will not get into those.

There is a "motivational" difference that do not have much impact but that I have always found interesting. Some organizations support their contributors "as a reward" and some do it "as a duty".

The first case means that some kind of "thank you" is expected/required, linked to that support, as usual when you receive a prize. This act of gratitude might come in different forms but usually tend to publicly reflect that support. The basic idea behind it is to justify the investment in order to increase the level of sponsorship the organization gets from donors. It is a very popular approach in other industries/areas and there are a good number of FLOSS organizations that follow this model.

The other approach, the "support as duty", is based on the principle that if you have made a significant contribution, that is, you are part of the community, and since the organization is there to support the community , it is its duty to support you. So the support comes with no recognition as requirement.  No "public thank you" is expected.

Some refer to this as the difference between being sponsored versus being supported.

My view on this last topic

In different countries/cultures, the sense and consequences of "thank you" are different. Also, the reasons that can "invite" you to ask for support might not be fun to talk, or being being questioned about. You might not feel comfortable by being identify as "sponsored". It also might generate some undesired debate about who is being sponsored or why among people that do not have all the information.

Over the years I have changed my mind. Lately I identify myself more with the second approach, which do not mean I am against the first one. It has a point too.

In any case, what matters is that FLOSS organizations has supporting contributors to attend to the community event as one of their main goals.

A request

If you are not very familiar with how Free Software is developed, all this might sound strange. Investing money in paying trips and accommodation to go to an event to have fun with no or very little deliverables in return?

When thinking about donating to a community project or sponsoring it, ask for this particular topic to the Board of the organization behind it or the coordinators of the travel support program. You will be surprised by how important is this topic for them. They will provide reasons that, I am sure, will satisfy you.

For me, and many others, is one of the main reasons why these organizations deserve to be sponsored. Face to face meetings are essential to build a healthy community or ecosystem and many people have no way to attend if third parties do not sponsor/support them.

the avatar of Jeffrey Stedfast

The Future of Debugging in Xamarin Studio

There comes a time in ever man's life when he says to himself, "there has got to be a better way..."

Set Next Statement

Have you ever been stepping through a method or hit a breakpoint and discovered that variables did not have the expected values? Don't you wish you could go back in time and start stepping through that method from an earlier point to see how things went so horribly wrong? Of course you do.

Last week, with the help of Zoltan Varga (who added the necessary runtime support), I implemented support in Xamarin Studio to set the next statement to execute when you resume execution of your program in the debugger. You can set the next statement to be any statement in the current method; any statement at all. This essentially allows you to jump back in time or completely step over execution of statements after the current position.

Don’t worry. As long as you hit Run To Cursor at precisely the moment the lightning strikes the tower, everything will be fine!

Run to Cursor

If you're like me, you've probably found yourself stepping through some code in the debugger and you get to a loop or something that you know is fine and you just don't feel like hitting Step Over the 5 bajillion times necessary to get past it, so what do you do? Hopefully you don't hit Step Over those 5 bajillion times. Hopefully you just set a breakpoint somewhere after that loop and then hit Continue.

The problem with this solution is that it's tedious.

Soon, however, you'll be able to simply right-click and select Run To Cursor (or just set/use a keybinding) and the debugger will resume execution until it reaches your cursor!

Client-Side Evaluation of Simple Properties

Assuming that you haven't disabled "Allow implicit property evaluation and method invocation" in your Xamarin Studio debugger preferences, whenever class properties are evaluated in the debugger (in the Watch pad, the Locals pad, or when you hover the mouse cursor over a property), in order to get the value, the debugger has to spin up a thread in the program being debugged in order to have it evaluate the property (or other expression) because, unlike fields, properties are really just methods that have to run arbitrary code.

For at least a year or so, now, we've mitigated this somewhat by cheating if the property has the CompilerGeneratedAttribute (signifying that it is an auto-property). When evaluating these properties, we would instead do a lookup of the backing field and get its value since we could do that locally without any need to round-trip to the program being debugged. While this helped a lot, there's a lot of properties out there that effectively just return a field and have no other logic (maybe an auto-property wasn't used because the setter does more than just set the field value?).

To improve performance of this, I started looking into what it would take to interpret the IL locally in the IDE. Obviously this could only really work if the property getter was "simple" enough and didn't have to take locks, etc. I started asking Zoltan some questions on the feasibility of this and he wrote a simple IL interpreter (included in Mono.Debugger.Soft) that I ended up using in Xamarin Studio to try and evaluate properties locally before falling back to having the debuggee's runtime spin up a thread to evaluate the property for us.

Great Scott! When Can I Start Using These Awesome Features?

To use these new features, you will need Mono 3.4.1 (or later) and an upcoming release of Xamarin Studio (5.0.1? It won't quite make it into 5.0).

Well, it's time I get back... to the future! ... And implementing more new features!

a silhouette of a person's head and shoulders, used as a default avatar

Google Summer of Code 2014 @openSUSE

openSUSE has made it to yet another Google Summer of Code. This season, we got 14 students who would be contributing code to openSUSE, along with our sister organizations ownCloud, MATE and Zorp. Over the period of four months, students work towards completing their projects under the guidance of their mentors. Specific to openSUSE, we got a host of awesome projects with topics ranging to OSEM(Open Source Event Management), TSP(Travel Support Program application), Snapper, Live Flashing USB, Git Review, libvirt to name a few.

The projects (and their students) selected this season are:

1. Travel Support Program application – Karthik Senthil
2. Playlist Functionality for ownCloud Music App – Volkan
3. ownCloud Calendar Application in angularJS – Raghu Nayyar
4. openSUSE GSOC ideas: Cool live flash – Zsolt Peter Basak
5. Open Source Event Manager (OSEM): Refactor user management model – Stella Rouzi
6. Open Source Event Manager (OSEM): Implemention Organizer Dashboard – cbruckmayer
7. MATE: Port from deprecated GStreamer 0.10 – Michal Ratajsky
8. Integrate Snapper Snapshot browsing into openSUSE Desktop tools – Oguz Kayral
9. Implement an application-level LBaaS driver for Zorp – Péter Vörös
10. Extend Git-Review to support BitBucket – xystushi
11. Event Splash page for Visitors In Open Source Event Manager Application. – Gopesh Tulsyan
12. ePub support in Atril (MATE) – Avishkar gupta
13. Add Snapshot management API to libvirt Xenlight driver – David Kiarie
14. Improving the functionality of the extensions system in Caja – Alexandervdm

We hope to have an awesome summer of code with a lot of code being integrated into the respective codebases.
Happy Hacking!!!

the avatar of Cameron Seader

Updated: SUSE Cloud 3 Admin Appliance 1.2.0 available

Continuing in our efforts to create the SUSE Cloud 3 Admin Appliance into a quick and easy way to deploy OpenStack, we have reached version 1.2.0. You can download the Standard or Embedded version. The major change in this version has to do with the consolidation of the logic code required to maintain both images and splitting out some obvious differences between the two appliances. The Embedded appliance now distinctly has the customer center registration and patch mirror process removed as part of the setup as it slowed down the deployment and ease of use it was intended to have. Although it still maintains its ease of use and deployment it is much quicker now and requires less required input to get OpenStack up and running. This is certainly ideal for quick testing and kicking the tires with SUSE Cloud and OpenStack. The Standard version is still the same, but again has all of the same logic rolled up into it, but the steps still remain the same. It is ideal for deploying SUSE Cloud into a production environment.

Standard v1.2.0: https://susestudio.com/a/Mrr6vv/suse-cloud-3-admin
Direct Download links for SUSE Cloud 3 Admin:

Direct Download links for SUSE Cloud 3 Admin (Embedded):

The most updated guide will always be here
Changes from Github Project
1. consolidate as best I can first boot and init scripts
2. add a proper README.md
3. README and appliance guide don't distinguish between two types of appliances
4. documentation missing
5. don't require NCC (Customer Center Registration) / SMT registration by default on Embedded images

Enjoy!
a silhouette of a person's head and shoulders, used as a default avatar

openSUSE welcomes its Google Summer of Code Students

openSUSE welcomes Google Summer of Code 2014 participants. Thanks to Google, openSUSE has an excellent number of slots and an equally excellent number of mentors and students for Google Summer of Code 2014. Throughuout the summer, students participanting in this program will code for openSUSE and its sister organizations ownCloud, MATE and Zorp and help them move forward. The best part of GSoC is that most of the code written by students will go upstream and will benefit openSUSE in general also. Along with this, we have an equally good range of projects that will improve
the existing openSUSE architecture.

The list of successful students are :

1. Travel Support Program application –     Karthik Senthil
2. Playlist Functionality for ownCloud Music App –    Volkan
3. ownCloud Calendar Application in angularJS –    Raghu Nayyar
4. openSUSE GSOC ideas: Cool live flash –    Zsolt Peter Basak
5. Open Source Event Manager (OSEM): Refactor user management model –  Stella Rouzi
6. Open Source Event Manager (OSEM): Implemention Organizer Dashboard –    cbruckmayer
7. MATE: Port from deprecated GStreamer 0.10 –    Michal Ratajsky
8. Integrate Snapper Snapshot browsing into openSUSE Desktop tools –  Oguz Kayral
9. Implement an application-level LBaaS driver for Zorp –    Péter Vörös
10. Extend Git-Review to support BitBucket –    xystushi
11. Event Splash page for Visitors In Open Source Event Manager Application. –    Gopesh Tulsyan
12. ePub support in Atril (MATE) –    Avishkar gupta
13. Add Snapshot management API to libvirt Xenlight driver –    David Kiarie
14. Improving the functionality of the extensions system in Caja  – Alexandervdm

In the following weeks I will talk a lot more about these projects and get to know these students well.

Lets brew some code now.

a silhouette of a person's head and shoulders, used as a default avatar

Unlocking KWallet with PAM

Requests to unlock KWallet automatically on login (assuming the wallet password and user password are the same), like gnome-keyring can do, have been going on for years: in fact, bug reports requesting this feature are quite old.  Recently, thanks to the efforts of Alex Fiestas, a PAM module, which interfaces KWallet to the system authentication methods, has been developed. In parallel, the necessary glue code has been also added to the various parts of the KDE workspace so that it could make use of it.

While the module itself has not been released yet officially, it’s been used already by some distributions (Kubuntu). However documentation is lacking, so it could be hard to set it up for anyone else.  This post provides some indications on how to set KWallet up with PAM.

Before we begin, a disclaimer: ** as we’re deailng with pre-release software, do everything at your own risk! Errors with PAM can lock you out of your system!**

Also, ther’s no guarantee that these instructions, although they worked for me, will work for you. YMMV.

Prerequisites

**EDIT: You will need a more recent startkde script than the one shipped in Workspace 4.11.8: ask your distro for a back-port of the latest commits to it (last 3 since 4.11.8). ** Thanks to Rex Dieter (Fedora) for letting me know.

You need to have libgcrypt and its development headers installed, and at least version 1.5.0 (earlier versions won’t work), along with the PAM development headers. Before beginning, change your wallet password to be the same as your login password (you chose a strong password, didn’t you ;).

EDIT: You wll need also socat, because it’s used to inject the right environment when the KDE workspace session is starting.

Building pam-kwallet

Clone the git repository holding pam-kwallet (NOTE for posterity: the URL may change in the future once the code moves properly inside KDE’s official modules):

git clone git://anongit.kde.org/scratch/afiestas/pam-kwallet.git

Then compile:

mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) ../
make

You may have to add -DLIB_SUFFIX=64 if you are using a 64 bit system or the library may get installed in the wrong path.

Install either as root or using sudo:

make install

Hooking pam-kwallet to PAM

Once this is done, we need to hook pam-kwallet to PAM proper. These instructions have been made with inspiration from the Arch Linux Wiki entry on GNOME keyring and should be your reference in case of issues.

We’ll have to tell PAM that it can use our freshly built module as an authentication mechanism. We will be doing so by editing specific files under /etc/pam.d. All operations should be done as root or using sudo.

First, we edit /etc/pam.d/login (added lines are with). This is how it looks in my system (note: depending on your distro, it may and will look different)

#%PAM-1.0
auth requisite pam_nologin.so
auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securetty.so
auth include common-auth
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session
#session optional pam_lastlog.so nowtmp showfailed
session optional pam_mail.so standard
-session optional pam_kwallet.so auto_start #### Add this line

Then we change /etc/pam.d/passwd. Notice that there is a caveat described below:

#%PAM-1.0
auth include common-auth
-auth optional pam_kwallet.so ### add this line
account include common-account
password include common-password
session include common-session

It is essential now that you notice whether you are using a default .kde for your KDE applications settings, or another name (for example .kde4 in openSUSE). If it is different from .kde, you must add an option which tells the PAM module where it is (it only involves modifications in /etc/pam.d/passwd):

-auth optional pam_kwallet.so kdehome=.kde4 # for .kde4

Alternative setup

While the setup above should work, it may not. In this case, you will need to edit the PAM files used by your display manager. In the case of KDM, they may be _/etc/pam.d/kdm _or /etc/pam.d/xdm. For LightDM, you should edit both /etc/pam.d/lightdm and /etc/pam.d/lightdm-greeter.

Either case, put both the auth and the session line in the files, as such (example from my setup)

#%PAM-1.0
# LightDM PAM configuration used only for the greeter session
auth required pam_permit.so
-auth optional pam_kwallet.so kdehome=.kde4 ### added
account required pam_permit.so
password include common-password
session required pam_loginuid.so
session include common-session
-session optional pam_kwallet.so auto_start ### added

Wrapping it up

After these changes, log out and back in. If everything is correct, you will not see password requests from KWallet, but you will see your wallet properly unlocked!

And if it doesn’t work?

I warned you. ;) More seriously, look in the authentication logs for clues to see whether there were PAM errors. My suggestion would be to wait for distros to figure this out, or hope that a real PAM expert steps in, as debugging is very difficult (at least for me) at such a low level.

EDIT: As pointed out by Rex Dieter (Fedora), putting a - in front of your PAM entries will make PAM ignore them if unavailable, reducing the amount of logging sent to your syslog.

a silhouette of a person's head and shoulders, used as a default avatar

KDE:Current and 4.13 packages for openSUSE

This is a guest post by Raymond “tittiatcoke” Wooninck, with contributions from myself and Hrvoje “shumski” Senjan

In the next hours the [KDE:Current]({{ site.url }}/2014/03/being-current/) repository will publish the latest release from KDE (4.13). As that this release comes with a big change (the new semantic search), we would like some simple steps in order to perform the right upgrade.

Before the upgrade

In order to migrate data automatically from the Nepomuk store to the new format, you will need Nepomuk up and running, and just for the time needed for the migration. Ensure that Nepomuk is running before the update (in System Settings > Desktop Search). This is only necessary in case Nepomuk is in use on the system.

The upgrade itself

  •  If you are already using KDE:Current then the upgrade should be a simple zypper up or upgrade packages through YaST Software Management.

  •  If you are not yet using KDE:Current, then please follow the instructions on the wiki  on how to add the necessary repositories. After adding them, a zypper dup is required to ensure that all the KDE packages are coming from KDE:Current.

Please do not remove nepomuk, as that otherwise the migration to baloo will fail. Also after the upgrade please make sure that the baloo-file package is installed (it is required for indexing). After this check, log off and back on. The Nepomuk migrator will then run and move all the data that can be migrated to the new system. It will also turn off Nepomuk at the end of the migration.

At this moment it would be safe to remove the nepomuk related packages like nepomuk-core, libnepomukwidgets, soprano*, strigi, virtuoso and shared-desktop-ontologies. There are only a few packages left that are stillrequiring the Nepomuk framework (like bangarang, kweshtunotes, etc).

Using the new search system

Unlike the ‘include folders to be indexed’ used with Nepomuk, the new search backend prefers to index everything and exclude unwanted folders explicitly. With the standard setup,  all files and directories below the home-directory will be indexed. All other filesystems are indicated as omitted.

This can be changed by deleting the respective entries in System Settings. To turn indexing off completely, add your home directory to the excluded folder list (bear in mind that this will prevent search from working). To remove the components completely, remove the baloo-file package. The package baloo-pim (only present when kdepim is installed) can be removed if no search capabilities are required for KMail.

Aside from Dolphin, the only search UI  available is the package called milou. Milou can be placed in the panel for easy access and its usage is quite simple. The search term is indicated and search results are shown for files, emails, and so on.  You can pick which categories to use in the settings.  At the moment you should not put Milou in the system tray, because it will cause Plasma to crash at login.

Tags in the files are now stored using extended attributes (xattrs) instead that in the database.

Known issues

  • The initial indexing can be heavy on I/O especially if there are large text files: either wait till the indexing is complete (this step is done only once), or exclude the folder containing such files.

  • Some data will be lost during the migration: in particular, emails will have to be re-indexed, and file<->activity associations, if used, will not be preserved.

Reporting problems

As usual, use Novell’s Bugzilla if you find issues pertaining to the specific packaging used in openSUSE: otherwise, report bugs directly to KDE.

the avatar of Raymond Wooninck

Updating to KDE SC 4.13 from KDE:Current

In the next hours KDE:Current will publish KDE 4.13 SC. As that this release comes with a big change (Nepomuk -> Baloo), we would like some simple steps in order to perform the right upgrade.

Before the upgrade

In order to migrate data automatically from the Nepomuk store to the new format (used by Baloo), you will need Nepomuk up and running, and just for the time needed for the migration. Ensure that Nepomuk is running before the update (in System Settings > Desktop Search). This is only necessary in case Nepomuk is in use on the system.

The upgrade itself

  • If you are already using KDE:Current then the upgrade should be a simple “zypper up” or upgrade packages through YaST Software Management.
  • If you are not yet using KDE:Current, then please follow the instructions on https://en.opensuse.org/KDE_repositories#Current_KDE_SC_release on how to add the necessary repositories. After adding them, a zypper dup is required to ensure that all the KDE packages are coming from KDE:Current.

Please do not remove nepomuk, as that otherwise the migration to baloo will fail !! Also after the upgrade please make sure that the following package is installed “baloo-file”. After this check, log off and back on. The migrator will then run and move all the data that can be migrated to the new system. It will also turn off Nepomuk at the end of the migration.

At this moment it would be safe to remove the nepomuk related packages like nepomuk-core, libnepomukwidgets, soprano*, strigi, virtuoso and shared-desktop-ontologies. There are only a few packages left that are still

requiring the nepomuk-framework (like bangarang, kweshtunotes, etc).

Using Baloo

Unlike the ‘include folders to be indexed’, Baloo prefers to index everything and exclude unwanted folders explicitly. With the standard setup, Baloo will index all files and directories below the home-directory. All other filesystems are indicated as omitted. This can be changed by deleting the respective entries. Unfortunately it is not possible to switch baloo off through systemsettings. If baloo is not wanted on the system, then the package “baloo-file” needs to be removed to prevent files being indexed. The package “baloo-pim” (only present when kdepim is installed) can be removed if no search capabilities are required for kmail.

The only search client currently available for baloo, is the package called milou. Milou can be placed in the panel for easy access and the usage is quite simple. The search term is indicated and search results are shown for files, emails, etc. In the Milou settings, the categories from which results are shown can be selected. Milou can NOT be placed in the systray, as that this would cause the plasma desktop to crash upon login.

Tags on files are no longer stored inside the database, but stored in the extended file attributes (xattr), which are stored in separate files on the filesystem.

Known issues with KDE 4.13

  • The initial indexing can be heavy on I/O especially if there are large text files: either one waits till the indexing is complete (this step is done only once), or the folder containing such files is excluded using System Settings.
  • Some data will be lost during the migration: in particular, emails will have to be re-indexed, and file<->activity associations, if used, will not be preserved.
  • Milou causes the Plasma-desktop to crash if it is placed in the systray !!

a silhouette of a person's head and shoulders, used as a default avatar

LibreOffice projects for Google Summer of Code 2014

We are happy to announce that the LibreOffice project has 10 Google Summer of Code projects for this 10th edition of the program. The selected projects and students are:

Project Title

&nbsp

Selected Student

Connection to SharePoint and Microsoft OneDrive

&nbsp

Mihai Varga

Calc / Impress tiled rendering support

&nbsp

Andrzej Hunt

Improved Color selection

&nbsp

Krisztián Pintér

Enhancing text frames in Draw

&nbsp

Matteo Campanelli

Implement Adobe Pagemaker import filter

&nbsp

Anurag Kanungo

Improvements to the Template manager

&nbsp

Efe Gürkan YALAMAN

Dialog Widget Conversion

&nbsp

freetank

Dialog Widget Conversion

&nbsp

sk94

Improve Usability of Personas

&nbsp

Rachit Gupta

Refactor god objects

&nbsp

Valentin

We wish all of them a lot of success and let the coding start!

the avatar of Cameron Seader

Updated: SUSE Cloud 3 Admin Appliance 1.1.0 available

Continuing in our efforts to create SUSE Cloud 3 Admin Appliance into a quick and easy way to deploy OpenStack, we have reached version 1.1.0. You can download the Standard or Embedded version.

Standard v1.1.0: https://susestudio.com/a/Mrr6vv/suse-cloud-3-admin
Embedded v1.1.0: https://susestudio.com/a/Mrr6vv/suse-cloud-3-admin-embedded

Standard has a process which will mirror all of the required repositories for the Admin Server, and contains the SLES 11 SP3 / SUSE Cloud ISO's

Embedded has everything that the standard image has and all of the required patch and update repositories in the image ready for you to consume. It might take a little longer to download but might be worth the wait if you need something with everything included and you want a quick testing environment to play with.

Changes from Github Project
1. restructure files into proper kiwi build directories to make it easier to build from a checkout
2. shell code needs consistent indentation
3. add a proper README.md
4. eliminate disk wastage from rebuilding huge .txz
5. eliminate copy'n'paste between setup-suse-crowbar*
6. Provide sensible default network config as outlined in the Deployment Guide
7. mount SLES 11 SP3/Cloud ISOs permanently instead of extracting files once the appliance is deployed