Would it be possible for the PKGBUILD to allow users to specify a file to set for 'changelog=' relative to $srcdir?
This is non-trivial. Consider that something simple in the global scope such as:
changelog=$srcdir/$pkgname-$pkgver/NEWS
At the time this var is read, $srcdir isn't yet defined, and while $pkgver *is* defined, it's subject to change via a pkgver() function. You can avoid some of this pain if you insist that changelog be partof the package() function, but that would be highly unusual/annoying. Alternatives of re-sourcing the PKGBUILD from within user-functions are equally hard to swallow and probably have strange side effects.
How about `changelog="$pkgdir"/usr/share/doc/$pkgname/NEWS`? changelog could also be made capable of holding a link to where upstream hosts its release notes, especially when they have pretty formatting and further links to issues/PR's/commits/etc, eg. https://www.mozilla.org/en-US/firefox/69.0/releasenotes/. -- Best, Daniel <https://danielcapella.com>