Voyageur's corner

To content | To menu | To search

Wednesday 9 April 2008

Testing the new "gold" linker from binutils

After reading Diego's post on linkers, I got curious (and interested) by this new linker (also mentioned in LWN and other sites).

Developed by Ian Lance Taylor (from Google), the gold linker is now in binutils, and promises link times divided at least by 5. The code I develop at work is a big C++ project, and takes a looooot of time linking indeed (especially in debug...). So let's see how to try this new linker

First, a big warning: this is still heavily experimental, I do not recommend to use it for your system itself. It only works on x86/amd64, does NOT link a kernel correctly for now. Keep a stable binutils, and use it for all your emerge operations. UPDATE: see Diego's warnings too, Remember that I only test gold on C++ debug binaries, not on system packages or other important compilations.

You have been warned ;) Now let's see how to install a gold-enabled binutils in parallel with your stable one:

  • First step: enable multislot for binutils (so you'll have both unstable/gold binutils and stable binutils available with binutils-config)
# echo "sys-devel/binutils multislot" >> /etc/portage/package.use
# emerge -av binutils


  • Unmask an unstable binutils ebuild, and compile it with gold enabled (thanks to EXTRA_ECONF feature)
# echo "=sys-devel/binutils-2.18.50.0.6 **" >> /etc/portage/package.keywords
# EXTRA_ECONF="--enable-gold" emerge -av '=sys-devel/binutils-2.18.50.0.6'


  • Use binutils-config to switch between your stable binutils, and gold-enabled 2.18.50.0.6 (ld --version will say "GNU gold ...")

And now back to work with greatly reduced linking times, yay!

Monday 17 March 2008

nxcl/qtnx (open-source NX client) in portage, freenx new release

After the live ebuild version in the NX overlay, I've added the newly released 0.9 version of nxcl (base library)/qtnx (QT4 front-end), a GPL client for NX servers. For now I've keyworded them on x86 and amd64 (where I could test them), but who knows, it may work on other arches, where the official nxclient is not available!

Be warned that some options may be missing or incomplete, when compared to nxclient. But all the basics are there :)

In the meantime, a new FreeNX release (0.7.2) was made available. While some changes were already backported in Gentoo 0.7.1 ebuild, there are quite a few new features. Fabian Franz (main FreeNX dev, who does a great work) has posted the (long because of all the new features) announcement on the mailing list here. Here are some new features I picked up:

  • new helper program that should help for VNC sessions
  • slave mod is usable (think "This dramatically reduces session login times and makes single sign on possible")
  • new samba sharing system (sharing and remote printing)
  • New "nxsetup --test" command: this one will help a lot if you have an incorrect sshd conf for example
  • lots of bugfixes

I'm preparing the version bump in portage, hopefully you will get it in a few days (new installation method, patches to update/remove/...). Stay tuned! EDIT: nxserver-freenx-0.7.2 is now in portage, enjoy!

Thursday 13 March 2008

Time does fly by

The LDAP infos on Gentoo dev server confirm it:

gentooJoin: 2007/03/13

So it's been a year since I officialy joined Gentoo developers, after discovering gentoo, the forums, trying n amd64 installation with a 2004.3 CD, harassing bugzilla (and giving jakub some work) for some time... ;)

NX does not take much of my time anymore, mostly revision bumps. I still need to write some documentation on this great piece of software (oh and add ebuilds to portage for qtnx, an open-source client I mentioned earlier).

After some work and eclass rewrite, GNUstep in Gentoo is in a much better shape: a few bugs are still opened, but most of the packages work fine now.

What's been great so far? Well most importantly: the Gentoo people. And I mean both developers and users. Developers with their knowledge, motivation, counseling, ... Users that report problems, fill bugs, help other users (forums, IRC), ...

Ok now happy Gentoo birthday me, and back to work ;)

Thursday 7 February 2008

If you're looking for a TortoiseSVN clone for Gnome...

... be sure to check NautilusSvn. I usually prefer the command-line SVN, but I got curious about this one( meld integration, svn rev and user as columns, ...).
So what do you need to try this on Gentoo?

  • Python bindings for SVN: dev-python/pysvn, bug #62852, grab it in my overlay
  • Python bindings for Nautilus: gnome-extra/nautilus-python, bug #78021. A new version was released a few weeks ago, again grab the ebuild from my overlay
  • dev-python/wxpython and dev-util/meld from portage (runtime dependencies)

