Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Wednesday, January 18, 2012

Portable proplib: Vala bindings

We are investigating the Vala bindings for XBPS, but to make it fully work Portable proplib must be supported first. I started playing with `vala-gen-introspect` that created the .gi file required to create the final .vapi file with the Vala bindings; but after making the resulting vapi file couldn't compile a test code...

After some time I decided to modify the generated .vapi file manually, started reading the Vala Tutorial, and *et voilĂ *! the human modified vapi file works enough for simple test code.


This is the test code I used (please don't laugh, I've just started playing with Vala). This code just prints the value of the "pkgver" string object from plist file specified in argv[1]. The .vapi files is what specifies how to transform the Vala code into C code. The Vala bindings for the portable proplib can be found on: http://xbps.nopcode.org/distfiles/proplib.vapi

using PropLib;

int main(string[] args) {
    unowned PDict pkgd;
    string val = null;

    pkgd = prop_dictionary_internalize_from_zfile(args[1]);   
    if (prop_dictionary_get_cstring_nocopy(pkgd, "pkgver", out val) == false) {
        stderr.printf("Missing pkgver obj\n");
        return 1;
    }
    prop_object_release((PObject)pkgd);
    stdout.printf("%s\n", val);
    return 0;
}
To compile the source code use the following command (make sure that you have portable proplib installed with pkgconfig support):

$ valac --pkg proplib --vapidir=. test.vala
 If you've built successfully it should print something like:

$ ./test /var/db/xbps/metadata/kernel/props.plist
kernel-3.2.1

$

Wednesday, December 21, 2011

XBPS-0.11 released

After 2 months of active development a new major release of XBPS has been released: say hello to the 0.11 version. Here's the list of changes:


  • xbps-bin(8): it is possible now to reinstall a package even if it's installed with the '-f' option. If reinstalling the same package version, only unexistent files or files not matching its hash will be extracted.
  • While unpacking a binary package, always check that file to be extracted exists on filesystem, if true and its hash is matched, skip extraction.
  • While installing a package always preserve configuration files if they exist, but if hash don't match rename configuration files to filename.old.
  • New shared configuration file via libconfuse that replaces the plist configuration files: xbps.conf. That means that libxbps now requires confuse >=2.7 available at http://www.nongnu.org/confuse/.
  • Support for syslog logging common operations, such as install, update, remove and purge via LOG_NOTICE, and errors with LOG_ERR. By default it's always enabled, can be disabled thru the conf file.
  • xbps-repo(8): new target: pkg-list index?. This target will list all packages from repository with index index?. If optional argument index? (decimal) not set, all repositories will be used.
  • libxbps: when registering new packages, existing entries in requiredby matching the same pkgname/version touple are now simply skipped.
  • Repositories with missing index file are now simply ignored. It's expected that user executes 'xbps-repo sync' to fetch the index for all remote repositories specified in configuration file.
  • Faster binary package unpacking. Only files and symlinks are now extracted from binary packages, thus directories are not extracted anymore. The package builder is responsible to create required directories where appropiate and set correct permissions. While being here, some stuff is skipped now if a package uses the "preserve" keyword or package is being installed, resulting in a faster operation.
  • Implemented "New repository scheme and configuration file" from  issue 16 . The plist index file has been renamed to "index.plist", version bumped to 1.3. The configuration file (repositories.plist) now expect the full path to the directory storing the index.plist file. This will allow us to use other directories (such as non-free, or alike) for such purpose.
  • libxbps: improve xbps_purge_pkg() in case that the process was unexpectedly interrupted, do not error out unless the unregister phase returns an error value.
  • libxbps: when unpacking a package that replaced another package due to virtual packages, preserve its configuration files if they already existed.
  • xbps-bin(8)/xbps-repo(8): new flag '-o' (option). This can be used in the 'show' target to print only a set of objects stored in package's properties dictionary, example:
  •         $ xbps-bin -olicense show xbps
            Simplified BSD
            $ xbps-bin -oversion,build_date show xbps
            0.10.1
            Wednesday 26 October, 2011, 14:37:31 UTC
            $
  • libxbpps: when fetching new pkg-index.plist from a repository, make sure that it's a plist file and can be internalized; otherwise remove downloaded file and return error.
  • xbps-bin(8): new test for the 'check' target to fix missing entries in requiredby array, i.e reverse dependencies in the package database plist.
  • xbps-bin(8): the 'check' target now works virtual packages.
  • libxbps: failed to properly match installed virtualpkgs that were dependencies in a transaction, therefore resulting in real packages being reinstalled and replacing installed virtual packages. 
 Please visit http://code.google.com/p/xbps for more information.

