xapt(1) convert Debian packages to cross versions on-the-fly

Synopsis

 $ sudo xapt foo bar baz
 $ sudo xapt -M http://ftp.fr.debian.org/debian/ foo bar baz
 
 $ sudo xapt --clean-cache

Description

Downloading the Packages files can take a reasonable amount of time, so to grip a number of packages, either specify all packages in one command or use the "--keep-cache" option for each run and use the "--clean-cache" option at the end.

Note also that, in common with the rest of Emdebian processing, Install-Recommends is always turned off, so if you need a package that is only recommended by packages in the list given to "xapt", that package will need to be added to the list explicitly.

Limitations

Installing any package from repositories outside the normal apt sources (especially if those packages are subsequently modified by dpkg-cross) will list those packages as ``local or obsolete'' in package managers. Converted packages cannot be upgraded without repeating the call to "xapt" because "apt-get" does not know about the renaming of the package by "dpkg-cross" when downloading the packages. This can cause problems if dependencies of such packages need to be upgraded. It is possible that the main system "apt" will try to remove these local packages in order to proceed with the main system upgrade.

The best option is to use "xapt" inside a disposable chroot.

Checking existing cross packages

"xapt", by default, will not check to see if a particular cross package is already installed at a newer or equal version which can cause cross packages to be downgraded. To turn on this check, either use the "--check-newer" option or set "checknewer" to true in the vendor configuration file in /etc/xapt.d/.

Using SecureApt

If your apt sources include a repository which does not use SecureApt, disable authentication in the vendor configuration file in /etc/xapt.d/ Set noauth=true.

Multiarch behaviour

By default <dpkg-cross> does nothing with packages from Debian which already support Multi-Arch - the package is simply copied to the current work directory, if it does not already exist. Any package containing a Multi-Arch: field in DEBIAN/control is skipped in this manner.

"xapt" uses the --multiarch option can pass the --convert-multiarch option down to dpkg-cross to instead force the generation of a -<arch>-cross package with the files moved into the conventional dpkg-cross locations.

"xapt" will check for dpkg-cross version 2.6.3 or higher when this option is set and report an error (unsetting the option) if a suitable version is not found.