Redesign of YaST Expert Partitioner
We are redesigning the YaST Expert Partitioner for openSUSE 11.1 and SLE11. The main idea is to have a navigation tree with all available storage devices on the left side and to display information on the right side along with buttons to perform appropriate actions. See the screenshot.
RPMs are available in the openSUSE Build Server in the repository home:aschnell. They are far from finished by you can already navigate in the tree and inspect you storage system. It should be possible to see where we are heading with the redesign. You can install them on your openSUSE 11.0 Beta 3.
Some things do change...
Ever since zypper came along I hated it. It was slow, buggy, and used a ton of resources.
Well, I installed openSUSE 11.0b3 yesterday and the zypper/libzypp there is massively improved. I don’t think it’s possible to overstate just how much of an improvement it really is. Normally I just make rcd/rug work on whatever new release comes along and continue using that. Zypper and PackageKit are so good now that I’m giving that up. So congratulations to the zypp team — I know they caught a lot of flack in the past, but I think this release will finally put a lot of that to rest.
Using KVM and Qemu
1. check if you have a processor that supports virtualization:
egrep '^flags.*(svm|vmx)' /proc/cpuinfo
2. create the image to hold the guest OS (10G size in this case):
qemu-img create -f qcow opensuse.img 10G
3. insert KVM kernel modules in the kernel if you compiled them as modules
sudo modprobe kvm
sudo modprobe kvm-intel (for intel processors)
sudo modprobe kvm-amd (for amd processors)
4. copy opensuse dvd/cd on your hard disk:
dd if=/dev/cdrom of=/home/user/opensuse.iso (for cd)
dd if=/dev/dvd of=/home/user/opensuse.iso (for dvd)
5. install the quest:
qemu-system-x86_64 -boot d -cdrom /home/user/opensuse.iso -hda opensuse.img
6. start your new installed system:
qemu-system-x86_64 opensuse.img
Do you want more?
* use -m parameter to specify the ammount of RAM for virtual
machine (default 128MB)
* use -incoming [protocol:params] if you want to move your virtual
machine
on the other machine
* check http://kvm.qumranet.com for documentation
A new community devolopment model?
Long story
(Go to the short story if you're too lazy to read a lot.)Some time ago I wrote about the usual confusion between the terms "commercial" and "propietary". FLOSS is commercial software because it's not only driven by the generosity of some developers with their spare time. A FLOSS developer can be paid by a software company, either by being employed (the most common case currently) or either by a consultancy/bounty basis. And there are still even open source companies which still indirectly refer to FLOSS as non-commercial when they compare both most popular development models nowadays by saying "open source VS commercial software".
And why the bounty system is not so popular? Well, because:
1) It's very project-driven: bounties are usually published in means very related to the project. This can be considered an advantage because only motivated/interested developers will apply, but sometimes the project is too small, too recent or not very popular, or with a lot of similar projects around.
2) There's no strong system to manage the bounty in respect to requirements, secure payment, trust system between parts, etc.
3) Many people don't advocate for it (or they advocate for a bounty system that works as a task exchange without money intervention: I fix this for you if you fix this for me) because, we know, one of the reasons of the excellence of free software is because developers love what they do without rewards. (But IMHO one of the big downsides is also because there are also important tasks in a project that nobody likes to do. Besides, I think people tend to spend less spare time on free software as their age grows.)
An exception to the 1st item could be bountycounty.org: a site that tries to announce bounties from free software projects. However, it seems to be an initiative that hasn't got much audience (the last bounty is 2 years old), either because the people that offer bounties forget to notify to this system, or, maybe because in the end the bounty development model doesn't work in FLOSS?
Well, I don't think this is the case, because there's a bounty system that is succeeding, and which is also an exception to the (2) item of the above list: Google Summer of Code.
However, GSoC has the following disadvantages to be "complete" for this matter:
a) Only students can apply.
b) All projects happen in the same time-frame and have the same duration (a summer).
c) All bounties are the same for each developer.
d) A concrete company controls all the process (because, it's true, they put the money).
But we need something similar to GSoC (similar in the "It Works" aspect) and that saves these problems and is not a mere "announcement" site like BountyCounty.org.
Some initiatives have appeared that tried to solve these situation: BountySource.com and SourceForge.net marketplace. The common problem to both is that they try to solve it by attracting the developers to host their projects, so this causes big and mature projects not to apply (because they have currently good hosting solutions, or are self-hosted, like Mozilla projects for instance).
One of the ideas is to implement a bounty system in our bug tracking system software, like Bugzilla. If I had time and liked Perl more, I would try to contribute something for it. Maybe we're in the chicken-egg problem here: we need a bounty system for that task.
Surprisingly, there's already a general purpose web-based service for this task: RentACoder.com. But I haven't seen any free software projects using it, because it seems very focused on propietary developments.
And then it happened: Some weeks ago a new FLOSS-oriented service was born: FOSS Factory. I wanted to start using it by publishing some mini-bounties (which hopefully would grow if other people are interested, similarly to voting systems in Bug Tracking software), but I got disappointed when even the project creation had a cost. But yesterday I received this e-mail:
Andres G. Aragoneses,
Thanks so much for your interest in FOSS Factory! As one of our early adopters, I wanted to keep you in the loop on two very important developments.
First, in response to user feedback, we've removed all costs for creating FOSS Factory projects! Instead, we now charge a 5% transaction fee on payouts. This aligns our interests with yours by ensuring that we will only make money if your projects succeed. It also enables developers to post their own projects without having to spend money.
Second, we recently released our website source code under a FOSS license. You can now download the code from http://www.fossfactory.org/get-source.php. Our primary reason for doing this was so that we could take advantage of our own system to help improve the site. In case you're interested, we've already posted a few bounties for improvements that we haven't had time to implement ourselves: http://www.fossfactory.org/project.php?p=p30&tab=subprojects. Please feel free to participate.
If you have any questions or concerns, please either reply to this message, or email me directly at jjgignac {at} fossfactory {dot} org. Your feedback is very important to us!
Sincerely,
John-Paul Gignac
President and Founder
FOSS Factory Inc.
Unfortunately, there's a 5% transaction charge for each bounty, but hey, we need to support their service! Also, the software is PHP based, so I won't likely spend time on improving it (you know, I already fled from PHP and Perl some years ago ;) ).
But I like the initiative and I'll start to publish the bugs/features I consider interesting to have, but have no time/interest to hack on. Here are the first ones (take in account that, if every voter of the bug payed 10$, the bounty would be enough attractive for a developer I guess, because they are not very complicated):
- Thunderbird/Seamonkey feature Auto-watch threads you've posted to (21 votes)
- Thunderbird/Seamonkey regression Allow edit of unsent message (Unsent folder messages should open to a compose window when double click) (26 votes)
- Bugzilla's feature (or fix for highly confusing workflow for newcomers) Move all bug activity onto main bug screen (17 votes)
- Banshee's feature (currently handled by an outdated addin AFAIK) Banshee needs a way to cleanup (remove stale tracks) (reporter+4CC; no voting system in BGO)
- Banshee's feature (patch proposed but I guess someone should make it apply to trunk) [Patch] Automatically scan music folders for new songs (reporter+6CC; no voting system in BGO)
- Gnome's bug (someone wrote a patch but not sure if it will finally make it for 2.24...) The ``Replace File'' dialog should display the two file sizes, times, etc. (reporter+23CC; no voting system in BGO)
- Monsoon's crazy feature (maybe implies the creation of a new Gtk widget) When the option "Minimize to notification area on close" is not enabled, we should have a new widget on the title bar for that action (just me)
- Real fix for Mono's issue (because we already have a workaround) System.Windows.Forms dependency on GTK makes code to crash if it uses ATK# and GTK_MODULES contains 'atk-bridge'
The last of the issues affected our project until we found a workaround overriding environment variables. If we reach our milestones properly and nobody has fixed it at that time, we could have a try! Now we still have tons of work which Calvin and the team have perfectly outlined. Unfortunately I haven't helped in this doc effort because I was busy debugging the issues I mentioned in my last post, which turned out to be an invalid bug (but at least gave me an idea for a Gendarme Rule) and a GAPI parser bug that Mike fixed) and because on thursday afternoon I was affected by some small rock ;) and probably was the cause of me trying to debug something I didn't correctly updated on Friday (and maybe because of our dumb deployment methodology that Mike has already blamed). Well, I'll talk about this in a later entry...
Short story
Maybe this day will be remembered in the Free Software community as the day in which a first software draft is presented in order to fill some awesome ideas from devs like Nat Friedman about a general-purpose bounty system:FOSS Factory
Especially interesing is their reasonings for its creation.
Update 12-AUG-2009: Another interesting service I found (while reading the comments of this blog entry) is COfundOS.org
Update 10-MAY-2010: Wow, it seems that a new project was born, which is getting a lot of press and support, to fund projects (but any kind of projects, not only software). It's called Kickstart and it's key feature is that people can pledge for a project but if it doesn't reach the amount required, the people are never charged. I wonder if there should be an option to have projects not have a deadline (more suitable to bugs in bugzillas ;) ). And after reading the FAQ I still cannot figure out how they judge if a project was successfull...
Update 16-SEP-2010: Over the last months I've been still thinking about all this and wondering why the FossFactory project didn't really see much adoption. Other initiatives such as Kickstart have had some success (for example the Diaspora is an example of a software project that just released something thanks to this kind of funding) but it doesn't fit very well to how small unit-of-progress would be rewarded (i.e. small bugs in bug tracking systems as opposed to whole projects) so I guess there's still some hope in micro-payment systems for this.
And indeed there is. It turns out that I joined some months ago a new company that has an internal system to reward in this way (all is explained here -- the Love Machine), and even our CEO went away some months to develop this sole idea as a separate company. Now, the way he decided to pursue it is very interesting: develop a workflow system of little rewards that companies can adopt with their employees (or with their "contractors", because with this workflow they actually don't need to have fixed salaries... --which may be good or bad, and is subject for another discussion).
I don't know much about the success of that project actually. But what I know now is that a new service around the same idea was recently born is really having a lot of adoption, because it's actually not a product that can be deployed in a company, but just a product that is deployed by a company which hosts the service, and then anyone can send or receive micro-payments about anything so it's not a service from a company to a company but from a company to an end-user. And the real good idea behind this is that their micro-payment system makes them be the intermediary between you and the grant-receivers you want to donate to, every month. You don't ever need again to pay N subscriptions to donate to N causes/organizations you like, you just subscribe to them, and then every month (actually everyday) you decide where your money goes too.
Didn't I explain it correctly? Well, go to see the video which is more than a thousand words and more than a million images: FLATTR.
Update 18-FEB-2013: Lots of initiatives popping up now in regards to this, so just a simple update to list some of them:
LAN party for children
Since ODN is trying more and more to put proprietary software out of the way we are looking for open source game solutions to run on the 15 laptops that will be available. Digging a while for this "requirement" it seemed to be more difficult than we thought it would be - most of the games aren't suitable for kids and others are not really playable or appealable judging by their point of view. Currently we are looking for three to five games, which at least one should be multiplayer.
So, please if you are aware of good open source games for this range of ages let me know!
P.S.: If you are still wondering why this event is so *particularly* then what would you think if I tell you that it will be hosted in a bus hã!? ;-) Yeah, that's right, in a BUS!!


