2018-07-07 10:29:48 -04:00
|
|
|
libmakepkg_module = 'lint_pkgbuild'
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
'arch.sh.in',
|
|
|
|
'backup.sh.in',
|
|
|
|
'changelog.sh.in',
|
|
|
|
'checkdepends.sh.in',
|
|
|
|
'conflicts.sh.in',
|
|
|
|
'depends.sh.in',
|
|
|
|
'epoch.sh.in',
|
makepkg: Better error messages for versions in (check, make, opt)depends/provides/conflicts
Given the depends
depends=('foo>=1.2-1.par2')
and the error message
==> ERROR: pkgver in depends is not allowed to contain colons, forward slashes, hyphens or whitespace.
One would be lead to believe that the problem is that they gave a pkgrel in
depends at all, not that the pkgrel contains letters.
Each of the (check,make,opt)depends, conflicts, and provides linters use a
glob to trim off properly formed epoch an rel from the full version string,
and pass the remainder to check_pkgver(). This does a good job of
accepting/rejecting full versions, but doesn't do a good job of generating
good error messages when rejecting if it's because of the epoch or rel.
1. Factor out check_epoch() and check_pkgrel() from lint_epoch() and
lint_pkgrel(), similarly to check_pkgver().
2. Add a check_fullpkgver() that takes a full [epoch:]ver[-rel] string and
splits it in to epoch/ver/rel, and calls the appropriate check_ function
on each.
3. Use check_fullpkgver() in the {,check,make,opt}depends, conflicts, and
provides linters.
Signed-off-by: Allan McRae <allan@archlinux.org>
2018-08-09 13:41:12 -04:00
|
|
|
'fullversion.sh.in',
|
2018-07-07 10:29:48 -04:00
|
|
|
'install.sh.in',
|
|
|
|
'makedepends.sh.in',
|
|
|
|
'optdepends.sh.in',
|
|
|
|
'options.sh.in',
|
|
|
|
'package_function.sh.in',
|
|
|
|
'pkgbase.sh.in',
|
|
|
|
'pkglist.sh.in',
|
|
|
|
'pkgname.sh.in',
|
|
|
|
'pkgrel.sh.in',
|
|
|
|
'pkgver.sh.in',
|
|
|
|
'provides.sh.in',
|
|
|
|
'source.sh.in',
|
|
|
|
'util.sh.in',
|
|
|
|
'variable.sh.in',
|
|
|
|
]
|
|
|
|
|
|
|
|
foreach src : sources
|
|
|
|
output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module)
|
|
|
|
|
|
|
|
custom_target(
|
|
|
|
libmakepkg_module + '_' + src.underscorify(),
|
|
|
|
command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ],
|
|
|
|
input : src,
|
|
|
|
output : '@BASENAME@',
|
|
|
|
install : true,
|
|
|
|
install_dir : output_dir)
|
|
|
|
endforeach
|