I started working last night on packaging BitKeeper for RHEL/CentOS and Fedora, and it became immediately apparent that it’s not feasible with how the code is structured and how the build process currently works.
Several notable problems:
Usage of a custom-designed Makefile thing instead of autotools or CMake. While a custom Makefile-based build environment in itself isn’t bad, it doesn’t support any of the conventions expected for packaging software for Linux. Personally, I prefer CMake based build environments, as they are portable, flexible, easy to understand, and well supported by all major distribution families. But if you’d prefer to keep the custom Makefile environment, that’s fine as well, provided it can handle the conventions needed for packaging.
Everything under the sun is bundled into it. This is a showstopper for a lot of distributions, as bundled code can be hard to track and makes it more difficult for security issues to be handled in a responsive manner by distributions.
Many files explicitly replace system ones or have conflicting files of the same name. Some stuff simply doesn’t need to be duplicated, and in the case of man pages, some stuff is improperly named so that they conflict with system ones.
I would greatly appreciate it if these can be fixed so that BitKeeper can be introduced into Linux distributions.
For reference, the Fedora Packaging Guidelines is a good place to start for making the build environment work as expected for any Linux distribution.