Tuesday, December 28, 2010

XBPS 0.7.2 released

A new version has been released with the following changes:

  •  Fixed some memleaks in libxbps and its clients, found by valgrind.
Please see http://code.google.com/p/xbps for more information.

Thursday, December 23, 2010

XBPS 0.7.1 released

A new version has been released with the following changes:

  • xbps-dgraph: fixed small build error on x86 shown in buildbot tests.
  • libxbps: xbps_repository_pool_init(): don't loop forever if repository pkg-index.plist files cannot be internalized.
  • libxbps: xbps_fetch_file(): set a 30 seconds timeout for transfers.
  • xbps-repo(8): fixed the 'genindex' target for the API changes in 0.7.0.
  • xbps-uhelper: fixed the 'unregister' target for the API changes in 0.7.0.
 Please see http://code.google.com/p/xbps for more information.

XBPS: VirtualBox 4.0.0 + DKMS

I've spent the past two days in packaging VirtualBox 4.0.0, that was released just yesterday. The problem is that VirtualBox uses some kernel modules for the hosts and guests and I didn't want really to create a package with the binary modules hardcoding a specific kernel package version.

What's the solution to this? DKMS. DKMS stands for Dynamic Kernel Modules Support, and is being used in Debian and RedHat derivatives. Why DKMS is useful? because it will rebuild/install some external kernel modules for all kernels available on the system or just a specific one. Let's show a real example:

My machine is currently running the Linux kernel 2.6.37-rc7, if DKMS is not used, I'd have to force the VirtualBox package that comes with the kernel modules to depend on a specific kernel version, the same that was used to build them. Actually the XBPS distribution uses the latest stable kernel, 2.6.36.2, so the XBPS package with the VirtualBox modules wouldn't work on my system. DKMS solves this by building/installing those external modules in the specific kernel version that you specify to it.

Hope you understood why DKMS is useful, and because those "foo-modules-version" packages in most distros are really not very useful, and becase there are tons of them.

VirtualBox 4.0.0 is really awesome, I'm impressed how fast it is compared to QEMU (without KVM). It's really working well on my XBPS x86_64 distro. You can find VirtualBox in the "xbps-templates" mercurial repository on the XBPS project site. Below are two screenshots of my system running VirtualBox.





DKMS: http://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support
VirtualBox: http://www.virtualbox.org/

Sunday, December 19, 2010

XBPS: XBMC 10.0 available!

So a few hours ago I've just updated the xbmc package to 10.0. Some days ago I was looking for a free media center that is able to stream content to my XBOX 360 and found XBMC. What can I say about it? it's simply amazing, this version is able to install multiple add-ons to improve its capabilities, i.e for viewing youtube videos, listening streams over shoutcast, etc.

Below are two screenshots of my desktop system running XBMC 10.0 and GNOME 2.32.1. Both available from XBPS in binary packages and sources in the xbps-templates repo. Enjoy!


Wednesday, December 15, 2010

XBPS 0.7.0 released

A new version has been released with the following changes:

  • xbps-repo(8): implemented the 'find-files' target to print which packages own a file, link, directory, etc. Analogue to the one implemented in xbps-bin(8). Works for local and remote repository, fetching info on-the-fly.
  • Fixed a typo in the configure script that broke detection of strlcat(), reported and patch provided by Min Sik Kim in issue 2.
  • xbps-bin(8): added -F flag for the remove target. Unless it's set, packages that are dependencies of other installed packages won't be removed. This flag overrides this behaviour and forces the package removal.
  • xbps-{bin,repo}(8): indent uniformly all lines while listing packages in xbps-bin or while searching for packages in xbps-repo.
  • xbps-repo(8): while searching for packages also try to find strings in the short description object.
  • xbps-{bin,repo}(8): added -d arg to enable debugging output to stderr.
  • While updating packages, obsolete directories are also removed when necessary. This helped to remove some empty dirs for python 2.6 > 2.7 update, just to mention a real example.
  • Cleaned up the API. Still not finished and there's a long way to have this finished and ready for public consumption.
  • xbps-dgraph: new utility to generate graphviz' dot(1) graphs for package  metadata properties, such as dependencies, reverse dependencies, etc. Extracts the info from installed package metadata plist files.
  • Performance improvements in libxbps and all utilities, by avoiding unnecessary access(2) and chdir(2) calls while executing the INSTALL/REMOVE scripts at pre/post (de)install time.
  • Fixed some memleaks on libxbps found while working on the xbps-dgraph utility.
Please see http://code.google.com/p/xbps for more information.