1. Introduction

any is the tool to build and maintain software in a distribution. It allows to form binary packages for your operating system on your own. The packages are correctly incorporated and administered. Your software will be symmetric to the content of operating system distro and will not cause troubles of command sudo make install, stated in many tutorials on autonomous building from source.

The any engine does not rely on features of specific distro. It is written in shell and POSIX utilities, so it is highly portable between environments, requires minimum dependencies and does not need the compilation. Installation to system directories is not required as well (though possible). The build occurs inside local directory of a plain user. To begin the work just unpack the release archive.

any is not additional package management system like pkgsrc from NetBSD, working in parallel with original one. any does package building for already existing package management systems. At the moment the following formats of binary packages are supported:

deb
for Linux distros Debian, Ubuntu and their derivatives;
txz
for Linux distro Slackware;
plain tgz
binary files in plain compressed tar-archive.
In other distros and operating systems the build will work with packaging of results into plain tgz archives, without integration with system package manager.

There may be support of other formats in the future. Each format is implemented in separate module with determined interface. Such modules can be added apart from each other.

The build is executed through shell scripts, called anybuilds (.build). any provides API for typical actions during the build, along with flexible tuning depending on configuration, platform and wide range of conditions. API functions are implemented in engine libraries separately from outer filesystem and environment. With given approach the work with any is close as much as possible to literal execution of classic commands:

./configure
make
make install
Meanwhile the user gets functionality, automatization and flexibility, unavailable previously.

any localizes its work inside directory, chosen by the user inside his home catalogue. There is no writing to system directories like /var/, /tmp/. Likewise git(1) works with repositories of sources, and IDE creates project directory. The files of a project are stored in each created working directories. You may create several working directories at the same time for various projects, make independent changes there - they will not interfere with each other.

Besides direct building, any includes tools for version accounting, tracking of dependency trees, checking on correctness of archives contents by given rules, and other maintenance tasks.

The engine allows to support software autonomously with the aprroach, adopted for distros. It may be useful for:

-
a person, willing to fix or modify the package in his operating system;
-
an application developer.
He recieves the tool for coherent distribution of his product to a number of operating systems and platforms. Herewith he does not depend on system developers, maintaining each of that platforms.
-
authors of their own distro of full fledged software platform.