Then head to NautilusSvn web page and follow the README. Remember to restart Nautilus, and there you are! People motivated in writing an ebuild can visit bug #147433

ps: if you prefer konqueror, kdesvn should do the job too

Tuesday 15 January 2008

New open-source NX client under development

Some days ago, George Wright announced on #nx that he just had committed a new qtnx, based on the nxcl libs. Qtnx is an open-source Qt-based NX client, and it looks like development on it is rolling again :) It is now based on nxcl, developed by Seb James.

In fact, George is now working for a company on a NX server (and client), their web site is desktopondemand.com. The client is GPL-2, and should support most NX features (including 3.0 shadowing). Of course it is still under heavy development, but you can find them as -9999 SVN ebuilds in the NX overlay. Just run:

# layman -a nx
# emerge -av qtnx

I hope this one will soon join nxclient (binary-only, but latest NX features) and nxclient-2xterminalserver (GPLed NX 1.5 version) in portage

Btw, the ebuild is currently marked x86, as these are the arches I test NX on. Drop me a line if it works on ppc (it should) or other arches

Wednesday 9 January 2008

Gnustep unstable packages added to portage

Even if these packages are marked unstable, they do have some fixes (and the stable release is getting old). Some gnustep packages now need them in their latest versions (including gorm). So they're now available in portage (moved from the gnustep overlay), under package.mask. Be warned though that upgrading to the unstable release means recompiling every one of your gnustep packages (revdep-rebuild is your friend). A few packages had to be fixed to work with new gnustep-gui, don't hesitate to report if something does not work

The pieces to unmask are currently:

# Bernard Cafarelli <voyageur@gentoo.org (09 Jan 2008)
# Mask unstable gnustep and packages depending on it
>=gnustep-base/gnustep-back-art-0.13.0
>=gnustep-base/gnustep-back-cairo-0.13.0
>=gnustep-base/gnustep-back-xlib-0.13.0
>=gnustep-base/gnustep-base-1.15.1
>=gnustep-base/gnustep-gui-0.13.0
>=virtual/gnustep-back-0.13.0
>=gnustep-apps/gorm-1.2.2
>=gnustep-apps/simpleagenda-0.33

If you want to try the Cairo backend, this could be the right time (the unstable release works quite fine)

This brings Gentoo packages on par with the latest Gnustep Startup, have fun!

Tuesday 1 January 2008

Welcome to 2008

I'll keep this one very short (as was the night!): happy new year! Let's see what 2008 will bring us, it started well in France (at least for non-smoking people) with the smoking ban in bars, restaurants, ...

Monday 26 November 2007

New gnustep soon stable, new windowmaker ebuild, NX news, ... (and other things I've already forgotten)

It looks like real life finally lets me write some news on Gentoo work :)

GNUstep news first: packages based on gnustep-make-2.0 are now almost all marked stable (see the progress in this bugreport), there's only sparc left and then I'll finish cleaning up the old ebuilds. In the gnustep overlay, you can now find (masked) unstable gnustep and gorm releases: lots of fixes, but requires lots of revdep-rebuild! ;)

Thanks to grobian and truedfx, you can now try windowmaker-0.92.0-r7, it has some nice features to check out. This is still my WM of choice, even if I now run gnome on the laptop (easy compiz switching, better power management integration).

On the NX front, a nice Gentoo user has filled a few enhancement bugs on freenx (startup script, utempter use, ...). I'm preparing a revbump integrating most of these, stay tuned. I'm also preparing a revbump for the free edition server, upstream has released a new version with many fixes (including some that could help people using selinux). And last, if you have problems with freenx, or freeedition server, there are two lengthy threads on the forums, where you may get help from other users. The freenx thread is here, and the one for the free edition is here

And closing this post, I'd like to say a big "thank you for all the work you've done on Gentoo" to Roy Marples (uberlord), and Seemant Kulleen (uncle Seemant)

Thursday 1 November 2007

Tips and tricks: Gentoo Linux on a Samsung Q45 laptop

I won't talk here about the difficulties encountered while installing ~amd64 Gentoo on this baby, as most of the components work quite well and without a problem, but rather about a few tips I had to dig around the Internet. Some of these tips may apply to other PCs, or other distributions too ;)