Providing a D-Bus interface for CPUFreq knobs
Providing a D-Bus interface for CPUFreq knobs
There has been a discussion on the HAL development list regarding DeviceKit, a corresponding power management subsystem daemon, and a possible CPU frequency scaling interface.
During the discussion, it turned out, and I realised this quite late, that KPowersave still exports the possibility to set either the powersave or performance governor. That is basically a bad idea, and still there because of former times. See this journal for a good rationale. However, the author quite unfriendly rants towards the developers. Unfortunately, I've not seen a bugreport in sourceforge's bugtracker for that, nor anywhere else. Maybe he could have pointed this out in a more elegant way, instead of immediately telling people they are dangerous. How emotional. And funny after all. I filed it here, just to be sure it is not missed for upcoming openSUSE 11.0.
So that is the one issue of the discussion, a completely other one is about if we need a D-Bus interface for tuning CPU frequency scaling (related to the ondemand governor) knobs. As an example, the ondemand governor provides an upthreshold setting you can tune through sysfs. Basically it defines how long a CPU burst has to be so that the frequency is increased. Quoting the kernel documentation:
upthreshold: defines what the average CPU usaged between the samplings of 'samplingrate' needs to be for the kernel to make a decision on whether it should increase the frequency. For example when it is set to its default value of '80' it means that between the checking intervals the CPU needs to be on average more than 80% in use to then decide that the CPU frequency needs to be increased.
When having only short CPU bursts, it is better to stay at a low frequency for a short period of time when it comes down to power consumption. And the typical desktop use consists of those short CPU bursts. Browsing a web page, opening a mail folder, etc.
The kernel sets a sane default for this setting. It is nearly self-evident for a default to be sane, someone should have thought carefully about it. However, that does not mean it is ideal. It just cannot be for all different kind of use cases. Servers, desktops, what applications are running, "on battery", "on AC", namely, depending on the current power source.
So I am an advocator of having a D-Bus interface somewhere at the system level (we already have in HAL, but this will most likely vanish sooner or later due to its successor called DeviceKit) for tuning such knobs by someone who cares about policy. And policy is more and more put to Desktop applications these days.
More options to modifyrepo
In 10.3, zypper modifyrepo (mr) only allowed you to enable/disable one repository and enable/disable autorefresh for it. In 11.0 the options have grown in number a bit. Did i mention the nice help texts?
$ zypper help mr
modifyrepo (mr) <options> <alias|#|uri>
modifyrepo (mr) <options> <--all|--remote|--local|--medium-type>
Modify properties of repositories specified by alias, number or URI
or by the '--all, --remote, --local, --medium-type' aggregate options.
Command options:
-d, --disable Disable the repository (but don't remove it).
-e, --enable Enable a disabled repository.
-r, --refresh Enable auto-refresh of the repository.
-R, --no-refresh Disable auto-refresh of the repository.
-n, --name Set a descriptive name for the repository.
-p, --priority <1-99> Set priority of the repository.
-k, --keep-packages Enable RPM files caching.
-K, --no-keep-packages Disable RPM files caching.
-a, --all Apply changes to all repositories.
-l, --local Apply changes to all local repositories.
-t, --remote Apply changes to all remote repositories.
-m, --medium-type <type> Apply changes to repositories of specified type.
This is what you will see in zypper 0.11.3. The aggregate options (and the -k options) were added just recently by our new colleague Josef Reidinger. Those familiar with 10.3 zypper, note that the --enable-autorefresh/-a and --disable-autorefresh options are now deprecated (-a shorthand even had to be removed because of conflict with --all) in favor of --refresh and --no-refresh options. This change was introduced for the sake of consistency with other commands' options. All the options will be described in more detail in the man page soon.
Few examples
To disable autorefresh for all repositories, do:
$ zypper mr -Ra
Nothing to change for repository 'openSUSE-DVD 11.0'.
Autorefresh has been disabled for repository 'fate'.
Nothing to change for repository 'factory'.
Nothing to change for repository 'packman'.
Autorefresh has been disabled for repository 'factory-nonoss'.
Autorefresh has been disabled for repository 'factory-debug'.
Nothing to change for repository 'vbox'.
Autorefresh has been disabled for repository 'zypp:svn'.
To disable all cd/dvd repositories, do:
$ zypper mr -d -m cd -m dvd
Repository 'openSUSE-DVD 11.0' has been sucessfully disabled.
To enable RPM caching of RPM files for all remote (http/https/ftp) repositories, do:
$ zypper mr -kt
Nothing to change for repository 'factory'.
RPM files caching has been enabled for repository 'factory-debug'.
RPM files caching has been enabled for repository 'factory-nonoss'.
RPM files caching has been enabled for repository 'fate'.
Nothing to change for repository 'packman'.
RPM files caching has been enabled for repository 'vbox'.
RPM files caching has been enabled for repository 'zypp:svn'.
Of course don't forget to use zypper clean when you run out of free disk space then :O)
Missing history and bookmarks in Firefox 3?
zypper search is back
I said i would write about zypper's XML output almost two months ago. Hm... obviously other stuff gained higher priority (i will get back to the XML output later). In the openSUSE Updater applets, the focus has shifted from the zypp back-end to PackageKit and i focused on other zypper/libzypp features and fixes. I will write about them in the following few posts.
Just recently i re-enabled all the original zypper search functionality (except --match-all which will be hopefully comming soon). Apart from the original features, there is one frequently requested change in the presenation of the search results (and thanx to the zypp and sat-solver guys it is also fast :O).
The old zypper listed all available instances of a matching package, all versions from all repositories. But people are more often interested in what the package is about than what versions are available from each respository. Hence, since 0.11.1 you will see a list of packages grouped by their names and types with a summary column instead of repository and version column:
$ zypper search browser
Reading installed packages...
S | Name | Summary | Type
--+---------------------+----------------------------------+--------
i | kim-browser | CIM Browser for CIM-XML Protocol | package
| mysql-query-browser | A Graphical MySQL Query Shell | package
| tvbrowser | digital TV guide | package
This output caught a few users unprepared. I hope learning that --details/-s can turn on a detailed list similar to the old one satisfied most of them:
$ zypper search -s browser
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+---------------------+---------+------------+--------+-----------
i | kim-browser | package | 0.3-208 | x86_64 | factory
v | kim-browser | package | 0.3-208 | i586 | factory
| mysql-query-browser | package | 5.0r12-183 | x86_64 | factory
| mysql-query-browser | package | 5.0r12-183 | i586 | factory
| tvbrowser | package | 2.6.3-22 | noarch | factory
Since zypper 0.11.2 the summaries will be abbreviated as needed to fit the width of your console screen. This is how it looks on an 80 character wide console:
$ search music
Reading installed packages...
S | Name | Summary | Type
--+-----------------------+-----------------------------------------+-----------
| asc-music | Music for Advanced Strategic Command--> | package
| libmusicbrainz | Library That Provides Access to the M-> | srcpackage
| libmusicbrainz-devel | Include Files and Libraries Mandatory-> | package
| libmusicbrainz3 | Library That Provides Access to the M-> | srcpackage
| libmusicbrainz3-6 | Library That Provides Access to the M-> | package
| libmusicbrainz3-devel | Library That Provides Access to the M-> | package
i | libmusicbrainz4 | Library That Provides Access to the M-> | package
| texlive-bin-musictex | MusiXTeX and MusicTeX | package
| texlive-musictex | MusiXTeX and MusicTeX | package
Of course you can use --no-abbrev/-A global option to turn the abbreviation off - the output will be messy, but you can read the whole summaries. Another way to obtain this info is to use zypper info.
...and don't forget to try zypper help search, zypper has nice help texts :O) I'll be fixing zypper update and writing a lot of documentation in the meantime.
OpenSUSE 10.3 on Sony Vaio SZ4MN, webcam problems
I decided to install OpenSuse 10.3 in dual boot with Vista on my laptop, Sony Vaio SZ4MN. Everything it seems to work very well, without any problems, but I still have to test the modem and suspend to ram/disk.
After I did a kernel update from 2.6.22.5-31 to 2.6.22.17-0.1 and I realized that my webcam didn't work. It is a Ricoh WebCam. I found that I have to reinstall the driver (the following packages: r5u870-default and r5u870-firmware), but before, I removed uvcvideo-default and gspcav-default packages.
After installing also jasper (Kopete needs it for webcam support) everything is fine again.
Note: If you have one of the following VAIO models: AR11, FE, AR21, SZ, UX, CR, FZ, or any HP Pavilion machine with a built-in webcam, you should also install this driver.