Wednesday, October 26, 2011

XBPS 0.10.1 released

A new (minor) version has been released with the following changes:

  • libxbps: fixed multiple free(3) calls in error paths (via closedir(3)) when some virtualpkg plist file couldn't be internalized.
  • xbps-bin(8): 'remove' with recursive flag (-R) now removes first the specified packages and puts its automatic dependencies at the tail of the array.
  • libxbps: xbps_pkgpattern_{name,version} now return expected pkgname/version if pattern is a shell wildcard pattern (fnmatch(3)).
  • libxbps: removed csh alternate code from the NetBSD's match code. We weren't using this code anyway and this only slowed down xbps_pkgpattern_match().
Please visit http://code.google.com/p/xbps for more information.

Saturday, October 22, 2011

XBPS 0.10.0 released

After 3 months of active development, a new major release of XBPS has been released: say hello to the 0.10.0 version. Here's the list of changes:

  • Fixed issue 11 "xbps-bin fails to update properly some pkgs".
  • xbps-bin(8): the 'check' target now is able to detect if a package  was installed  manually and other packages are currently depending  on it and change its mode to "automatic", i.e as dependency of those  packages.
  • xbps-bin(8), xbps-repo(8): the -C flag now expects a path to a directory where the configuration files (conf.plist and repositories.plist) are stored.
  • New configuration scheme for virtual packages as defined in issue 12.XBPS now reads all plist files in PREFIX/etc/xbps/virtualpkg.d.wants directory with settings for the wanted virtual packages.
  • New configuration scheme as defined in issue 12: a directory to store XBPS configuration files is now used, by default set to PREFIX/etc/xbps. Configuration options are now set via conf.plist, and repositories in repositories.plist.
  • It is possible now to reinstall packages that provide virtual packages and put it back the original package, such as jpeg/libjpeg-turbo multiple times, without loosing important objects set when the original package was installed, i.e reverse dependencies and automatic installation. This is a requisite to really make a system that can be fully customizable and restored back to its original   state with the virtual packages feature.
  • Fixed issue 10 "HTTP repositories in non standard HTTP port currently segfault". You can now use any HTTP server in non standard ports, such as:        http://yourhost:8080/your/repo
  • xbps-bin(8): the 'check' target now detects broken symlinks and marks them as critical errors.
  • libxbps: when updating packages, only files that have been modified (compared to current installed file) are now unpacked. This should save some writes to storage and make the process a bit smoother as well.
  • Moved install transaction code to libxbps. The API has been extended with xbps_transaction_commit() which expects the transaction dictionary as its argument. This function will execute transaction tasks, like removing, updating, installing and configuring packages as defined in the transaction dictionary.
  • The 'cachedir' option in configuration file now can be changed to be relative to the rootdir if the first character is not '/'. The -c flag in xbps-bin(8) still expects a full path and if set, overrides the setting in configuration file.
  • xbps-bin(8): the 'show', 'show-deps' and 'show-revdeps' targets now work with virtual packages.
  • libxbps: fixed NetBSD's dewey matching code to properly identify that a version X.Y.Z should be greater than X.Y_Z.
  • libxbps: revamped virtual package handling. The public API find functions (xbps_find_pkg_*) don't know anything about virtual packages. To find virtual packages the xbps_find_virtualpkg_* functions must be used instead of the "classic" ones.
  • libxbps: the xbps_find_foo_in_array functions have been renamed to xbps_match_foo_in_array because its task is only matching against the provided package name, package pattern or string.

