Skip to content
  • Luke Shumaker's avatar
    makepkg: Better error messages for versions in (check, make, opt)depends/provides/conflicts · f7efa6a9
    Luke Shumaker authored and Allan McRae's avatar Allan McRae committed
    
    
    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: default avatarAllan McRae <allan@archlinux.org>
    f7efa6a9