Artikel getaggt mit deprecation

autopkgtest 4.0: Simplified CLI, deprecating “adt”

Historically, the “adt-run” command line has allowed multiple tests; as a consequence, arguments like --binary or --override-control were position dependent, which confused users a lot (#795274, #785068, #795274, LP #1453509). On the other hand I don’t know anyone or any CI system which actually makes use of the “multiple tests on a single command line” feature.

The command line also was a bit confusing in other ways, like the explicit --built-tree vs. --unbuilt-tree and the magic / vs. // suffixes, or option vs. positional arguments to specify tests.

The other long-standing confusion is the pervasive “adt” acronym, which is still from the very early times when “autopkgtest” was called “autodebtest” (this was changed one month after autodebtest’s inception, in 2006!).

Thus in some recent night/weekend hack sessions I’ve worked on a new command line interface and consistent naming. This is now available in autopkgtest 4.0 in Debian unstable and Ubuntu Yakkety. You can download and use the deb package on Debian jessie and Ubuntu ≥ 14.04 LTS as well. (I will provide official backports after the first bug fix release after this got some field testing.)

New “autopkgtest” command

The adt-run program is now superseded by autopkgtest:

  • It accepts only exactly one tested source package, and gives a proper error if none or more than one (often unintend) is given. Binaries to be tested, --override-control, etc. can now be specified in any order, making the arguments position independent. So you now can do things like:
    autopkgtest *.dsc *.deb [...]

    Before, *.deb only applied to the following test.

  • The explicit --source, --click-source etc. options are gone, the type of tested source/binary packages, including built vs. unbuilt tree, is detected automatically. Tests are now only specified with positional arguments, without the need (or possibility) to explicitly specify their type. The one exception is --installed-click com.example.myapp as possible names are the same as for apt source package names.
    # Old:
    adt-run --unbuilt-tree pkgs/foo-2 [...]
    # or equivalently:
    adt-run pkgs/foo-2// [...]
    
    # New:
    autopkgtest pkgs/foo-2
    # Old:
    adt-run --git-source http://example.com/foo.git [...]
    # New:
    autopkgtest http://example.com/foo.git [...]
    
  • The virtualization server is now separated with a double instead of a tripe dash, as the former is standard Unix syntax.
  • It defaults to the current directory if that is a Debian source package. This makes the command line particularly simple for the common case of wanting to run tests in the package you are just changing:
    autopkgtest -- schroot sid

    Assuming the current directory is an unbuilt Debian package, this will build the package, and run the tests in ./debian/tests against the built binaries.

  • The virtualization server must be specified with its “short” name only, e. g. “ssh” instead of “adt-virt-ssh”. They also don’t get installed into $PATH any more, as it’s hardly useful to call them directly.

README.running-tests got updated to the new CLI, as usual you can also read the HTML online.

The old adt-run CLI is still available with unchanged behaviour, so it is safe to upgrade existing CI systems to that version.

Image build tools

All adt-build* tools got renamed to autopkgtest-build*, and got changed to build images prefixed with “autopkgtest” instead of “adt”. For example, adt-build-lxc ubuntu xenial now produces an autopkgtest-xenial container instead of adt-xenial.

In order to not break existing CI systems, the new autopkgtest package contains symlinks to the old adt-build* commands, and when being called through them, also produce images with the old “adt-” prefix.

Environment variables in tests

Finally there is a set of environment variables that are exported by autopkgtest for using in tests and image customization tools, which now got renamed from ADT_* to AUTOPKGTEST_*:

  • AUTOPKGTEST_APT_PROXY
  • AUTOPKGTEST_ARTIFACTS
  • AUTOPKGTEST_AUTOPILOT_MODULE
  • AUTOPKGTEST_NORMAL_USER
  • AUTOPKGTEST_REBOOT_MARK
  • AUTOPKGTEST_TMP

As these are being used in existing tests and tools, autopkgtest also exports/checks those under their old ADT_* name. So tests can be converted gradually over time (this might take several years).

Feedback

As usual, if you find a bug or have a suggestion how to improve the CLI, please file a bug in Debian or in Launchpad. The new CLI is recent enough that we still have some liberty to change it.

Happy testing!

Tags: , , , ,

Dropping PostgreSQL 9.0 packages for Debian/Ubuntu/backports

PostgreSQL 9.1 has had its first release candidate out for some two weeks without major problem reports, so it’s time to promote this more heavily. If you use PostgreSQL, now is the time to try it out and report problems.

We always strive to minimize the number of major versions which we have to support. They not only mean more maintenance for developers, but also more upgrade cycles for the users.

9.0 has not been in any stable Debian or Ubuntu release, and 9.1 final will be released soon. So we recently updated the current Ubuntu development release for 11.10 (“oneiric”) to 9.1. In Debian, the migration from 8.4/9.0 to 9.1 is making good progress, and there is not much which is left until postgresql-9.0 can be removed.

Consequently, I also removed 9.0 from my PostgreSQL backports PPA, as there is nothing any more to backport it from. However, that mostly means that people will now set up installations with 9.1 instead of 9.0, and won’t magically make your already installed 9.0 packages go away. They will just be marked as obsolete in the postgresql-common debconf note.

If you want to build future 9.0 packages yourself, you can do this based on the current branch: bzr branch lp:~pitti/postgresql/debian-9.0, get a the new upstream tarball, name it accordingly, add a new changelog with a new upstream version number, and run bzr bd to build the package (you need to install the bzr-builddeb package for this).

Update 2011-09-09: As I got a ton of pleas to continue the 9.0 backports for a couple of months, and to keep it in Debian unstable for a while longer, I put them back now. I also updated the removal request in Debian to point out that I’m mainly interested in getting 9.0 out of testing. I don’t mind much maintaining it for a couple of more months in unstable. My dear, I had no idea that my backports PPA was that popular!

Tags: , , ,

sudo dpkg -P hal

The day has come!

Yesterday I dropped the superfluous hal dependency from gparted, today I uploaded gdm to stop using hal for getting the keyboard layout and use libxklavier instead.

I also applied Julian Cristau’s udevified X.org branch to our xorg-edgers packages into my halsectomy PPA, created some udev rules for udev-based X.org input detection ([1], [2]), and off we go: that was the last hal reverse dependency. My system now fully boots and works without hal.

Hooray!

Tags: , , , ,

gvfs: Buh-bye, hal!

In the merciless vendetta for purging hal we now reached another major milestone: gvfs, GNOME’s file system layer which handles USB storage as well as virtual file systems for libgphoto2 cameras, Bluetooth devices, audio CDs, or ftp/sftp/cifs mounts, is now fully ported to libgudev and doesn’t need hal at all any more. These long nights of porting weren’t in vain, after all \o/.

Now I just need to hassle David Zeuthen to apply the patches soon. Of course I couldn’t wait and already uploaded them to Karmic, so please test the hell out of it and let me know about problems.

https://wiki.ubuntu.com/Halsectomy is a little greener once again. 🙂

Tags: , , , ,

hal-sectomy continues

The migration away from hal continues. Yesterday I uploaded new udev-extras and hal packages which move the handling of local device access from hal to /lib/udev/rules.d/70-acl.rules. Note that this temporarily breaks device access to old cameras which don’t speak the standard PTP protocol yet (and aren’t mass-storage). Most devices should work fine, though, please let me know if something fails (ubuntu-bug udev-extras).

I started a discussion with upstream about how to migrate the libgphoto bits away from hal to udev rules. It shoulnd’t actually be hard to do, and I’m keen on working on it, but it needs agreement between the libgphoto, udev-extras, and gvfs/KDE upstreams, so some coordination work is in order.

I also created a wiki page of the current migration status. Please edit if I forgot something. If you feel inclined to work on a particular bit, the Linux world will heavily appreciate this! It’s still a major Karmic goal to push the transition as far as possible, to avoid intrusive system changes for Ubuntu 10.04 (which is likely to become an LTS).

Tags: , , ,

DeviceKit update, future handling of Fn key maps

I recently started working on packaging pieces of the new DeviceKit world, which is gradually replacing hal. In particular, DeviceKit-disks and DeviceKit-power are in Karmic now, and gnome-disk-utility and a patches gvfs are in the ubuntu-desktop PPA.

A few days ago I wondered what the replacement of hal-setup-keymap would be. This is the bit that makes your laptop’s magic Fn keys work, such as “brightness up”, “next song”, “WWW browser”. I became quite acquainted with this component in the last six months and committed a fair share of fixes to hal-info for those. A quick discussion revealed that nobody was working on this, so I picked that up and created a tool to convert hal keymap .fdi files to udev rules and keymap files, and an udev-extra git branch with those maps, the udev rules, and a small callout which pokes the maps into the corresponding evdev device whenever an input device gets added.

I tested it on my Dell Latitude D430, and it works just fine. Dell laptops are all alike in terms of Fn keys, but I need testing on other laptops. I’m particularly interested in the Sony and ThinkPad models, which don’t send “magic” keys as high keycodes on
a standard i8042 atkbd, but as low keycodes on a separate input device (30-keymap-module-* in hal-info). Testing on Acer and Fujitsu models is also highly welcome.

For testing, add my PPA and do


$ sudo apt-get install udev-extras
# disable the current hal-info keymaps:
$ sudo rm /usr/share/hal/fdi/*/*/30-keymap-*

Packages are available for Jauny and Karmic.

Then reboot, and check if your magic Fn keys still work. Please send success and failure reports by private mail or as comments here. I’ll fix the issues and send a conclusion back here in a few days. If things don’t work for you, please do


$ sudo true
$ sudo udevadm monitor --udev -e > /tmp/udev.log 2>&1
$ sudo udevadm trigger --subsystem-match=input
$ fg
# press Control-C
$ grep . /sys/class/dmi/id/* 2>/dev/null

Please send the output of the last command, and /tmp/udev.log.

If you need to revert, purge udev-extras again and do sudo apt-get install --reinstall hal-info.

Many thanks in advance!

Update (2009-05-09): I got my kernel.org account now, and testing showed a lot of positive and no negative results. Thank you for all your feedback! I pushed the changes to udev master now.

2009-11-01 update:Updated git link from udev-extras (which got removed recently) to udev (where it was merged into a while ago).

Tags: , , , ,

Wanna touch DeviceKit?

Still remember the “hal is dead, long live DeviceKit” buzz? It’s time to finally lay our hands on it.

DeviceKit and DeviceKit-power themselves are available for a while in Jaunty’s universe, but installing them by themselves is pretty boring, of course.

Last Saturday I packaged the new gnome-power-manager 2.25.x which is now devkit-ified and doesn’t use hal any more. It is now available in the ubuntu-desktop PPA. Please try it, break it, and complain over there 🙂

It works quite well for me, the only thing I noticed is that it currently seems to break my hibernate hotkey. Still investigating..

Tags: , , ,