Please visit http://code.google.com/p/xbps for more information.

Friday, May 27, 2011

XBPS 0.8.1 released

A new (minor) version has been released with the following changes:

  • xbps-bin(8)/xbps-repo(8): more meaningful messages when a package couldn't be found in the show, show-deps and show-files targets, rather than exiting silently with only the error return value.
  • Added three new objects for the package props.plist metadata file to specify homepage, license and build date.
  • Minor improvements to the generation of API documentation. 
Please visit http://code.google.com/p/xbps for more information.

Tuesday, May 24, 2011

XBPS 0.8.0 released

After 4 months of active development, a new major release of XBPS has been released: say hello to the 0.8.0 version. Here's the list of changes:

  • xbps-bin(8): added -A and -M options, for setting package install reason to automatic or manual. Obviously both cannot be used togeter.
  • xbps-{bin,repo}(8): -c (cachedir) argument now is an absolute path and   not relative to the root directory.
  • Fixed a bug that made all registered repositories to fail when the first one couldn't be internalized in xbps_repository_pool_init().
  •  Moved the "replaces" handling logic into the API. But instead of removing any package, the packages that should be replaced are added into the transaction dictionary and marked as "remove". The frontend is responsible to install, update, configure and remove all packages by using the properties set in the transaction dictionary.
  • xbps-dgraph: now parses the "provides" object in the package properties  metadata plist file for packages providing virtual packages.
  • xbps-bin(8): added -R option for the "remove" target, to recursively remove packages that were installed automatically by the package(s) that we want to remove, and no other package currently depends on. This is much like the remove and autoremove targets together, i.e "xbps-bin -yp remove foo && xbps-bin -yp autoremove".
  • xbps-bin(8): added -D option to only show the URLs to download the binary packages required by the "install", "update" and "autoupdate" targets.
  • xbps-bin(8): make the list target (without arguments) only show packages that are fully installed. Previously packages in unpacked state were also shown.
  • Added support for virtual packages. A virtual package is one that doesn't exist in the repository, but other packages can provide it. A new array in the package properties dictionary has been added to specify which virtual packages the package supports. As an example, the `rsyslog' package provides the virtual package `syslog-daemon-0'. Other packages can depend in `syslog-daemon>=0' and `rsyslog' will satisfy the dependency.
  • Merged the `progress_callback' branch that makes possible to specify a   function callback to update progress while unpacking binary packages  and while fetching files. xbps-bin(8) now lists current extract files with its size in bytes if -v flag is set.
  • Improved package dependency resolution in repositories by using a new function, xbps_repository_pool_find_pkg() that returns a package dictionary found in the first repository registered in the pool. It can also be used to find the newest version found in all registered repositories.
  • Improved package dependency sorting algorithm that uses less memory, it is 60% faster approximately and as bonus sorts all packages in the way  they should be (previously the sorting was a bit different for packages with no run-time dependencies).
  • Many structural changes in the API. Made some stuff private and changed some function arguments in the API, the ABI is not compatible anymore with previous versions... anyway you shouldn't be using libxbps just yet. The API documentation has been modified to stay in sync with reality.
And some more changes I'm probably missing. You can see the full list here:
http://code.google.com/p/xbps/wiki/ReleaseNotes

Enjoy and happy hacking!

Sunday, January 16, 2011

Portable proplib 0.5.1 released

A new version was released with the following changes:

  • Added pkg-config support and install a proplib.pc file.
  • Merged stuff from old subversion repo, that re-added the change to emit base 10 rather than base 16 for unsigned numbers contributed by Adam Hoka.
Please see http://code.google.com/p/portableproplib for more information.

XBPS 0.7.3 released

 A new version has been released with the following changes:
  • Fixed a bug that made libxbps fail to detect properly configuration files. This made all updates in configuration files to be lost.
  • It is now possible to properly build against an external portable proplib (with pkg-config support) and libfetch.
  • Enabled a bunch of compiler warnings in the configure script (if supported by the compiler), and made symbol visibility dependent of configure tests.
  • Added --silent argument to the configure script, hiding compilation details in the build process (disabled by default). 

Please see http://code.google.com/p/xbps for more information.

Wednesday, January 12, 2011

Portable proplib 0.5.0 released!

I've just released a new version of the portable proplib implementation: 0.5.0. This version has the following changes:

  • Synced proplib code with NetBSD HEAD, which replaces the red-black tree implementation and checks for NULL pointers passed in to the _dict/_array functions.
  • The _zfile functions in the API are now encapsulated into its own file, that way upstream changes are merged easily.
  • The list of public API exported symbols is now handled via libtool's -exported-symbols option so that local symbols don't pollute the API.
  • Explicitly require a C99 compiler. Don't want to waste time in non C99 compilers.
  • Build with Stack Smashing Protection if supported by the compiler, and a bunch of compiler warnings.
Next stable XBPS version will link to the external dependencies for proplib and libfetch by default just to avoid namespace pollution in libxbps. Enjoy!

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.

Monday, November 8, 2010

XBPS: creating dot(1) graphs for metadata properties on installed pkgs

For the past days (well, only Sunday to be exact) I've been coding an application to automate the generation of dot(1) graphs for installed packages with XBPS, exactly for package's metadata properties; those such as dependencies, reverse dependencies, configuration files, etc. The code is 500 LOC and generates customized dot files through properties set in a configuration plist file. I'm sorry if you don't like XML, I don't care :-)

Basically the steps you have to do are the following:


$ xbps-dgraph -g [to generate the config file]
$ xbps-dgraph pkgname [to generate the .dot file]
$ dot -Tpng pkgname -o pkgname.png [to generate the png image]

 You can also add/change/remove properties for graph, edges and nodes through the configuration file (xbps-dgraph.conf by default).

The following are some graphs from packages installed on my system, please note that some packages will genererate a really LARGE image if it contains many nodes. I hope you enjoy the graphs as I do; xbps-dgraph will appear in the next upcoming XBPS release... perhaps in a few days :-)




Sunday, October 31, 2010

XBPS 0.6.2 released!

A new version of the X Binary Package System, also known as XBPS has been released with the following changes:

  • libxbps: xbps_repository_unregister(): in remote repositories, also remove the pkg index file and its directory.
  • libxbps: xbps_get_pkg_index_plist(): fixed a memleak.
  • xbps-bin(8): modify the 'list' target to accept an optional argument to list packages in the specified state, so that you can list packages that need to be purged, configured and broken (will be used in the future).
  • xbps-bin(8): added a new target 'find-files' to find which installed package(s) own a file. Exact matches "/bin/mount" or patterns "/usr/lib/libb[ao]b\*" can be specified.
  • When updating a package and removing obsolete files, don't forget to remove those directories if they were empty.
Please report any bug, problem, wanted feature, suggestion or whatever to the XBPS users group at http://groups.google.com/group/xbps .

Wednesday, October 27, 2010

XBPS templates month news: October 2010

A lot of updates including Linux kernel to 2.6.36, GNOME 2.32, xorg 1.9.1, etc. Here's the full changelog for this month, it can be easily taken from Mercurlal repository with the following command:

$ hg log --template "{desc|firstline}\n\n" --date "2010-10-01 to 2010-10-31"

Summary:

  • sylpheed: update to 3.0.3.
  • squashfs-tools: update to 4.1.
  • sed: use --without-included-regex.
  • groff: fix issues with some UTF-8 manpages (from Arch), added -doc subpkg.
  • texinfo: ship compressed info files, bumprev.
  • fuse: remove static dev nodes, bumprev.
  • sysvinit: update to 2.88.
  • ConsoleKit: update to 0.4.2.
  • glibc: update to 2.12.1.
  • module-init-tools: update to 3.12.
  • psmisc: update to 22.13.
  • qemu: update to 0.13.0.
  • libarchive: bumprev for xz -> liblzma update.
  • Removed xz-devel symlink.
  • xz: update to 5.0.0, provide liblzma{,-devel} subpkgs. Bump abi_depends.
  • pam: update to 1.1.2.
  • libsoup: move gobject-introspection stuff into a new subpkg, bumprev.
  • udev: update to 164.
  • avahi: update to 0.6.28.
  • dconf: needs gio-modules trigger, move dconf bin into main pkg.
  • Added dconf-0.5.1 build template.
  • xbps-triggers: update to 0.4, improve gsettings-schemas trigger.
  • gnome-bluetooth: needs gsettings-schemas trigger, bumprev.
  • xbps-triggers: update to 0.3, added a gsettings-schemas trigger.
  • pygtk: update to 2.22.0.
  • pygobject: update to 2.26.0.
  • ntfs-3g: update to 2010.10.2.
  • fuse: update to 2.8.5.
  • network-manager-applet: update to 0.8.1.999.
  • NetworkManager: update to 0.8.1.999.
  • gnome: update to 2.32.0, finally!
  • gnome-bluetooth: update to 2.32.0, bump abi_depends.
  • asciidoc: update to 8.6.2.
  • kernel: modify kernel config one more time, bumprev.
  • xrandr: update to 1.3.3.
  • libXi: update to 1.3.2.
  • xcb-util: needs libxcb-devel at build time.
  • libX11: update to 1.3.99.902 (1.4.0 RC2).
  • xf86-video-intel: update to 2.13.0.
  • xf86-video-ati-git-snapshot: needs libudev.
  • xorg-util-macros: update to 1.10.1.
  • llvm: update to 2.8.
  • xkeyboard-config: update to 2.0.
  • libxml2: add a patch to fix segfaults with yelp and others, from Arch.
  • NetworkManager: update to 0.8.1.
  • gnome-panel: update to 2.30.0.2.
  • gdm: update to 2.32.0.
  • gedit: update to 2.30.4.
  • eog: update to 2.32.0.
  • gnome-netstatus: update to 2.28.2.
  • gnome-system-monitor: update to 2.28.2.
  • cairomm: require latest cairo that doesn't depend on glitz, bumprev.
  • gnome-utils: update to 2.32.0.
  • gnome-power-manager: update to 2.32.0.
  • gnome-terminal: update to 2.32.0.
  • vte: update to 0.26.0.
  • epiphany: update to 2.30.6.
  • webkit-gtk: update to 1.2.5.
  • gnome-user-docs: update to 2.32.0.
  • nautilus: update to 2.32.0.
  • yelp: update to 2.30.2.
  • gnome-themes: update to 2.32.0.
  • gnome-media: update to 2.32.0.
  • gnome-icon-theme: update to 2.31.0.
  • gnome-control-center: update to 2.32.0.
  • metacity: update to 2.30.3.
  • zenity: update to 2.32.0.
  • gnome-settings-daemon: update to 2.32.0.
  • nss-devel: fix Cflags in nss.pc file, bumprev.
  • libgnomekbd: update to 2.32.0.
  • gnome-backgrounds: update to 2.32.0.
  • gnome-applets: update to 2.32.0.
  • gst-plugins-base: update to 0.10.30.
  • libgtop: update to 2.28.2.
  • gstreamer: update to 0.10.30.
  • gucharmap: update to 2.32.0.
  • gnome-panel: update to 2.32.0.
  • GConf: added gir-gconf subpkg, bumprev to -devel subpkg.
  • gtk+: added gir-gtk+ subpkg, bumprev to -devel subpkg.
  • atk: update to 1.32.0.
  • pango: update to 1.28.3.
  • gnome-disk-utility: add patch missed in previous update.
  • gdk-pixbuf: add gir-gdk-pixbuf subpkg, bumprev to -devel subpkg.
  • libgnomecanvas: update to 2.30.2.
  • libgnome: update to 2.32.0.
  • gvfs: update to 1.6.4.
  • gnome-disk-utility: update to 2.32.0.
  • gnome-vfs: update to 2.24.4.
  • libbonobo: update to 2.32.0.
  • evolution-data-server: update to 2.32.0, bump abi_depends.
  • mapping_shlib: added libgdata.
  • Added libgdata-0.6.5 build template.
  • libgweather: update to 2.30.3.
  • libsoup: update to 2.32.0.
  • libgnome-keyring: update to 2.32.0.
  • gnome-desktop: update to 2.32.0.
  • gobject-introspection: update to 0.9.10.
  • gnome-menus: update to 2.30.4.
  • libwnck: update to 2.30.5.
  • librsvg: update to 2.32.0.
  • adobe-flash-plugin: update to 10.1 preview 2.
  • firefox: finish update to 3.6.11.
  • xulrunner: finish update to 1.9.2.11.
  • sqlite: update to 3.7.3.
  • eject: added a patch to handle mountpoints with spaces, from Gentoo. bumprev.
  • kernel-libc-headers: remove .install/..install.cmd files, install scsi/scsi.h. Bumprev.
  • ifenslave: sync code with 2.6.36, bumprev.
  • tzdata: update to 2010m.
  • libarchive: update to 2.8.4.
  • gnome-session: update to 2.32.0.
  • GConf: update to 2.32.0.
  • xorg-server: update to 1.9.1.
  • glib: move some bins from -devel to main pkg, bumprev.
  • polkit-gnome: bump api_depends.
  • polkit-gnome: update to 0.99.
  • polkit: update to 0.99, bump abi_depends.
  • xbps: update to 0.6.1.
  • gtk+: update to 2.22.0.
  • xbps-triggers: update to 0.2.
  • Added gdk-pixbuf-2.22.0 build template.
  • dbus: update to 1.4.0.
  • upower: update to 0.9.6.
  • polkit: update to 0.98.
  • lvm2: update to 2.02.74.
  • openssh: update to 5.6p1.
  • cronie: update to 1.4.6.
  • logrotate: update to 3.7.9.
  • sudo: update to 1.7.4p4.
  • util-linux-ng: update to 2.18, added libmount{,-devel} subpkgs.
  • man-pages: update to 3.29.
  • grep: update to 2.7.
  • rsyslog: update to 5.6.0.
  • kernel: improve x86_64 options, remove kernel-manpages subpkg.
  • Split kernel-manpages from the 'kernel' pkg, to speed up the process.
  • dhcpcd: update to 5.2.8.
  • coreutils: update to 8.6.
  • busybox-initramfs: update to 1.17.3.
  • make: add two patches from archlinux, bumprev.
  • nss: update to 3.12.8.
  • nspr: update to 4.8.6.
  • Added talloc-2.0.1 build template.
  • xf86-input-evdev: update to 2.5.0.
  • xf86-video-ati: update to 6.13.2.
  • xorg-server: update to 1.9.0, bump abi_depends.
  • libpciaccess: update to 0.12.0.
  • libdrm: update to 2.4.22.
  • libXfont: update to 1.4.2.
  • xproto: update to 7.0.18.
  • libICE: update to 1.0.7.
  • libfontenc: update to 1.1.0.
  • freetype: update to 2.4.3.
  • cairo: update to 1.10.0.
  • pixman: update to 0.18.4.
  • kernel-libc-headers: install drm headers, bumprev.
  • kernel-libc-headers: update to 2.6.36.
  • glib: update to 2.26.0.
  • bzip2: update to 1.0.6.
  • mercurial: update to 1.6.4.
  • xbps-base-system: update to 0.32, do not depend on radeon-firmware.
  • kernel: update to 2.6.36.
  • wifi-firmware: update to 1.1: some deps now come from linux-firmware pkg.
  • Added linux-firmware replacing some firmware packages.
  • gcc: update to 4.5.1.
  • mpc: bump revision due to mpfr ABI change.
  • Backed out changeset a850a857fb8a. Human error...
  • mpc: bump revision due to mpfr ABI change.
  • mpfr: update to 3.0.0. Bump abi_depends.
  • udev: update to 163.
  • xbps-src: do not overwrite PATH, just append it to the new one.
  • make: update to 3.82.

XBPS: upcoming features for 0.6.2

I've been working in some missing features for the next XBPS version, and here they are:

  1. xbps-bin(8): modify the 'list' target to accept an optional argument to list packages in the specified state, so that you can list packages that need to be purged, configured and broken (will be used in the future).
  2. xbps-bin(8): added a new target 'find-files' to find which installed package(s) own a file. Exact matches "/bin/mount" or patterns "/usr/lib/libb[ao]b\*" can be specified.
  3. When updating a package and removing obsolete files, don't forget to remove those directories if they were empty.
The first item adds code to list any package registered on the system, regardless of its state; even it it's broken (well, broken means that some files were removed and/or modified, or that there are missing runtime dependencies, missing metadata files, etc). You can see the commig log here:

http://groups.google.com/group/xbps-commits/browse_thread/thread/cf450a3c6da4c09c

The second item adds code to find files owned by a package, it's well explained
here:

http://groups.google.com/group/xbps/browse_thread/thread/db5923dff1f42dac

Last item helps to remove obsolete and empty directories that aren't used anymore by any installed package.

Development won't stop and I'm looking for more ideas and features to be implemented for the next upcoming XBPS version, 0.6.2.

XBPS 0.6.1 released

A new version has just been released with the following changes:

XBPS 0.6.1
- Released October 23, 2010.
  • When replacing a package that is going to be updated in the transaction do not remove it, just overwrite its files and continue. The updated package will find that old files didn't match the SHA256 hash and will skip them. This solves the issue of new package updates requiring new dependencies with files that were previously stored in the old version. For example gtk+-2.20 containing gdk-pixbuf, and gtk+-2.22 requiring gdk-pixbuf externally.
The Release Notes for all released versions can be found here.

Monday, May 17, 2010

XBPS week news: 11/05/2010 - 17/05/2010

This week there have been a lot of changes both in packages and xbps-src and its helpers.

Package upgrades:

  • vim: updated to 239 patch level, added icons and .desktop file for gvim.
  • initramfs-tools: merged in 0.94.4 from Debian, now hibernation works properly.
  • xbps-casper: merged in 1.236 from Ubuntu, fixed some errors detecting filesystems.
  • kernel: updated to 2.6.34.
  • udev: updated to 154.
  • xbps-mklive: updated to 0.3.3, multiple improvements.
  • lame: updated to 3.98.4.
  • mercurial: updated to 1.5.3.
  • ntfs-3g: updated to 2010.3.6.
  • pixman: updated to 0.18.2.
  • lcms: updated to 1.19. 2.0 is ABI incompatible, it will have to wait.
  • transmission: updated to 1.93.
  • git: updated to 1.7.1.
  • curl: updated to 7.20.1.
  • qemu: updated to 0.12.4.
  • xorg-server: updated to 1.8.1.
  • upower: updated to 0.9.3.
  • syslinux: updated to 3.86.
  • gettext: updated to 0.18.
  • libffi: updated to 3.0.9.
  • gawk: updated to 3.1.8.
  • gcc-multilib: updated to 4.5.0.
  • glibc32: updated to 2.11.1.
A major overhaul of the gcc-multilib packages for x86_64 has been done, and now building with -m32 is fully supported; of course if you don't have the 32bit libraries to link against it won't work.

xbps-src now also checks for required utilities in the host system before doing
any operation. That simply has been added to avoid errors from new or existing users while building the bootstrap with 'xbps-src bootstrap'.