Windows XP end of life, is openSUSE Linux the right choice?
In late 2011 I began working as an independent repair technician and IT consultant. Due to my unusually low prices and geography I typically get people running older hardware. Though I will work on solving issues with various Windows versions, I do attempt to upsell +openSUSE Linux to these clients where possible. I assess the clients needs, then their hardware to assure compatibility with Linux. If all checks out and the client gives me approval I'll migrate their data then install openSUSE and configure it (which usually means checking for known bugs and applying a work around) for immediate use for a fee, including limited support for one release cycle. The point of this story, is that more than most I know the challenges of bringing users from XP to Linux.
So is Linux the right choice for people fleeing Windows XP? Yes and no. Firstly one must assess the clients needs. Many of my clients are students, whom you'd assume would be a great match for Linux. However, many classes absolutely mandate the student have and use Microsoft Office and will be failed or unable to complete a course correctly if they don't. Naturally, such a case means Linux is absolutely out of the question. Another case can be such as musicians or artists whom require specific tools, such as a DAW or +Adobe Photoshop . So these potential users are restricted by their own habits as much as availability of specific software.
Next question would be, which Linux? In the enthusiasm to bring XP users to the fold, I've heard repeatedly that they should all be on +Ubuntu . First problem with that idea is the Unity desktop itself, which has problems on older hardware and won't render correctly thus rendering the computer largely unusable. In my experience with Ubuntu, I've found it's package management to be dismal as it is the only distribution I've used where a routine patch can break X which of course means the new user would be stuck without any sort of graphical interface whatsoever.
Unity is blatantly unsuitable for a new user purely from a compatibility and resource usage standpoint. When I first began migrating users to Linux, I would set them up with +KDE since it has a very familiar interface with a task bar and 'start menu.' However the instability, bugginess, and immense configurability (which leads to over-complexity) proved to be too much for the new user and too much for me as I was constantly having to support the installation. After dealing with this for a while I decided on GNOME (which was version 2.x then) and migrated my clients to that, which resulted in much happier clients and an almost complete cessation of support calls. Even now, I'm still putting my clients on GNOME 3 which they have trouble with initially due to it's very unfamiliar design philosophy. They quickly adjust to the GNOME Shell, and often come to love it to the point that their ranting brings me more clients. A few clients with exceptionally weak hardware have been placed on +Xfce, and this has not led to any unusual support calls. Another unexpected consequence of KDE is that it was too familiar looking, and I saw users making more attempts to install software designed for Windows or trying to install Linux software by downloading and launching it than I see when they are on other environments.
Ideally, a new user should be able to use their computer as designed without having the system become unusable after an update. A new user also shouldn't be forced into fixing things from a command line early in their experience. This is largely why I use +openSUSE , and give it to my clients.
- Libzypp is the backend for zypper and YaST package management. This provides (scientifically proven) superior dependency resolution, which of course greatly mitigates the potential for an update or other package operation causing damage to a working system.
- YaST is our amazing modular setup and configuration tool. It's modular design allows it to give graphical interfaces for many system administration tasks from package management to security auditing and beyond. It also includes an ncurses front end which allows the familiarity and safety of YaST to still be usable from a command line in the event that X is down. On each module it includes a help button, which will offer concise and useful information on what the module does making YaST useful as a learning tool.
- Snapper is a YaST module for use with the btrfs file system. Snapper allows you to easily check and reverse system changes that are logged and snapshotted as part of btrfs. Btrfs also prevents against data decay. Snapper can easily save the day by swiftly rolling back any destructive changes without the end users having to concern themselves with maintaining backups. See video here!
- One-Click Install or Direct Install makes finding and installing software easy via our +Open Build Service Package Search. Simply navigate to our software search domain and with only a few clicks YaST will handle everything needed to install the program, including adding any necessary repositories. We even include a search extension for our default browser Firefox which allows you to search for software directly from your search bar.
- The Installer itself is also a YaST module. Our installer offers a nearly unparalleled reliability and compatibility, and like other YaST modules can be used from its ncurses interface when the graphical installer won't work. Its modular design gives it a superior flexibility and capability versus the installers from other distributions, and this still holds true even in the text based ncurses interface.
- Tumbleweed is our rolling release. It offers seamless upgrades to each new version of openSUSE while also giving you the latest stable desktop environment and other packages. Tumbleweed is stable enough for daily usage (especially for any ex-Windows user whom is used to things constantly failing) and will alleviate the headache of an annual release cycle as opposed to the longer release cycles of Windows.
Firefox 29 coming soon with a fresh new design paradigm.
"It’s not an interface adjustment or tweak. It’s not a bug fix. It’s a complete re-envisioning of Firefox’s user experience, and it’s been brewing for the past five years," +Jennifer Morrow says in her blog. Jennifer serves +Mozilla Firefox as the senior designer at Mozilla. This will be the biggest redesign since version 4 which brought us a much cleaner and faster Firefox experience and retired the 3.x design. The new aesthetic is being called Australis, and has already been released to all platforms though as of this writing it is not yet packaged by +openSUSE, though it can be found in the Mozilla community repository.
Australis has been designed to address some idiosyncrasies and deliver a consistent user experience. Users familiar with +Google Chrome will see some strong similarities in the redesign such as the tabs and menu placement. I feel however, that's about where the similarities end. Jennifer Morrow says, "This is when user experience design is most effective: when it envisions the system as a whole. When it steps away from the trees and sees the forest holistically."
Firefox 29 is doing more than simply delivering a pretty face, and is bringing the ability to easily customize buttons and toolbars via a simple and intuitive drag and drop interface. I think however, it is clear that this release is far more about user experience and aesthetics. In my tests the workflow is negligibly different. Performance may have taken a hit though, the responsiveness is sluggish and page rendering slower.
![]() |
| Firefox 29 |
![]() |
| Firefox 29 with GNOME addons |
You can read more about Firefox 29 on the blog of Jennifer Morrow.
Microsoft may bring Office to Linux in 2014
How likely is it? I think considering that they have already made a version for Android, that means at the least that much of the development effort is already spent since Android runs on the Linux kernel. Also, as I understand it Android and its apps are mostly Java simply running via a mobile optimized runtime. Java in case you are not aware (you probably are) is a cross platform language that is designed to make efficient programs that can be deployed on any operating system that supports the Java virtual machine with none or very little modification to the application code itself. Considering how small a market the desktop Linux userbase is still, I wouldn't think Microsoft would be taking this porting effort seriously were it not for the above mentioned facts which drastically reduce any effort they'd spend specifically and exclusively on desktop Linux.
For me at least, the bigger question is whether this is a good thing or not. I'm always excited to see more software become available for Linux since it increases the chance that we may get a new user whom was holding out for that application. But, of the many companies who would participate in this Microsoft is among the least trusted seeing as they are the very image of proprietary software and shady dealings; and are thus not prone to getting the support of myself or others in the Free Software movement. But also, will the Linux userbase even embrace it? Will it damage the +Apache OpenOffice or +LibreOffice projects?
Very often from people I have heard something along the following, "I really like Linux, it works so well but it doesn't have this program I use most!" The most common barriers to entry I've heard has been a lack of games, and the lack of Microsoft Office applications, usually Word. Thanks to +Valve Linux and various indie game studios affiliated and not, serious gaming is swiftly coming to Linux and thus the argument of needing a "Wintendo" is becoming far less true every day. With LibreOffice we have a powerful and familiar office suite, but most business users are either set in their ways or run into various anomalies and thus find that Linux is not a viable option for their productivity. For the latter group, the option of Microsoft Office on Linux would almost entirely eliminate that barrier to entry.
Ultimately I think if Microsoft delivers, this will be a good thing. Part of their dominance in the PC sector has been due to their ability to assure trials of their software is shipped from the OEM on any machine running their Windows operating systems (the other part being that they make much better office suites than they do operating systems). Since in the Linux world we don't have OEM deals this is not an issue and Microsoft has next to no ability to squeeze anybody into adoption of Office, and most major Linux distributions ship LibreOffice by default. So I think, rather than seeing a situation where LibreOffice dies we will see those smaller subset of users actually purchase Microsoft Office for Linux while those of us who don't need all that or aren't as picky will stick to Free Software. As a side note, Microsoft Office has been supporting Open Document formats and have been backporting that support to older versions of their Office applications.
Experiences from openSUSE Conference 2014
Another openSUSE Conference, another Country, but the same awesomeness. I attended the openSUSE Conference in the amazing city of Dubrovnik (more commonly known as King’s Landing), and it was another spell binding experience. Right from the talks, presentations, people (I cant stress on this one enough) to the location, everything was impeccable. I sit down to pen my thoughts at another experience, and memories which I will cherish. There was plenty to enjoy, learn, discuss at the conference, which lived upto its tagline – ‘The Strength to Change’. I highlight some of my experiences in this rather lengthy post.
The Location:
The location was just spectacular. I have been a ‘A Song of Ice and Fire’ and ‘Game of Thrones’ fan for quite some time, and had a vivid image of what King’s Landing would look like. It lived up perfectly to its name. I think Dubrovnik was ‘meant’ to play host to King’s Landing in the series. Visiting the Walls, Fort Lovrijenac (The Red Keep) felt like I had landed inside the world of Westeros.

