Merge sections lists, debstuff and rpmstuff to dist
They are all about "distribution", rpmstuff and debstuff have basically
just one item, and having "lists" section was ugly and meaningless in
the first place.
Merge all files:group sections into one, where key is name of the group
and value is source name, optionally followed by destination path.
This breaks old mkit.ini's, but significantly simplifies future ones.
1. Only one section is needed,
2. group list is implied from the files section, removing the need
of lists:group,
3. destination path has been made optional (by default, basename of
the source path is used).
Overview of changes:
* Replaced 'vars' key with 'tokens'
* Improved version bumping (won't destroy spaces around '=')
* Improved robustness of token replacing
* Enabled more tokens on single line
* Added tokens: __MKIT_PROJ_VCS_BROWSER__ __MKIT_PROJ_MAINTAINER__ and
__MKIT_PROJ_GIT_LASTHASH__
* Code maintenance and cleanup
It's easier to do quoting at least mediocre-right in sed than in perl;
eg. with Perl, even e-mail address was causing quoting breakage due to
the at sign.
Provide last_hash value as __MKIT_PROJ_GIT_LASTHASH__ token
Note that similar to __MKIT_PROJ_VERSION__, this value cannot be
reliably determined when outside git (e.g. distributor's build dir),
therefore must be kept inside dist source package.
Unlike version, though, user (ie. app developer, ie. mkit.ini
maintainer) most probably does not want to edit it, therefore we're
normally keeping it out of sight.
The value itself is normally just the last git commit's hash (SHA1 these
days), suffixed with ".dirty" mark if there were uncommitted changes
during build. (Just the same as we do with semver())
If we're outside git and the hash could not be determined, that either
means the source package was mangled with or was built with older
version of mkit. In either case, the value provided will be 'UNKNOWN'.
Some parts got a bit confusing over time, also there was repetition.
In this commit:
* the release fact gathering routines have been moved to separate
module,
* some less useful routines have been removed,
* some internal interfaces have been changed to allow for more
readable code.
Fix up the path joining logic:
* For obvious reasons, we panic if group's root is empty.
* DESTDIR can be empty, that's normal for installs such as when MKit
installs its own dogfood.
* Root (which sometimes starts with PREFIX) may or may not start with
slash; relative root such as that is also OK for installs like MKit
or TFKit.
* Furthermore, DESTDIR may or may not end with slash; we have to address
that and avoid joining the names.
Overview of changes:
* Added sanity checks for debstuff target
* Added new tokens: __MKIT_PROJ_PKGNAME__ and __MKIT_SELF_VERSION__
* Minor code and meta-data cleanups
Overview of changes:
* Added debstuff target to help Debian maintainers
* `make clean` removes directories as well
* Rewrote route with sane(r) approach ro targets
Simplify maintenance by moving list of valid_targets to a separate
function. Both router and usage message are now consumers thereof.
This also changes format of the usage message.
Overview of changes:
* Move all project meta-data to mkit.ini (obsolete config.mk)
* Add tagline to common peoject meta-data
* Use more qualified tokens for replacement
* Improve mini-changelog