External kernel modules to emerge

To get most of the hardware, emerge:

  • net-wireless/iwlwifi: even if it's still relatively new, it works much better than ipw3945 for the wifi! Update: merged in kernel, simply emerge net-wireless/iwl3945-ucode, and enable iwlwifi in kernel tree
  • media-video/linux-uvc: who knows, this webcam may be useful one day
  • x11-drivers/nvidia-drivers: yes, it's proprietary, but you need it to try compiz-fusion (add "options nvidia NVreg_RegistryDwords="PerfLevelSrc=0x2222" to /etc/modules.d/nvidia to fix flickering in X)
  • app-misc/sdricoh_cs: this is a *very* experimental driver for the card reader (I did not try further though, as I still have an old PCMCIA one that works fine and fast) ''Update"": turns out you don't need this one, simply use the "sdhci" module from kernel

Power management

Now, let's get the most of the battery. First some links that will give a lot of ideas to get a longer battery life:

  • Gentoo Power Management Guide
  • Intel-sponsored Less watts site: by the way, emerging powertop definitely is a good idea!
  • Mandatory to let your CPU rest while on battery: HRT (tickless system) patch for amd64, apply it to your 2.6.23 gentoo-sources. Update: merged in recent kernels
  • A patch to apply to gnome-applets (works fine here, less CPU wakeups)

By the way, nvidia broke the brightness key shortcuts while in X, but you can switch to a console (where the keys work!), adjust brightness, and switch back to X.

Gnome tips

For now, I run Gnome (2.20) on it, here a few fixes. First, the gnome-power-manager tray icon may not appear from time to time on login. This is a known problem, also known as bug 188618 to poor Gentoo developers. (Update) This was fixed by leio (don't forget to thank him), now you just need to upgrade to gnome-power-manager-2.20.0-r1 (no need to kill and restart g-p-m manually now). For other distributions, this was accepted usptream, so you should be fine soon too :)

OK, now that we have a battery life monitor, next tweak: if you have kept the hidden backup partition on this system, gnome will add a nice (completely useless) icon for it on your desktop. Thanks to the french Ubuntu forums, here is how to tell HAL to ignore that partition (/dev/sda1 in my case). Create a file called /etc/hal/fdi/preprobe/10ignore-disks.fdi, with these lines inside:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="block.device" string="/dev/sda1">
<merge key="info.ignore" type="bool">true</merge>
</match>
</device>
</deviceinfo>

And voila, this one will not bother you anymore :)

Last thing, if you'd like to enter your password once at gdm screen, without the need to retype it for gnome-keyring (NetworkManager trying to connect to the home wifi), and even SSH passphrases, read this great planet post by fellow french conspiracy Gentoo developer remi.

Another last thing (last one I promise), about NetworkManager: this is a great tool, but it will work better if you add something like 'RC_PLUG_SERVICES="!net.eth* !net.wlan*"' to /etc/conf.d/rc (so the system does not try to start the interfaces before networmanager does). Also take a look at NetworkManagerDispatcher (bug here): this tool will automate start/stop of services when NetworkManager connects to a network (openvpn, ntpd, ...)

OK, I've finished now, thanks to the few people that are still reading ;)

Wednesday 3 October 2007

Seam Carving for Content-Aware Image Resizing: sounds nice, works great!

Some weeks ago, I saw this video on a new picture "resizing" technique. A white paper is also available for those interested in the algorithm.

So why did this video launch quite a buzz? Well, watch the video (if you never saw it), and be amazed by this intelligent resizing of images (changing the aspect ratio, while keeping important parts, and removing other parts). That means you can resize a photo without making the people on it look like aliens, keep the nice parts of a panorama and forget a bit about the rest...

If you want to try it, there is now a live demo available on the net: rsizr.com (flash demo, needs the newest flash plugin to work). After toying with it a bit, I can say it works as well as in the video :)

Next step, try it in GIMP! A plugin is available here, and an ebuild here (I'll probably add it to my overlay for testing too). I have a few pictures that will make great wallpapers, once I have them resized for my screen ratio.

Little update: the seam carver project also provides a library implementing the technology, with a little demonstration application (live this time) called arachne. Ebuild in my overlay for the curious!

- page 2 of 4 -