The Conference was held in the University of Dubrovnik. It was a pretty nice location, very close to Oldtown in a nice, peaceful location.
Video Team:
This was something new to me. I helped around with the video team in mixing videos, and handling the camera for some of the talks. I had never done this before, and Christopher Hoffman gave me a great hands on. It was a pretty nice experience, working with Stephan Barth, Dubravko Jakovljević, Sarah, Jurgen, Marcel. I hope to be helping around with the video team at the next oSC as well.
The Presentations:
As always, the presentations were top notch. Mentioning some which I really liked
- Design and Branding – Kenneth Wimmer. This one cleared up some confusion there was with the openSUSE artwork. I really like the cool and funky new Geekos
- Almost every talk by Jos Poortvliet
- SLE and openSUSE by Jan Weber
- YaST Module from Scratch by Josef Reidinger (This one was cool!!!)
- oSC15 by Bruno Friedmann
- The upstream view of MySQL – Norvald H. Ryeng
- The TSP talks by Izabel and Ancor
The Townhall Meeting:
I missed a part of the townhall partly due to the incessant rain, but I got in time for the bulk of the discussion. The burning issues in the townhall were related to the openSUSE Release Cycle, and how Factory fits in. The discussion was pretty interesting, though the outcome will probably be clear in the current weeks. As of now, openSUSE 13.2 is slated for a November release.
openSUSE Summit:
At oSC13 in Thessaloniki, I had met Yan Sun, where she had put forth the idea for an openSUSE Summit in Asia. She put forth the proposal to the board in the last conference, though due to some issues, the dates kept shifting, though the event had been approved. Now, it looks like the event would be held in October/November in Beijing. I had a good discussion with her on topics such as talks, presentations and the TSP, which would be a vital cog for the conference. I am hoping to attend the event and give a presentation. Lets see how that works out. Fingers crossed on this one 
Anahuac Gil:
Yes…I had to devote a whole section to this amazing person from Brazil, and one who made the conference even more memorable. I first met him at the hotel with Izabel, and we got down to talking. The discussions were amazing on talks from our diverse, but to a certain extent, similar cultures to the evil aspects of Google (and the nexus with the NSA :D). For a whole hour, he shed light on Cuba, which was pretty amazing. Whenever the guy talks, people listen intently. I enjoyed talking to him, and his banter of ‘You are TOO SLOW man!!!’ has stayed with me. Reaffirms my belief that conferences are a great place to meet people and understand different cultures.
The openSUSE Party:
Geekos love to party…plain and simple. After a hard and long conference, we had the main party at Eastwest Beach Club Banje, on the Adriatic shore. It was quite a picturesque place. The food was pretty nice, though I could hardly find stuff I could eat (considering I dont eat meat). Still I had a fun time interacting with people. I met with Peter Czanik, who works with Balabit Security, an organization we are collaborating with in the Google Summer of Code. We had a lengthy discussion on topics ranging from Hungary, Balabit, GSoC to name a few.
The best part of the party was certainly the dedication to Hans de Raadt. He could not make it to the conference, and he is going to organize the next oSC at the Hague. Netherlands. The Geekos gave an awesome tribute to Hans
I got together with a group of Greekos, and talked about the Google Summer of Code. IMO, Greekos are really the most passionate community within the openSUSE Community. I am hoping they participate next year in GSoC 
Craziest and most fun part – Geekos exchanging ID Tags in football style. I have no idea who ended up with mine. I now have Tomas Cech’s ID tag instead of mine 
Travel Support Program (TSP):
The Travel Support program has been integral for me attending the conference. It is an awesome tool which enables contributors to attend events which help openSUSE as a project grow. Being sponsored to the openSUSE Conference is a great feeling, and urges you to contribute more towards this awesome project. The talk discussing the openSUSE Travel Support Program by Izabel laid out some clear points
- Contribute. It is not a free ride.
- We want to support as many people as possible, but you have to ask for help
- It is not just attending the event in the shadows. Get Involved. It is as much ‘during’ the event, than it is ‘before’
- If you have been sponsored to the conference, remember that it is at the cost of someone else. Make it count…
Prior to the Trip:
This one perhaps warrants a separate blog post, as a guide on how NOT to travel, but I am going with the flow. I made a hash of my reservations, which almost cost me attending the conference.
- I booked flight tickets through Germany, without realizing that I would need at least an airport transit visa. I assumed I would get a German visa, which would allow me to enter Croatia as well. The Embassy of Germany rejected my application, and I was stuck in Limbo for some time. I specially went to Delhi to apply for a Croatian visa, and got it a few days before the trip, leaving me no time to apply for the German visa
- I canceled the tickets through Germany, and in panic, booked tickets going through Austria, without realizing that there is a 20 layover in Vienna, which would have been intolerable, and that I would potentially overstay on my visa.
- I tried looking for an alternative, and was on the verge of booking tickets to Moscow, only to see the price double while I blinked.
- I ultimately ended up canceling the ticket through Austria, and booking through Istanbul, which was a ‘sensible’ route, though it involved a flight plan which went: Bangalore -> Mumbai -> Istanbul -> Zagreb -> Dubrovnik. Travel Hell!!! I am sick of flights…
- I missed the last day of the conference due to these issues, and also ended up spending some more on extending my hotel reservation, which was for a day less.
As the dust settles on the openSUSE Conference, I can only reflect on the awesomeness over the past week. It has really left a lasting impression over me. Thanks to the Geekos around the world, who make the openSUSE Project a success
Sponsored vs supported
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.
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.
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.
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.
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!
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!!!
Updated: SUSE Cloud 3 Admin Appliance 1.2.0 available
Standard v1.2.0: https://susestudio.com/a/Mrr6vv/suse-cloud-3-admin
Direct Download links for SUSE Cloud 3 Admin:
Changes from Github Project
1. consolidate as best I can first boot and init scripts
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.
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.gitThen compile:
mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) ../
makeYou 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 installHooking 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 lineThen 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-sessionIt 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 .kde4Alternative 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 ### addedWrapping 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.











